Python 2.7 ou de préférence Python 3 doit être installé sur votre machine avec la commande pip également disponible.
Clone le référentiel et exécuter pip install -r requirements.txt .
gslocalization avec Google Sheetsservice account key à partir de votre console de développeur GoogleGoogle Drive API et Google Sheets API sont activéesCredentials et à partir du menu Create credentials , sélectionnez Service account keyApp Engine Admin )JSON est sélectionné dans les options Key type .CreateJSON commencera à télécharger. Enregistrez ce fichier et utilisez-le plus tard pour l'authentification. 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 - chemin vers votre fichier .xcodeprojxcodebuild (exportation et localisation d'importation)XLIFF_OUTPUT_DIRXLIFF_OUTPUT_DIR - Répertoire de sortie pour les fichiers xliff générésJSON_AUTH_FILE_PATH - Chemin vers la Service account key Google SheetsSHARE_EMAIL_ADDRESS - l'adresse e-mail pour partager les feuilles de calcul crééesService account key , toutes les feuilles de calcul sont créées et détenues par le compte de service (ex. [email protected])LOCALIZATION_LANGUAGES - une chaîne contenant plusieurs codes de langue utilisés pour la localisationDEV_LANGUAGE (facultatif, par défaut en en ) - le code de la langue pour la langue en développement du projet Ce script exporte les localisations actuelles de votre projet à l'aide de xcodebuild .
Il analyse les fichiers Xliff obtenus et les télécharge sur Google Sheets.
Il y a une feuille de calcul pour chaque langue, avec le format de nom suivant: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex. MyProject_Spanish_localizations , MyProject_Russian_localizations , etc.). À l'intérieur de chaque feuille de calcul, il y a une feuille de calcul par plate-forme (Ex. ios_strings , android_strings ). Le {PROJECT_NAME} est déduit du nom de fichier xcodeproj .
Toutes les chaînes sont ajoutées à leur feuille de calcul correspondante, avec l'en-tête suivant:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | Example | Comment | String Key | File Path
Source: SOURCE_LANGUAGE = Texte dans la langue sourceTarget: TARGET_LANGUAGE = Texte traduit dans la langue cibleExample = vide si la chaîne contient des espaces réservés ( %@, %d, etc. ). C'est un endroit pour fournir un exemple pour les traducteurs.Comment = commentaires NSLocalisedStringString Key = l'ID de la chaîneFile Path = chemin relatif vers le fichier source de la chaîne (fichier .strings ou .storyboard )Après avoir mis à jour la traduction dans Google Sheets, exécutez à nouveau le même script pour importer les nouvelles chaînes dans votre projet 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 - Nom du projet (utilisé pour préfixer le nom de feuille de calcul)PATH_TO_RES_FOLDER - chemin vers votre dossier Android resstrings.xmlstrings.xml , la langue cible est détectée par le nom du dossier Parrent (Ex. values-es pour l'espagnol)JSON_AUTH_FILE_PATH - Chemin vers la Service account key Google SheetsSHARE_EMAIL_ADDRESS - l'adresse e-mail pour partager les feuilles de calcul crééesService account key , toutes les feuilles de calcul sont créées et détenues par le compte de service (ex. [email protected])DEVELOPMENT_LANGUAGE - Le code linguistique de votre langue de développement (par défaut = en ) Ce script charge tous les fichiers strings.xml dans PATH_TO_RES_FOLDER .
Il analyse les fichiers XML obtenus et les télécharge sur Google Sheets.
Il y a une feuille de calcul pour chaque langue, avec le format de nom suivant: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex. MyProject_Spanish_localizations , MyProject_Russian_localizations , etc.). À l'intérieur de chaque feuille de calcul, il y a une feuille de calcul par plate-forme (Ex. ios_strings , android_strings ).
Toutes les chaînes sont ajoutées à leur feuille de calcul correspondante, avec l'en-tête suivant:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | String ID
Source: SOURCE_LANGUAGE = Texte dans la langue sourceTarget: TARGET_LANGUAGE = Texte traduit dans la langue cibleString ID = l'ID de la chaîne Après avoir mis à jour la traduction dans Google Sheets, exécutez à nouveau le même script pour écraser les fichiers strings.xml dans votre dossier Ressources.
# 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 , utilisez NSLocalizedStringWithDefaultValue(@"KEY", nil, [NSBundle mainBundle], @"DEFAULT_VALUE", @"COMMENT")] au lieu de NSLocalizedString(@"KEY", @"COMMENT")]Swift , utilisez NSLocalizedString("KEY", tableName: nil, bundle: Bundle.main, value: "DEFAULT_VALUE", comment: "COMMENT") au lieu de NSLocalizedString("KEY", comment: "COMMENT")NSLocalizedString pour inclure une valeur par défaut