Referencia de la CLIverbatra pseudonew

verbatra pseudo

Genera una 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 fue traducida automáticamente, así que puede contener errores o sonar un poco raro. La versión en inglés es la fuente de la verdad. Lee el original en inglés.

Disponible a partir de 0.11.0

Esto necesita verbatra 0.11.0 o más reciente. Las versiones anteriores no lo tienen, así que verifica 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 una locale falsa 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 primer día, antes de tener una cuenta de proveedor, y de nuevo cada vez que cambies un diseño. 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

FlagArgumentoValor por defectoEfecto
--cwd<path>directorio actualresolver la configuración y los archivos de locale desde este directorio
--config<path>buscar unacargar este archivo de configuración en lugar de buscar uno
--locale<code>en-XAla pseudolocale que se genera
--out<path>.verbatra-local/pseudodirectorio donde se escribe la pseudolocale, relativo al directorio de trabajo y dentro de él
--jsonningunodesactivadoimprimir 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 sosias acentuado, 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í una cadena recortada o concatenada se nota de un vistazo

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

Nada que no sea texto traducible se toca. Los marcadores de posición 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 el diseño de los plurales cuesta más.

La transformación es determinista: la misma fuente produce siempre la misma pseudolocale y el archivo se diferencia limpiamente.

Nunca llega nada roto al archivo

Cada valor generado pasa por la misma verificación de integridad que debe superar la traducción de un proveedor: los mismos marcadores de posición 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

La 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 commitea por accidente, y pseudo completa una .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 cargarla. Pasa --out para escribirla donde tu build ya sirve archivos.

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

  • Una pseudolocale que nombre tu locale de origen o una 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 una pseudolocale generada 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 lo reportan como ausente ni obsoleto. No hay nada que añadir a targetLocales ni nada que excluir de la 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 de la 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 a la pseudolocale en lugar de desaparecer en silencio. Un XLIFF copiado también recibe su atributo target-language reescrito a la pseudolocale, así que el archivo nunca afirma contener un idioma que no contiene.

Ejemplos

# generar en-XA bajo .verbatra-local/pseudo
verbatra pseudo

# generar una segunda pseudolocale al lado
verbatra pseudo --locale en-XB

# escribirla donde el servidor de desarrollo ya sirve archivos estáticos
verbatra pseudo --out public/locales-pseudo

# resultado legible por máquina para un 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
0la pseudolocale se generó, haya cambiado el archivo o no
2no pudo ejecutarse: un error de uso, un problema de configuración o de la fuente, o una pseudolocale o una ruta de salida rechazadas

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

Relacionado

Edit on GitHub