我有一个需要本地化的应用。
在摆弄设置一段时间后,我设法让项目进入状态,在应用程序包的nl.lproj
目录中构建Resources
(以及其他)目录,其中包含一个包含我所有翻译的MainMenu.strings
文件;乍一看,它们似乎是正确的。
XIB文件被标记为可翻译,似乎是正确目标的一部分:
但是,如果我在荷兰语环境中运行应用程序,则UI中不会显示本地化字符串。我添加了
NSLocale *loc = [NSLocale autoupdatingCurrentLocale];
NSString *lang = [loc languageCode];
NSLog(@"Current language: %@",lang);
验证荷兰语是否有效,而且确实如此。
This question建议干净,然后重建应用程序应该解决这些问题。我已经尝试过,但它没有解决问题。
如何找出我的应用未被翻译的原因?还有什么可能出错?有没有我可以检查的诊断?
相关应用程序是开源的,可以在https://github.com/Fedict/eid-mw找到。选择" eID Viewer"目标,并构建,以了解发生了什么。
答案 0 :(得分:1)
本地化有两个不同的地方。一个是UI的本地化。这是通过检查这些框然后在xib文件下面的对话框中编辑字符串文件来完成的。
第二个是Userfacing字符串在代码中的本地化。这是由宏NSLocalizedString(@"*key*", *comment*);
完成的,其中键是键,注释是为本地化目的提供的注释。
这些字符串是在File Localizable.strings中编辑的。
这是与初学者Tutorial的链接。和Apple Docs
在Xcode中激活本地化字符串的调试功能:在Xcode中传入-NSShowNonLocalizedStrings YES
作为启动参数。您可以在Product / Scheme / Edit Scheme -Arguments下找到它
希望这有帮助
答案 1 :(得分:0)
您需要名为" Localizable.strings"的名为.strings的文件。 并添加语言目标(在检查器中)并填写目标语言文件。
答案 2 :(得分:0)
您是否尝试过使用pseudolocalozations进行检查? 您是否正确设置了Mac上的语言和区域? 你是否也尝试用XCode专门用荷兰语发布它:
以特定语言和区域启动您的应用
单击“运行目标”菜单中的目标,然后选择“编辑方案”。
在右侧,选择选项。
(可选)从“应用程序语言”弹出菜单中选择一种语言。
(可选)从“应用程序区域”弹出菜单中选择一个区域。
单击“关闭”按钮。
点击“运行”以您指定的语言和区域启动您的应用。
答案 3 :(得分:0)
事实证明,OSX 10.8及更高版本支持本地化。我的应用选择了10.7作为部署目标(我们确实需要支持一些旧版本的OSX)。将部署目标切换为10.8会使翻译出现。