Formats de fichiers de ressources pris en charge pour la traduction avec PTC

PTC (Private Translation Cloud) prend en charge divers formats de fichiers de ressources qui stockent du texte traduisible, tels que les étiquettes d’application, les messages d’erreur et le contenu utilisateur.

Vous trouverez ci-dessous des exemples détaillés de formats de fichiers de ressources pris en charge pour vous aider à les préparer à la traduction.

Gettext (POT, PO)

Aperçu technique

Extensions de fichier :

  • .pot (Portable Object Template) : ce fichier sert de modèle, répertoriant toutes les chaînes traduisibles dans la langue d’origine.
  • .po (Portable Object) : ce fichier contient les traductions réelles dans les langues source et cible.

Cas d’utilisation courants :

  • Projets open source, tels que les thèmes et les plugins WordPress
  • Internationalisation Python

Structure :

Chaque fichier .po contient des éléments clés :

  • msgid : La chaîne d’origine dans la langue source
  • msgstr : La traduction correspondante dans la langue cible
Exemple
po

msgid "Hello, world!"
msgstr "Hola, mundo!"

JSON (JavaScript object notation)

Aperçu technique

Extension de fichier :

  • .json

Cas d’utilisation courants :

  • Applications Web (React, Angular, Vue.js)
  • Applications mobiles (iOS, Android)

Structure :

  • Paires clé-valeur

Les fichiers JSON stockent souvent du texte dans des paires clé-valeur simples. Chaque clé représente la chaîne d’origine, et chaque valeur contient la traduction.

Exemple
json

{
  "welcome_message": "Welcome to our app!",
  "error_message": "Something went wrong. Please try again."
}

Dans un fichier traduit, les valeurs sont remplacées par la langue cible :

json

{
  "welcome_message": "¡Bienvenido a nuestra aplicación!",
  "error_message": "Algo salió mal. Inténtalo de nuevo."
}

Tableau JSON

json

{
  "steps": [
    "Open the app.",
    "Log in to your account.",
    "Select your profile."
  ]
}

Fichier avec les traductions :

json

{
  "steps": [
    "Abre la aplicación.",
    "Inicia sesión en tu cuenta.",
    "Selecciona tu perfil."
  ]
}

YAML (YAML ain’t markup language)

Aperçu technique

Extension de fichier :

  • Applications Ruby on Rails (pour la gestion des chaînes traduisibles)
  • Applications Web et générateurs de sites statiques (par exemple, Jekyll, Hugo)
  • Fichiers de configuration pour les pipelines CI/CD et les projets logiciels

Structure :

Exemple
yml

welcome_message: "Welcome to our app!"
error_message: "Something went wrong. Please try again."

Dans un fichier YAML traduit, les valeurs sont remplacées par la langue cible :

yml

welcome_message: "¡Bienvenido a nuestra aplicación!"
error_message: "Algo salió mal. Inténtalo de nuevo."

Chaînes Android (XML)

Aperçu technique

Extension de fichier :

  • Applications mobiles Android (chaînes et messages d’interface utilisateur)

Structure :

Exemple

Fichier de langue source

xml

<resources>
    <string name="welcome_message">Welcome to our app!</string>
    <string name="error_message">Something went wrong. Please try again.</string>
</resources>

Une fois traduites, seules les valeurs à l’intérieur des balises changent, tandis que les clés restent les mêmes :

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>

Chaînes Apple

Aperçu technique

Extension de fichier :

  • Applications iOS et macOS (chaînes d’interface utilisateur, messages système, etc.)

Structure :

Exemple
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.";

Dans un fichier traduit, les valeurs changent pour refléter la langue cible, tandis que les clés restent dans la langue source :

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 Apple

Aperçu technique

Extension de fichier :

  • Applications iOS et macOS (gestion des formes plurielles, du contenu dynamique ou de la langue basée sur le genre)

Structure :

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

Dans la version traduite, seules les valeurs des formes plurielles sont modifiées dans la langue cible, tandis que les clés restent les mêmes :

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>

Catalogues de chaînes Apple (XCStrings)

Aperçu technique

Extension de fichier :

  • Toute application de plateforme Apple ciblant iOS 15/macOS 12/tvOS 15/watchOS 8/visionOS 1 ou version ultérieure

Structure :

Exemple
json

{
  "sourceLanguage" : "en",
  "strings" : {
    "welcome_message" : {
      "extractionState" : "extracted_with_value",
      "localizations" : {
        "en" : {
          "stringUnit" : {
            "state" : "translated",
            "value" : "Welcome to our app!"
          }
        }
      }
    }
  },
  "version" : "1.0"
}

Les traductions sont stockées dans le même fichier avec la même structure que la propriété de localisation de la langue source :

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

Liste de propriétés Apple

Aperçu technique

Extension de fichier :

  • Applications iOS et macOS (texte de l’interface utilisateur, paramètres de configuration)

Structure :

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

Dans le fichier traduit, les valeurs changent pour refléter la langue cible :

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>

Propriétés Java

Aperçu technique

Extension de fichier :

  • Applications Web basées sur Java
  • Applications de bureau créées avec Java
  • Localisation des éléments d’interface utilisateur, des messages d’erreur et des invites système

Structure :

Exemple
properties

welcome_message=Welcome to our app!
error_message=Something went wrong. Please try again.

Dans la version traduite, les valeurs changent pour refléter la langue cible, tandis que les clés restent les mêmes :

properties

welcome_message=¡Bienvenido a nuestra aplicación!
error_message=Algo salió mal. Inténtalo de nuevo.

CSV (Magento / Adobe Commerce)

Aperçu technique

Extension de fichier :

  • Magento et Adobe Commerce pour la gestion des descriptions de produits, des étiquettes d’interface utilisateur et d’autres chaînes traduisibles
  • Importation et exportation de grands volumes de données de localisation dans les plateformes de commerce électronique

Structure :

Exemple
csv

"welcome_message","Welcome to our store!"
"error_message","Something went wrong. Please try again."

Dans la version traduite, la deuxième colonne change pour refléter la langue cible, tandis que les clés restent les mêmes :

csv

"welcome_message","¡Bienvenido a nuestra tienda!"
"error_message","Algo salió mal. Inténtalo de nuevo."

XLIFF (XML localization interchange file format)

Aperçu technique

Extension de fichier :

  • Localisation de logiciels et de sites Web
  • Systèmes de gestion de traduction
  • Systèmes de gestion de contenu (CMS) et outils de création

Structure :

  • <source>: Contient la chaîne d’origine dans la langue source
  • <target>: Contient la traduction correspondante dans la langue cible.
  • <trans-unit>: Définit chaque unité de traduction, regroupant les paires <source> et <target>. Chaque <trans-unit> peut avoir des métadonnées supplémentaires, telles que des identificateurs, des informations de contexte et un état.
Exemple
<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>

Comment PTC traduit vos fichiers de ressources

Une fois que vous commencez un essai gratuit, la traduction de vos fichiers de ressources avec PTC est simple. Vous choisissez comment gérer les traductions, fournissez le contexte, et PTC livre des traductions de qualité humaine à la vitesse et au coût d’une machine.

Pour en savoir plus, consultez notre guide de démarrage.

Faire défiler vers le haut