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_TOKENElenca 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/languagesParametri
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
| Campo | Tipo | Descrizione |
|---|---|---|
languages | array[object] | L’array di oggetti lingua di destinazione configurati per questo progetto. |
languages[].id | intero | L’identificatore univoco per la lingua. |
languages[].iso | stringa | Il codice lingua ISO 639-1 (ad es. en, es, fr). |
languages[].name | stringa | Il 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_extensionsParametri
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
| Campo | Tipo | Descrizione |
|---|---|---|
extensions | array | Un array di oggetti di estensione file supportati. |
extensions[].extension | stringa | 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, utilizzati da molte applicazioni per un caricamento più rapidowp– File di traduzione JavaScript utilizzati in WordPress per l’internazionalizzazione lato clientphp– File di traduzione memorizzati come array PHP
Esempi di codice
- cURL
- C# – HttpClient
- NodeJS – Native
- JavaScript jQuery
- Java – OkHttp
- Go – Native
- PHP – cURL
- Python – httpclient
- Ruby – Net::HTTP
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