Trova i formati di file e le lingue supportati tramite l'API
Usa questi endpoint API per scoprire quali formati di file di origine e lingue di destinazione il tuo progetto supporta prima di creare job di traduzione.
Usando questi endpoint, puoi richiedere:
- Le lingue di destinazione disponibili per il tuo progetto (con i codici ISO)
- I formati dei file di origine che puoi caricare, oltre a eventuali formati di output di traduzione aggiuntivi che PTC può generare per quei file
Tutti gli endpoint richiedono un token API valido:
Authorization: Bearer YOUR_API_TOKENLink rapidi dell'API
Elenca tutte le lingue di destinazione
Recupera l'elenco delle lingue in cui il tuo progetto può essere tradotto. Puoi usare questo endpoint anche per ottenere i codici ISO corretti quando crei job di traduzione dei contenuti.
Richiesta HTTP
GET https://app.ptc.wpml.org/api/v1/languagesParametri
Questo endpoint non accetta alcun parametro.
Risposte
Risposta di successo
{
"languages": [
{
"id": 123,
"iso": "es",
"name": "Spanish"
},
{
"id": 124,
"iso": "fr",
"name": "French"
},
{
"id": 125,
"iso": "de",
"name": "German"
}
]
}Schema della risposta
| Campo | Tipo | Descrizione |
|---|---|---|
languages |
array[object] | L'array degli oggetti della lingua di destinazione configurati per questo progetto. |
languages[].id |
integer | L'identificatore univoco per la lingua. |
languages[].iso |
string | Il codice della lingua (ad es., en, es, fr). La maggior parte è in formato ISO 639-1, ma non tutti: l'elenco contiene anche sottotag regionali e del sistema di scrittura come pt-BR, pt-PT e zh-Hans. Le maiuscole e minuscole sono significative: fai corrispondere i codici restituiti da questo endpoint anziché convertirli in minuscolo. |
languages[].name |
string | Il nome leggibile della lingua. |
Il codice nel percorso di un file è una questione separata dal codice in questa risposta. Dove output_file_path contiene {{lang}}, PTC sostituisce la mappatura della lingua configurata nel progetto per quella lingua, usando il codice di sistema come fallback quando non è impostata alcuna mappatura. Un progetto che mappa il tedesco su deutsch scrive deutsch nel percorso, mentre questo endpoint continua a restituire de, ed entrambi sono corretti.
Risposte di errore
Non autorizzato
{
"error": "Unauthorized access. Please provide a valid API token."
}Accesso negato
{
"error": "Access denied. Insufficient permissions."
}Esempi di richiesta
Richiesta di base:
curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Esempi di codice
curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
-H "Authorization: Bearer YOUR_API_TOKEN"require 'net/http'
require 'uri'
uri = URI('https://app.ptc.wpml.org/api/v1/languages')
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)
require 'json'
data = JSON.parse(response.body)
data['languages'].each { |lang| puts "- #{lang['name']} (#{lang['iso']})" }import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN'
}
response = requests.get('https://app.ptc.wpml.org/api/v1/languages', headers=headers)
data = response.json()
for language in data['languages']:
print(f"- {language['name']} ({language['iso']})")<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://app.ptc.wpml.org/api/v1/languages',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_TOKEN'
],
]);
$response = curl_exec($curl);
curl_close($curl);
$data = json_decode($response, true);
foreach ($data['languages'] as $language) {
echo "- {$language['name']} ({$language['iso']})\n";
}
?>import okhttp3.*;
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://app.ptc.wpml.org/api/v1/languages")
.addHeader("Authorization", "Bearer YOUR_API_TOKEN")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://app.ptc.wpml.org/api/v1/languages", nil)
req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
using System;
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/languages");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);const axios = require('axios');
const response = await axios.get('https://app.ptc.wpml.org/api/v1/languages', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
response.data.languages.forEach(lang => {
console.log(`- ${lang.name} (${lang.iso})`);
});Elenca i formati di file supportati
Recupera tutte le estensioni dei file di origine che puoi caricare su PTC, insieme a eventuali file di traduzione aggiuntivi che PTC può generare per quegli input.
Richiesta HTTP
GET https://app.ptc.wpml.org/api/v1/source_files/supported_extensionsParametri
Questo endpoint non accetta alcun parametro.
Risposte
Risposta di successo
{
"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 della risposta
| Campo | Tipo | Descrizione |
|---|---|---|
extensions |
array | Un array di oggetti delle estensioni di file supportate. |
extensions[].extension |
string | L'estensione del file, senza il punto. |
extensions[].additional_translation_files |
array | Un 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 aggiuntivi in altri formati. Ad esempio, i file PO e POT possono produrre:
mo– File gettext compilati, usati da molte applicazioni per un caricamento più rapidowp– File di traduzione JavaScript usati in WordPress per l'internazionalizzazione lato clientphp– 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"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.bodyimport 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())<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://app.ptc.wpml.org/api/v1/source_files/supported_extensions',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_TOKEN'
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
?>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();
System.out.println(response.body().string());package main
import (
"fmt"
"io"
"net/http"
)
func main() {
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, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
using System;
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();
Console.WriteLine(content);const axios = require('axios');
const response = await axios.get('https://app.ptc.wpml.org/api/v1/source_files/supported_extensions', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
console.log(response.data);