Python 2.7またはできればPython 3をpipにインストールする必要があります。
リポジトリをクローンし、 pip install -r requirements.txtを実行します。txt。
gslocalization許可しますservice account key JSONファイルを取得するGoogle Drive APIとGoogle Sheets APIが有効になっていることを確認してくださいCredentialsに移動し、 Create credentialsメニューから、 Service account keyを選択しますApp Engine Admin役割で新しいサービスを作成します)JSONがKey typeオプションで選択されていることを確認してください。CreateをクリックしますJSONファイルはダウンロードを開始します。このファイルを保存し、後で認証に使用します。 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_DIRに保存されますXLIFF_OUTPUT_DIR -verated xliffファイルの出力ディレクトリJSON_AUTH_FILE_PATHグーグルシートへのパスService account keySHARE_EMAIL_ADDRESS作成されたスプレッドシートを共有するためのメールアドレスService account keyを使用しているため、すべてのスプレッドシートはサービスアカウント(ex。[email protected])によって作成および所有されています。LOCALIZATION_LANGUAGESローカリゼーションに使用される複数の言語コードを含む文字列DEV_LANGUAGE (オプション、デフォルトはen ) - プロジェクトの開発言語の言語コードこのスクリプトは、 xcodebuildを使用して、プロジェクトの現在のローカライズをエクスポートします。
取得したXliffファイルを解析し、Googleシートにアップロードします。
すべての言語に1つのスプレッドシートがあり、次MyProject_Spanish_localizations名前形式があります: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex。myproject_spanish_localizations、 MyProject_Russian_localizationsなど)。各スプレッドシートには、プラットフォームごとに1つのワークシート(例: 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ファイルまたは.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ファイルのこのフォルダーを調べますstrings.xmlファイルの場合、ターゲット言語は格好のフォルダー名(スペイン語の場合はex values-es )によって検出されますJSON_AUTH_FILE_PATHグーグルシートへのパスService account keySHARE_EMAIL_ADDRESS作成されたスプレッドシートを共有するためのメールアドレスService account keyを使用しているため、すべてのスプレッドシートはサービスアカウント(ex。[email protected])によって作成および所有されています。DEVELOPMENT_LANGUAGE開発言語の言語コード(デフォルト= en )このスクリプトは、 PATH_TO_RES_FOLDER内のすべてのstrings.xmlファイルをロードします。
取得したXMLファイルを解析し、Googleシートにアップロードします。
すべての言語に1つのスプレッドシートがあり、次MyProject_Spanish_localizations名前形式があります: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex。myproject_spanish_localizations、 MyProject_Russian_localizationsなど)。各スプレッドシートには、プラットフォームごとに1つのワークシート(例: 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コールを変換してデフォルト値を含める