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 tâches de traduction.
À l'aide de ces points de terminaison, vous pouvez interroger :
- Langues cibles disponibles pour votre projet (avec les codes ISO)
- Formats de fichiers sources que vous pouvez téléverser, ainsi que les formats de fichiers de sortie supplémentaires 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 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/languagesParamètres
Ce point de terminaison n'accepte aucun paramètre.
Réponses
Réponse en cas de succès
{
"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és pour ce projet. |
languages[].id |
integer | L'identifiant unique de la langue. |
languages[].iso |
string | Le code de la langue (par ex., en, es, fr). La plupart sont au format ISO 639-1, mais pas tous : la liste contient également des sous-étiquettes régionales et d'écritures telles que pt-BR, pt-PT et zh-Hans. La casse est importante — respectez les codes renvoyés par ce point de terminaison plutôt que de les mettre en minuscules. |
languages[].name |
string | Le nom de la langue lisible par un humain. |
Le code dans un chemin de fichier est une question distincte du code de cette réponse. Lorsque output_file_path contient {{lang}}, PTC substitue le mappage de langue configuré du projet pour cette langue, avec un repli sur le code système si aucun mappage n'est défini. Un projet qui mappe l'allemand sur deutsch écrit deutsch dans le chemin, tandis que ce point de terminaison continue de renvoyer de, et les deux sont corrects.
Réponses d'erreur
Non autorisé
{
"error": "Unauthorized access. Please provide a valid API token."
}Interdit
{
"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 tout fichier de traduction supplémentaire 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 en cas de succès
{
"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 pris 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);