只是想问一下,如何通过settings.bundle本地化Xib?实际上,我需要通过settings.bundle制作我的Xib阿拉伯语。我为此搜索了很多。请给我正确的建议,否则我需要重新编写我的应用程序并删除Xibs的所有内容,并通过编码来完成,这需要花费很多时间。
提前完成。
答案 0 :(得分:0)
我按照此post来获取应用本地化。
答案 1 :(得分:0)
您可以通过将xib文件保存在特定语言文件夹中来本地化您的nib文件,例如
en.lproj/View1.xb
是英文版
和
ar.lproj/View.xib
是阿拉伯语版本
有关详细说明see this
<强>更新强> 为此你只需创建
然后根据您的自定义设置
NSString *xibName = [NSString stringWithFormat:@"View-%@", @"en"];
id localVC = [[LocalViewController alloc] initWithNibName:xibName bundle:nil];
答案 2 :(得分:0)
通过右键单击要本地化的xib来点击“获取信息”...在常规屏幕中,您可以看到“使文件可本地化”按钮。
答案 3 :(得分:0)
@aamritrao如果您制作两个单独的XIB文件,每种语言一个,您不应该给它们不同的名称,因为这会使不必要的事情复杂化。只需将它们命名为相同但将它们放在不同的本地化项目文件夹中
所以:
en.lproj / View1.XIB
和
ar.lproj / View1.XIB
然后,当您的应用需要View1.XIB时,它将始终使用适当的用户在其设备设置中设置的语言。
很抱歉,如果这不是您想要的。不确定“通过设置包进行本地化”是什么意思......你能解释一下吗?
答案 4 :(得分:0)
嘿,只需将以下代码粘贴到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;