2015-01-13 19 views
0

假設我的應用程序支持英語和西班牙語的本地化,以它包括en.lproj/Localizable.stringses.lproj/Localizable.strings的程度。假設它在iPhone的區域設置爲德語的情況下運行。在iOS中查找實際的本地化(而不是當前區域)?

在這種情況下,我希望以英文顯示日期(不是德語),以便不生成部分爲英語(由於en.lproj/Localizable.strings)和部分德語(由於所選地區)的用戶界面,因此可能包括「混合」字符串,如"Weekend edition, Samstag, 10.1."

那麼,如何從iOS應用程序中實際使用本地化(例如英語在iPhone的地區設置爲德國,但該應用只支持英語和西班牙語本地化的情況下)?

+0

錯誤,西班牙人誰不會說英語,但知道一點的德國可能有本地化的首選順序爲1.西班牙語2.德語。由於您沒有西班牙語本地化選項,在這種情況下德語本地化將被默認使用,而不是英語。留給用戶決定他想看什麼。 –

+0

@ A-Live我的意圖是讓用戶決定她想看什麼。假設他已將首選訂單顯示爲1.德語,2.西班牙語。我的應用不支持德語本地化,所以西班牙語在這種情況下提供給用戶最好的報價。我的問題是關於如何在應用程序中找到西班牙語(不是德語)的選擇,以便我可以相應地適合其他格式,例如日期。 – Drux

+0

區域格式具有單獨的設置,甚至可以選擇將日期,時間和格式與所選主要設備設置明確區分開來;作爲用戶,我期望在提供這些設置時使用這些設置,即使它有時會混合使用多種語言。您始終可以選擇創建特殊的本地化價值並檢查結果,我可以預見的主要問題是它不會進行微調,並且需要太多的努力來支持。 –

回答

0

我發現,下面就可以做的工作(基於鉛的this相關的問題):

NSArray *preferredLanguages = NSLocale.preferredLanguages; 

NSString *actualLanguage = nil; 
for (actualLanguage in preferredLanguages) 
    if ([NSBundle.mainBundle pathForResource:actualLanguage ofType:@".lproj"] != nil) 
     break; 

if (actualLanguage == nil) 
    actualLanguage = @"en"; // default 
相關問題