Utilisez ces points de terminaison API pour découvrir les formats de fichiers sources et les langues cibles pris en charge par votre projet avant de créer des tâches de traduction.
En utilisant ces points de terminaison, vous pouvez interroger :
- Les langues cibles disponibles pour votre projet (avec les codes ISO)
- Les formats de fichiers sources que vous pouvez téléverser, ainsi que tous les formats de sortie de traduction supplémentaires que PTC peut générer pour ces fichiers
Tous les points de terminaison nécessitent un jeton API valide :
Authorization: Bearer YOUR_API_TOKEN
Liens rapides de l’API
Lister toutes les langues cibles
Récupère la liste des langues dans lesquelles votre projet peut être traduit. Vous pouvez également utiliser ce point de terminaison pour obtenir les codes ISO corrects lors de la création de tâches de traduction de contenu.
Requête HTTP
GET https://app.ptc.wpml.org/api/v1/languages
Paramètres
Ce point de terminaison n’accepte aucun paramètre.
Réponses
Réponse de succès
- Code :
200 OK
- Type de contenu :
application/json
{
"languages": [
{
"id": 123,
"iso": "es",
"name": "Spanish"
},
{
"id": 124,
"iso": "fr",
"name": "French"
},
{
"id": 125,
"iso": "de",
"name": "German"
}
]
}
Schéma de réponse
Champ | Type | Description |
---|---|---|
languages | array[object] | Le tableau des objets de langue cible configurés pour ce projet. |
languages[].id | entier | L’identifiant unique de la langue. |
languages[].iso | chaîne de caractères | Le code de langue ISO 639-1 (par exemple, en , es , fr ). |
languages[].name | chaîne de caractères | Le nom de la langue, lisible par l’utilisateur. |
Réponses d’erreur
Non autorisé
- Code :
401 Unauthorized
{
"error": "Unauthorized access. Please provide a valid API token."
}
Interdit
- Code :
403 Forbidden
{
"error": "Access denied. Insufficient permissions."
}
Exemples de requêtes
Requête de base :
curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
-H "Content-Type: application/json"
Exemples de code
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;
}, {});
Lister les formats de fichiers pris en charge
Récupère toutes les extensions de fichiers sources que vous pouvez téléverser vers PTC, ainsi que tous les fichiers de traduction supplémentaires que PTC peut générer pour ces entrées.
Requête HTTP
GET https://app.ptc.wpml.org/api/v1/source_files/supported_extensions
Paramètres
Ce point de terminaison n’accepte aucun paramètre.
Réponses
Réponse de succès
- Code :
200 OK
- Type de contenu :
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": []
}
//...
]
}
Schéma de réponse
Champ | Type | Description |
---|---|---|
extensions | array | Un tableau d’objets d’extension de fichier pris en charge. |
extensions[].extension | chaîne de caractères | L’extension de fichier, sans le point. |
extensions[].additional_translation_files | array | Un tableau de formats de sortie supplémentaires disponibles pour ce type d’extension. |
Fichiers de traduction supplémentaires
Certains types de fichiers peuvent générer des fichiers de traduction supplémentaires dans d’autres formats. Par exemple, les fichiers PO et POT peuvent produire :
mo
– Des fichiers gettext compilés, utilisés par de nombreuses applications pour un chargement plus rapidewp
– Des fichiers de traduction JavaScript utilisés dans WordPress pour l’internationalisation côté clientphp
– Des fichiers de traduction stockés sous forme de tableaux PHP
Exemples de code
- 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