מציאת פורמטים של קבצים ושפות נתמכים דרך ה־API
השתמשו בנקודות קצה אלו של ה־API כדי לגלות אילו פורמטים של קובצי מקור ושפות יעד נתמכים בפרויקט שלכם לפני יצירת משימות תרגום.
באמצעות endpoints אלה, תוכלו לברר:
- שפות יעד הזמינות עבור הפרויקט שלכם (עם קודי ISO)
- פורמטים של קובצי מקור שבאפשרותכם להעלות, בנוסף לכל פורמט פלט תרגום נוסף ש־PTC יכולה ליצור עבור קבצים אלה
כל ה־endpoints דורשים טוקן API תקין:
Authorization: Bearer YOUR_API_TOKENקישורים מהירים ל־API
רשימת כל שפות היעד
אחזור רשימת השפות שאליהן ניתן לתרגם את הפרויקט שלכם. תוכלו גם להשתמש ב־endpoint זה כדי לקבל את קודי ה־ISO הנכונים בעת יצירת משימות תרגום תוכן.
בקשת HTTP
GET https://app.ptc.wpml.org/api/v1/languagesפרמטרים
endpoint זה אינו מקבל פרמטרים כלשהם.
תגובות
תגובת הצלחה
{
"languages": [
{
"id": 123,
"iso": "es",
"name": "Spanish"
},
{
"id": 124,
"iso": "fr",
"name": "French"
},
{
"id": 125,
"iso": "de",
"name": "German"
}
]
}סכמת תגובה
| שדה | סוג | תיאור |
|---|---|---|
languages |
array[object] | מערך של אובייקטי שפות יעד המוגדרים עבור פרויקט זה. |
languages[].id |
integer | המזהה הייחודי של השפה. |
languages[].iso |
string | קוד השפה (לדוגמה, en, es, fr). רובם בתקן ISO 639-1, אך לא כולם: הרשימה כוללת גם תת־תגיות של אזור וכתב, כגון pt-BR, pt-PT ו־zh-Hans. יש חשיבות לאותיות רישיות וקטנות (Case) — השתמשו בדיוק בקודי השפה ש־endpoint זה מחזיר, ואל תמירו אותם לאותיות קטנות. |
languages[].name |
string | השם הקריא לאדם של השפה. |
הקוד בנתיב הקובץ הוא נושא נפרד מהקוד בתגובה זו. במקרים שבהם output_file_path מכיל את {{lang}}, PTC מחליפה אותו במיפוי השפות המוגדר של הפרויקט עבור אותה שפה, ועוברת לקוד המערכת כחלופה כאשר לא מוגדר מיפוי. פרויקט שממפה גרמנית ל־deutsch כותב deutsch בנתיב, בעוד ש־endpoint זה ממשיך להחזיר de, ושני המצבים תקינים.
תגובות שגיאה
Unauthorized
{
"error": "Unauthorized access. Please provide a valid API token."
}Forbidden
{
"error": "Access denied. Insufficient permissions."
}בקשות לדוגמה
בקשה בסיסית:
curl -X GET "https://app.ptc.wpml.org/api/v1/languages" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"דוגמאות קוד
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})`);
});רשימת פורמטים נתמכים של קבצים
אחזור כל סיומות קובצי המקור שבאפשרותכם להעלות ל־PTC, יחד עם קבצי תרגום נוספים כלשהם ש־PTC יכולה ליצור עבור קבצים אלה.
בקשת HTTP
GET https://app.ptc.wpml.org/api/v1/source_files/supported_extensionsפרמטרים
endpoint זה אינו מקבל פרמטרים כלשהם.
תגובות
תגובת הצלחה
{
"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": []
}
//...
]
}סכמת תגובה
| שדה | סוג | תיאור |
|---|---|---|
extensions |
array | מערך של אובייקטים של סיומות קבצים נתמכות. |
extensions[].extension |
string | סיומת הקובץ, ללא הנקודה. |
extensions[].additional_translation_files |
array | מערך של פורמטי פלט נוספים הזמינים עבור סוג סיומת זה. |
קבצי תרגום נוספים
סוגי קבצים מסוימים יכולים ליצור קבצי תרגום נוספים בפורמטים אחרים. לדוגמה, קובצי PO ו־POT יכולים להפיק:
mo– קובצי gettext מקומפלים, המשמשים יישומים רבים לטעינה מהירה יותרwp– קובצי תרגום של JavaScript המשמשים ב־WordPress עבור בינאום בצד הלקוחphp– קובצי תרגום המאוחסנים כמערכי PHP
דוגמאות קוד
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);