Python 2.7 o preferiblemente Python 3 debe instalarse en su máquina con el comando pip también disponible.
Clone el repositorio y ejecute pip install -r requirements.txt .
gslocalization con hojas de Googleservice account key de su consola de desarrollador de GoogleGoogle Drive API y Google Sheets API estén habilitadosCredentials y desde el menú Create credentials , seleccione Service account keyApp Engine Admin )JSON esté seleccionado en las opciones Key type .CreateJSON comenzará a descargar. Guarde este archivo y úselo más tarde para la autenticación. 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 - Ruta a su archivo .xcodeprojxcodebuild (exportación e importación de localizaciones)XLIFF_OUTPUT_DIRXLIFF_OUTPUT_DIR - directorio de salida para los archivos XLIFF generadosJSON_AUTH_FILE_PATH - Ruta a la Service account key de Google SheetsSHARE_EMAIL_ADDRESS : la dirección de correo electrónico para compartir las hojas de cálculo creadasService account key , todas las hojas de cálculo son creadas y propiedad de la cuenta de servicio (ex. [email protected])LOCALIZATION_LANGUAGES : una cadena que contiene múltiples códigos de idioma utilizados para la localizaciónDEV_LANGUAGE (opcional, predeterminado a en ): el código de idioma para el idioma de desarrollo del proyecto Este script exporta las localizaciones actuales para su proyecto utilizando xcodebuild .
Analiza los archivos XLIFF obtenidos y los sube a las hojas de Google.
Hay una hoja de cálculo para cada idioma, con el siguiente formato de nombre: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex. MyProject_Spanish_localizations , MyProject_Russian_localizations , etc.). Dentro de cada hoja de cálculo, hay una hoja de trabajo por plataforma (ex. ios_strings , android_strings ). El {PROJECT_NAME} se infiere del nombre de archivo xcodeproj .
Todas las cuerdas se agregan a su hoja de cálculo correspondiente, con el siguiente encabezado:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | Example | Comment | String Key | File Path
Source: SOURCE_LANGUAGE = texto en el idioma de origenTarget: TARGET_LANGUAGE = Texto traducido en el idioma de destinoExample = vacío si la cadena contiene marcadores de posición ( %@, %d, etc. ). Este es un lugar para proporcionar un ejemplo para los traductores.Comment = NSLocalisedString COMENTARIOSString Key = la ID de la cadenaFile Path = ruta relativa al archivo de origen del archivo String ( .strings o .storyboard )Después de actualizar la traducción en las hojas de Google, ejecute el mismo script nuevamente para importar las nuevas cadenas a su proyecto 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 - Nombre del proyecto (utilizado para prefijo el nombre de la hoja de cálculo)PATH_TO_RES_FOLDER - ruta a su carpeta Android resstrings.xmlstrings.xml , el idioma de destino se detecta mediante el nombre de la carpeta de Parrent (por ejemplo, values-es para español)JSON_AUTH_FILE_PATH - Ruta a la Service account key de Google SheetsSHARE_EMAIL_ADDRESS : la dirección de correo electrónico para compartir las hojas de cálculo creadasService account key , todas las hojas de cálculo son creadas y propiedad de la cuenta de servicio (ex. [email protected])DEVELOPMENT_LANGUAGE : el código de idioma de su lenguaje de desarrollo (default = en ) Este script carga todos los archivos strings.xml dentro de PATH_TO_RES_FOLDER .
Analiza los archivos XML obtenidos y los sube a las hojas de Google.
Hay una hoja de cálculo para cada idioma, con el siguiente formato de nombre: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex. MyProject_Spanish_localizations , MyProject_Russian_localizations , etc.). Dentro de cada hoja de cálculo, hay una hoja de trabajo por plataforma (ex. ios_strings , android_strings ).
Todas las cuerdas se agregan a su hoja de cálculo correspondiente, con el siguiente encabezado:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | String ID
Source: SOURCE_LANGUAGE = texto en el idioma de origenTarget: TARGET_LANGUAGE = Texto traducido en el idioma de destinoString ID = la id de la cadena Después de actualizar la traducción en las hojas de Google, ejecute el mismo script nuevamente para sobrescribir los archivos strings.xml en su carpeta de recursos.
# 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 , use NSLocalizedStringWithDefaultValue(@"KEY", nil, [NSBundle mainBundle], @"DEFAULT_VALUE", @"COMMENT")] en lugar de NSLocalizedString(@"KEY", @"COMMENT")]Swift , use NSLocalizedString("KEY", tableName: nil, bundle: Bundle.main, value: "DEFAULT_VALUE", comment: "COMMENT") en lugar de NSLocalizedString("KEY", comment: "COMMENT")NSLocalizedString para incluir un valor predeterminado