38

我希望基本文件包含我的英语单词,因为我的项目将“本地化本地开发区域”设置为英语。

更新 - 澄清我的问题:

在此处输入图像描述

4

3 回答 3

18

除了解决最终用户会看到什么语言的问题外,您还需要考虑 AppStore 中将显示什么。我目前的经验是,如果您使用 Base for English,英语将不会出现在您的应用描述中支持的语言列表中(Apple 如何知道您的基本本地化是哪种语言)。

我自己也遇到过这个问题 - 基础(英语)、德语和俄语

目标设置参考:

Localization native development region = en

但在 Appstore 上,它以这种形式出现:

Languages: German, Russian

没有参考英文

我考虑将基本本地化复制为英语(不是高优先级,因为用户从屏幕截图中看到 App 无论如何都以英语工作)

编辑: iOS8 中似乎有不同的行为 - 应用程序设置(Settings.bundle)似乎忽略基本翻译,如果任何翻译符合您的“首选语言顺序”。

换言之,App 已本地化:Base、German、Russian。iPhone 配置为使用英语,首选语言顺序为英语、德语、俄语。

应用程序设置进来......德语!

再一次:这仅适用于设置,而不适用于应用程序本身!

于 2014-09-19T12:25:27.667 回答
15

虽然我不完全确定我是否正确理解,但我会尝试回答您的问题 TTBOMK。

假设您NSLocalizedString(key, comment)在代码中使用 from 。您可以清楚地看到,第一个参数实际上是一个字符串的键,而不是已翻译(或待翻译)的字符串本身。因此,当您“编写代码”时,您实际上不会用基本语言或任何其他语言编写字符串。您应该将其视为在代码中添加字符串占位符。

稍后,您应该为Localizable.strings要支持的每种语言创建一个文件,格式为key = value;. 要使您的 UI 至少以一种人类可读的语言显示,您至少应该有一个Localizable.strings文件,其中每个占位符键都具有正确的字符串值。

例如:如果您的代码中有,那么拥有一个包含元素NSLocalizedString(@“ConfirmationButtonTitle", @“Yada yada”)的文件是完全有意义的。如果您不创建文件或没有文件包含键,则按钮标题回退到,因为它是占位符键的名称。Localizable.strings”ConfirmationButtonTitle” = “Tap here to confirm”;Localizable.stringsLocalizable.stringsConfirmationButtonTitleConfirmationButtonTitle

话虽如此,出于各种原因,大多数人更喜欢将他们的键完全命名为字符串值。这可以说是一种方便且非常普遍的做法,但可能会导致人们的思想冲突。

因此,如果您要创建前面的NSLocalizedString示例NSLocalizedString(@“Tap here to confirm", @“Yada yada”),那么您的默认/基本Localizable.strings文件可能会包含一个类似“Tap here to confirm” = “Tap here to confirm”;.

这里发生的不是您在重复自己,而是您将密钥完全命名为基本语言的字符串值,仅此而已。

编辑

一直有一个基本语言概念,但据我了解,Xcode 5 更加强调这一点:这很好。如果您的基本语言是英语,那么您就不必再有一个Localizable.strings英语文件。

于 2013-11-12T13:53:49.580 回答
5

根据文档(向下滚动到为您的代码中面向用户的文本创建字符串文件),您不应该添加Localizable.strings到基本本地化。即使您的开发语言是英语,也要为英语创建一个单独的文件夹Localizable.strings。为您要添加的每种其他语言创建其他语言。

进一步阅读

于 2017-11-29T07:45:09.100 回答