还必须使用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调用转换为包含默认值