Formatos de archivo de recursos compatibles para la traducción con PTC

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.

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
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

{
  "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:

  • 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:

Ejemplo
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:

  • Aplicaciones móviles de Android (cadenas de IU y mensajes)

Estructura:

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:

  • Aplicaciones de iOS y macOS (cadenas de IU, mensajes del sistema, etc.)

Estructura:

Ejemplo
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:

  • Aplicaciones de iOS y macOS (manejo de formas plurales, contenido dinámico o lenguaje basado en género)

Estructura:

Ejemplo
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:

  • Cualquier aplicación de plataforma Apple dirigida a iOS 15/macOS 12/tvOS 15/watchOS 8/visionOS 1 o posterior

Estructura:

Ejemplo
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:

  • Aplicaciones de iOS y macOS (texto de la IU, ajustes de configuración)

Estructura:

Ejemplo
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:

  • 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:

Ejemplo
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:

  • 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:

Ejemplo
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:

  • 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:

  • <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.

Ir arriba