Pie*_*ter 32 xcode localization nslocalizedstring
我希望基本文件包含我的英语单词,因为我的项目已将"Localization native development region"设置为英语.
更新 - 澄清我的问题:

Nic*_*tin 18
除了解决最终用户将看到的语言问题之外,您还需要考虑将在AppStore中显示的内容.我目前的经验是,如果你使用Base for English,英语将不会出现在你的应用程序描述中支持的语言列表中(Apple如何知道你的基础本地化是哪种语言).
我自己也遇到过这个问题 - 基地(英语),德语和俄语
目标设置参考:
Localization native development region = en
Run Code Online (Sandbox Code Playgroud)
但在Appstore上它以这种形式出现:
Languages: German, Russian
Run Code Online (Sandbox Code Playgroud)
没有提到英语
我考虑将基本本地化复制到英语(不是高优先级,因为用户从截图中看到应用程序无论如何都适用于英语)
编辑:在iOS8中似乎有不同的行为 - 如果任何翻译符合您的"首选语言顺序",则应用程序设置(Settings.bundle)似乎忽略基本翻译.
换句话说,应用程序已本地化:基础,德语,俄语.iPhone配置为使用英语,首选语言顺序为英语,德语,俄语.
应用程序设置有...德语!
再一次:这仅适用于设置而不适用于应用程序本身!
Ali*_*Ali 15
虽然我不完全确定我是否正确,但我会尝试回答你的问题TTBOMK.
假设您NSLocalizedString(key, comment)在代码中使用了.您可以清楚地看到第一个参数实际上是字符串的键,而不是翻译(或要翻译)的字符串本身.因此,当您"编写代码"时,您实际上不会使用基本语言编写字符串 - 或者说任何其他语言.您应该将其视为在代码中添加字符串占位符.
稍后,你应该为Localizable.strings你想要支持的每种语言创建一个文件,形式为key = value;.要使您的UI至少以一种人类可读的语言出现,您至少应该Localizable.strings为每个占位符键创建一个具有正确字符串值的文件.
例如:如果你NSLocalizedString(@“ConfirmationButtonTitle", @“Yada yada”)的代码中有代码,那么拥有一个Localizable.strings包含”GreenButtonTitle” = “Tap here to confirm”;元素的文件就足够了.如果您没有创建Localizable.strings文件或没有Localizable.strings包含GreenButtonTitle密钥的文件,则按钮标题会回退ConfirmationButtonTitle,因为它是占位符键的名称.
话虽如此,大多数人更喜欢出于各种原因将其键完全命名为字符串值.这可以说是一种方便且非常普遍的做法,但可能导致人们的思想冲突.
因此,如果您要创建前一个NSLocalizedString示例NSLocalizedString(@“Tap here to confirm", @“Yada yada”),那么您的默认/基本Localizable.strings文件可能包含类似的元素“Tap here to confirm” = “Tap here to confirm”;.
这里发生的不是你重复自己,而是你将你的密钥命名为基本语言的字符串值,这就是全部.
编辑
总有一种基本语言概念,但据我所知,Xcode 5更强调这一点:那很好.如果您的基本语言是英语,那么您不必再拥有Localizable.strings英语文件.
根据文档(向下滚动到在您的代码中为面向用户的文本创建字符串文件),您不应添加Localizable.strings到 Base 本地化。即使您的开发语言是英语,也要为英语创建一个单独的文件夹Localizable.strings。为您要添加的每种其他语言创建其他语言。
| 归档时间: |
|
| 查看次数: |
11494 次 |
| 最近记录: |