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