2011-08-29 98 views
2

我需要在運行時切換UI語言,方法是打開並選擇一個彈出式菜單。我對可可的國際化做了一些閱讀,但發現它不適合我的項目,因爲它要求用戶在系統設置中進行更改。如何在應用程序的運行時切換語言?

後像「http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language」建議設置AppleLanguages還需要應用程序重新啓動。

我想知道我是否可以(a)根據當前語言創建多個NIB並調用initWithNib或(b)使用一個NIB,但創建一個字符串的列表併爲所有文本設置標題字符串我的viewWillAppear。哪種解決方案聽起來更好,或者如果有第三種方法,請讓我來。

感謝 利奧

回答

0

我能想到的是重裝所有的意見,並更新所有文本組件的文本屬性最簡單的方法(如UILabelUITextField等)。語言特定的文本進行設置可以通過你的方法返回的東西喜歡 -

-(NSString*) localizedStringForKey: (NSString*)key andLanguage: (NSString*)lang 
{ 
    if([lang isEqualToString:@"en"]) 
    { 
     if(key == @"hello") 
       return @"Hello"; 

     //and so on... 
    } 

    else if([lang isEqualToString:@"fr"]) 
    { 
     if(key == @"hello") 
       return @"Bonjour"; 

     //and so on... 
    } 

} 

HTH,

阿克沙伊

PS:在這裏,我返回硬編碼值,但你可以從您的語言特定的plists中讀取它們。

相關問題