4

只是想问一下,如何通过settings.bundle对Xibs进行本地化?实际上,我需要通过 settings.bundle 使我的 Xib 阿拉伯语。我为此搜索了很多。请给我适当的建议,否则我需要重新编码我的应用程序并删除 Xibs 的所有内容并通过编码来完成,这将花费大量时间。

提前谢谢。

4

5 回答 5

0

我按照这篇文章将应用程序本地化。

于 2011-03-20T10:38:11.663 回答
0

您可以通过将您的 xib 文件保存在特定语言文件夹中来本地化您的 nib 文件,例如 en.lproj/View1.xb英文版和 ar.lproj/View.xib阿拉伯文版有关更详细的说明,请参阅此

更新: 为此,您只需创建

  • 查看-en.xib
  • 查看-ar.xib

然后根据您的自定义设置

NSString *xibName = [NSString stringWithFormat:@"View-%@", @"en"];    
id localVC = [[LocalViewController alloc] initWithNibName:xibName bundle:nil];
于 2011-03-21T06:37:28.907 回答
0

通过右键单击要本地化的 xib 来点击“获取信息”......在一般屏幕中,您可以在那里看到“使文件可本地化”按钮。

于 2011-04-04T12:21:47.657 回答
0

@aamritrao 如果您制作两个单独的 XIB 文件,每种语言一个,您不应该给它们不同的名称,因为这只会使事情变得不必要地复杂化。只需将它们命名相同,但将它们放在不同的本地化项目文件夹中。

所以:

en.lproj/View1.XIB

ar.lproj/View1.XIB

然后,当您的应用需要 View1.XIB 时,它将始终使用适合用户在其设备设置中设置的语言的语言。

抱歉,如果这不是您要找的。不确定“通过设置包进行本地化”是什么意思......你能解释一下吗?

于 2011-04-07T06:38:37.870 回答
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;
于 2011-09-05T13:34:19.367 回答