Formati di file di risorse supportati per la traduzione con PTC

PTC (Private Translation Cloud) supporta vari formati di file di risorse che memorizzano testo traducibile come etichette di app, messaggi di errore e contenuti utente.

Di seguito, troverai esempi dettagliati di formati di file di risorse supportati per aiutarti a prepararli per la traduzione.

Gettext (POT, PO)

Panoramica tecnica

Estensioni file:

  • .pot (Portable Object Template): questo file funge da modello, elencando tutte le stringhe traducibili nella lingua originale.
  • .po (Portable Object): questo file contiene le traduzioni effettive sia nella lingua originale che in quella di destinazione.

Casi d’uso comuni:

  • Progetti open source, come temi e plugin di WordPress
  • Internazionalizzazione Python

Struttura:

Ogni file .po contiene elementi chiave:

  • msgid: La stringa originale nella lingua di origine
  • msgstr: La traduzione corrispondente nella lingua di destinazione
Esempio
po

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

JSON (JavaScript object notation)

Panoramica tecnica

Estensione file:

  • .json

Casi d’uso comuni:

  • Applicazioni web (React, Angular, Vue.js)
  • App per dispositivi mobili (iOS, Android)

Struttura:

  • Coppie chiave-valore

I file JSON spesso memorizzano il testo in semplici coppie chiave-valore. Ogni chiave rappresenta la stringa originale e ogni valore contiene la traduzione.

Esempio
json

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

In un file tradotto, i valori cambiano nella lingua di destinazione:

json

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

Array JSON

json

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

File con traduzioni:

json

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

YAML (YAML ain’t markup language)

Panoramica tecnica

Estensione file:

  • Applicazioni Ruby on Rails (per la gestione di stringhe traducibili)
  • Applicazioni web e generatori di siti statici (ad es. Jekyll, Hugo)
  • File di configurazione per pipeline CI/CD e progetti software

Struttura:

Esempio
yml

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

In un file YAML tradotto, i valori cambiano nella lingua di destinazione:

yml

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

Stringhe Android (XML)

Panoramica tecnica

Estensione file:

  • App per dispositivi mobili Android (stringhe e messaggi dell’interfaccia utente)

Struttura:

Esempio

File della lingua di origine

xml

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

Quando viene tradotto, cambiano solo i valori all’interno dei tag, mentre le chiavi rimangono le stesse:

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>

Stringhe Apple

Panoramica tecnica

Estensione file:

  • Applicazioni iOS e macOS (stringhe dell’interfaccia utente, messaggi di sistema, ecc.)

Struttura:

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

In un file tradotto, i valori cambiano per riflettere la lingua di destinazione, mentre le chiavi rimangono nella lingua di origine:

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

Panoramica tecnica

Estensione file:

  • Applicazioni iOS e macOS (gestione di forme plurali, contenuti dinamici o linguaggio basato sul genere)

Struttura:

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

Nella versione tradotta, cambiano solo i valori per le forme plurali nella lingua di destinazione, mentre le chiavi rimangono le stesse:

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>

Cataloghi di stringhe Apple (XCStrings)

Panoramica tecnica

Estensione file:

  • Qualsiasi app per piattaforma Apple destinata a iOS 15/macOS 12/tvOS 15/watchOS 8/visionOS 1 o versioni successive

Struttura:

Esempio
json

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

Le traduzioni sono memorizzate nello stesso file con la stessa struttura della proprietà di localizzazione della lingua di origine:

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

File di proprietà Apple

Panoramica tecnica

Estensione file:

  • Applicazioni iOS e macOS (testo dell’interfaccia utente, impostazioni di configurazione)

Struttura:

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

Nel file tradotto, i valori cambiano per riflettere la lingua di destinazione:

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>

Proprietà Java

Panoramica tecnica

Estensione file:

  • Applicazioni web basate su Java
  • Applicazioni desktop create con Java
  • Localizzazione di elementi dell’interfaccia utente, messaggi di errore e prompt di sistema

Struttura:

Esempio
properties

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

Nella versione tradotta, i valori cambiano per riflettere la lingua di destinazione, mentre le chiavi rimangono le stesse:

properties

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

CSV (Magento / Adobe Commerce)

Panoramica tecnica

Estensione file:

  • Magento e Adobe Commerce per la gestione di descrizioni di prodotti, etichette dell’interfaccia utente e altre stringhe traducibili
  • Importazione ed esportazione di grandi volumi di dati di localizzazione in piattaforme di e-commerce

Struttura:

Esempio
csv

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

Nella versione tradotta, la seconda colonna cambia per riflettere la lingua di destinazione, mentre le chiavi rimangono le stesse:

csv

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

XLIFF (XML localization interchange file format)

Panoramica tecnica

Estensione file:

  • Localizzazione di software e siti web
  • Sistemi di gestione della traduzione
  • Sistemi di gestione dei contenuti (CMS) e strumenti di authoring

Struttura:

  • <source>: Contiene la stringa originale nella lingua di origine
  • <target>: Contiene la traduzione corrispondente nella lingua di destinazione.
  • <trans-unit>: Definisce ogni unità di traduzione, raggruppando le coppie <source> e <target>. Ogni <trans-unit> può avere metadati aggiuntivi, come identificatori, informazioni di contesto e stato.
Esempio
<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>

Come PTC traduce i tuoi file di risorse

Una volta avviata una prova gratuita, tradurre i tuoi file di risorse con PTC è semplice. Scegli tu come gestire le traduzioni, fornisci il contesto e PTC offre traduzioni di qualità umana alla velocità e al costo di una macchina.

Scopri di più nella nostra guida introduttiva.

Scorri verso l'alto