חזרה לבלוג
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 לפי שוק בפייתון

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 טוקנים לחודש.