O Python 2.7 ou, de preferência, o Python 3 deve ser instalado em sua máquina com o comando pip também disponível.
Clone o repositório e execute pip install -r requirements.txt .
gslocalization com as folhas do Googleservice account key do seu console do Google Developer ConsoleGoogle Drive API e Google Sheets API estejam ativadasCredentials e, no menu Create credentials , selecione Service account keyApp Engine Admin )JSON está selecionado nas opções Key type .CreateJSON começará a baixar. Salve este arquivo e use -o posteriormente para autenticação. 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 - caminho para o seu arquivo .xcodeprojxcodebuild (exportando e importar localizações)XLIFF_OUTPUT_DIRXLIFF_OUTPUT_DIR - diretório de saída para os arquivos XLIFF geradosJSON_AUTH_FILE_PATH - PACH para a Service account key do Google SheetsSHARE_EMAIL_ADDRESS - o endereço de email para compartilhar as planilhas criadasService account key , todas as planilhas são criadas e de propriedade da conta de serviço (por exemplo localizaçõ[email protected])LOCALIZATION_LANGUAGES - Uma string que contém vários códigos de idiomas usados para localizaçãoDEV_LANGUAGE (opcional, padrões para en ) - o código do idioma para a linguagem de desenvolvimento do projeto Esse script exporta as localizações atuais para o seu projeto usando xcodebuild .
Ele analisa os arquivos XLIFF obtidos e os carrega para o Google Sheets.
Existe uma planilha para cada idioma, com o seguinte formato de nome: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex. MyProject_Spanish_localizations , MyProject_Russian_localizations , etc.). Dentro de cada planilha, há uma planilha por plataforma (Ex. ios_strings , android_strings ). O {PROJECT_NAME} é inferido no nome do xcodeproj .
Todas as cordas são adicionadas à sua planilha correspondente, com o seguinte cabeçalho:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | Example | Comment | String Key | File Path
Source: SOURCE_LANGUAGE = texto na linguagem de origemTarget: TARGET_LANGUAGE = Texto traduzido no idioma de destinoExample = vazio se a string contiver espaço reservado ( %@, %d, etc. ). Este é um lugar para fornecer um exemplo para os tradutores.Comment = Comentários NSLocalisedStringString Key = o ID da stringFile Path = caminho relativo para o arquivo de origem da string (arquivo .strings ou .storyboard )Depois de atualizar a tradução no Google Sheets, execute o mesmo script novamente para importar as novas seqüências para o seu projeto 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 - Nome do projeto (usado para prefixar o nome da planilha)PATH_TO_RES_FOLDER - PATH para sua pasta Android resstrings.xmlstrings.xml , o idioma de destino é detectado pelo nome da pasta Parrent (por exemplo, values-es para espanhol)JSON_AUTH_FILE_PATH - PACH para a Service account key do Google SheetsSHARE_EMAIL_ADDRESS - o endereço de email para compartilhar as planilhas criadasService account key , todas as planilhas são criadas e de propriedade da conta de serviço (por exemplo localizaçõ[email protected])DEVELOPMENT_LANGUAGE - o código do idioma do seu idioma de desenvolvimento (padrão = en ) Este script carrega todos os arquivos strings.xml dentro PATH_TO_RES_FOLDER .
Ele analisa os arquivos XML obtidos e os carrega para o Google Sheets.
Existe uma planilha para cada idioma, com o seguinte formato de nome: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (ex. MyProject_Spanish_localizations , MyProject_Russian_localizations , etc.). Dentro de cada planilha, há uma planilha por plataforma (Ex. ios_strings , android_strings ).
Todas as cordas são adicionadas à sua planilha correspondente, com o seguinte cabeçalho:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | String ID
Source: SOURCE_LANGUAGE = texto na linguagem de origemTarget: TARGET_LANGUAGE = Texto traduzido no idioma de destinoString ID = o id da string Depois de atualizar a tradução nas folhas do Google, execute o mesmo script novamente para substituir os arquivos strings.xml em sua pasta 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")] em vez de NSLocalizedString(@"KEY", @"COMMENT")]Swift , use NSLocalizedString("KEY", tableName: nil, bundle: Bundle.main, value: "DEFAULT_VALUE", comment: "COMMENT") em vez de NSLocalizedString("KEY", comment: "COMMENT")NSLocalizedString para incluir um valor padrão