NSLocalizedString、bundle 和 IOS5 的问题

发布于 2025-01-07 17:44:36 字数 462 浏览 0 评论 0原文

问题是,

首先我们使用 .lproj 文件夹(如 fr.lproj、en.lproj、es.lproj 等)实现本地化。

后来根据其中一位审阅者(内部审阅者不是来自苹果的人)的要求,我们已切换到 iso-639- 2 基于语言代码。

因此,文件夹更改为 fra.lproj、eng.lproj、spa.lproj 等,并添加项目引用以使用新文件。删除旧文件。

重命名文件夹后,所做的更改以及在 localized.strings 文件中添加的新字符串在应用程序中不会受到影响。

经过一番研究,我们发现每种语言的文件夹都包含在应用程序中 ios5 使用 fr.lproj 文件夹内容而不是 fra.lproj 文件夹内容。我们在 IOS 4 中运行了相同的应用程序,该应用程序运行起来就像一个魅力,更新了本地化。

请帮助我找到一种在 ios 5 中优先使用 iso-639-2 语言代码的方法。

谢谢

Problem is

First we implemented localizations with .lproj folders like fr.lproj, en.lproj ,es.lproj etc.

Later as per the request from one of the reviewer (internal reviewer not someone from apple) we have switched to iso-639-2 based language codes.

So, the folders are changed to fra.lproj,eng.lproj,spa.lproj etc and the project references are added to use new files. removed for old files.

After renaming the folders the changes done and new strings added in localizable.strings file are not affected in the app.

After a bit research we found that both the folders for each language are included in the application
and ios5 is using the fr.lproj folder contents and not fra.lproj folder contents. We ran the same app in the IOS 4 and the app works like a charm with updated localizations.

Please help me with a method to prioritize usage of iso-639-2 language codes in ios 5.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦幻的心爱 2025-01-14 17:44:36

来自 Apple 文档

在 Mac OS X 捆绑包的 Resources 目录(或 iOS 应用程序捆绑包的顶级目录)中,您可以创建一个或多个特定于语言的项目子目录来存储特定于语言和区域的资源。每个目录的名称基于所需本地化的语言和区域,后跟 .lproj 扩展名。要指定语言和区域,请使用以下格式:

<前><代码> language_region.lproj

目录名称的语言部分是两个字母的代码,符合 ISO 639 约定。区域部分也是一个两个字母的代码,但它符合指定特定区域的 ISO 3166 约定

(重点是我的)。我不确定为什么它可能在您的其他项目中起作用,但根据文档,本地化目录的名称需要遵循 ISO 639-1(两个字母代码)。

From Apple's documentation:

Within the Resources directory of a Mac OS X bundle (or the top-level directory of an iOS application bundle), you can create one or more language-specific project subdirectories to store language- and region-specific resources. The name of each directory is based on the language and region of the desired localization followed by the .lproj extension. To specify the language and region, you use the following format:

 language_region.lproj

The language portion of the directory name is a two-letter code that conforms to the ISO 639 conventions. The region portion is also a two-letter code but it conforms to the ISO 3166 conventions for designating specific regions

(emphasis mine). I'm not sure, why it might have worked in other projects of yours, but according to the documentation, the name of the localization directories needs to follow ISO 639-1 (two-letter codes).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文