Traducir textos en vim
Estoy trabajando en una aplicación web que tiene que soportar tres idiomas diferentes: inglés, español y portugués.
Tenemos tres archivos con los mensajes de la aplicación separados, un archivo por cada idioma así:
{
[...]
cargarNuevamente: "Seus dados já foram enviados. Não é {NAME}?",
cargarNuevamenteLink: " Clique aqui.",
cerrar: "Fechar",
ciudad: "Cidade",
comienzo: "Começo do projeto",
completeDatos: "Registre-se e obtenha as informações das oportunidades.",
[...]
}
El tema es que cada vez que agregamos mensajes o pantallas tengo que salir del editor, y traducir los mensajes a todos los idiomas. Para esto tengo que abrir Google Translate, buscar, copiar y pegar.
Hacer esto por cada texto es incómodo, sin bien no me lleva mucho tiempo, el problema es que me obliga a hacer un “cambio de contexto” que podría evitarlo.
Así que me puse a buscar herramientas y di con un complemento para vim llamado vim-translator.
Este complemento me permite traducir textos directamente desde el editor, sin tener que salir ni abrir un navegador. Además, viene con varios comandos para traducir texto selecciona o el contenido del archivo completo.
Ahora en mi caso, como los textos están generalmente enmarcados entre comillas, hice tres atajos para agilizar las cosas.
map ttn vi":'<,'>TranslateR --target_lang=en<cr>
map tte vi":'<,'>TranslateR --target_lang=es<cr>
map ttp vi":'<,'>TranslateR --target_lang=pt<cr>
Así, cuando estoy posicionado sobre un texto y pulso ttn
el texto se traduce
al inglés, cuando estoy sobre un texto y pulso tte
se traduce a español y con
ttp
se traduce al portugués.
El complemento detecta el lenguaje de origen, así que alcanza con indicarle a qué idioma queremos traducir el texto y listo.