2011-12-02 99 views

回答

3

有一個「黑客」爲它更改語言。您可以使用本地化文本加載您自己的NSBundle,然後使用該NSBundle。請注意,如果缺少本地化語言文件,該應用程序將無法運行,因此請確保您設置了正確的語言。

以上AppDelegate中實現,添加自定義一個NSBundle聲明:

static NSBundle *bundle = nil; 

,然後加載你的願望成捆的語言:

[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"he", nil] forKey:@"AppleLanguages"]; 

NSLocale* locale = TTCurrentLocale(); 
NSString *path = [[NSBundle mainBundle] pathForResource:[locale localeIdentifier] ofType:@"lproj" ]; 
bundle = [[NSBundle bundleWithPath:path] retain]; 

你會在你的AppDelegate添加自定義功能獲取本地化文本(而不是NSLocalizedString)

/////////////////////////////////////////////////////////////////////////////////////////////////// 
+ (NSString*)get:(NSString*)key { 
    return [bundle localizedStringForKey:key value:nil table:nil]; 
} 

爲了使事情更容易,您可以在pch文件中添加一個靜態函數:

#import "AppDelegate.h" 

#define MyLocalizedString(key, alt) [AppDelegate get:key] 
+0

我該在哪裏放置答案的第二個代碼塊?在我的應用程序代表?我會在「changeLanguageToSpanish」按鈕中放入什麼? – KKendall

+0

仍然是相關的答案? – Dejell