2013-12-21 53 views
0

感谢您阅读以下(也觉得免费的沮丧被受理)的Xcode 5的本地化问题

//咆哮

首先很明显这是一个问题,有这么多的问题本地化应用程序。 (是的,我已经开始撇开我可以打破让我觉得better..haha对象)

//业务

我到处找。我已经阅读了许多教程(从raywenderlich开始,并尝试了许多不同的教程),当然,我一直在寻找几天。我已经采取了

步骤:

  • 选择项目,并在本地化添加其他语言(我 读了一些人选择“使用基地国际化 - 我不 用故事板(很多碎粒),所以我不认为这是期权 我应该选择)

  • 添加localizable.strings文件,并选择英语 我的支持文件第二语言,我得到两个字符串的文件。我期待在取景器项目 ,我看到了两种不同的语言文件夹(在这些 文件夹是infoplist和本地化的字符串文件。

  • 我已经更新了翻译的第二语言.strings文件..

事情后得到什么,我应该做的低迷。

  • 我选择的按钮,将在两种不同的语言(我知道 我应该更改代码中的按钮标题)并单击本地化按钮并选择第二种语言。这使我另一套 .lproj文件夹,所以我有一个在主目录 (Project/en.lproj)和我的资源 目录中的第二个en.lproj((Project/res/en.lproj。那是好的?还是应该我所有的资产 (.strings文件,笔尖,图像)在一个文件夹?

  • 我选择了笔尖和选择的本地化>添加第二语言 清洗,建,recleaned,重新启动Xcode中,已删除模拟器文件, 删除得到的数据,建,重新启动,清理..打破了几件事情, 再次做到这一切。

//请求帮助

我已经看了苹果文档和他们使它看起来很容易做到这一点,也许我只是失去了一些东西真的很简单。任何关于我应该做什么/读/看/吼的建议都会很感激。

感谢,

詹姆斯

回答

1

//我觉得好奇怪回答我的问题,但我觉得其他人可能会发现它有用。


我不好意思地说,但我的问题的第一部分是非常简单的

我想通过Warren Evans观看“Localization of your app”,发现自己做错了什么。在周围的视频23分钟,他使用一些代码来获取本地和语言

NSLocale *locale = [NSLocale currentLocale]; 
NSString *language = [locale displayNameForKey:NSLocaleIdentifier value:{locale localeIdentifier]]; 

我的问题是,在本地化项目的信息,我选择加入:法国(法国)(FR-FR)创建的。我的项目中的fr-FR.lproj中的lproj文件夹。因此,当我在法语设备上进行测试时,它不会抓取图像或字符串。

有了上面的代码,我知道它会说法语与当地的美国..冰冰冰!点已连接。

最初,我甚至没有注意到本地化中有一个通用的法语“法语(fr)”选项。我更新了我的项目文件夹以使用法语(fr)。清洁后,字符串和图像正确显示,并重置模拟器。 (每朗是的,你可以有多个.LPROJ文件,我有资源的单独一个)


我的问题的第二部分是与项目的笔尖文件不会得到更新。他们在网上的两个苹果文档中描述的解决方案似乎总是缺少一个步骤,我不清楚nib是如何更新的。

看起来,用故事板做这件事的方法是保持动态的最佳方式,但我的项目有15个笔尖。我发现描述的链接是http://www.ibabbleon.com/iphone_app_localization.html

以上帮助我了解了更多关于使用ibtool已阅读苹果指令。从手持终端的命令是:

find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.strings '{}' 

我用的是改变终端的目录(cd)到我的项目目录和文件lproj相应导航后。 (试图使这个尽可能详细,我可以帮助别人,如果他们有同样的问题)

要做到产生一个笔尖字符串文件在我使用苹果的方向时间:

ibtool --generate-strings-file NIBNAME.strings en.lproj/NIBNAME.xib 

创建我的NIBNAME.strings文件进行翻译。

一旦我有了。字符串文件翻译我跟着应用程序文档和创建从原来的英文模板笔尖,但与上述翻译的字符串的文件:

ibtool --strings-file fr.lproj/NIBNAME.strings --write fr.lproj/NIBNAME.xib en.lproj/NIBNAME.xib 

接下来,我选择了笔尖,当我选择了笔尖文件检查器选择了“本地化”,那么检查“本地化语言”,看到我已经完成了上述步骤,这已经创建了一个新的笔尖。 Xcode问我是否想使用它或替换我选择使用它,我的翻译更改是现场直播。 我不得不通过笔尖以确保按钮的格式和居中看起来正确,但现在一切正常。


我觉得我应该可以做一个主.strings文件对所有碎粒如与我们genstrings做基础上,回答这个问题的SO:How can I extract all localizable strings from all XIB files into one file?

但我会需要进行试验与此同时,我认为这将是另一天的战斗。