Trouver les formats de fichiers et les langues pris en charge via l’API
Utilisez ces points de terminaison d’API pour découvrir quels formats de fichiers sources et quelles langues cibles votre projet prend en charge avant de créer des travaux de traduction.
À l’aide de 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 tout format de sortie de traduction supplémentaire que PTC peut générer pour ces fichiers
Tous les points de terminaison nécessitent un jeton d’API valide :
Authorization: Bearer YOUR_API_TOKENLiens rapides de l’API
Lister toutes les langues cibles
Récupère la liste des langues vers 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 travaux de traduction de contenu.
Requête HTTP
GET https://app.ptc.wpml.org/api/v1/languagesParamètres
Ce point de terminaison n’accepte aucun paramètre.
Réponses
Réponse réussie
{
"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 d’objets de langues cibles configurées pour ce projet. |
languages[].id |
integer | L’identifiant unique de la langue. |
languages[].iso |
string | Le code de langue ISO 639-1 (par ex., en, es, fr). |
languages[].name |
string | Le nom de la langue en clair. |
Réponses d’erreur
Non autorisé (Unauthorized)
{
"error": "Unauthorized access. Please provide a valid API token."
}Interdit (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 "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Exemples de code
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})`);
});Lister les formats de fichiers pris en charge
Récupère toutes les extensions de fichiers sources que vous pouvez téléverser sur 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_extensionsParamètres
Ce point de terminaison n’accepte aucun paramètre.
Réponses
Réponse réussie
{
"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’extensions de fichiers prises en charge. |
extensions[].extension |
string | 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– Fichiers gettext compilés, utilisés par de nombreuses applications pour un chargement plus rapidewp– Fichiers de traduction JavaScript utilisés dans WordPress pour l’internationalisation côté clientphp– Fichiers de traduction stockés sous forme de tableaux PHP
Exemples de code
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);