我必须将应用程序开发成四(4)种语言(英语,法语,斜体语,西班牙语)。
因此,我想知道有没有办法在顶部栏中只使用一(1).xib file
来显示不同的语言数据。
示例:
我有Setting.xib(.xib文件) 其中有四个标签 查看部分和顶部栏 Nib文件我想更改标签 根据设定的语言命名 使用One&只有一个Nib文件。
所以,请给我适当的解决方案。
加载时间更短。
答案 0 :(得分:2)
首先,我不明白为什么你不能简单地在设置标签文本时使用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中设置是个好主意,这样您就可以从该类中的任何方法/函数访问它。