IOS程序國際化


1.1 新建一個Single View app模版項目,命名為Localization。

1.2 新建后,可以看到工作目錄結構文件如下,單擊InfoPlist.strings,查看右邊的屬性,在Localization欄添加語言。

   

1.3 添加完成后打開對應語言文件,比如English的添加

CFBundleDisplayName="China";

Chinese文件添加

CFBundleDisplayName="中國";

運行,如果此時你的模擬器是中文,你會看到你的程序名稱變成了 中國:

來到設置里把語言設置成 English。此時程序名稱變成了:China

這時,程序名稱的國際化完成了。那里面內容呢?

2、內容國際化

2.1新建Localization.strings文件

      

2.2 添加語言和1.1環節一樣。

2.3 添加語言內容

添加"Key"="value"; 然后使用時用NSLocalizedString(@"key", @""); 讀取內容.

Localization.strings English文件添加 

"key" = "english value";

Localization.strings English文件添加 

"key" = "中文內容";

在ViewController.m 中添加UILabel實驗一下

- (void)viewDidLoad
{
    [super viewDidLoad];
    UILabel *label = [[UILabel alloc] init];
    label.frame = CGRectMake(20, 40, 250, 60);
    label.text = NSLocalizedString(@"key", @"");
    [self.view addSubview:label];
}

運行

設置項里切換英文

3、如何在運行的時候判斷現在運行環境是哪個語言?

3.1 獲得所支持的語言

NSUserDefaults *defaults = [ NSUserDefaults standardUserDefaults ];
    // 取得 iPhone 支持的所有語言設置
    NSArray *languages = [defaults objectForKey : @"AppleLanguages" ];
    NSLog ( @"%@" , languages);

運行,打印結果:

(

    en,

    "zh-Hant",

    "zh-Hans",

    fr,

    de,

    ja,

    nl,

    it,

    es,

    pt,

    "pt-PT",

    da,

    fi,

    nb,

    sv,

    ko,

    ru,

    pl,

    tr,

    uk,

    ar,

    hr,

    cs,

    el,

    he,

    ro,

    sk,

    th,

    id,

    "en-GB",

    ca,

    hu,

    vi

)

    "zh-Hant"   繁體中文

    "zh-Hans", 簡體中文

這段代碼獲取當前系統支持的語言。  

3.2 獲取當前使用語言

    NSArray *languages = [NSLocale preferredLanguages];
    NSString *currentLanguage = [languages objectAtIndex:0];
    NSLog ( @"%@" , currentLanguage);

打印結果:

en

用獲取到的當前語言,和支持的語言做字符串對比,就可以知道是那種語言了。

    if([currentLanguage isEqualToString:@"en"])
    {
        NSLog(@"current Language:en");
    } 

  

 本文來自網絡:http://www.cnblogs.com/stoic/archive/2012/07/08/2581298.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM