Unterstützte Dateiformate und Sprachen über die API finden
Verwenden Sie diese API-Endpunkte, um herauszufinden, welche Quelldateiformate und Zielsprachen Ihr Projekt unterstützt, bevor Sie Übersetzungsaufträge erstellen.
Über diese Endpunkte können Sie Folgendes abfragen:
- Zielsprachen, die für Ihr Projekt verfügbar sind (mit ISO-Codes)
- Quelldateiformate, die Sie hochladen können, sowie alle zusätzlichen Übersetzungs-Ausgabeformate, die PTC für diese Dateien generieren kann
Alle Endpunkte erfordern ein gültiges API-Token:
Authorization: Bearer YOUR_API_TOKENAPI-Quick-Links
Alle Zielsprachen auflisten
Ruft die Liste der Sprachen ab, in die Ihr Projekt übersetzt werden kann. Sie können diesen Endpunkt auch verwenden, um die korrekten ISO-Codes zu erhalten, wenn Sie Inhaltsübersetzungsaufträge erstellen.
HTTP-Anfrage
GET https://app.ptc.wpml.org/api/v1/languagesParameter
Dieser Endpunkt akzeptiert keine Parameter.
Antworten
Erfolgreiche Antwort
{
"languages": [
{
"id": 123,
"iso": "es",
"name": "Spanish"
},
{
"id": 124,
"iso": "fr",
"name": "French"
},
{
"id": 125,
"iso": "de",
"name": "German"
}
]
}Antwort-Schema
| Feld | Typ | Beschreibung |
|---|---|---|
languages |
array[object] | Das Array von Zielsprachen-Objekten, die für dieses Projekt konfiguriert sind. |
languages[].id |
integer | Die eindeutige Kennung für die Sprache. |
languages[].iso |
string | Der ISO 639-1 Sprachcode (z. B. en, es, fr). |
languages[].name |
string | Der lesbare Name der Sprache. |
Fehlerantworten
Nicht autorisiert (Unauthorized)
{
"error": "Unauthorized access. Please provide a valid API token."
}Verboten (Forbidden)
{
"error": "Access denied. Insufficient permissions."
}Beispiel-Anfragen
Basis-Anfrage:
curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Code-Beispiele
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})`);
});Unterstützte Dateiformate auflisten
Ruft alle Quelldateierweiterungen ab, die Sie zu PTC hochladen können, zusammen mit allen zusätzlichen Übersetzungsdateien, die PTC für diese Eingaben generieren kann.
HTTP-Anfrage
GET https://app.ptc.wpml.org/api/v1/source_files/supported_extensionsParameter
Dieser Endpunkt akzeptiert keine Parameter.
Antworten
Erfolgreiche Antwort
{
"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": []
}
//...
]
}Antwort-Schema
| Feld | Typ | Beschreibung |
|---|---|---|
extensions |
array | Ein Array von unterstützten Dateierweiterungs-Objekten. |
extensions[].extension |
string | Die Dateierweiterung ohne den Punkt. |
extensions[].additional_translation_files |
array | Ein Array von zusätzlichen Ausgabeformaten, die für diesen Erweiterungstyp verfügbar sind. |
Zusätzliche Übersetzungsdateien
Einige Dateitypen können zusätzliche Übersetzungsdateien in anderen Formaten generieren. Zum Beispiel können PO- und POT-Dateien Folgendes erzeugen:
mo– Kompilierte gettext-Dateien, die von vielen Anwendungen für schnelleres Laden verwendet werdenwp– JavaScript-Übersetzungsdateien, die in WordPress für die clientseitige Internationalisierung verwendet werdenphp– Als PHP-Arrays gespeicherte Übersetzungsdateien
Code-Beispiele
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);