ব্লগে ফিরে যান
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 নিয়ম অনুসরণ করছিল। লক্ষ্য সংখ্যা ৩৬ থেকে বাড়িয়ে ৫০ করা হয়েছে যাতে একাধিক আঞ্চলিক ভ্যারিয়েন্ট একসাথে হ্যান্ডেল করা যায়।


কেন আঞ্চলিক কোড গুরুত্বপূর্ণ

সাধারণ ভাষার কোড (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": "আপনার অর্ডার নিশ্চিত হয়েছে।",
    "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": "আপনার অ্যাকাউন্টে সাইন ইন করুন।",
    "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: '৫০ ডলারের বেশি অর্ডারে ফ্রি শিপিং।',
  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": "আপনার ফ্রি ট্রায়াল শুরু করুন"}'

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-এ — ফ্রি টিয়ারে প্রতি মাসে ৫০,০০০ টোকেন অন্তর্ভুক্ত।