Van*_*nya 5 iphone localization objective-c
如何使UIBarbuttonItem可本地化?
我的实施:
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(cancel)];
最初我认为它是自动的,因为看起来容易这样,但看起来不是.
编辑1:官方Apple dox说取消,完成,编辑,保存按钮是本地化的,但不知道如何制作它.
凹凸,但我认为Vanya的问题可能是CFBundleDevelopmentRegionInfo.plist中的"本地化本地开发区域"/ 条目.如果将此设置为英语并且没有明确提供本地化,如Costique所述,则所有系统字符串都将是非本地化的.但是,将它设置为sk和 - violà.
好吧,我想我知道发生了什么事。
UIKit根据的值决定使用哪种语言显示字符串[[NSBundle mainBundle] preferredLocalizations]。其背后的想法是,尽可能使用翻译后的资源,否则转回英语。例如,如果您不提供芬兰语的应用翻译,并且在设置->常规->国际语言->语言中选择了芬兰语,则您的应用将为英语。可能会稍微复杂一些(UIKit可能会按照Settings.app中显示的顺序浏览所有语言列表,试图找到您的应用翻译的第一种语言),但这很重要。
上面的内容可能太明显而不能忽略一个关键的细微差别。由上述算法确定的语言用于该应用的整个UI。例如,如果应用程序捆绑包不包含sk.lproj,则斯洛伐克语中将不会显示任何内容。实际上,这确实是有道理的,因为否则UI的某些部分将使用斯洛伐克语,而其他部分将使用英语。
打开编译的应用程序的捆绑包,查看其中有哪些* .lproj文件夹。根据用户喜好排序的相同集合将由返回[[NSBundle mainBundle] preferredLocalizations]。所有可本地化的字符串,包括系统栏按钮项,都将以其中一种语言显示。例如,如果您不支持俄语,则即使在Settings.app中选择了俄语,整个UI也会以另一种语言显示。
如果您的应用确实如此,则有两件事情正确,一件错误的事情要做:
如果您看到其他行为,则项目/构建/内置应用程序可能存在问题。例如,我注意到当您使文件本地化时,其未本地化的副本不会从以前构建的应用程序捆绑包中删除。
不确定我是否正确理解您的问题,但标准(系统)栏按钮项目已本地化,因此会自动以用户选择的语言显示。有一些值得注意的例外,例如 UISwitch 显示 0/1 而不是 ON/OFF。您使用哪种语言时遇到问题?
也就是说,您始终可以使用自定义栏按钮项目来代替系统按钮项目,并自己提供必要的翻译。在大多数情况下这只是矫枉过正。
| 归档时间: |
|
| 查看次数: |
5502 次 |
| 最近记录: |