【问题标题】:Multi language lable changes in the .xib file..xib 文件中的多语言标签更改。
【发布时间】:2011-08-23 21:34:36
【问题描述】:
我必须将应用程序开发成四 (4) 种语言(英语、法语、斜体、西班牙语)。
因此,我想知道是否有任何方法可以在顶部栏中仅使用一个 (1) .xib file 来显示不同的语言数据。
示例:
我有 Setting.xib(.xib 文件)在
其中有四个标签
查看部分并在其顶部栏中
Nib 文件我要更改标签
根据设置的语言命名
使用一个且仅一个 Nib 文件。
所以,请给我适当的解决方案。
这将花费更少的时间来加载。
【问题讨论】:
标签:
ios
iphone
localization
xib
nslocalizedstring
【解决方案1】:
首先,我不明白为什么你不能在设置标签文本时简单地使用NSLocalizedString,它完全按照你想要的方式,根据设备的语言加载适当版本的文本。
无论如何,我想你可以找到一些有用的东西here。
我实际上做了类似的事情,有六种语言,只有一个 Nib,但在我的情况下,我可以在应用程序内更改语言,所以我需要能够强制告诉它加载我的本地化版本来自特定捆绑包的字符串。
如果您的问题更像我的问题并且一个简单的 NSLocalizedString 还不够,那么这里是应该可以帮助您的确切代码:
NSString* path= [[NSBundle mainBundle] pathForResource:[[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0] ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
someLabel.text = [languageBundle localizedStringForKey:@"textKey" value:@"" table:nil];
由于您可能拥有多个标签,因此最好将路径存储为类属性并设置在 viewDidLoad 中,这样您就可以从该类中的任何方法/函数访问它。