mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-04-22 22:20:44 +00:00
Added logic to translate method to assist in user translation from one language to another.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@21299 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
9d70705d9d
commit
d6989fa187
3 changed files with 75 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2005-06-11 05:13 Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
|
||||
* GormCore/GormDocument.m: Improved translate method.
|
||||
* Gorm.m: validateMenuItem: add case to handle translate menu.
|
||||
|
||||
2005-06-10 07:45 Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
|
||||
* English.lproj/Gorm.gorm: Addition of "Translate" menu.
|
||||
|
|
5
Gorm.m
5
Gorm.m
|
@ -1190,6 +1190,11 @@
|
|||
if (active == nil)
|
||||
return NO;
|
||||
}
|
||||
else if (sel_eq(action, @selector(translate:)))
|
||||
{
|
||||
if (active == nil)
|
||||
return NO;
|
||||
}
|
||||
else if (sel_eq(action, @selector(copy:)))
|
||||
{
|
||||
if ([s count] == 0)
|
||||
|
|
|
@ -3823,14 +3823,57 @@ static NSImage *fileImage = nil;
|
|||
types: fileTypes];
|
||||
if (result == NSOKButton)
|
||||
{
|
||||
NSMutableArray *allObjects = [NSMutableArray arrayWithArray: [topLevelObjects allObjects]];
|
||||
NSString *filename = [oPanel filename];
|
||||
NSDictionary *dictionary = [[NSString stringWithContentsOfFile: filename] propertyListFromStringsFileFormat];
|
||||
NSEnumerator *en = [[self objects] objectEnumerator];
|
||||
NSEnumerator *en = [topLevelObjects objectEnumerator];
|
||||
id obj = nil;
|
||||
BOOL touched = NO;
|
||||
|
||||
// collect all subviews/menus/etc.
|
||||
while((obj = [en nextObject]) != nil)
|
||||
{
|
||||
if([obj isKindOfClass: [NSWindow class]])
|
||||
{
|
||||
NSMutableArray *views = [NSMutableArray array];
|
||||
NSEnumerator *ven = [views objectEnumerator];
|
||||
id vobj = nil;
|
||||
|
||||
subviewsForView([(NSWindow *)obj contentView], views);
|
||||
[allObjects addObjectsFromArray: views];
|
||||
|
||||
while((vobj = [ven nextObject]))
|
||||
{
|
||||
if([vobj isKindOfClass: [NSMatrix class]])
|
||||
{
|
||||
[allObjects addObjectsFromArray: [vobj cells]];
|
||||
}
|
||||
else if([vobj isKindOfClass: [NSPopUpButton class]])
|
||||
{
|
||||
[allObjects addObjectsFromArray: [vobj itemArray]];
|
||||
}
|
||||
else if([vobj isKindOfClass: [NSTabView class]])
|
||||
{
|
||||
[allObjects addObjectsFromArray: [vobj tabViewItems]];
|
||||
}
|
||||
|
||||
[vobj setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
[obj setViewsNeedDisplay: YES];
|
||||
}
|
||||
else if([obj isKindOfClass: [NSMenu class]])
|
||||
{
|
||||
[allObjects addObjectsFromArray: findAll(obj)];
|
||||
}
|
||||
}
|
||||
|
||||
// change to translated values.
|
||||
en = [allObjects objectEnumerator];
|
||||
while((obj = [en nextObject]) != nil)
|
||||
{
|
||||
BOOL translated = NO;
|
||||
|
||||
if([obj respondsToSelector: @selector(setTitle:)] &&
|
||||
[obj respondsToSelector: @selector(title)])
|
||||
{
|
||||
|
@ -3839,6 +3882,7 @@ static NSImage *fileImage = nil;
|
|||
{
|
||||
[obj setTitle: translation];
|
||||
touched = YES;
|
||||
translated = YES;
|
||||
}
|
||||
}
|
||||
else if([obj respondsToSelector: @selector(setStringValue:)] &&
|
||||
|
@ -3849,6 +3893,26 @@ static NSImage *fileImage = nil;
|
|||
{
|
||||
[obj setStringValue: translation];
|
||||
touched = YES;
|
||||
translated = YES;
|
||||
}
|
||||
}
|
||||
else if([obj respondsToSelector: @selector(setLabel:)] &&
|
||||
[obj respondsToSelector: @selector(label)])
|
||||
{
|
||||
NSString *translation = [dictionary objectForKey: [obj label]];
|
||||
if(translation != nil)
|
||||
{
|
||||
[obj setLabel: translation];
|
||||
touched = YES;
|
||||
translated = YES;
|
||||
}
|
||||
}
|
||||
|
||||
if(translated)
|
||||
{
|
||||
if([obj isKindOfClass: [NSView class]])
|
||||
{
|
||||
[obj setNeedsDisplay: YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue