PTC (Private Translation Cloud) admite varios formatos de archivo de recursos que almacenan texto traducible, como etiquetas de aplicaciones, mensajes de error y contenido de usuario.
A continuación, encontrará ejemplos detallados de formatos de archivo de recursos compatibles para ayudarle a prepararlos para la traducción.
Formatos de archivo de recursos compatibles
- Gettext (POT, PO)
- JSON (Notación de objetos de JavaScript)
- YAML (YAML ain’t markup language)
- Cadenas de Android (XML)
- Cadenas de Apple
- stringsdict de Apple
- Catálogos de cadenas de Apple (xcstrings)
- Lista de propiedades de Apple
- Propiedades de Java
- CSV (Magento / Adobe Commerce)
- XLIFF (Formato de archivo de intercambio de localización XML)
Gettext (POT, PO)
Descripción técnica
Extensiones de archivo:
- .pot (Portable Object Template): Este archivo actúa como una plantilla, enumerando todas las cadenas traducibles en el idioma original.
- .po (Portable Object): Este archivo contiene las traducciones reales tanto en el idioma original como en el de destino.
Casos de uso comunes:
- Proyectos de código abierto, como temas y plugins de WordPress
- Internacionalización de Python
Estructura:
Cada archivo .po contiene elementos clave:
- msgid: La cadena original en el idioma de origen
- msgstr: La traducción correspondiente en el idioma de destino
Ejemplo
po
msgid "Hello, world!"
msgstr "Hola, mundo!"
JSON (Notación de objetos de JavaScript)
Descripción técnica
Extensión de archivo:
- .json
Casos de uso comunes:
- Aplicaciones web (React, Angular, Vue.js)
- Aplicaciones móviles (iOS, Android)
Estructura:
- Pares clave-valor
Los archivos JSON a menudo almacenan texto en pares clave-valor simples. Cada clave representa la cadena original y cada valor contiene la traducción.
Ejemplo
Archivo de idioma de origenjson
json
{
"welcome_message": "Welcome to our app!",
"error_message": "Something went wrong. Please try again."
}
En un archivo traducido, los valores cambian al idioma de destino:
json
{
"welcome_message": "¡Bienvenido a nuestra aplicación!",
"error_message": "Algo salió mal. Inténtalo de nuevo."
}
Matriz JSON
JSON también admite matrices para almacenar varias cadenas relacionadas, como listas de pasos u opciones. Cada elemento de la matriz representa una cadena traducible.
Archivo de idioma de origen:
json
{
"steps": [
"Open the app.",
"Log in to your account.",
"Select your profile."
]
}
Archivo con traducciones:
json
{
"steps": [
"Abre la aplicación.",
"Inicia sesión en tu cuenta.",
"Selecciona tu perfil."
]
}
YAML (YAML ain’t markup language)
Descripción técnica
Extensión de archivo:
.yaml o .yml
Casos de uso comunes:
- Aplicaciones Ruby on Rails (para gestionar cadenas traducibles)
- Aplicaciones web y generadores de sitios estáticos (p. ej., Jekyll, Hugo)
- Archivos de configuración para pipelines de CI/CD y proyectos de software
Estructura:
YAML utiliza una estructura limpia e indentada para los pares clave-valor. Cada clave representa la cadena original y el valor contiene la traducción.
Ejemplo
Archivo de idioma de origen
yml
welcome_message: "Welcome to our app!"
error_message: "Something went wrong. Please try again."
En un archivo YAML traducido, los valores cambian al idioma de destino:
yml
welcome_message: "¡Bienvenido a nuestra aplicación!"
error_message: "Algo salió mal. Inténtalo de nuevo."
Cadenas de Android (XML)
Descripción técnica
Extensión de archivo:
.xml
Casos de uso comunes:
- Aplicaciones móviles de Android (cadenas de IU y mensajes)
Estructura:
Los archivos de cadenas XML de Android siguen un formato estructurado, con cada cadena envuelta en etiquetas <string> e identificada por una clave única.
Ejemplo
Archivo de idioma de origen
xml
<resources>
<string name="welcome_message">Welcome to our app!</string>
<string name="error_message">Something went wrong. Please try again.</string>
</resources>
Cuando se traduce, solo cambian los valores dentro de las etiquetas, mientras que las claves siguen siendo las mismas:
xml
<resources>
<string name="welcome_message">¡Bienvenido a nuestra aplicación!</string>
<string name="error_message">Algo salió mal. Inténtalo de nuevo.</string>
</resources>
Cadenas de Apple
Descripción técnica
Extensión de archivo:
.strings
Casos de uso comunes:
- Aplicaciones de iOS y macOS (cadenas de IU, mensajes del sistema, etc.)
Estructura:
Cada archivo .strings utiliza un formato clave-valor simple donde la clave es el texto original en la aplicación y el valor contiene la traducción. Puede agregar comentarios para proporcionar contexto a los traductores.
Codificación:
Codificación UTF-16 de forma predeterminada, con la opción de convertir archivos .strings a codificación UTF-8
Ejemplo
Idioma de origen:
strings
/* Welcome message shown on the home screen */
"welcome_message" = "Welcome to our app!";
/* Error message when something goes wrong */
"error_message" = "Something went wrong. Please try again.";
En un archivo traducido, los valores cambian para reflejar el idioma de destino, mientras que las claves permanecen en el idioma de origen:
strings
/* Welcome message shown on the home screen */
"welcome_message" = "¡Bienvenido a nuestra aplicación!";
/* Error message when something goes wrong */
"error_message" = "Algo salió mal. Inténtalo de nuevo.";
stringsdict de Apple
Descripción técnica
Extensión de archivo:
.stringsdict
Casos de uso comunes:
- Aplicaciones de iOS y macOS (manejo de formas plurales, contenido dinámico o lenguaje basado en género)
Estructura:
Un archivo .stringsdict utiliza diccionarios anidados para definir múltiples versiones de una cadena basadas en los valores de las variables. Le permite proporcionar versiones tanto singulares como plurales de un mensaje basadas en un valor numérico.
Ejemplo
Archivo de idioma de origen:
xml
<plist version="1.0">
<dict>
<key>apples_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@apples@</string>
<key>apples</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d apple</string>
<key>other</key>
<string>%d apples</string>
</dict>
</dict>
</dict>
</plist>
En la versión traducida, solo cambian los valores de las formas plurales al idioma de destino, mientras que las claves siguen siendo las mismas:
xml
<plist version="1.0">
<dict>
<key>apples_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@apples@</string>
<key>apples</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d manzana</string>
<key>other</key>
<string>%d manzanas</string>
</dict>
</dict>
</dict>
</plist>
Catálogos de cadenas de Apple (XCStrings)
Descripción técnica
Extensión de archivo:
.xcstrings
Casos de uso comunes:
- Cualquier aplicación de plataforma Apple dirigida a iOS 15/macOS 12/tvOS 15/watchOS 8/visionOS 1 o posterior
Estructura:
XCStrings almacena todas las traducciones en un solo archivo basado en JSON. El nivel raíz define metadatos como el idioma de origen y el tipo de catálogo. Cada entrada corresponde a una clave de cadena, que puede incluir notas del desarrollador y otros metadatos. Dentro de cada entrada, las localizaciones se anidan por idioma, con campos para el texto traducido y el estado. También puede incluir reglas de pluralización, placeholders y variaciones específicas del dispositivo para cada idioma.
Ejemplo
Idioma de origen:
json
{
"sourceLanguage" : "en",
"strings" : {
"welcome_message" : {
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Welcome to our app!"
}
}
}
}
},
"version" : "1.0"
}
Las traducciones se almacenan en el mismo archivo con la misma estructura que la propiedad de localización del idioma de origen:
json
{
"sourceLanguage": "en",
"strings": {
"welcome_message": {
"extractionState": "extracted_with_value",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Welcome to our app!"
}
},
"es": {
"stringUnit": {
"state": "translated",
"value": "¡Bienvenido a nuestra app!"
}
},
"de": {
"stringUnit": {
"state": "translated",
"value": "Willkommen bei unserer App!"
}
},
"el": {
"stringUnit": {
"state": "translated",
"value": "Καλώς ήρθατε στην εφαρμογή μας!"
}
}
}
}
},
"version": "1.0"
}
Lista de propiedades de Apple
Descripción técnica
Extensión de archivo:
.plist
Casos de uso comunes:
- Aplicaciones de iOS y macOS (texto de la IU, ajustes de configuración)
Estructura:
Los archivos .plist organizan los datos en un formato estructurado basado en XML. Para la localización, almacenan pares clave-valor donde la clave identifica la cadena y el valor contiene el texto que desea traducir.
Ejemplo
Idioma de origen:
xml
<plist version="1.0">
<dict>
<key>welcome_message</key>
<string>Welcome to our app!</string>
<key>error_message</key>
<string>Something went wrong. Please try again.</string>
</dict>
</plist>
En el archivo traducido, los valores cambian para reflejar el idioma de destino:
xml
<plist version="1.0">
<dict>
<key>welcome_message</key>
<string>¡Bienvenido a nuestra aplicación!</string>
<key>error_message</key>
<string>Algo salió mal. Inténtalo de nuevo.</string>
</dict>
</plist>
Propiedades de Java
Descripción técnica
Extensión de archivo:
.properties
Casos de uso comunes:
- Aplicaciones web basadas en Java
- Aplicaciones de escritorio creadas con Java
- Localización de elementos de la interfaz de usuario, mensajes de error y mensajes del sistema
Estructura:
Los archivos de propiedades de Java utilizan una estructura clave-valor donde cada clave representa un identificador para una cadena traducible y el valor contiene el texto real.
Codificación:
Codificación ISO-8859-1 (Latin-1) de forma predeterminada, pero también puede utilizar la codificación UTF-8 para admitir una gama más amplia de caracteres. Los caracteres especiales a menudo deben escaparse cuando se utiliza ISO-8859-1.
Ejemplo
Idioma de origen:
properties
welcome_message=Welcome to our app!
error_message=Something went wrong. Please try again.
En la versión traducida, los valores cambian para reflejar el idioma de destino, mientras que las claves siguen siendo las mismas:
properties
welcome_message=¡Bienvenido a nuestra aplicación!
error_message=Algo salió mal. Inténtalo de nuevo.
CSV (Magento / Adobe Commerce)
Descripción técnica
Extensión de archivo:
.csv
Casos de uso comunes:
- Magento y Adobe Commerce para gestionar descripciones de productos, etiquetas de IU y otras cadenas traducibles
- Importación y exportación de grandes volúmenes de datos de localización en plataformas de comercio electrónico
Estructura:
Los archivos CSV constan de filas, y cada fila representa un par clave-valor. La primera columna contiene la clave (normalmente un identificador o una cadena original) y la segunda columna contiene la traducción correspondiente.
Ejemplo
Idioma de origen:
csv
"welcome_message","Welcome to our store!"
"error_message","Something went wrong. Please try again."
En la versión traducida, la segunda columna cambia para reflejar el idioma de destino, mientras que las claves siguen siendo las mismas:
csv
"welcome_message","¡Bienvenido a nuestra tienda!"
"error_message","Algo salió mal. Inténtalo de nuevo."
XLIFF (Formato de archivo de intercambio de localización XML)
Descripción técnica
Extensión de archivo:
.xliff
Casos de uso comunes:
- Localización de software y sitios web
- Sistemas de gestión de traducciones
- Sistemas de gestión de contenido (CMS) y herramientas de creación
Estructura:
Cada archivo .xliff normalmente contiene elementos clave dentro de un formato XML estructurado:
<source>
: Contiene la cadena original en el idioma de origen<target>
: Contiene la traducción correspondiente en el idioma de destino.<trans-unit>
: Define cada unidad de traducción, agrupando los pares<source>
y<target>
. Cada<trans-unit>
puede tener metadatos adicionales, como identificadores, información de contexto y estado.
Ejemplo
<xliff version="1.2">
<file source-language="en" target-language="es">
<body>
<trans-unit id="1">
<source>Hello, world!</source>
<target>Hola, mundo!</target>
</trans-unit>
</body>
</file>
</xliff>
Cómo PTC traduce sus archivos de recursos
Una vez que inicie una prueba gratuita, traducir sus archivos de recursos con PTC es sencillo. Usted elige cómo gestionar las traducciones, proporciona contexto y PTC ofrece traducciones de calidad humana a la velocidad y el coste de una máquina.
Obtenga más información en nuestra guía de inicio.