我打算製作一個多語言的iPad應用程序,我希望用戶選擇一個首選的語言。所以我的問題是,如何在運行時更改我的應用程序語言?我不想改變iPad語言。iOS應用程序自定義本地化設置
1
A
回答
1
這已被問了幾次。對此,沒有很好的解決方案,這不是微不足道的(例如,注意iOS更改語言時會重啓)。有些人通過替換NSLocalizedString調用以及更改NIB加載來實現此目的,以便指定要使用的本地化版本。例如參見this other SO question。
3
這是不推薦由蘋果指引。
我的解決方案(用戶需要手動重新啓動應用程序,來處理語言切換「對飛」,你應該重新加載所有資源,包括XIBs)是:
// Use "nil" to fallback to system settings
void loadCustomLocalization(NSString * locCode) {
NSString * appleLanguages = @"AppleLanguages";
if (locCode) {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:locCode] forKey:appleLanguages];
} else {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:appleLanguages];
}
[[NSUserDefaults standardUserDefaults] synchronize];
}
void loadLocalization() {
const int result = [[[NSUserDefaults standardUserDefaults] stringForKey:@"language"] intValue];
NSString * language = 0;
switch (result) {
case 1: language = @"ru"; break;
case 2: language = @"en"; break;
}
loadCustomLocalization(language);
}
int main(int argc, char *argv[]) {
loadLocalization();
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
相關問題
- 1. iOS:獨立於iPad本地化應用程序語言設置
- 2. iOS本地化(在應用程序中設置)
- 3. Firebase自定義應用程序設置
- 4. 自定義應用程序設置
- 5. iOS應用程序圖標本地化
- 6. ios應用程序(迅速)本地化
- 7. iOS 9應用程序本地化
- 8. 應用程序本地化(IOS)
- 9. 本地化iOS應用程序佈局
- 10. 本地化ios應用程序
- 11. ios應用程序本地化
- 12. iOS應用程序的本地化
- 13. iOS應用本地化中的梵語(自定義)語言
- 14. 自定義UIButton iOS應用程序
- 15. 如何讓Spotlight更輕鬆地自定義iOS應用程序
- 16. iOS:在本地化時設置應用程序的主要語言
- 17. 爲應用程序設置默認iOS本地通知樣式
- 18. 從定製iOS應用程序啓動設置應用程序
- 19. 本地化iphone應用程序與應用程序定義語言
- 20. C# - 應用程序配置文件 - 自定義設置
- 21. 設計iOS應用程序和自定義按鈕
- 22. iOS應用程序視圖和導航設計自定義類
- 23. 自定義本地化BooleanConverter
- 24. C#程序設置和本地化
- 25. 安裝具有自定義配置的iOS應用程序
- 26. 爲非標準區域設置本地化應用程序
- 27. 如何調整自定義iOS相機應用程序的白平衡設置?
- 28. iOS應用程序更改語言與自定義設置屏幕
- 29. iOS應用本地化,是應用程序的大小增加?
- 30. 用gtkmm設置自定義應用程序主題
感謝您的答覆。 – Krrish