Trouvez les formats de fichiers et les langues pris en charge via l’API

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

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
ChampTypeDescription
languagesarray[object]Le tableau des objets de langue cible configurés pour ce projet.
languages[].identierL’identifiant unique de la langue.
languages[].isochaîne de caractèresLe code de langue ISO 639-1 (par exemple, en, es, fr).
languages[].namechaîne de caractèresLe 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
ChampTypeDescription
extensionsarrayUn tableau d’objets d’extension de fichier pris en charge.
extensions[].extensionchaîne de caractèresL’extension de fichier, sans le point.
extensions[].additional_translation_filesarrayUn 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 rapide
  • wp – Des fichiers de traduction JavaScript utilisés dans WordPress pour l’internationalisation côté client
  • php – Des 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"
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

Faire défiler vers le haut