【问题标题】:Force a specific localization to be used for a target强制将特定本地化用于目标
【发布时间】:2012-05-07 17:28:13
【问题描述】:

我正在开发一个应用程序,它可以播放一个大的音频文件 (30MB)。

我想将应用提交到多个国家/地区的 App Store。每个目标国家/地区的音频文件都不同,应用程序的其余部分保持不变(尽管已本地化)。

我为每个国家/地区创建了一个目标,一个 bash 脚本负责将正确的音频文件复制到基于目标的编译应用程序中,效果很好。

我还本地化了资源(图像和 Localized.strings)以使其易于维护。

假设我为瑞典构建了目标,我只想包含瑞典语本地化以强制应用始终显示瑞典语(与音频文件匹配)。

这是实际的问题:*如何从目标中排除所有本地化或强制目标仅使用特定的本地化,而不管手机设置如何?

【问题讨论】:

标签: objective-c ios xcode xcode4 localization


【解决方案1】:

根据您对 Lvsti 的回答(您说您这样做的原因是您的某些语言的翻译尚未完成,但您想发布您拥有的内容),也许可以作为替代删除所有相关的本地化文件或弄乱您的构建设置,您可以尝试编辑 XCode 项目中的语言列表?它不是每个目标而是每个项目,但它可能允许您在构建中排除您不想要的语言。请参阅项目设置中的本地化(有一个小 - 图标可用于删除语言)。

【讨论】:

  • 这似乎是暂时忽略未完成的本地化的好方法 - 最佳情况下,此设置是针对每个目标的,但是哦,好吧,也许在将来!谢谢!
【解决方案2】:

我认为您可以通过以下方式解决:

目标设置 => 信息 => 添加一个名为 Localizations 的新行 => 使用您想要的语言向该数组添加一个新元素(我认为默认是英语)

我没有测试过,如果有效,请告诉我。

【讨论】:

  • 我试过了,不幸的是应用程序仍然显示英文(我的手机语言是英文):
【解决方案3】:

如果我理解您的问题,您实际上并不需要本地化应用程序,或者至少不需要完全本地化的应用程序。如果是这种情况,我将使用运行脚本构建阶段,该阶段负责根据当前目标复制适当的非本地化但特定于目标的资源。例如。假设您的项目根目录中有一个 Audio 文件夹,其中包含不同语言的所有版本,您的脚本可能如下所示:

cp "$PROJECT_DIR/Audio/$TARGETNAME.mp3" "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/audio.mp3"

这将是例如将“Swedish.mp3”复制/重命名为“audio.mp3”,可直接从包中访问。

【讨论】:

  • 这就是我现在用于音频文件的方法。我只是想知道,如果不能使用 XCode 的内置本地化工具,因为它使管理文件变得更简单(编辑本地化的 xib 文件等)。看来我所需要的只是一种硬编码用于特定目标的语言环境的方法。如果我找不到更好的方法,您的建议就是我将采取的路线:-) 交叉手指 PS。你如何在这里插入换行符?两个空格似乎不适合我?
  • 据我了解,本地化是为了在同一目标中提供各种版本的资源,因此强制 Xcode 丢弃它否则检测到的本地化并没有多大意义......
  • 是的,但我的意思是,您至少应该能够告诉它不要使用特定的本地化,即使存在具有区域设置名称的文件夹也是如此。我的应用中有 2 个翻译尚未完成,另外 3 个已准备好进入应用商店。但是因为两个未完成的翻译可以被自动检测和使用,所以在我从翻译器那里取回翻译之前我不能提交我的应用程序(或者删除我迄今为止在 nib 文件上所做的工作,一旦我得到了重新开始翻译)。希望我错过了什么!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多