
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']) // 巴西葡萄牙语
一次请求覆盖拉丁美洲和伊比利亚市场。无需循环,也无需按区域分批。
在 Python 中按市场翻译 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: '英语(英国)', rtl: false },
// { code: 'fr-CA', name: '法语(加拿大)', rtl: false },
// { code: 'es-ES', name: '西班牙语(西班牙)', rtl: false },
// { code: 'es-MX', name: '西班牙语(墨西哥)', rtl: false },
// { code: 'pt-PT', name: '葡萄牙语(葡萄牙)', rtl: false },
// { code: 'pt-BR', name: '葡萄牙语(巴西)', rtl: false },
// { code: 'zh-TW', name: '中文(繁体)', rtl: false },
// { code: 'zh-HK', name: '中文(香港)', rtl: false },
// ]
何时使用通用代码,何时使用区域代码
使用通用代码(pt、fr、es)当您的受众地理分布广泛或未知,刚进入某个市场且需要广泛覆盖,或者内容足够技术化,区域差异不大时。
使用区域代码(pt-BR、fr-CA、es-MX)当您面向特定国家发布产品,产品体验在其他方面本地化(定价、货币、日期格式),内容偏向对话或营销,语体很重要,或者您知道用户会注意到差异时。
这两种方式可以在同一请求中共存。常见模式是将通用代码作为后备,区域代码用于特定市场体验,两者在一次响应中返回。
现有用户无需担心
所有现有语言代码继续按原样工作。新增代码是附加的。如果您当前传递 fr,仍会得到相同输出。如果您需要加拿大法语,添加 fr-CA 到您的目标列表即可。两者可以在同一次调用中共存,互不冲突。
在 usepolylingo.com 获取您的 API 密钥 — 免费套餐每月包含 50,000 个令牌。