Encontre formatos de arquivo e idiomas suportados via API
Use estes endpoints da API para descobrir quais formatos de arquivo de origem e idiomas de destino o seu projeto suporta antes de criar tarefas de tradução.
Usando estes endpoints, você pode consultar:
- Idiomas de destino disponíveis para o seu projeto (com códigos ISO)
- Formatos de arquivo de origem que você pode enviar, além de quaisquer formatos de saída de tradução adicionais que a PTC pode gerar para esses arquivos
Todos os endpoints exigem um token de API válido:
Authorization: Bearer YOUR_API_TOKENLinks rápidos da API
Listar todos os idiomas de destino
Recupera a lista de idiomas para os quais o seu projeto pode ser traduzido. Você também pode usar este endpoint para obter os códigos ISO corretos ao criar tarefas de tradução de conteúdo.
Requisição HTTP
GET https://app.ptc.wpml.org/api/v1/languagesParâmetros
Este endpoint não aceita nenhum parâmetro.
Respostas
Resposta de sucesso
{
"languages": [
{
"id": 123,
"iso": "es",
"name": "Spanish"
},
{
"id": 124,
"iso": "fr",
"name": "French"
},
{
"id": 125,
"iso": "de",
"name": "German"
}
]
}Esquema da resposta
| Campo | Tipo | Descrição |
|---|---|---|
languages |
array[object] | O array de objetos de idioma de destino configurados para este projeto. |
languages[].id |
integer | O identificador único do idioma. |
languages[].iso |
string | O código de idioma ISO 639-1 (ex.: en, es, fr). |
languages[].name |
string | O nome legível por humanos do idioma. |
Respostas de erro
Não autorizado
{
"error": "Unauthorized access. Please provide a valid API token."
}Proibido
{
"error": "Access denied. Insufficient permissions."
}Exemplos de requisição
Requisição básica:
curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Exemplos de código
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})`);
});Listar formatos de arquivo suportados
Recupera todas as extensões de arquivo de origem que você pode enviar para a PTC, junto com quaisquer arquivos de tradução adicionais que a PTC pode gerar para essas entradas.
Requisição HTTP
GET https://app.ptc.wpml.org/api/v1/source_files/supported_extensionsParâmetros
Este endpoint não aceita nenhum parâmetro.
Respostas
Resposta de sucesso
{
"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 da resposta
| Campo | Tipo | Descrição |
|---|---|---|
extensions |
array | Um array de objetos de extensão de arquivo suportados. |
extensions[].extension |
string | A extensão do arquivo, sem o ponto. |
extensions[].additional_translation_files |
array | Um array de formatos de saída adicionais disponíveis para este tipo de extensão. |
Arquivos de tradução adicionais
Alguns tipos de arquivo podem gerar arquivos de tradução extras em outros formatos. Por exemplo, arquivos PO e POT podem produzir:
mo– Arquivos gettext compilados, usados por muitos aplicativos para um carregamento mais rápidowp– Arquivos de tradução JavaScript usados no WordPress para internacionalização do lado do clientephp– Arquivos de tradução armazenados como arrays PHP
Exemplos de código
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);