只是想问一下,如何通过settings.bundle对Xibs进行本地化?实际上,我需要通过 settings.bundle 使我的 Xib 阿拉伯语。我为此搜索了很多。请给我适当的建议,否则我需要重新编码我的应用程序并删除 Xibs 的所有内容并通过编码来完成,这将花费大量时间。
提前谢谢。
只是想问一下,如何通过settings.bundle对Xibs进行本地化?实际上,我需要通过 settings.bundle 使我的 Xib 阿拉伯语。我为此搜索了很多。请给我适当的建议,否则我需要重新编码我的应用程序并删除 Xibs 的所有内容并通过编码来完成,这将花费大量时间。
提前谢谢。
我按照这篇文章将应用程序本地化。
您可以通过将您的 xib 文件保存在特定语言文件夹中来本地化您的 nib 文件,例如
en.lproj/View1.xb
英文版和
ar.lproj/View.xib
阿拉伯文版有关更详细的说明,请参阅此
更新: 为此,您只需创建
然后根据您的自定义设置
NSString *xibName = [NSString stringWithFormat:@"View-%@", @"en"];
id localVC = [[LocalViewController alloc] initWithNibName:xibName bundle:nil];
通过右键单击要本地化的 xib 来点击“获取信息”......在一般屏幕中,您可以在那里看到“使文件可本地化”按钮。
@aamritrao 如果您制作两个单独的 XIB 文件,每种语言一个,您不应该给它们不同的名称,因为这只会使事情变得不必要地复杂化。只需将它们命名相同,但将它们放在不同的本地化项目文件夹中。
所以:
en.lproj/View1.XIB
和
ar.lproj/View1.XIB
然后,当您的应用需要 View1.XIB 时,它将始终使用适合用户在其设备设置中设置的语言的语言。
抱歉,如果这不是您要找的。不确定“通过设置包进行本地化”是什么意思......你能解释一下吗?
嘿,只需将以下代码粘贴到您的 main.m 文件中
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *strLang=[[NSUserDefaults standardUserDefaults] stringForKey:@"PSMultiValueSpecifier"];
NSLog(@"Hi%@",strLang);
//
if ([strLang isEqualToString:@"0"]) {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", @"ar", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
else if([strLang isEqualToString:@"1"])
{
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"ar", @"en", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;