بازگشت به وبلاگ
Four regional language code badges — fr-CA, pt-BR, es-MX, en-GB — connecting to a single API endpoint.

اکنون PolyLingo از کدهای زبان منطقه‌ای پشتیبانی می‌کند: fr-CA، pt-BR، es-MX و بیشتر

By Robert M

PolyLingo اکنون از کدهای زبان منطقه‌ای پشتیبانی می‌کند: fr-CA، pt-BR، es-MX و بیشتر

اکنون می‌توانید کدهای گویش منطقه‌ای را مستقیماً به عنوان اهداف ترجمه در PolyLingo ارسال کنید. fr-CA، pt-BR، es-MX، en-GB و چند مورد دیگر اکنون مقادیر معتبری در آرایه targets شما هستند، همراه با یا به جای معادل‌های عمومی آنها.

هیچ تغییری در نحوه فراخوانی API ایجاد نمی‌شود. همان نقطه پایانی، همان شکل درخواست. فقط کدهای معتبر بیشتری برای انتخاب دارید.


چه چیزی اضافه شده است

هفت کد منطقه‌ای جدید مطابق با استاندارد BCP-47:

کدزبان
en-GBانگلیسی (بریتانیا)
fr-CAفرانسوی (کانادا)
es-ESاسپانیایی (اسپانیا)
es-MXاسپانیایی (مکزیک)
pt-PTپرتغالی (پرتغال)
pt-BRپرتغالی (برزیل)
zh-HKچینی (هنگ کنگ)

این‌ها در کنار کد موجود zh-TW (چینی سنتی) قرار دارند که قبلاً از همان قرارداد BCP-47 استفاده می‌کرد. همچنین سقف تعداد اهداف از 36 به 50 افزایش یافته است تا تیم‌هایی که چندین گونه منطقه‌ای را در یک فراخوانی هدف قرار می‌دهند، پشتیبانی شود.


چرا کدهای منطقه‌ای اهمیت دارند

کدهای زبان عمومی (fr، pt، es) زمانی مناسب هستند که مخاطب شما گسترده یا ترکیبی باشد. اما وقتی محصولی را به یک کشور خاص ارسال می‌کنید، عمومی اغلب کافی نیست.

پرتغالی برزیلی و پرتغالی اروپایی در واژگان، املاء و لحن به گونه‌ای متفاوت هستند که برای گویشوران بومی اهمیت دارد. اسپانیایی مکزیکی و اسپانیایی کاستیلی به اندازه‌ای مشابه‌اند که ترجمه عمومی برای هیچ‌کدام کاملاً بیگانه یا کاملاً طبیعی نیست. فرانسوی کانادایی قواعد خاص خود را دارد که از فرانسوی پاریسی به گونه‌ای متفاوت است که برای یک کبکی بلافاصله آشکار است.

اگر به یک بازار خاص می‌فروشید، آن بازار شایسته ترجمه‌ای است که برای آن نوشته شده باشد. کدهای منطقه‌ای این امکان را بدون نیاز به فراخوانی API جداگانه یا جریان کاری جداگانه فراهم می‌کنند.


همان فراخوان، چندین گونه

کدهای عمومی و منطقه‌ای می‌توانند در یک درخواست همزیستی داشته باشند. هر کدام کلید مخصوص به خود را در پاسخ دریافت می‌کنند:

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Your order has been confirmed.",
    "targets": ["fr", "fr-CA", "pt", "pt-BR"]
  }'
{
  "translations": {
    "fr":    "Votre commande a été confirmée.",
    "fr-CA": "Votre commande a été confirmée.",
    "pt":    "O seu pedido foi confirmado.",
    "pt-BR": "O seu pedido foi confirmado."
  }
}

شما چهار کلید دریافت می‌کنید، یکی برای هر کد. اگر fr و fr-CA برای یک رشته خاص خروجی یکسانی تولید کنند، این انتظار می‌رود — آنها در واژگان و لحن جایی که تفاوت معنی‌دار است، متفاوت خواهند بود.


هدف‌گیری فقط یک بازار خاص

اگر برای یک بازار شناخته شده می‌سازید و نیازی به گونه عمومی ندارید، فقط کد منطقه‌ای را ارسال کنید:

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Sign in to your account.",
    "targets": ["en-GB", "es-MX", "pt-BR", "zh-HK"]
  }'

ساختن لیست هدف خاص بازار در Node.js

import { PolyLingo } from '@polylingo/node'

const client = new PolyLingo(process.env.POLYLINGO_API_KEY)

const result = await client.translate({
  content: 'Free shipping on orders over $50.',
  targets: ['es', 'es-MX', 'es-ES', 'pt', 'pt-BR', 'pt-PT'],
})

console.log(result.translations['es-MX']) // اسپانیایی مکزیکی
console.log(result.translations['pt-BR']) // پرتغالی برزیلی

یک درخواست هر دو بازار آمریکای لاتین و ایبری را پوشش می‌دهد. بدون حلقه، بدون دسته‌بندی بر اساس منطقه.


ترجمه فایل‌های JSON به ازای هر بازار در Python

import os, requests

client = requests.Session()
client.headers['Authorization'] = f"Bearer {os.environ['POLYLINGO_API_KEY']}"

markets = {
    'latam':  ['es-MX', 'pt-BR'],
    'europe': ['en-GB', 'fr', 'es-ES', 'pt-PT', 'de', 'it'],
    'asia':   ['zh-HK', 'zh-TW', 'zh', 'ja', 'ko'],
}

content = '{"cta": "Start your free trial"}'

for region, targets in markets.items():
    r = client.post(
        'https://api.usepolylingo.com/v1/translate',
        json={'content': content, 'format': 'json', 'targets': targets},
        timeout=120,
    )
    r.raise_for_status()
    print(f"\n{region.upper()}")
    for code, text in r.json()['translations'].items():
        print(f"  {code}: {text}")

کشف کدهای پشتیبانی شده در زمان اجرا

اگر در حال ساخت یک انتخابگر زبان یا لیست هدف پویا هستید، نیازی به کدگذاری دستی چیزی ندارید. GET /languages فهرست کامل شامل تمام گونه‌های منطقه‌ای را برمی‌گرداند. با فیلتر کردن کدهایی که خط تیره دارند، می‌توانید گویش‌ها را به طور خاص دریافت کنید:

const res = await fetch('https://api.usepolylingo.com/v1/languages')
const { languages } = await res.json()

const dialects = languages.filter(l => l.code.includes('-'))
console.log(dialects)
// [
//   { code: 'en-GB', name: 'English (UK)',           rtl: false },
//   { code: 'fr-CA', name: 'French (Canada)',         rtl: false },
//   { code: 'es-ES', name: 'Spanish (Spain)',         rtl: false },
//   { code: 'es-MX', name: 'Spanish (Mexico)',        rtl: false },
//   { code: 'pt-PT', name: 'Portuguese (Portugal)',   rtl: false },
//   { code: 'pt-BR', name: 'Portuguese (Brazil)',     rtl: false },
//   { code: 'zh-TW', name: 'Chinese (Traditional)',  rtl: false },
//   { code: 'zh-HK', name: 'Chinese (Hong Kong)',     rtl: false },
// ]

چه زمانی از کد عمومی و چه زمانی از کد منطقه‌ای استفاده کنیم

از کد عمومی استفاده کنید (pt، fr، es) وقتی مخاطب شما جغرافیایی متنوع یا نامشخص است، وقتی تازه وارد یک بازار می‌شوید و می‌خواهید پوشش گسترده داشته باشید، یا وقتی محتوا به اندازه‌ای فنی است که تفاوت‌های منطقه‌ای احتمالاً اهمیت ندارند.

از کد منطقه‌ای استفاده کنید (pt-BR، fr-CA، es-MX) وقتی محصول را به یک کشور خاص ارسال می‌کنید، وقتی تجربه محصول به روش‌های دیگر محلی‌سازی شده است (قیمت‌گذاری، ارز، فرمت‌های تاریخ)، وقتی محتوای شما محاوره‌ای یا بازاریابی محور است و لحن اهمیت دارد، یا وقتی می‌دانید کاربران شما تفاوت را متوجه خواهند شد.

این دو رویکرد می‌توانند در یک درخواست همزیستی داشته باشند. یک الگوی رایج این است که کد عمومی را به عنوان پشتیبان و کد منطقه‌ای را برای تجربه بازار خاص استفاده کنید، هر دو در یک پاسخ بازگردانده می‌شوند.


برای کاربران موجود هیچ تغییری ایجاد نمی‌شود

تمام کدهای زبان موجود دقیقاً مانند قبل کار می‌کنند. کدهای جدید افزایشی هستند. اگر در حال حاضر fr را ارسال می‌کنید، همان خروجی را دریافت خواهید کرد. اگر به طور خاص فرانسوی کانادایی می‌خواهید، fr-CA را به اهداف خود اضافه کنید. هر دو می‌توانند در یک فراخوانی بدون تداخل همزیستی داشته باشند.


کلید API خود را در usepolylingo.com دریافت کنید — سطح رایگان شامل 50,000 توکن در ماه است.

اکنون PolyLingo از کدهای زبان منطقه‌ای پشتیبانی می‌کند: fr-CA، pt-BR، es-MX و بیشتر | PolyLingo