首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone -自定义语言设置

iPhone -自定义语言设置
EN

Stack Overflow用户
提问于 2012-02-02 00:49:51
回答 2查看 494关注 0票数 0

在我的应用程序中,用户可以选择一种语言,所以我希望我的应用程序相应地更改语言,但它不起作用。我在网上找到了这段代码:

代码语言:javascript
复制
// Force languages
NSString * lang=[[NSUserDefaults standardUserDefaults] stringForKey:@"idioma"];
NSLog(@"language %@",[[NSUserDefaults standardUserDefaults] stringForKey:@"AppleLanguages"]);
if ([lang isEqualToString:@"castella"]) {

    [[NSUserDefaults standardUserDefaults]
     setObject:[NSArray arrayWithObject:@"es"]
     forKey:@"AppleLanguages"];
} //else just default user lang

此代码不起作用。我想我只是在设置另一个偏好设置。我真的很想修改语言环境。我有一些本地化的字符串和一些NIB文件,所以我想将西班牙语添加到第一个位置的首选区域设置列表中,但我真的不知道如何做到这一点。

在应用程序的设置中,我可以选择语言。这不仅仅是出于我的固执;这只是因为地区性语言在这里很重要,有时iPhone不提供对它们的支持,但我支持翻译。

根据我的回答,我决定放弃修改语言环境,但是否可以显示一个不同的NIB文件(来自en.proj或es.proj)?我已经有了第一部分:

代码语言:javascript
复制
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        NSString * lang=[[NSUserDefaults standardUserDefaults] stringForKey:@"idioma"];

        if ([lang isEqualToString:@"castella"]) {
            //Load NIB filer from "es.proj".
        }
    }
    return self;
}

这有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-02 01:05:46

区域设置应该由用户在iPhone设置中设置,我认为如果你在你的应用程序中强制使用这个参数,你的应用程序可能会被拒绝。

相反,可以在NIB文件中添加localizations和/或在项目中添加Localizable.strings。你的应用会自动为用户显示最好的语言。

如果你仍然想更改应用程序中的语言,那么不要尝试更改区域设置,只需更改应用程序中屏幕上显示的内容即可。

您可以将所需语言保存在[NSUserDefaults standardUserDefaults]中,并根据此参数显示您的标签:

代码语言:javascript
复制
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"language"] isEqualToString:@"English"]) {
    aLabel.text = @"This is English.";
} else if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"language"] isEqualToString:@"Italian"]) {
    aLabel.text = @"Questo e' italiano.";
} else if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"language"] isEqualToString:@"Japanese"]) {
    aLabel.text = @"これは日本語です。";
}
票数 0
EN

Stack Overflow用户

发布于 2012-02-02 00:52:02

让用户第二次选择语言(第一次是在设置iPhone时)并不是一种好的做法。你最好采用当前的语言环境,并从中获取语言设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9099751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档