Trova i formati di file e le lingue supportate tramite l'API
Usa questi endpoint API per scoprire quali formati di file di origine 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 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 API token valido:
Authorization: Bearer YOUR_API_TOKENLink rapidi API
Elenca tutte le lingue di destinazione
Recupera l'elenco delle lingue in cui il tuo progetto può essere tradotto. Puoi anche usare questo endpoint per ottenere i codici ISO corretti quando crei lavori 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 di oggetti lingua di destinazione configurati per questo progetto. |
languages[].id |
integer | L'identificatore univoco della lingua. |
languages[].iso |
string | Il codice lingua ISO 639-1 (es. en, es, fr). |
languages[].name |
string | Il nome della lingua leggibile dall'utente. |
Risposte di errore
Unauthorized
{
"error": "Unauthorized access. Please provide a valid API token."
}Forbidden
{
"error": "Access denied. Insufficient permissions."
}Esempi di richieste
Richiesta 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 estensione di file supportati. |
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 extra 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);