2011-10-13 70 views
1

我想爲我的遊戲添加中文。但我使用的字體文件只適用於英文。因此我將無法使用額外的字符串文件來添加本地化。另外,我需要爲中文顯示一些特定的圖像。所以我認爲最好的選擇是if-else語句。 但是當我在網上搜索,我只發現:cocos2d不使用字符串文件的遊戲本地化

NSUserDefaults* defs = [NSUserDefaults standardUserDefaults]; 
NSArray* languages = [defs objectForKey:@"AppleLanguages"]; 
NSString* preferredLang = [languages objectAtIndex:0]; 

我不知道如何使用它。請給我一個代碼示例

也,這將是巨大的,如果我可以在我的Constant.h文件,在這裏我把我所有的常量定義一個布爾值(例如#定義num_images_per_level 12)

,如:

#define chinese_or_not some_boolean_statement 

然後我就可以直接使用

if (chinese_or_not) { 
    //display some image for chinese player only 
} 

(使用代碼),請幫助我。謝謝

回答

2

因爲#define是preprocessor directive,所以你不能使用#define來達到這個目的,這意味着它被編譯器用來決定哪些代碼應該被編譯,哪些代碼應該被忽略。這使得它不適用於任何運行時邏輯(在編譯後會改變應用程序行爲的東西)。

您可以使用單例類來管理您的本地化,甚至可以在您的應用程序委託中存儲標誌。

我會查詢當前的語言在你的應用代表applicationdidfinishlaunching並設置標誌(使用單/全局變量)和查詢,在整個申請:

if ([[LocalizationManager instance] getLanguage] == kChinese) {...} 

用於查詢,你應該使用的語言NSLocale class

+0

現在工作,謝謝。 – OMGPOP