【國際化】app中的國際化

###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

打開storyboard實時預覽

添加實時預覽

不一樣機型選擇

選擇不一樣機型

使用快捷鍵 option+shift + (storyboard的左邊小按鈕)

###高級使用twine

https://github.com/knight2010/twine

gem install twine

###crowdin

https://my.oschina.net/kshopping/blog/734050

crowdin 雲端合做工具
相關文章
相關標籤/搜索