OSDN Git Service

So the dynamically added entries in the Command and Graphics menu can be localized...
authorEric Branlund <ebranlund@fastmail.com>
Mon, 26 Aug 2019 23:28:19 +0000 (16:28 -0700)
committerEric Branlund <ebranlund@fastmail.com>
Mon, 26 Aug 2019 23:28:19 +0000 (16:28 -0700)
src/Makefile.am
src/cocoa/en.lproj/CommandMenu.strings [new file with mode: 0644]
src/cocoa/en.lproj/GraphicsMenu.strings [new file with mode: 0644]
src/main-cocoa.m

index b04885b..85b8ee3 100644 (file)
@@ -106,13 +106,17 @@ cocoa_plist_files = \
 cocoa_en_nib_files = \
        cocoa/en.lproj/MainMenu.nib/designable.nib \
        cocoa/en.lproj/MainMenu.nib/keyedobjects.nib
+cocoa_en_strings_files = \
+       cocoa/en.lproj/CommandMenu.strings \
+       cocoa/en.lproj/GraphicsMenu.strings
 
 EXTRA_DIST = \
        gcc-wrap \
        $(cocoa_icon_files) \
        $(cocoa_plist_template) \
        $(cocoa_plist_files) \
-       $(cocoa_en_nib_files)
+       $(cocoa_en_nib_files) \
+       $(cocoa_en_strings_files)
 
 if COCOA
 hengband_SOURCES += main-cocoa.m grafmode.h grafmode.c
@@ -140,6 +144,8 @@ appplist_DATA = $(cocoa_plist_files)
 appplistdir = $(APPRES)
 appennib_DATA = $(cocoa_en_nib_files)
 appennibdir = $(APPRES)/en.lproj/MainMenu.nib
+appen_DATA = $(cocoa_en_strings_files)
+appendir = $(APPRES)/en.lproj
 else
 EXTRA_hengband_SOURCES += main-cocoa.m grafmode.h grafmode.c
 hengband_LINK = $(LINK)
diff --git a/src/cocoa/en.lproj/CommandMenu.strings b/src/cocoa/en.lproj/CommandMenu.strings
new file mode 100644 (file)
index 0000000..9393adf
--- /dev/null
@@ -0,0 +1,8 @@
+/* Knowledge; Angband command "~" */
+"Knowledge" = "Knowledge";
+
+/* Inscribe; Angband command "{" */
+"Inscribe" = "Inscribe";
+
+/* Uninscribe; Angband command "}" */
+"Uninscribe" = "Uninscribe"; 
\ No newline at end of file
diff --git a/src/cocoa/en.lproj/GraphicsMenu.strings b/src/cocoa/en.lproj/GraphicsMenu.strings
new file mode 100644 (file)
index 0000000..814b932
--- /dev/null
@@ -0,0 +1,8 @@
+/* Entry in lib/xtra/graf/list.txt for listing available graphics modes */
+"Classic ASCII" = "Classic ASCII";
+
+/* Entry in lib/xtra/graf/list.txt for listing available graphics modes */
+"Original Tiles" = "Original Tiles";
+
+/* Entry in lib/xtra/graf/list.txt for listing available graphics modes */
+"Adam Bolt's tiles" = "Adam Bolt's Tiles";
index c87c9fb..eaec76e 100644 (file)
@@ -3382,6 +3382,7 @@ static void hook_quit(const char * str)
     NSString *commandMenuPath = [[NSBundle mainBundle] pathForResource: @"CommandMenu" ofType: @"plist"];
     NSArray *commandMenuItems = [[NSArray alloc] initWithContentsOfFile: commandMenuPath];
     NSMutableDictionary *angbandCommands = [[NSMutableDictionary alloc] init];
+    NSString *tblname = @"CommandMenu";
     NSInteger tagOffset = 0;
 
     for( NSDictionary *item in commandMenuItems )
@@ -3392,7 +3393,9 @@ static void hook_quit(const char * str)
         keyModifiers |= (useShiftModifier) ? NSShiftKeyMask : 0;
         keyModifiers |= (useOptionModifier) ? NSAlternateKeyMask : 0;
 
-        NSString *title = [item valueForKey: @"Title"];
+        NSString *lookup = [item valueForKey: @"Title"];
+       NSString *title = NSLocalizedStringWithDefaultValue(
+           lookup, tblname, [NSBundle mainBundle], lookup, @"");
         NSString *key = [item valueForKey: @"KeyEquivalent"];
         NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle: title action: @selector(sendAngbandCommand:) keyEquivalent: key];
         [menuItem setTarget: self];
@@ -3478,7 +3481,11 @@ static void hook_quit(const char * str)
     SEL action = @selector(setGraphicsMode:);
     
     /* Add an initial Classic ASCII menu item */
-    NSMenuItem *classicItem = [menu addItemWithTitle:@"Classic ASCII" action:action keyEquivalent:@""];
+    NSString *tblname = @"GraphicsMenu";
+    NSString *key = @"Classic ASCII";
+    NSString *title = NSLocalizedStringWithDefaultValue(
+       key, tblname, [NSBundle mainBundle], key, @"");
+    NSMenuItem *classicItem = [menu addItemWithTitle:title action:action keyEquivalent:@""];
     [classicItem setTag:GRAPHICS_NONE];
     
     /* Walk through the list of graphics modes */
@@ -3494,12 +3501,13 @@ static void hook_quit(const char * str)
            }
            /* Make the title. NSMenuItem throws on a nil title, so ensure it's
                   * not nil. */
-           NSString *title =
-               [[NSString alloc] initWithUTF8String:graf->menuname];
-           if (! title) title = [@"(Unknown)" copy];
+           key = [[NSString alloc] initWithUTF8String:graf->menuname];
+           title = NSLocalizedStringWithDefaultValue(
+               key, tblname, [NSBundle mainBundle], key, @"");
         
            /* Make the item */
            NSMenuItem *item = [menu addItemWithTitle:title action:action keyEquivalent:@""];
+           [key release];
            [item setTag:graf->grafID];
        }
     }