2013-04-18 35 views
0

我正在編寫一個應用程序,該應用程序應該支持不在設備上可用(40?)語言列表中的語言,但區域格式爲。我想本地化以及「昨天...」的日子名稱。問題在於,使用NSLocale取得日期(星期一,...),因此可以在任何設備上工作,但像「昨天」這樣的詞必須本地化爲40種左右的語言。即使XCode允許我爲想要的區域進行本地化,該設備也使用標準語言,在我的情況下是丹麥語。爲非標準區域設置本地化應用程序

結果(就像在通話應用程序中)「昨天」以英語顯示(因爲我無法對特定區域進行本地化,比如kamba-Kenya),但日期名稱翻譯得很好。有沒有解決方法,除了硬編碼?

回答

2

我懷疑你必須對iOS支持的語言環境中的任何這些數據進行硬編碼。需要額外的努力才能避免對任何語言環境進行硬編碼。

的iOS巨資從CLDR利用語言環境敏感數據,並支持您的語言環境,你沒有,因爲翻譯這些相對日期名本地化這些字符串(這是在CLDR術語涵蓋的詞語,如類別「今天「,」昨天「和」明天「)是planned是區域設置數據的一部分。一個example顯示此數據爲德國相比,英語:

<fields> 
    ... 
    <field type='day'> 
    <displayName>Day</displayName> 
    <relative type='-1'>Yesterday</relative> 
    <relative type='0'>Today</relative> 
    <relative type='1'>Tomorrow</relative> 
    </field> 
    ... 
    </fields> 
    <fields> 
    ... 
    <field type='day'> 
    <displayName>Tag</displayName> 
    <relative type='-2'>Vorgestern</relative> 
    <relative type='-1'>Gestern</relative> 
    <relative type='0'>Heute</relative> 
    <relative type='1'>Morgen</relative> 
    <relative type='2'>Übermorgen</relative> 
    </field> 
    ... 
    </fields> 

而且,我發現NSDateFormatter有兩個屬性稱爲setDoesRelativeDateFormattingdoesRelativeDateFormatting其中最有可能給你你需要什麼,那些支持的語言環境。我不是iOS開發人員,所以我不能肯定地說。

儘管data for ka-KE在CLDR中可用,但由於此語言環境尚未得到iOS支持,您必須經過努力才能使其工作;例如爲iOS構建ICU,詳情請參閱this answer或使用靜態構建版here

+1

嗨,謝謝,我應該將靜態構建添加到ICU常見問題。 –

相關問題