0

我想从某个页面更改我的应用程序的本地化(例如:从页面“设置”)?

但我不确定我是否做这个应用商店拒绝我的应用!

所以问题:

1 我可以做这个功能吗?如果是的话,也许你有一些例子?

2 请给我有关允许或禁止这样做的文件的链接!

4

2 回答 2

3

请为您的问题找到以下答案

1.是的。你可以实现它。

在我们的项目中,我们为每种语言添加了可本地化的字符串。在设置屏幕中,我们显示了下拉菜单以选择应用程序的语言

例如

switch([indexPath row])//table row index selected by user
        {
            case 1:[[NSUserDefaults standardUserDefaults] setValue:@"french" forKey:@"language"];

                break;
            case 2:[[NSUserDefaults standardUserDefaults] setValue:@"german" forKey:@"language"];

                break;
            case 0:[[NSUserDefaults standardUserDefaults] setValue:@"english" forKey:@"language"];

                break;
            case 3:[[NSUserDefaults standardUserDefaults] setValue:@"Portuguese" forKey:@"language"];

                break;
        }

我们第一次默认设置了英语语言。选择语言后,我们通过传递键调用以下函数

-(NSString*) languageSelectedStringForKey:(NSString*) key
{
    //set = [[SettingsViewController alloc]initWithNibName:@"SettingsViewController" bundle:nil];
    NSString *path=@""; 
    NSString *currentLanguage=[[NSUserDefaults standardUserDefaults] valueForKey:@"language"];

    if([currentLanguage isEqualToString:@"english"])
    {
        path = [[NSBundle mainBundle] pathForResource:@"English" ofType:@"lproj"];

    }
    else if([currentLanguage isEqualToString:@"german"])
    {
        path = [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];

    }
    else if([currentLanguage isEqualToString:@"french"])
    {
        path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
    }

    else if([currentLanguage isEqualToString:@"Portuguese"])
    {
        path = [[NSBundle mainBundle] pathForResource:@"Portuguese" ofType:@"lproj"];
    }

    NSBundle* languageBundle = [NSBundle bundleWithPath:path];
    NSString* str=[languageBundle localizedStringForKey:key value:@"" table:nil];
    return str;
}

例如

aboutUsTitle.text=[self languageSelectedStringForKey:@"AboutUs"];

在可本地化的文件中,您必须设置以下键值才能获得 About us 值

"AboutUs" = "A propos de nous";//for french(fr.lproj)



"AboutUs" = "About Us";//for english(english.lproj)

2. http://kb.tethras.com/localizing-your-ios-app

希望对你有帮助

于 2013-04-02T11:29:27.633 回答
0

是的,您可以在应用程序的某些页面中实现它。按照这个教程

教程

通过此代码,您可以将所需的单词翻译成所需的语言。

NSString *translatedString = [self languageSelectedStringForKey:@"YesButton"]; // Give your key here

-(NSString*) languageSelectedStringForKey:(NSString*) key
{
    NSString *path;
    path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"]; // give your   language type in pathForResource, i.e. "en" for english, "da" for Danish
    NSBundle* languageBundle = [NSBundle bundleWithPath:path];
    NSString* str=[languageBundle localizedStringForKey:key value:@"" table:nil];
    return str;
}

希望这会有所帮助。,谢谢。快乐编码。

于 2013-04-02T11:26:39.133 回答