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.
Formats de fichiers de ressources pris en charge
- Gettext (POT, PO)
- JSON (JavaScript object notation)
- YAML (YAML ain’t markup language)
- Chaînes Android (XML)
- Chaînes Apple
- stringsdict Apple
- Catalogues de chaînes Apple (xcstrings)
- Liste de propriétés Apple
- Propriétés Java
- CSV (Magento / Adobe Commerce)
- XLIFF (XML localization interchange file format)
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
Fichier de langue sourcejson
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 prend également en charge les tableaux pour stocker plusieurs chaînes associées, telles que des listes d’étapes ou d’options. Chaque élément du tableau représente une chaîne traduisible.
Fichier de langue source :
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 :
.yaml ou .yml
Cas d’utilisation courants :
- 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 :
YAML utilise une structure propre et indentée pour les paires clé-valeur. Chaque clé représente la chaîne d’origine, et la valeur contient la traduction.
Exemple
Fichier de langue source
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 :
.xml
Cas d’utilisation courants :
- Applications mobiles Android (chaînes et messages d’interface utilisateur)
Structure :
Les fichiers de chaînes XML Android suivent un format structuré, chaque chaîne étant encapsulée dans des balises <string> et identifiée par une clé unique.
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 :
.strings
Cas d’utilisation courants :
- Applications iOS et macOS (chaînes d’interface utilisateur, messages système, etc.)
Structure :
Chaque fichier .strings utilise un format clé-valeur simple où la clé est le texte d’origine dans l’application, et la valeur contient la traduction. Vous pouvez ajouter des commentaires pour fournir un contexte aux traducteurs.
Encodage :
Encodage UTF-16 par défaut, avec la possibilité de convertir les fichiers .strings en encodage UTF-8
Exemple
Langue source :
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 :
.stringsdict
Cas d’utilisation courants :
- Applications iOS et macOS (gestion des formes plurielles, du contenu dynamique ou de la langue basée sur le genre)
Structure :
Un fichier .stringsdict utilise des dictionnaires imbriqués pour définir plusieurs versions d’une chaîne en fonction des valeurs des variables. Il vous permet de fournir des versions singulières et plurielles d’un message en fonction d’une valeur numérique.
Exemple
Fichier de langue source :
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 :
.xcstrings
Cas d’utilisation courants :
- Toute application de plateforme Apple ciblant iOS 15/macOS 12/tvOS 15/watchOS 8/visionOS 1 ou version ultérieure
Structure :
Les XCStrings stockent toutes les traductions dans un seul fichier au format JSON. Le niveau racine définit les métadonnées telles que la langue source et le type de catalogue. Chaque entrée correspond à une clé de chaîne, qui peut inclure des notes de développeur et d’autres métadonnées. Dans chaque entrée, les localisations sont imbriquées par langue, avec des champs pour le texte traduit et l’état. Vous pouvez également inclure des règles de pluralisation, des placeholders et des variations spécifiques à l’appareil pour chaque langue.
Exemple
Langue source :
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 :
.plist
Cas d’utilisation courants :
- Applications iOS et macOS (texte de l’interface utilisateur, paramètres de configuration)
Structure :
Les fichiers .plist organisent les données dans un format structuré basé sur XML. Pour la localisation, ils stockent des paires clé-valeur où la clé identifie la chaîne, et la valeur contient le texte que vous souhaitez traduire.
Exemple
Langue source :
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 :
.properties
Cas d’utilisation courants :
- 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 :
Les fichiers de propriétés Java utilisent une structure clé-valeur où chaque clé représente un identificateur pour une chaîne traduisible, et la valeur contient le texte réel.
Encodage :
Encodage ISO-8859-1 (Latin-1) par défaut, mais vous pouvez également utiliser l’encodage UTF-8 pour prendre en charge un plus large éventail de caractères. Les caractères spéciaux doivent souvent être échappés lors de l’utilisation d’ISO-8859-1.
Exemple
Langue source :
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 :
.csv
Cas d’utilisation courants :
- 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 :
Les fichiers CSV sont constitués de lignes, chaque ligne représentant une paire clé-valeur. La première colonne contient la clé (généralement un identificateur ou une chaîne d’origine), et la deuxième colonne contient la traduction correspondante.
Exemple
Langue source :
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 :
.xliff
Cas d’utilisation courants :
- 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 :
Chaque fichier .xliff contient généralement des éléments clés dans un format XML structuré :
<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.