本地化ios7无需更改设备的语言

时间:2014-06-18 11:57:08

标签: ios localization multilingual

我想知道如何使我的应用程序 - 在XCode中开发 - 多语言。我阅读了很多关于本地化的教程,但我不希望用户通过Settings-> General-> International-> Language来更改应用程序的语言。相反,我希望我的应用程序出现在设置上,并从那里有一个选项来更改语言(只有应用程序的语言)。我找到了一个应用程序,但我找不到一个好的教程。

任何教程或者hinds,比如这种本地化方式的名称,对于继续我的应用程序非常有用。

更新

我发现这可以通过自定义设置包完成。我想使用故事板进行本地化。

我创建了设置包但我不知道如何继续。 enter image description here

更新

我在AppDelegate.m文件中使用了此代码,它可以在我的移动设备上运行。它会根据设置包更改我的移动应用程序的界面。但是1.我的移动应用程序在模拟器上崩溃,2。当你打开应用程序时使用此代码,然后按设备的中间按钮,转到设置并更改语言,然后返回应用程序,然后重新启动应用程序!我该如何解决这个问题?

   - (void)applicationDidBecomeActive:(UIApplication *)application

   {

[[NSUserDefaults standardUserDefaults] synchronize];

NSArray* appleLanguages = [[NSUserDefaults standardUserDefaults] arrayForKey:@"AppleLanguages"];

NSString* currentLanguage = [[NSUserDefaults standardUserDefaults] stringForKey:@"language"];

if ([appleLanguages[0] rangeOfString:currentLanguage].location != 0)

{

    [[NSUserDefaults standardUserDefaults] setObject:@[currentLanguage] forKey:@"AppleLanguages"];

    [[NSUserDefaults standardUserDefaults] synchronize];

    exit(0);

}

}

1 个答案:

答案 0 :(得分:0)

我为我的客户遇到了同样的问题:根据参数更改设置,无需重新启动应用程序,也无需更改设备名称。 然后我决定用一些约束创建我自己的本地化类:

  • 与设备语言的兼容性:您可以使用设备语言或任何自定义语言
  • Localizable.strings的使用 - >无需复制本地化文件
  • 更改参数时,可以更改整个应用的设置:更改应用语言设置时,必须对应用中的所有标签进行本地化。我在语言发生变化时发布通知,并且所有UIViewController都会依据此通知并根据所选标签配置标签。
  • 您可以使用简单的NSUserDefaults参数保存语言,以便进一步启动应用程序。

您可以在此处找到它:https://github.com/micazeve/iOS-CustomLocalisator。任何反馈都表示赞赏,如果需要,我愿意提供帮助。