還必須使用pip命令在計算機上安裝Python 2.7或最好的Python 3。
克隆存儲庫並運行pip install -r requirements.txt 。
gslocalizationservice account key JSON文件Google Drive API和Google Sheets APICredentials和從Create credentials菜單中,選擇Service account keyApp Engine Admin角色創建一個新帳戶)Key type選項中選擇JSON 。CreateJSON文件將開始下載。保存此文件並以後使用它進行身份驗證。 python ios-gslocalization.py -x {PATH_TO_XCODEPROJ} -o {XLIFF_OUTPUT_DIR} -a {JSON_AUTH_FILE_PATH} -e {SHARE_EMAIL_ADDRESS} -l {LOCALIZATION_LANGUAGES} -d {DEV_LANGUAGE}
PATH_TO_XCODEPROJ到您的.xcodeproj文件的路徑xcodebuild (導出和導入本地化)XLIFF_OUTPUT_DIRXLIFF_OUTPUT_DIR生成的Xliff文件的輸出目錄JSON_AUTH_FILE_PATH GOOGLE床單Service account key路徑SHARE_EMAIL_ADDRESS共享創建電子表格的電子郵件地址Service account key ,因此所有電子表格均由服務帳戶創建和擁有(ex。[email protected])LOCALIZATION_LANGUAGES一個包含用於本地化多種語言代碼的字符串DEV_LANGUAGE (可選,默認為en ) - 項目開發語言的語言代碼此腳本使用xcodebuild導出您項目的當前本地化。
它解析了獲得的Xliff文件並將其上傳到Google表。
每種語言都有一個電子表格,具有以下名稱格式: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (例如MyProject_Spanish_localizations , MyProject_Russian_localizations等)。在每個電子表格中,每個平台都有一個工作表(例如ios_strings , android_strings )。 {PROJECT_NAME}是從xcodeproj文件名中推斷出來的。
所有字符串都添加到相應的電子表格中,並帶有以下標頭:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | Example | Comment | String Key | File Path
Source: SOURCE_LANGUAGE =源語言中的文本Target: TARGET_LANGUAGE =以目標語言翻譯的文本Example =如果字符串包含佔位符( %@, %d, etc. ),則為空。這是為翻譯人員提供示例的地方。Comment = NSLocalisedString評論String Key =字符串的IDFile Path =字符串源文件的相對路徑( .strings File或.storyboard )在更新Google表中的翻譯後,再次運行相同的腳本以將新字符串導入您的Xcode項目。
python android-gslocalization.py -p {PROJECT_NAME} -r {PATH_TO_RES_FOLDER} -a {JSON_AUTH_FILE_PATH} -e {SHARE_EMAIL_ADDRESS} -l {DEVELOPMENT_LANGUAGE}
PROJECT_NAME項目名稱(用於前綴電子表格名稱)PATH_TO_RES_FOLDER通往Android res文件夾的路徑strings.xml的文件夾。 xml文件strings.xml文件,目標語言由Parrent文件夾名稱檢測到(ex。value values-es )JSON_AUTH_FILE_PATH GOOGLE床單Service account key路徑SHARE_EMAIL_ADDRESS共享創建電子表格的電子郵件地址Service account key ,因此所有電子表格均由服務帳戶創建和擁有(ex。[email protected])DEVELOPMENT_LANGUAGE開發語言的語言代碼(默認en )該腳本將所有strings.xml加載PATH_TO_RES_FOLDER中的所有字符串。
它解析了獲得的XML文件並將其上傳到Google表。
每種語言都有一個電子表格,具有以下名稱格式: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (例如MyProject_Spanish_localizations , MyProject_Russian_localizations等)。在每個電子表格中,每個平台都有一個工作表(例如ios_strings , android_strings )。
所有字符串都添加到相應的電子表格中,並帶有以下標頭:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | String ID
Source: SOURCE_LANGUAGE =源語言中的文本Target: TARGET_LANGUAGE =以目標語言翻譯的文本String ID =字符串的ID在更新Google表中的翻譯後,再次運行相同的腳本以覆蓋資源文件夾中的strings.xml文件。
# parsing arguments
argparse
# provides access to Google Sheets API
pygsheets
# XML parsing for XML/XLIFF files
lxml
# type hinting
typing
# colored output in consolde
colorama
# conversion between language code and language name
langcodes; python_version>'3'
langcodes-py2; python_version<'3'
Objective C ,請使用NSLocalizedStringWithDefaultValue(@"KEY", nil, [NSBundle mainBundle], @"DEFAULT_VALUE", @"COMMENT")]代替NSLocalizedString(@"KEY", @"COMMENT")]Swift ,請使用NSLocalizedString("KEY", tableName: nil, bundle: Bundle.main, value: "DEFAULT_VALUE", comment: "COMMENT")而不是NSLocalizedString("KEY", comment: "COMMENT")NSLocalizedString調用轉換為包含默認值