本地化字符串仅通过 Interface Builder 应用翻译
Localized Strings only applying translations through Interface Builder
我已经为几种语言创建了字符串文件并向其中添加了文本。例如,西班牙语文件名为 Main.strings(西班牙语),我在其中添加了两个文本。第一个将翻译应用于界面构建器中的标签(有效),另一个在 viewdidload 方法中打印(无效)。
"yFi-2X-1s7.text" = "hola";
"lb-hello" = "hola";
我对 "it doesn't work" 的意思是,正在打印的文本是 lb-hello 而不是 hola
这是我用来打印文本的代码:
NSLog(NSLocalizedString("lb-hello", comment: "Hello translated"));
知道为什么翻译只能通过 Interface Builder 进行吗?我错过了什么吗?
好的,我找到了我自己问题的答案。
显然,如果字符串文件被称为 Main.strings(西班牙语),它可以本地化标签 ID,但不能创建新变量并通过代码应用它们。
为了能够创建新的并在代码中使用它们,您必须重命名每个文件并将 Main 替换为 Localizable。所以 西班牙语的文件名必须是 Localizable.strings(西班牙语)
我已经为几种语言创建了字符串文件并向其中添加了文本。例如,西班牙语文件名为 Main.strings(西班牙语),我在其中添加了两个文本。第一个将翻译应用于界面构建器中的标签(有效),另一个在 viewdidload 方法中打印(无效)。
"yFi-2X-1s7.text" = "hola";
"lb-hello" = "hola";
我对 "it doesn't work" 的意思是,正在打印的文本是 lb-hello 而不是 hola
这是我用来打印文本的代码:
NSLog(NSLocalizedString("lb-hello", comment: "Hello translated"));
知道为什么翻译只能通过 Interface Builder 进行吗?我错过了什么吗?
好的,我找到了我自己问题的答案。
显然,如果字符串文件被称为 Main.strings(西班牙语),它可以本地化标签 ID,但不能创建新变量并通过代码应用它们。
为了能够创建新的并在代码中使用它们,您必须重命名每个文件并将 Main 替换为 Localizable。所以 西班牙语的文件名必须是 Localizable.strings(西班牙语)