Trova i formati di file e le lingue supportate tramite l’API

Utilizza questi endpoint API per scoprire quali formati di file sorgente e lingue di destinazione supporta il tuo progetto prima di creare lavori di traduzione.

Utilizzando questi endpoint, puoi interrogare:

  • Lingue di destinazione disponibili per il tuo progetto (con codici ISO)
  • Formati di file sorgente che puoi caricare, più qualsiasi formato di output di traduzione aggiuntivo che PTC può generare per tali file

Tutti gli endpoint richiedono un token API valido:

Authorization: Bearer YOUR_API_TOKEN

Elenca tutte le lingue di destinazione

Recupera l’elenco delle lingue in cui è possibile tradurre il tuo progetto. Puoi anche utilizzare questo endpoint per ottenere i codici ISO corretti quando crei lavori di traduzione di contenuti.

Richiesta HTTP

GET https://app.ptc.wpml.org/api/v1/languages

Parametri

Questo endpoint non accetta parametri.

Risposte

Risposta di successo

  • Codice: 200 OK
  • Tipo di contenuto: application/json
{
  "languages": [
    {
      "id": 123,
      "iso": "es",
      "name": "Spanish"
    },
    {
      "id": 124,
      "iso": "fr", 
      "name": "French"
    },
    {
      "id": 125,
      "iso": "de",
      "name": "German"
    }
  ]
}
Schema di risposta
CampoTipoDescrizione
languagesarray[object]L’array di oggetti lingua di destinazione configurati per questo progetto.
languages[].idinteroL’identificatore univoco per la lingua.
languages[].isostringaIl codice lingua ISO 639-1 (ad es. en, es, fr).
languages[].namestringaIl nome leggibile della lingua.

Risposte di errore

Non autorizzato
  • Codice: 401 Unauthorized
{
  "error": "Unauthorized access. Please provide a valid API token."
}
Proibito
  • Codice: 403 Forbidden
{
  "error": "Access denied. Insufficient permissions."
}

Esempi di richieste

Richiesta di base:

curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
  -H "Content-Type: application/json"

Esempi di codice

const response = await fetch('https://app.ptc.wpml.org/api/v1/languages', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log('Available target languages:', data.languages);

// Get language codes only
const languageCodes = data.languages.map(lang => lang.iso);
console.log('Language codes:', languageCodes);
import requests

headers = {
    'Content-Type': 'application/json'
}

response = requests.get('https://app.ptc.wpml.org/api/v1/languages', headers=headers)
data = response.json()

print("Available target languages:")
for language in data['languages']:
    print(f"- {language['name']} ({language['iso']})")

# Get language codes for API calls
language_ids = [lang['id'] for lang in data['languages']]
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://app.ptc.wpml.org/api/v1/languages',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json'
    ],
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);

echo "Available target languages:\n";
foreach ($data['languages'] as $language) {
    echo "- {$language['name']} ({$language['iso']})\n";
}
?>
const axios = require('axios');

const response = await axios.get('https://app.ptc.wpml.org/api/v1/languages', {
  headers: {
    'Content-Type': 'application/json'
  }
});

console.log('Available target languages:');
response.data.languages.forEach(language => {
  console.log(`- ${language.name} (${language.iso})`);
});

// Create a lookup map
const languageMap = response.data.languages.reduce((map, lang) => {
  map[lang.iso] = lang;
  return map;
}, {});

Elenca i formati di file supportati

Recupera tutte le estensioni di file sorgente che puoi caricare su PTC, insieme a tutti i file di traduzione aggiuntivi che PTC può generare per tali input.

Richiesta HTTP

GET https://app.ptc.wpml.org/api/v1/source_files/supported_extensions

Parametri

Questo endpoint non accetta parametri.

Risposte

Risposta di successo

  • Codice: 200 OK
  • Tipo di contenuto: application/json
{
  "extensions": [
    {
      "extension": "po",
      "additional_translation_files": ["mo", "wp", "php"]
    },
    {
      "extension": "pot", 
      "additional_translation_files": ["mo", "wp", "php"]
    },
    {
      "extension": "json",
      "additional_translation_files": []
    },
    {
      "extension": "yml",
      "additional_translation_files": []
    }
    //...
  ]
}
Schema di risposta
CampoTipoDescrizione
extensionsarrayUn array di oggetti di estensione file supportati.
extensions[].extensionstringaL’estensione del file, senza il punto.
extensions[].additional_translation_filesarrayUn array di formati di output aggiuntivi disponibili per questo tipo di estensione.
File di traduzione aggiuntivi

Alcuni tipi di file possono generare file di traduzione extra in altri formati. Ad esempio, i file PO e POT possono produrre:

  • mo – File gettext compilati, utilizzati da molte applicazioni per un caricamento più rapido
  • wp – File di traduzione JavaScript utilizzati in WordPress per l’internazionalizzazione lato client
  • php – File di traduzione memorizzati come array PHP

Esempi di codice

curl -X GET "https://app.ptc.wpml.org/api/v1/source_files/supported_extensions" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
using System.Net.Http;
using System.Threading.Tasks;

var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "YOUR_API_TOKEN");

var response = await client.GetAsync("https://app.ptc.wpml.org/api/v1/source_files/supported_extensions");
var content = await response.Content.ReadAsStringAsync();
const https = require('https');

const options = {
  hostname: 'app.ptc.wpml.org',
  path: '/api/v1/source_files/supported_extensions',
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN'
  }
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(JSON.parse(data)); });
});

req.end();
$.ajax({
  url: 'https://app.ptc.wpml.org/api/v1/source_files/supported_extensions',
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN'
  },
  success: function(data) {
    console.log(data);
  }
});
import okhttp3.*;

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://app.ptc.wpml.org/api/v1/source_files/supported_extensions")
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();

Response response = client.newCall(request).execute();
String responseBody = response.body().string();
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "https://app.ptc.wpml.org/api/v1/source_files/supported_extensions", nil)
    req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://app.ptc.wpml.org/api/v1/source_files/supported_extensions',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer YOUR_API_TOKEN'
  ),
));

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
import requests

headers = {
    'Authorization': 'Bearer YOUR_API_TOKEN'
}

response = requests.get('https://app.ptc.wpml.org/api/v1/source_files/supported_extensions', headers=headers)
print(response.json())
require 'net/http'
require 'uri'

uri = URI('https://app.ptc.wpml.org/api/v1/source_files/supported_extensions')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer YOUR_API_TOKEN'

response = http.request(request)
puts response.body

Scorri verso l'alto