Referencia de la CLIverbatra pseudonew

verbatra pseudo

Genera un pseudolocale a partir de tus cadenas de origen, sin llamar a un proveedor ni leer una clave de API.

Página traducida automáticamente

Esta página se tradujo automáticamente, así que puede contener errores o sonar un poco rara. La versión en inglés es la fuente de la verdad. Leer el original en inglés.

Disponible a partir de 0.11.0

Esto requiere verbatra 0.11.0 o posterior. Las versiones anteriores no lo tienen: comprueba tu versión instalada con verbatra --version y actualiza si es más antigua.

Ejecuta tu aplicación en un idioma que no existe. pseudo construye un locale falso solo con tus cadenas de origen: cada valor se acentúa, se alarga y se envuelve en marcadores de límite visibles, así que un botón recortado, una frase pegada a partir de dos fragmentos y una etiqueta que nadie extrajo nunca para traducir saltan a la vista en pantalla. No gasta nada: no se construye ningún proveedor, no se hace ninguna petición de red y no se lee ninguna clave de API, así que funciona en un checkout recién clonado, antes de que exista clave alguna.

Úsalo el día cero, antes de tener una cuenta de proveedor, y de nuevo cada vez que cambies la maquetación. verbatra translate --dry-run te dice qué traduciría una ejecución real; pseudo te da algo con lo que puedes arrancar la aplicación de verdad.

Sinopsis

verbatra pseudo [flags]

Flags

FlagArgumentoPor defectoEfecto
--cwd<path>directorio actualresuelve la configuración y los archivos de locale desde este directorio
--config<path>busca unocarga este archivo de configuración en lugar de buscar uno
--locale<code>en-XAel pseudolocale que se genera
--out<path>.verbatra-local/pseudodirectorio donde se escribe el pseudolocale, relativo al directorio de trabajo y dentro de él
--jsonningunodesactivadoimprime un envoltorio JSON en stdout con el resultado bajo result

Qué hace la transformación

PasoLo que ves
Acentuarcada letra ASCII se convierte en un carácter acentuado que se le parece, así que Save se lee Śáṽé
Expandirel valor crece alrededor de un tercio de su longitud traducible, más o menos lo que el alemán necesita frente al inglés
Marcarel valor se envuelve en [ y ], así que una cadena recortada o concatenada se nota de un vistazo

Hello {{name}}, you have {{count}} unread messages sale como [Ĥéĺĺó {{name}}, ýóú ĥáṽé {{count}} úńŕéáḋ ṁéśśáġéś······].

No se toca nada que no sea texto traducible. Los placeholders sobreviven en todas las sintaxis que reconocen los adaptadores de formato: tokens de llave doble, referencias anidadas de i18next, argumentos de llave simple e ICU, conversiones printf y variables de plural de Apple, etiquetas de marcado, entidades XML, mensajes enlazados de vue-i18n y secuencias de escape. Dentro de un mensaje ICU, los nombres de argumento, las palabras clave plural y select y cada selector de rama quedan exactamente como están escritos, y solo se acentúa el texto dentro de una rama.

vue-i18n empaqueta las formas de plural en un único valor separado por barras verticales, así que cada forma se acentúa, se expande y se marca por su cuenta: car | cars sale como [ćáŕ··] | [ćáŕś··] en lugar de como un solo bloque entre corchetes, que es justo donde la maquetación de los plurales cuesta más acertar.

La transformación es determinista: la misma fuente produce siempre el mismo pseudolocale y el archivo produce diffs limpios.

Nunca llega nada roto al archivo

Cada valor generado pasa por la misma puerta de integridad que debe superar la traducción de un proveedor: los mismos placeholders que la fuente, válido bajo la sintaxis de mensajes del formato, no degenerado y no vacío. Un valor que no la superaría se copia literalmente de la fuente y se nombra bajo copied verbatim en la salida, así que la entrada sigue presente y sigue renderizándose. Es un informe, no un fallo, y el comando sigue saliendo con 0.

Dónde va la salida

El pseudolocale se escribe fuera de tus archivos de locale reales, bajo .verbatra-local/pseudo por defecto. verbatra init ya añade .verbatra-local/ a .gitignore, así que el archivo generado no se confirma por accidente, y pseudo completa un .gitignore existente con esa entrada si le falta.

Tu files.pattern configurado se expande dentro de ese directorio, así que el archivo conserva la disposición que espera tu aplicación: con locales/{locale}.json, la ejecución por defecto escribe .verbatra-local/pseudo/locales/en-XA.json. Apunta tu servidor de desarrollo o tu biblioteca de i18n a ese directorio para cargarlo. Pasa --out para escribirlo donde tu build ya sirve archivos.

Tres reglas impiden que llegue a hacerse pasar por una traducción real:

  • Un pseudolocale que nombre tu locale de origen o uno de tus locales de destino se rechaza con PSEUDO_OUTPUT_CONFLICT, antes de leer o escribir nada.
  • Un --out que colocaría el archivo encima de un archivo de locale configurado se rechaza igual.
  • Un --out absoluto, o que se salga del directorio de trabajo con .., también se rechaza, para que un pseudolocale generado nunca aterrice fuera del proyecto del que salió.

Como el archivo vive fuera de files.pattern, verbatra translate nunca lo ve ni gasta en él, y verbatra check y verbatra diff nunca informan de él como ausente u obsoleto. No hay nada que añadir a targetLocales ni nada que excluir en CI.

Formatos que se escriben parcheando un archivo existente

xliff y apple-xcstrings no se reescriben desde cero: sus escritores parchean unidades que ya están en el documento de destino. Por eso el archivo del pseudolocale se vuelve a copiar desde tu archivo de origen en cada escritura, así que una clave que añadas al origen después de la primera ejecución sigue llegando al pseudolocale en lugar de desaparecer en silencio. A un XLIFF copiado también se le reescribe el atributo target-language al pseudolocale, así que el archivo nunca afirma contener un idioma que no contiene.

Ejemplos

# generate en-XA under .verbatra-local/pseudo
verbatra pseudo

# generate a second pseudolocale alongside it
verbatra pseudo --locale en-XB

# write it where the dev server already serves static files
verbatra pseudo --out public/locales-pseudo

# machine-readable result for a script
verbatra pseudo --json

Una ejecución se ve así:

verbatra pseudo
  en-XA: 118 of 120 entries pseudolocalized
    copied verbatim: legal.disclaimer, brand.name
  wrote /app/.verbatra-local/pseudo/locales/en-XA.json

Vuelve a ejecutarlo sin cambiar la fuente y no reescribe nada:

verbatra pseudo
  en-XA: 120 of 120 entries pseudolocalized
  unchanged /app/.verbatra-local/pseudo/locales/en-XA.json

Códigos de salida

CódigoSignificado
0el pseudolocale se generó, haya cambiado el archivo o no
2no se pudo ejecutar: un error de uso, un problema de configuración o de la fuente, o un pseudolocale o una ruta de salida rechazados

No hay salida 1: un valor copiado literalmente se informa, no se trata como un fallo.

Relacionado

Edit on GitHub