{"id":1329,"url":"https://github.com/fkirc/attranslate","last_synced_at":"2025-05-15T08:05:41.944Z","repository":{"id":38425615,"uuid":"295669524","full_name":"fkirc/attranslate","owner":"fkirc","description":"A command line tool for translating JSON, YAML, CSV, ARB, XML (via a CLI)","archived":false,"fork":false,"pushed_at":"2025-05-05T15:59:56.000Z","size":2254,"stargazers_count":345,"open_issues_count":6,"forks_count":29,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-05T16:54:50.402Z","etag":null,"topics":["internationalization","localization","semi-automated-translations","translations"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/attranslate","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fkirc.png","metadata":{"files":{"readme":"README-es.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["fkirc"]}},"created_at":"2020-09-15T08:51:45.000Z","updated_at":"2025-05-05T16:00:00.000Z","dependencies_parsed_at":"2022-07-11T19:29:18.116Z","dependency_job_id":"e7813c41-f38e-453c-9c72-943b82c21e1f","html_url":"https://github.com/fkirc/attranslate","commit_stats":{"total_commits":763,"total_committers":11,"mean_commits":69.36363636363636,"dds":"0.27391874180865006","last_synced_commit":"8416c62878cf3669209ffbba6461a6f0c98f1af1"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fkirc%2Fattranslate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fkirc%2Fattranslate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fkirc%2Fattranslate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fkirc%2Fattranslate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fkirc","download_url":"https://codeload.github.com/fkirc/attranslate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254301431,"owners_count":22047904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["internationalization","localization","semi-automated-translations","translations"],"created_at":"2024-01-05T20:15:43.950Z","updated_at":"2025-05-15T08:05:41.931Z","avatar_url":"https://github.com/fkirc.png","language":"TypeScript","readme":"# attranslate: Traductor de texto semiautomático para sitios web y aplicaciones\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"attranslate - Semi-automated Text Translator for Websites and Apps\" src=\"docs/logo/attranslate_logo.png\"\u003e\n\u003c/p\u003e\n\nmacOS/Ubuntu/Windows: [![Actions Status](https://github.com/fkirc/attranslate/workflows/Tests/badge.svg/?branch=master)](https://github.com/fkirc/attranslate/actions?query=branch%3Amaster)\n\n`attranslate` es una herramienta para sincronizar archivos de traducción, incluyendo JSON/YAML/XML y otros formatos.\nA diferencia de los servicios de pago, cualquier desarrollador puede integrar `attranslate` en cuestión de minutos.\n`attranslate` dejará las traducciones existentes sin cambios y solo sincronizará las nuevas traducciones.\n\nOpcionalmente `attranslate` trabaja con servicios de traducción automática.\nPor ejemplo, supongamos que un servicio de traducción logra un 80% de traducciones correctas.\nCon `attranslate`, una solución rápida del 20% restante puede ser más rápida que hacer todo a mano.\nAparte de eso, `attranslate` admite traducciones puramente manuales o incluso conversiones de formato de archivo sin cambiar el idioma.\n\n# Funciones\n\n## Conservar traducciones manuales\n\n`attranslate` reconoce que las traducciones automáticas no son perfectas.\nPor lo tanto, siempre que no esté satisfecho con los resultados producidos, `attranslate` le permite simplemente sobrescribir textos en sus archivos de destino.\n`attranslate` nunca sobrescribirá una corrección manual en ejecuciones posteriores.\n\n## Servicios disponibles\n\n`attranslate` admite los siguientes servicios de traducción; Muchos de ellos son gratis:\n\n- `openai`: Utiliza un modelo como ChatGPT; gratis hasta un límite\n- [google-translate](https://cloud.google.com/translate): Necesita una cuenta de GCloud; gratis hasta un límite\n- [azure](https://azure.microsoft.com/en-us/services/cognitive-services/translator-text-api/): Necesita una cuenta de Microsoft; cuesta dinero\n- `sync-without-translate`: No cambia el idioma. Esto puede ser útil para convertir entre formatos de archivo o para mantener diferencias específicas de la región.\n- `manual`: Traducir textos manualmente\n\n# Ejemplos de uso\n\nTraducir un solo archivo es tan simple como la siguiente línea:\n\n    attranslate --srcFile=json-simple/en.json --srcLng=English --srcFormat=nested-json --targetFile=json-simple/de.json --targetLng=German --targetFormat=nested-json --service=openai\n\nSi tiene varios idiomas de destino, necesitará varias llamadas a `attranslate`.\nPuede escribir algo como el siguiente script:\n\n```bash\n# Este ejemplo traduce un archivo JSON en inglés a español y alemán.\nBASE_DIR=\"json-advanced\"\nSERVICE_ACCOUNT_KEY=\"gcloud/gcloud_service_account.json\"\nCOMMON_ARGS=( \"--srcLng=en\" \"--srcFormat=nested-json\" \"--targetFormat=nested-json\" \"--service=google-translate\" \"--serviceConfig=$SERVICE_ACCOUNT_KEY\" )\n\n# instalar attranslate si aún no está instalado\nattranslate --version || npm install --global attranslate\n\nattranslate --srcFile=$BASE_DIR/en/fruits.json --targetFile=$BASE_DIR/es/fruits.json --targetLng=es \"${COMMON_ARGS[@]}\"\nattranslate --srcFile=$BASE_DIR/en/fruits.json --targetFile=$BASE_DIR/de/fruits.json --targetLng=de \"${COMMON_ARGS[@]}\"\n```\n\nDel mismo modo, puede utilizar `attranslate` para convertir entre formatos de archivo.\nVer [scripts de ejemplo](https://github.com/fkirc/attranslate/tree/master/sample-scripts) para más ejemplos.\n\n# Guía de integración\n\nEn primer lugar, asegúrese de que [nodejs](https://nodejs.org/) está instalado en el equipo.\nUna vez que tengas `nodejs`, puede instalar `attranslate` Vía:\n\n`npm install --global attranslate`\n\nAlternativamente, si usted es un desarrollador de JavaScript, entonces debe instalar `attranslate` Vía:\n\n`npm install --save-dev attranslate`\n\nA continuación, debe escribir un script específico del proyecto que invoque `attranslate` para sus archivos específicos.\nVer [scripts de ejemplo](https://github.com/fkirc/attranslate/tree/master/sample-scripts) para obtener orientación sobre cómo traducir los archivos específicos del proyecto.\n\n# Opciones de uso\n\nCorrer `attranslate --help` para ver una lista de opciones disponibles:\n\n```\n    Usage: attranslate [options]\n\n    Options:\n      --srcFile \u003csourceFile\u003e              The source file to be translated\n      --srcLng \u003csourceLanguage\u003e           A language code for the source language\n      --srcFormat \u003csourceFileFormat\u003e      One of \"flat-json\", \"nested-json\",\n                                          \"yaml\", \"po\", \"xml\", \"ios-strings\",\n                                          \"arb\", \"csv\"\n      --targetFile \u003ctargetFile\u003e           The target file for the translations\n      --targetLng \u003ctargetLanguage\u003e        A language code for the target language\n      --targetFormat \u003ctargetFileFormat\u003e   One of \"flat-json\", \"nested-json\",\n                                          \"yaml\", \"po\", \"xml\", \"ios-strings\",\n                                          \"arb\", \"csv\"\n      --service \u003ctranslationService\u003e      One of \"openai\", \"manual\",\n                                          \"sync-without-translate\",\n                                          \"google-translate\", \"azure\"\n      --serviceConfig \u003cserviceKey\u003e        supply configuration for a translation\n                                          service (either a path to a key-file or\n                                          an API-key)\n      --matcher \u003cmatcher\u003e                 An optional feature for string replacements. One of \"none\", \"icu\", \"i18next\",\n                                          \"sprintf\" (default: \"none\")\n      --prompt \u003ccustomPrompt\u003e             Prompt opcional para guiar al servicio de traducción. Útil para especificar\n                                          términos técnicos que no deben traducirse u otras preferencias de traducción.\n      -v, --version                       output the version number\n```\n\n## Ejemplos de Prompt\n\nPuedes usar el parámetro `--prompt` para proporcionar instrucciones específicas al servicio de traducción. Aquí tienes un ejemplo:\n\n```bash\nattranslate --srcFile=json-simple/en.json --srcLng=English --srcFormat=nested-json \\\n           --targetFile=json-simple/es.json --targetLng=Spanish --targetFormat=nested-json \\\n           --service=openai \\\n           --prompt=\"Estoy desarrollando una aplicación de salud para profesionales médicos. Términos técnicos como 'EKG', 'MRI', 'CT scan', 'blood pressure', 'pulse oximeter' y 'vital signs' deben permanecer en inglés. Por favor, mantenga la terminología médica adecuada y un tono formal en las traducciones.\"\n```\n\nEste prompt asegurará que los términos técnicos permanezcan en inglés mientras se traduce el resto del contenido. Puedes personalizar el prompt según tus necesidades específicas, como:\n- Especificar qué términos no deben traducirse\n- Solicitar reglas específicas de capitalización\n- Proporcionar contexto sobre el dominio de tu aplicación\n- Establecer preferencias de tono o estilo para las traducciones\n\n# Contribuidores\n\nNos gustaría agradecer a todos los contribuidores que han ayudado a mejorar attranslate:\n\n- [@esuljic](https://github.com/esuljic): Agregó la característica de parámetro de prompt para servicios de IA (OpenAI y TypeChat).\n","funding_links":["https://github.com/sponsors/fkirc"],"categories":["Localization","Components","General","组件","I18n And L10n","i18n \u0026 l10n","Internationalization [🔝](#readme)","Command Line Tools","Tools"],"sub_categories":["Other Hardware","Internationalization","国际化","Runner","Machine translation for developers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffkirc%2Fattranslate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffkirc%2Fattranslate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffkirc%2Fattranslate/lists"}