为什么我的文件没有移至“en.lproj”而是进入一个新的“English.lproj”在“使文件可本地化”之后在 Xcode 中?

发布于 2024-11-29 13:16:19 字数 461 浏览 1 评论 0 原文

这有点令人困惑:

首先我使用了 genstrings,它在 en.lproj 文件夹中创建了一个 Localized.strings 文件(也存在于类似的文件系统中)。

然后我有一个想要本地化的 JSON 文件,因此我打开该文件的信息窗格并选择“使文件可本地化”。然后 Xcode 在文件系统上创建了一个 English.lproj 文件夹以及一个名为这样的组。然后它把我的文件移到那里。

所以现在我最终有了 en.lprojEnglish.lproj 基本上是同一件事:英语的东西。

我对这种情况并不满意。我可以/应该做些什么吗?我该如何解决这个问题?

另外,有人可以指出使用“English.lproj”与“en.lproj”之间有什么区别吗?我敢打赌有区别的。

This is a bit confusing:

First I used genstrings, which created me a Localizable.strings file inside an en.lproj folder (also exists on the file system like that).

Then I had a JSON file which I wanted to localize, so I opened the info-pane for that file and choose "Make File Localizable". Xcode then created an English.lproj folder on the file system and also a group called like this. It then moved my file into there.

So now I ended up having en.lproj and English.lproj for basically the same thing: English stuff.

I'm not happy with this situation. Can / should I do anything about it? How can I fix that?

Also, can someone point out what's the difference between using "English.lproj" vs. "en.lproj"? I bet there is a difference.

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

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

发布评论

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

评论(2

Bonjour°[大白 2024-12-06 13:16:19

这是一个 Xcode 错误。只需将 English.lproj 文件夹中的所有内容移动到 en.lproj 文件夹即可。我没有检查过 Xcode 4.1,但如果删除 English.lproj 文件夹,以前版本的 Xcode 将不允许您添加新的本地化,因此不要删除它。

您可以手动编辑项目文件以避免出现问题正如这篇文章所建议的,但我已经从来没有真正发现这样做是值得的。

一些背景知识 - 在 Max OS X 10.4 之前,使用了旧的(但更易于用户阅读)名称,例如“English”、“Spanish”等,但 Apple 国际化文档 指出这些值现已弃用:

除了 ISO 语言指示符之外,捆绑例程
还可以识别一些遗留语言指示符。这些指示符
让您通过用户可读的名称来指定语言,而不是通过
两个或三个字符的代码。指示符包括诸如
英语、法语、德语、日语、中文、西班牙语、意大利语、瑞典语、
和葡萄牙语等。 尽管这些名字仍然被认可
并由 NSBundle 类和 Core Foundation 包处理
函数,它们的使用已被弃用并在将来支持它们
不保证 Mac OS X 或 iPhone OS 的版本
。使用代码
“语言名称”和“区域名称”中描述
相反。

It's an Xcode bug. Just move everything in the English.lproj folder to en.lproj folder. I haven't checked with Xcode 4.1, but previous versions of Xcode wouldn't allow you to add new localizations if you delete the English.lproj folder, so don't delete it.

You could manually edit your project file to avoid the problem as this post suggest, but I've never really found doing so to be worth it.

Some background -- prior to Max OS X 10.4 the legacy (but more user-readable) names such as “English”, “Spanish”, etc., were used, but the Apple internationalization documentation states that these values are now deprecated:

In addition to the ISO language designators, the bundle routines
also recognize several legacy language designators. These designators
let you specify a language by a user-readable name, instead of by a
two or three character code. Designators included names such as
English, French, German, Japanese, Chinese, Spanish, Italian, Swedish,
and Portuguese among others. Although these names are still recognized
and processed by the NSBundle class and Core Foundation bundle
functions, their use is deprecated and support for them in future
versions of Mac OS X or iPhone OS is not guaranteed
. Use the codes
described in “Language Designations” and “Regional Designations”
instead.

碍人泪离人颜 2024-12-06 13:16:19

您应该使用 ISO-639-1(两个字母)或 ISO-639-2(三个字母)语言代码来实现英语以外的所有语言的本地化目的。 XCode 仍然使用“English”而不是“en”作为默认本地化。

有关信息,请参阅 http://eschatographer.net/blog/?p=224

You should use ISO-639-1 (two-letter) or ISO-639-2 (three-letter) language codes codes for localization purposes of all languages other than English. XCode still uses “English” instead of “en” as their default localization.

See http://eschatologist.net/blog/?p=224 for info.

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