我无法理解并找到任何向我展示NSLocalizedString实际用法的资源。甚至Apple文档。
NSLocalizedString(<#key: String#>, tableName: <#String?#>,
bundle: <#NSBundle#>, value: <#String#>, comment: <#String#>)
好的,可以说我是在文件中创建的,如何用不同的语言编写?
我是否要创建整个文件的本地化版本,例如:en.thisfile.swift,es.thisfile.swift,fr.thisfile.swift?
还是在不同的包或表中创建新的语言?
NSLocalizedString("hello", tableName: "en", value: "hello", comment: "wtf is this anyways?")
NSLocalizedString("hello", tableName: "fr", value: "bonjour", comment: "wtf is this anyways?")
NSLocalizedString("hello", tableName: "es", value: "hola", comment: "wtf is this anyways?")
设置后如何在随机文件中使用它?
println("dat nslocalizedstring I created, which will automatically know what to write??")
该table
是定义字符串,例如文件名,表“ErrorMessages”将定义一个名为ErrorMessages.strings
。
如果未指定表,则该文件将为默认文件Localizable.strings
。该文件的格式为以下列表:
/* This is displayed when the entity is not found. */
"MSG_object_not_found" = "Object not found. Please, try again.";
在第一行为注释的地方,左侧的值是key
标识字符串的值,右侧的值是实际的本地化值。
通常,您可以使用英文值作为键(的2参数版本NSLocalizedString
)。语言名(en
,fr
,es
)不是方法调用的一部分。
所有这些都使翻译变得简单。请注意,大多数翻译人员不会理解甚至看不到应用程序,这就是为什么要有很好的注释来提供消息上下文的原因很重要。互联网上存在一些有趣的翻译示例,这些示例是由于缺少上下文并且翻译人员不知道他们正在翻译的内容而创建的。
基本上,你的代码将包含文本在你的主要语言,然后你会生成.strings
使用从您的代码文件genstring
的工具(请参阅此获取更多信息)。然后,将文件提供给翻译器,将翻译后的文件添加到您的应用程序中(每种语言在不同的文件夹中),应用程序将在运行时根据用户选择的语言选择正确的文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句