Python 2.7 или предпочтительно Python 3 должны быть установлены на вашем компьютере с помощью команды pip также доступны.
Клонировать репозиторий и запустить pip install -r requirements.txt .
gslocalization с помощью Google Sheetsservice account key JSON File от вашей консоли разработчика GoogleGoogle Drive API и Google Sheets API включеныCredentials и в меню Create credentials выберите Service account keyApp Engine Admin )JSON выбран в параметрах Key type .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 - Путь к вашему файлу .xcodeprojxcodebuild (экспорт и импорт локализации)XLIFF_OUTPUT_DIRXLIFF_OUTPUT_DIR - выходной каталог для сгенерированных файлов XliffJSON_AUTH_FILE_PATH - Путь к Service account key Google SheetsSHARE_EMAIL_ADDRESS - адрес электронной почты, чтобы поделиться созданными электронными таблицамиService account key , все электронные таблицы создаются и принадлежат Сервисной учетной записи (Ex. [email protected])LOCALIZATION_LANGUAGES - строка, содержащая несколько языковых кодов, используемых для локализацииDEV_LANGUAGE (необязательно, по умолчанию en ) - языковой код для языка разработчика проекта Этот скрипт экспортирует текущие локализации для вашего проекта с использованием xcodebuild .
Он анализирует полученные файлы Xliff и загружает их в Google Sheets.
Существует одна электронная таблица для каждого языка, со следующим форматом имени: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (Ex. MyProject_Spanish_localizations , MyProject_Russian_localizations и т. Д.). В каждой таблице есть один рабочий лист на платформу (Ex. 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 = идентификатор строкиFile Path = относительный путь к исходному файлу строки ( .strings File или .storyboard )После обновления перевода в Google Sheets снова запустите тот же сценарий, чтобы импортировать новые строки в свой проект 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 resstrings.xmlstrings.xml целевой язык обнаруживается по имени папки Parrent (Ex. values-es для испанского)JSON_AUTH_FILE_PATH - Путь к Service account key Google SheetsSHARE_EMAIL_ADDRESS - адрес электронной почты, чтобы поделиться созданными электронными таблицамиService account key , все электронные таблицы создаются и принадлежат Сервисной учетной записи (Ex. [email protected])DEVELOPMENT_LANGUAGE - языковой код вашего языка развития (default = en ) Этот скрипт загружает все файлы strings.xml внутри PATH_TO_RES_FOLDER .
Он анализирует полученные файлы XML и загружает их в Google Sheets.
Существует одна электронная таблица для каждого языка, со следующим форматом имени: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (Ex. MyProject_Spanish_localizations , MyProject_Russian_localizations и т. Д.). В каждой таблице есть один рабочий лист на платформу (Ex. ios_strings , android_strings ).
Все струны добавляются к их соответствующей таблице, со следующим заголовком:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | String ID
Source: SOURCE_LANGUAGE = текст на исходном языкеTarget: TARGET_LANGUAGE = текст, переведенный на целевом языкеString ID = идентификатор строки После обновления перевода в Google Sheets снова запустите тот же сценарий, чтобы перезаписать файлы 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 , чтобы включить значение по умолчанию