[英]Localization not working on Xcode
我无法让我的应用程序使用本地化。
Localizable.strings
文件并勾选了我正在本地化的语言。 (现在我有基础,英语和西班牙语。)2 Files Localized
,我猜它们必须是故事板和 .strings 文件。我正在使用此示例进行测试:
self.loginLabel.text = NSLocalizedString(@"login", @"Login text info");
这是Localizable.strings (Base)
文件的样子:
"login" = "Log in";
但是,它不起作用,而是显示login
。 我是不是忘记了一个关键步骤?
顺便说一句:我已经尝试过更改login
文本,以防万一覆盖了标签。
这些确实是步骤,我认为你没有遗漏任何东西。 我通常将注释设置为 nil 而不是另一个 NSString - 不确定这是否有区别。
但是,请确保您在英语和西班牙语文件中也添加了相同的行(显然已根据需要进行了翻译),而不仅仅是在 base 中。
接下来,要显示语言,请将设备设置为所述语言。 关闭您的应用程序并重新启动它。 字符串现在应该以其他语言显示。
请注意,模拟器经常会遇到新翻译的问题,尤其是当它们被添加到已部署的应用程序时。 在这种情况下,从模拟器中删除应用程序,单击产品 - 清理,然后重新部署。
在我的情况下,它不起作用,因为 UILabel 文本在属性检查器中被设置为“属性”而不是“普通”。
.strings 文件的本地化似乎不适用于属性字符串。
我什至有一个混合了普通和属性字符串标签的故事板,并且本地化只适用于普通的。
对于将来遇到类似问题的任何人:
检查您的*.strings
文件是否有任何非打印字符。 我将 JavaScript 用于一个简单的任务,但没有意识到它包含一些空白字符。
一种简单的检查方法是将翻译放在文件的顶部,看看它是否有效。 如果是这样,可能会有一些空白字符。 接下来的步骤是...二分查找并删除空白字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.