2012-03-02 24 views
0

我有一部美國手機,並且正在本地化我的應用。我已將首選項>常規>國際設置爲法語。Xcode iOS本地化 - 試圖瞭解如何理解/使用位置代碼

我的應用程序以法語出現。很好..我用code here看到的語言代碼。

的代碼是:

NSString *locale = [[NSLocale currentLocale] localeIdentifier]; 
//NSString *language = [[NSLocale currentLocale] objectForKey: NSLocaleLanguageCode]; 
//NSString *countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]; 

但是,控制檯回來與EN-US。我想我正在等待fr-US。有人可以解釋爲什麼它的「恩」 ..

謝謝..

回答

1

如果使用[[NSLocale preferredLanguages] objectAtIndex:0],你會得到你當前所選擇的語言

+0

啊,這很有趣......我得到了:2012-03-02語言環境是fr 語言是en countryCode是US – 2012-03-03 02:09:43

1

語言是區域格式不同。

+0

謝謝,我正在學習。 – 2012-03-03 02:10:12

1

NSLocale是不相關的語言。 NSLocale提供了一種方法來定製您的程序行爲,以適應特定區域的習慣。例如,這包括格式化數字,日期和貨幣。

語言環境包含關於語言,文化和技術約定和標準的信息。由語言環境封裝的信息 的示例包括用於數字中的十進制分隔符 的符號以及格式化日期的方式。

區域設置通常用於提供,格式化和解釋關於並根據用戶的習俗和偏好的信息。 它們經常與格式化程序一起使用(請參閱數據 格式指南)。

[NSLocale currentLocale]取決於設備所在的位置,與您在手機設置中選擇的語言無關。

正如Audun所說的獲取設備當前語言,您可以從[[NSLocale preferredLanguages] objectAtIndex:0]中獲得。您可以查看該陣列的其他成員,並且它會向您顯示最先使用的語言查詢(後面跟着該設備支持的所有其他語言,按照我所知,順序無特定順序)。

+0

順便說一句,我不認爲有一個地區'fr_US'。嘗試[NSLocale availableLocaleIdentifiers]以獲取所有區域設置標識符的數組。他們中有不少人。 – Jim 2012-03-02 23:11:04

+0

也許這是我的大腦,但我發現蘋果文檔很難理解。以前的Unix對我來說更容易......我用例子和清晰的語言做得更好。所以,我非常感謝你的解釋。 – 2012-03-03 02:12:37