On Oct 10, 2012, at 4:25 AM, Luc Van Bogaert wrote:

> I'm in the process of localising my application, and I'm having a problem 
> getting some of the string resources in my code localised. In several places 
> in my code, I'm using this kind of structure to implement "dynamic" menu 
> items:
> 
>    if (action == @selector(toggleInspectorPanel:)) {
>        if ([(NSObject *)item isKindOfClass:[NSMenuItem class]]) {
>            [(NSMenuItem *)item setTitle:([self isInspectorCollapsed] ? 
>              NSLocalizedString(@"Show Inspector Panel", @"Menu item to show 
> the Inspector panel") : 
>              NSLocalizedString(@"Hide Inspector Panel", @"Menu item to hide 
> the Inspector panel"))];
>            return ![self.inspectorSplitter isAnimating];
>        }
> 
> Even though both string resources exist and have been translated in my 
> Localized.strings files, I'm always seeing the original English text when I 
> run my localized application.
> 
> The exact same problem occurs with string resources that are provided to some 
> control in my interface (eg. e dropdown menu) through a binding:
> 
> - (NSArray *)startupModeNames
> {
>    return [NSArray arrayWithObjects:
>            NSLocalizedString(@"Sketch Mode", @"Title for SketchBook startup 
> mode"),
>            NSLocalizedString(@"Design Mode", @"Title for SketchBook startup 
> mode"),
>            NSLocalizedString(@"SketchBook Mode", @"Title for SketchBook 
> startup mode"),
>            nil];
> }
> 
> Here also, I'm only seeing the original English text instead of the localized 
> version that's available in the Localized.strings file.
> 
> All the other string recources in my code get translated correctly.
> Could anyone please help me find out what it is I'm missing here?

There's nothing special about those uses of NSLocalizedString(), nor anything 
particularly "dynamic".  If most of your localized strings are working but 
those aren't, you need to verify your assumptions.  Check that your 
Localized.strings files are well-formed and properly encoded (UTF-8 or UTF-16). 
You can use the "plutil" program to check them.  Check that the keys in the 
.strings files match the keys you're passing to NSLocalizedString().  Check 
that your files don't have some invisible characters embedded in the keys, 
making them not match.  Check that the values (the translated strings) are 
really translated and not the untranslated English.  Do all of those checks on 
the .string files in your built app, not just the source files.

Regards,
Ken


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to