【问题标题】:Xcode localizationXcode 本地化
【发布时间】:2014-07-23 07:54:39
【问题描述】:

我有一个关于如何在 Xcode 项目中设置默认语言的问题。 我的 Mac OS X 应用程序支持德语和英语。

每次在系统设置中未选择英语时,默认语言为德语。 我想将默认语言切换为英语,以便非德语用户获得英语 UI。 将 Plist 文件中的“本地化原生开发区域”更改为英文并没有解决问题。 我尝试在代码中执行此操作,但这不是 Apple 在其 HIG 中推荐的内容。

Sampleproject 托管在 Github 上。

https://github.com/christian123456/xcodelocalization

Xcode 版本为 5.1.1

我最近将屏幕截图添加到存储库。正如您在“german wrong.png”屏幕截图中看到的那样,选择了法语和葡萄牙语,但 Mac OS 选择了德语作为语言。我希望语言是英语。

【问题讨论】:

  • 请添加一些截图并提供更多信息。

标签: objective-c xcode macos localization


【解决方案1】:

测试与分析

我已将 -NSShowNonLocalizedStrings YES 添加到 scheme-editor > Run .app > Arguments > Arugments Passed On Launch。这会将无法找到本地化变体的任何字符串转换为大写。 结果是,我看到的都是大写的。

切换语言进行开发使用-AppleLanguages (it)。 结果,出现了en本地化。

要切换应用的语言,您还可以使用以下应用: https://itunes.apple.com/de/app/app-language-chooser/id451732904?l=en&mt=12

欲了解更多信息read here

解决方案

经过一番搜索和测试,我找到了这个解决方案:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", @"de", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];

这会将英语设置为默认语言。

【讨论】:

    【解决方案2】:

    另一种选择是创建您自己的本地化类。调用你的类,它可以强制本地化为你想要的任何语言:

    - (NSString*) MyLocalizedString:(NSString*) label;
    {
        NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
        NSString* preferredLanguage = [defs objectForKey:@"LocalizedLanguage"];
        NSString *path = [[NSBundle mainBundle] pathForResource:preferredLanguage ofType:@"lproj"];
    
        NSBundle* languageBundle = [NSBundle bundleWithPath:path];
        NSString *result = [NSString stringWithFormat:@"%@",[languageBundle localizedStringForKey:label value:@"" table:nil]];
    
        return(result);
    }
    
    - (NSLocale *) forceEnglishLocalization;
    {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];     
        [defaults setObject:@"en" forKey:@"LocalizedLanguage"];  
    
        NSLocale * currentLocale;
    
        currentLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
    
        return(currentLocale);
    }
    

    需要帮助本地化您的 Xcode 应用程序?

    https://itunes.apple.com/mg/app/generate-localizable-strings/id890673579?mt=12

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-10
      相关资源
      最近更新 更多