Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fkirc/attranslate
A command line tool for translating JSON, YAML, CSV, ARB, XML (via a CLI)
https://github.com/fkirc/attranslate
internationalization localization semi-automated-translations translations
Last synced: 4 days ago
JSON representation
A command line tool for translating JSON, YAML, CSV, ARB, XML (via a CLI)
- Host: GitHub
- URL: https://github.com/fkirc/attranslate
- Owner: fkirc
- License: other
- Created: 2020-09-15T08:51:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-13T06:35:31.000Z (4 months ago)
- Last Synced: 2024-12-31T21:03:03.763Z (11 days ago)
- Topics: internationalization, localization, semi-automated-translations, translations
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/attranslate
- Size: 2.42 MB
- Stars: 338
- Watchers: 8
- Forks: 27
- Open Issues: 7
-
Metadata Files:
- Readme: README-es.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - attranslate - Semi-automatically translate or synchronize .strings files or crossplatform-files from different languages. (Localization / Other Hardware)
- awesome-flutter - attranslate - Semi-automated translation of ARB or JSON files by [fkirc](https://github.com/fkirc) (Components / Internationalization)
- awesome-javascript - attranslate - A JavaScript-tool for synchronizing translation-files, including JSON/YAML/XML and other formats. (I18n And L10n / Runner)
- awesome-translations - attranslate - A tool for semi-automated translations of cross-platform apps or websites. (Tools / Machine translation for developers)
- awesome-jekyll - attranslate - A tool for synchronizing translation-files. (Command Line Tools)
- awesome-flutter-cn - attranslate - 通过 [fkirc](https://github.com/fkirc) 制作的自动化翻译 ARB 或 JSON 文件工具。 (组件 / 国际化)
- awesome-ios-star - attranslate - Semi-automatically translate or synchronize .strings files or crossplatform-files from different languages. (Localization / Other Hardware)
- awesome-flutter-cn - attranslate - 基于 [fkirc](https://github.com/fkirc) 的 ARB 或 JSON 半自动翻译工具 (组件 / 国际化)
- awesome-flutter - attranslate - Semi-automated Text Translator for Websites and Apps ` 📝 23 days ago ` (Internationalization [🔝](#readme))
README
# attranslate: Traductor de texto semiautomático para sitios web y aplicaciones
macOS/Ubuntu/Windows: [![Actions Status](https://github.com/fkirc/attranslate/workflows/Tests/badge.svg/?branch=master)](https://github.com/fkirc/attranslate/actions?query=branch%3Amaster)
`attranslate` es una herramienta para sincronizar archivos de traducción, incluyendo JSON/YAML/XML y otros formatos.
A diferencia de los servicios de pago, cualquier desarrollador puede integrar `attranslate` en cuestión de minutos.
`attranslate` dejará las traducciones existentes sin cambios y solo sincronizará las nuevas traducciones.Opcionalmente `attranslate` trabaja con servicios de traducción automática.
Por ejemplo, supongamos que un servicio de traducción logra un 80% de traducciones correctas.
Con `attranslate`, una solución rápida del 20% restante puede ser más rápida que hacer todo a mano.
Aparte de eso, `attranslate` admite traducciones puramente manuales o incluso conversiones de formato de archivo sin cambiar el idioma.# Funciones
## Conservar traducciones manuales
`attranslate` reconoce que las traducciones automáticas no son perfectas.
Por lo tanto, siempre que no esté satisfecho con los resultados producidos, `attranslate` le permite simplemente sobrescribir textos en sus archivos de destino.
`attranslate` nunca sobrescribirá una corrección manual en ejecuciones posteriores.## Servicios disponibles
`attranslate` admite los siguientes servicios de traducción; Muchos de ellos son gratis:
- `openai`: Utiliza un modelo como ChatGPT; gratis hasta un límite
- [google-translate](https://cloud.google.com/translate): Necesita una cuenta de GCloud; gratis hasta un límite
- [azure](https://azure.microsoft.com/en-us/services/cognitive-services/translator-text-api/): Necesita una cuenta de Microsoft; cuesta dinero
- `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.
- `manual`: Traducir textos manualmente# Ejemplos de uso
Traducir un solo archivo es tan simple como la siguiente línea:
attranslate --srcFile=json-simple/en.json --srcLng=English --srcFormat=nested-json --targetFile=json-simple/de.json --targetLng=German --targetFormat=nested-json --service=openai
Si tiene varios idiomas de destino, necesitará varias llamadas a `attranslate`.
Puede escribir algo como el siguiente script:```bash
# Este ejemplo traduce un archivo JSON en inglés a español y alemán.
BASE_DIR="json-advanced"
SERVICE_ACCOUNT_KEY="gcloud/gcloud_service_account.json"
COMMON_ARGS=( "--srcLng=en" "--srcFormat=nested-json" "--targetFormat=nested-json" "--service=google-translate" "--serviceConfig=$SERVICE_ACCOUNT_KEY" )# instalar attranslate si aún no está instalado
attranslate --version || npm install --global attranslateattranslate --srcFile=$BASE_DIR/en/fruits.json --targetFile=$BASE_DIR/es/fruits.json --targetLng=es "${COMMON_ARGS[@]}"
attranslate --srcFile=$BASE_DIR/en/fruits.json --targetFile=$BASE_DIR/de/fruits.json --targetLng=de "${COMMON_ARGS[@]}"
```Del mismo modo, puede utilizar `attranslate` para convertir entre formatos de archivo.
Ver [scripts de ejemplo](https://github.com/fkirc/attranslate/tree/master/sample-scripts) para más ejemplos.# Guía de integración
En primer lugar, asegúrese de que [nodejs](https://nodejs.org/) está instalado en el equipo.
Una vez que tengas `nodejs`, puede instalar `attranslate` Vía:`npm install --global attranslate`
Alternativamente, si usted es un desarrollador de JavaScript, entonces debe instalar `attranslate` Vía:
`npm install --save-dev attranslate`
A continuación, debe escribir un script específico del proyecto que invoque `attranslate` para sus archivos específicos.
Ver [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.# Opciones de uso
Correr `attranslate --help` para ver una lista de opciones disponibles:
```
Usage: attranslate [options]Options:
--srcFile The source file to be translated
--srcLng A language code for the source language
--srcFormat One of "flat-json", "nested-json",
"yaml", "po", "xml", "ios-strings",
"arb", "csv"
--targetFile The target file for the translations
--targetLng A language code for the target language
--targetFormat One of "flat-json", "nested-json",
"yaml", "po", "xml", "ios-strings",
"arb", "csv"
--service One of "openai", "manual",
"sync-without-translate",
"google-translate", "azure"
--serviceConfig supply configuration for a translation
service (either a path to a key-file or
an API-key)
--matcher An optional feature for string replacements. One of "none", "icu", "i18next",
"sprintf" (default: "none")
-v, --version output the version number
```