3

我想讓我的localizable.strings工作正常,但我無法弄清楚如何。我的故事板也是可本地化的,並且工作原理:所有按鈕和視圖控制器都以正確的語言顯示。Xcode - Localizable.strings只能用英文工作

但我編程加載的NSLocalizedStrings只是以英文顯示。我檢查了我的Localizable.strings,它有2種語言:英語和巴西葡萄牙語(pt-BR),我沒有發現任何問題。

我該如何解決?

在此先感謝!

+0

將您的設備語言更改爲巴西葡萄牙語,然後檢查。這可能是有效的。 –

+0

檢查可本地化的字符串,並在設備上選擇正確的語言。 –

回答

8

試試這個檢查,如果你使用正確的語言和地區:

NSLog(@"Language: %@", [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]); 
NSLog(@"Region: %@", [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode]); 

如果你只需要改變該地區的設備的設置,您必須關閉並重新啓動應用程序!

編輯:我認爲你的實際問題是,你使用「巴西葡萄牙」作爲本地化,你必須使用「葡萄牙」。

UPDATE:在Xcode中,你可以很多本地化之間進行選擇,但唯一的選擇,在NSLocalizedString()生效的,等等都可以在設置>通用> International-在您的iPhone選擇語言>語言

這裏此刻的完整列表:

•阿拉伯語•加泰羅尼亞語•中國(簡體)•中國(繁體)• 克羅地亞•捷克•丹麥•荷蘭語•英語(美國)•英語(英國)• 芬蘭語•法語•德語人•希臘語•希伯來語•匈牙利•印尼• 意大利•日本•韓國•馬來西亞•挪威語•波蘭語•葡萄牙語 •葡萄牙語(葡萄牙)•羅馬尼亞•俄羅斯•斯洛伐克語•西班牙語• 瑞典語•泰語•土耳其•烏克蘭•越南

+2

謝謝!我沒有找到「葡萄牙」的選項,只能在BR(巴西)或PT(葡萄牙)地區找到。該選項出現在我刪除現有位置時。現在一切正常,位置「英語」和「葡萄牙語」。 –

+3

我可以確認,雖然'pt-BR'是在向項目添加本地化時作爲選項提供的,但它實際上並不適用於iOS,除非您使用'pt'! –

+0

我剛更新了我的答案... – xapslock

0

只是更新@xapslock答案Swift。

NSLog("Language: " + NSBundle.mainBundle().preferredLocalizations[0]); 
    NSLog("Region: " + (NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as! String));