El archivo .phrase.yml
se utiliza para almacenar argumentos de la línea de comandos reutilizados.
Argumentos admitidos:
-
project_id
El ID de un proyecto.
-
file_format
Formato de archivo utilizado cuando no se especifica explícitamente uno en las entradas de fuente y meta.
-
per_page
Número de artículos devueltos en respuestas paginadas.
Archivo de configuración de muestra.
Push
$ phrase push
El comando push
carga archivos encontrados en directorios locales del proyecto. Usa el archivo .phrase.yml
para especificar los archivos que cargar y establecer parámetros adicionales. El marcador de posición <tag>
también puede usarse para descargar claves en archivos separados a partir de sus etiquetas.
Pull
$ phrase pull
Similar al comando push
, con la excepción de que no se puede utilizar globbing. Cuando uses marcadores de posición, usa <locale_name>
siempre que sea posible. Para obtener un archivo con claves que tengan una etiqueta específica, usa el parámetro tags
:
phrase: pull: targets: - file: path/to/file/<locale_name>.yml params: tags:tag_name
Para usar el marcador de posición <tag>
, las etiquetas deseadas deben enumerarse en la sección params
.
Parámetros
Los comandos push
y pull
se pueden configurar dentro del archivo .phrase.yml
. Las opciones de push son las mismas que para el punto final API uploads
y las opciones de pull son las mismas que para el punto final API locales download
.
Ejemplo de push:
push: sources: - file: ./locales/en.json params: update_translations: true
Ejemplo de pull:
pull: targets: - file: "./locales/example.yml" params: include_unverified_translations: true
Dependiendo del formato del archivo, se pueden aplicar opciones de formato a la sección de parámetros. Las opciones de formato se pueden aplicar a las cargas, las descargas o ambas.
Ejemplos de formato:
params: format_options: convert_placeholder: true
Algunos formatos de archivo permiten un mayor control sobre la sintaxis del archivo:
phrase: pull: targets: - file: file.xml params: format_options: convert_placeholder: true push: sources: - file: file.csv params: format_options: column_separator: ";"
Los siguientes marcadores de posición y operadores de globbing se pueden colocar en las rutas de las entradas del archivo:
-
<locale_name>
El nombre único de localización.
-
<locale_code>
El identificador de localización compatible con RFC 5646. El código de localización no tiene que ser único, por lo que pueden existir varias localizaciones con nombres diferentes con el mismo código.
-
<tag>
Usa etiquetas para agrupar claves. Se pueden usar etiquetas para mantener la estructura original del archivo.
Globbing
*
y **
son operadores de globbing. Un solo asterisco *
omite cualquier carpeta en una ruta. El asterisco doble **
es el operador de globbing estándar y coincide con cualquier carácter para una coincidencia recursiva y no exhaustiva.
Ejemplos:
# a file pattern ./abc/**/*.yml
# with a few files on your system ./abc/defg/en.yml ./abc/es.yml ./fr.yml
# selects ./abc/defg/en.yml ./abc/es.yml
Cuando utilices el comando pull
para descargar archivos, proporciona un patrón de archivo explícito como ./abc/defg/<locale_name>.yml
en lugar de ./**/*.yml
.
Todas las descargas se procesan de forma asíncrona. Para esperar descargar, aplica la marca --wait
. Push
esperará a que cada archivo se cargue y devuelva si falló o tuvo éxito.
Carga de un archivo a la localización especificada
Carga el archivo en.json
en el directorio ./locales/
con el locale_id
especificado (la localización ya debe existir).
Update_translations
se ha marcado como false para que solo se importen nuevas claves y traducciones. Si se cambia a true, el cliente también importaría cambios locales de las traducciones existentes, sobrescribiendo cualquier contenido ya presente.
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: nested_json push: sources: - file: ./locales/en.json params: update_translations: false locale_id: YOUR_LOCALE_ID # the locale must exist remotely
Nota
No es posible eliminar entradas de traducción importadas. Si es necesario, actualice las traducciones a valores empty
mediante el punto final API correspondiente.
Ruby on Rails: carga de un tipo de archivo especificado
Cargue todos los archivos que terminen con .yml
ubicados en ./config/locales/
. Los archivos Ruby on Rails YAML contienen información de localización, por lo que no es necesario especificar la localización explícitamente. Update_translations
está configurado como true, por lo que todos los cambios en las traducciones se importarán sobrescribiendo cualquier dato existente.
phrase: push: sources: - file: ./config/locales/*.yml params: update_translations: true file_format: yml
Coincidencia de cadenas iOS
Para que coincidan todos los archivos de cadenas iOS con archivos llamados Localizable.strings
en carpetas .lproj
.
<localización_code>
es todo lo que coincide después /
y antes de .lproj
para crear e identificar localizaciones.
Se omite el parámetro date_translations
y tiene el mismo efecto que cambiarlo a false.
phrase: push: sources: - file: "./<locale_code>.lproj/Localizable.strings" params: file_format: strings
Mantenimiento de varios proyectos de Strings para un proyecto de localización
Edita el archivo de configuración para limitar el alcance de los proyectos dividiendo las traducciones en categorías más pequeñas.
Modifica el archivo de configuración para que se adapte a los requisitos y luego compruébalo en el sistema de control fuente o de control de versiones.
Rails
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: "yml" push: sources: - file: "./config/locales/*.yml" pull: targets: - file: "./config/locales/<locale_name>.yml"
Cadenas de iOS
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: "strings" push: sources: - file: "./<locale_code>.lproj/Localizable.strings" pull: targets: - file: "./<locale_code>.lproj/Localizable.strings" - file: "./<locale_code>.lproj/Localizable.stringsdict" params: #file_format can be overwritten file_format: "stringsdict"
Android XML
Android no usa los códigos de idioma ISO estándar como patrón de archivo. Especifica el patrón requerido en .phrase.yml
.
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: "xml" push: sources: - file: "./res/values-<locale_code>/strings.xml" pull: targets: - file: "./res/values-<locale_code>/strings.xml"
Ejemplo con inglés como idioma predeterminado, una localización alemana y una localización regional alemana para el alemán austriaco:
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: xml pull: targets: - file: ./app/src/main/res/values/strings.xml params: file_format: xml # Unique locale id for English locale_id: LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml # Unique locale id for German locale_id: LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml # Unique locale id for Austrian locale_id: LOCALE_ID push: sources: - file: ./app/src/main/res/values/strings.xml params: file_format: xml locale_id: LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml locale_id: LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml locale_id: LOCALE_ID