###iOS中的國際化python
相關連接git
是爲每種語言定義一種資源,而後經過NSLocalizedString方法將相應語言的字符串加載進來便可。github
若是要求,在應用內進行語言切換?怎麼辦swift
每種語言都有本身的 **語言代碼.lproj**文件夾,加載資源時只須要加載相應語言文件夾下的資源就OK, 這步能夠系統爲咱們完成,也能夠手動去作。數組
###國際化哪些app
首先點擊項目->Project->Info->Localizations中添加要支持的語言。工具
注意:若是不添加國際化的語言,那麼在圖片和文本資源國際化的時候會沒有選項.net
1.文本國際化 2.圖片資源國際化 3.xib storyboard國際化 4.貨幣值國際化 5.app icon 名字國際化 5.1 而後添加一個StringFile,命名爲InfoPlist.strings。而且在文件屬性裏將所須要的多國語言勾上。 5.2 添加一條新的多語言記錄,CFBundleDisplayName,並對其作多語言處理。 5.3 在targets->info裏面添加一條新的記錄,Application has localized display name, 並將值設爲YES。 5.4 info.plist 中添加一行 Localization native development region = china 默認 en 《Info.plist中Bundle display name 對應值 ${PROJECT_NAME}》, ${}//Settings中的值 project name
###應用內語言切換命令行
應用啓動時,首先會讀取NSUserDefaults中的key爲AppleLanguages的內容,該key返回一個String數組,存儲着APP支持的語言列表, 數組的第一項爲APP當前默認的語言。 swift 能夠這樣取 (NSUserDefaults.standardUserDefaults().valueForKey(kUserLanguage) as! Array<String>)[0] oc 這樣取 NSArray *languages = [[NSUserDefaults standardUserDefaults] valueForKey:@"AppleLanguages"]; NSString *currentLanguage = languages.firstObject; NSLog(@"模擬器當前語言:%@",currentLanguage);
###自動化的工具3d
AutoGenStrings.py 能夠由python自動編譯
###genstrings使用
genstrings是一個命令行工具,能夠自動檢測國際化相關的宏,從而生成對應的Localizable.strings文件,對應的命令很簡單 find . -name *.m | xargs genstrings -o en.lproj// 1.在相對目錄下建en.lproj文件夾 2.在當前目錄的.m文件中寫入宏 NSLocalizedString(@"KEY", nil)的後一個參數實際上就是服務於genstrings的,它的意義就是備註,使用genstrings工具能夠按照第一個參數爲KEY和VALUE,第二個參數爲Comment來生成對應的鍵值對 好比NSLocalizedString(@"Hello",@"This is a comment")就能生成 / This is a comment / "Hello" = "Hello"; //只支持Localizable.strings 這個文件,其餘名字不能國際化
###國際化調試方法
點擊快捷鍵option + shift鍵 點擊相應的Storyboard
添加實時預覽
選擇不一樣機型
使用快捷鍵 option+shift + (storyboard的左邊小按鈕)
###高級使用twine
https://github.com/knight2010/twine
gem install twine
###crowdin
https://my.oschina.net/kshopping/blog/734050
crowdin 雲端合做工具