繁体   English   中英

本地化不适用于 Xcode

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM