[英]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.