簡體   English   中英

Xcode本地化

[英]Xcode localization

我對如何在Xcode項目中設置默認語言有疑問。 我的Mac OS X應用程序支持德語和英語。

每次未在“系統設置”中選擇英語時,默認語言為德語。 我想將默認語言切換為英語,以便非德語用戶獲得英語界面。 將Plist文件中的“本地化本機開發區域”更改為英語並不能解決問題。 我嘗試在代碼中執行此操作,但這不是Apple在其HIG中建議的。

Sampleproject托管在Github上。

https://github.com/christian123456/xcodelocalization

Xcode版本是5.1.1

我最近將屏幕截圖添加到了存儲庫中。 如您在“ germancorrect.png”屏幕截圖中看到的那樣,選擇了法語和葡萄牙語,但是Mac OS選擇了德語作為語言。 我希望該語言為英語。

測試與分析

我已經將-NSShowNonLocalizedStrings YES添加到scheme-editor> Run .app> Arguments> Arugments Pass on Launch中 這會將找不到它的本地化變體的所有字符串變成大寫。 結果是,我看到所有大寫字母。

切換語言以進行開發使用-AppleLanguages(it) 結果,出現en本地化。

要切換應用程序的語言,您還可以使用以下應用程序: https : //itunes.apple.com/de/app/app-language-chooser/id451732904?l=zh_CN&mt=12

欲了解更多信息, 請點擊這里

經過一番搜索和測試,我找到了這個解決方案:

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

這會將英語設置為默認語言。

另一種選擇是創建自己的本地化類。 調用您的課程,它可以強制將本地化為您想要的任何語言:

- (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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM