关于 iPhone 本地化

Posted

技术标签:

【中文标题】关于 iPhone 本地化【英文标题】:About iPhone Localizations 【发布时间】:2010-12-22 09:09:23 【问题描述】:

我正在开发一个多语言应用程序 (IT-DE-EN-FR-ES)。我已经阅读了如何做到这一点,但我被困住了。我做了什么:

1) 使我所有的 nib 文件可本地化; 2)在列表中添加了其他语言; 3) 翻译各种笔尖。

问题是,当我测试应用程序时,有时它会加载 EN 语言,有时会加载 IT。我试图重置 iPhone 模拟器,清理所有目标和其他东西,但无事可做。我是不是忘记了什么?

【问题讨论】:

本地化文件应该在文件系统的正确文件夹中,例如所有 EN xib 都在 en.lproj 下,DE xib 在 de.lproj 下,依此类推。您能否进一步解释一下“有时它会加载 EN 语言”,您的意思是有些笔尖加载 EN 有些不加载? 如果我将模拟器语言设置为英语,有时它会加载正确的语言,有时不会。 【参考方案1】:

我假设你已经在你的帖子中把它做空了,但是在你的项目中

ZH

应该是

English.lproj/

可以在 it.lproj/ 中对非英语语言使用两个字母的国家/地区代码

【讨论】:

我为每种语言都有一个目录,其中包含 xib。只是为了理解:假设我第一次下载并启动我的 iPhone 应用程序设置为意大利语(ig)。我的应用程序应该显示意大利语 xib,对吗?现在,出于某种原因,我想要我的手机是西班牙语,然后我改变了语言。现在应该怎么办?该应用程序是否会切换到西班牙语 xib? 当我更改我的应用程序的语言时,我会转到设置,我的应用程序将进入后台。它将需要结束后台,即终止并重新启动,然后将显示在设置应用程序中选择的语言。如果我简单地将我的应用程序从后台检索到前台,它将保持先前选择的语言。对我来说,这是“正常的”,因为我的大多数用户只会更改一次手机的语言(如果有的话)。他们在使用应用程序期间往往不会更改语言 我部分解决了这个问题。实际上我能够加载正确的 Nib 文件,但不能加载本地化的字符串。使用 NSLocalizedString() 会返回我用来检索值的键。我正在使用英语、意大利语、德语......目录名称生成本地化,这显然会导致 nib 出现问题。 对于我的项目,我创建了一个可本地化的字符串文件,并在每次用户更改语言时设置苹果语言。我没有本地化 nib 文件,但我使用语言文件动态本地化了它们。

以上是关于关于 iPhone 本地化的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 应用程序的本地化 - 您的方法是啥?

HTTPRequest 并将文件本地保存到 iPad/iPhone

Swift:写入 JSON 并在本地保存到 iPhone 文件

地理本地 google Maps API 业务结果foursquare 喜欢 iphone

具有本地化功能的通用应用程序 - 启动画面

iphone, 本地化, info.plist