Utilice estos puntos de conexión de la API para descubrir qué formatos de archivo de origen e idiomas de destino admite su proyecto antes de crear trabajos de traducción.
Mediante estos puntos de conexión, puede consultar:
- Idiomas de destino disponibles para su proyecto (con códigos ISO)
- Formatos de archivo de origen que puede cargar, además de cualquier formato de salida de traducción adicional que PTC pueda generar para esos archivos
Todos los puntos de conexión requieren un token de API válido:
Authorization: Bearer YOUR_API_TOKEN
Enlaces rápidos de la API
Listar todos los idiomas de destino
Recupera la lista de idiomas a los que se puede traducir su proyecto. También puede utilizar este punto de conexión para obtener los códigos ISO correctos al crear trabajos de traducción de contenido.
Solicitud HTTP
GET https://app.ptc.wpml.org/api/v1/languages
Parámetros
Este punto de conexión no acepta ningún parámetro.
Respuestas
Respuesta correcta
- Código:
200 OK
- Tipo de contenido:
application/json
{
"languages": [
{
"id": 123,
"iso": "es",
"name": "Spanish"
},
{
"id": 124,
"iso": "fr",
"name": "French"
},
{
"id": 125,
"iso": "de",
"name": "German"
}
]
}
Esquema de respuesta
Campo | Tipo | Descripción |
---|---|---|
languages | array[object] | La matriz de objetos de idioma de destino configurados para este proyecto. |
languages[].id | entero | El identificador único del idioma. |
languages[].iso | cadena | El código de idioma ISO 639-1 (p. ej., en , es , fr ). |
languages[].name | cadena | El nombre legible del idioma. |
Respuestas de error
No autorizado
- Código:
401 Unauthorized
{
"error": "Unauthorized access. Please provide a valid API token."
}
Prohibido
- Código:
403 Forbidden
{
"error": "Access denied. Insufficient permissions."
}
Ejemplo de solicitudes
Solicitud básica:
curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
-H "Content-Type: application/json"
Ejemplos de código
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;
}, {});
Listar los formatos de archivo compatibles
Recupera todas las extensiones de archivo de origen que puede cargar en PTC, junto con cualquier archivo de traducción adicional que PTC pueda generar para esas entradas.
Solicitud HTTP
GET https://app.ptc.wpml.org/api/v1/source_files/supported_extensions
Parámetros
Este punto de conexión no acepta ningún parámetro.
Respuestas
Respuesta correcta
- Código:
200 OK
- Tipo de contenido:
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": []
}
//...
]
}
Esquema de respuesta
Campo | Tipo | Descripción |
---|---|---|
extensions | array | Una matriz de objetos de extensión de archivo compatibles. |
extensions[].extension | cadena | La extensión de archivo, sin el punto. |
extensions[].additional_translation_files | array | Una matriz de formatos de salida adicionales disponibles para este tipo de extensión. |
Archivos de traducción adicionales
Algunos tipos de archivo pueden generar archivos de traducción adicionales en otros formatos. Por ejemplo, los archivos PO y POT pueden producir:
mo
– Archivos gettext compilados, utilizados por muchas aplicaciones para una carga más rápidawp
– Archivos de traducción de JavaScript utilizados en WordPress para la internacionalización del lado del clientephp
– Archivos de traducción almacenados como matrices PHP
Ejemplos de código
- 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