【问题标题】:Localized Strings only applying translations through Interface Builder本地化字符串仅通过 Interface Builder 应用翻译
【发布时间】:2019-09-06 19:34:18
【问题描述】:

我已经为几种语言创建了字符串文件并向它们添加了文本。例如,西班牙语文件名为 Main.strings (Spanish),我在其中添加了两个文本。第一个将翻译应用于界面构建器中的标签(它可以工作),另一个用于在 viewdidload 方法中打印(它不起作用)。

"yFi-2X-1s7.text" = "hola";
"lb-hello" = "hola";

“它不起作用”的意思是正在打印的文本是 lb-hello 而不是 hola

这是我用来打印文本的代码:

NSLog(NSLocalizedString("lb-hello", comment: "Hello translated"));

知道为什么翻译只能通过 Interface Builder 工作吗?我错过了什么吗?

【问题讨论】:

  • 您的字符串文件“Hola”键中有什么? “lb-hello”还是“yFi-2X-1s7.text”?
  • 我创建了两个,yFi-2X-1s7.text 尝试使用界面生成器进行翻译,另一个使用 lb-hello 通过代码进行翻译
  • 你的字符串文件的名字是什么?请编辑您的问题并为您拥有的两个示例添加两个键值。
  • 刚刚编辑了整个问题@andesta.erfan

标签: ios swift localization nslocalizedstring swift5


【解决方案1】:

好的,我找到了自己问题的答案。

显然,如果字符串文件名为 Main.strings(西班牙语),它可以本地化标签 ID,但不能创建新变量并通过代码应用它们。

要创建新文件并在代码中使用它们,您必须重命名每个文件并将 Main 替换为 Localizable。所以西班牙语的文件名必须是 Localizable.strings(西班牙语)

【讨论】:

  • 字符串文件应始终命名为 Localizable.strings,以便编译器可以找到该文件并对其进行解析。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-19
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多