核心概念
18ways 对一些事情有明确的看法。一旦这些清楚了,API 的其余部分就很简单了。
基础区域
您的 baseLocale 是您所使用的语言。
如果您的产品文案是用英式英语撰写的,则您的基础区域设置为 en-GB。如果是用美式英语撰写的,则您的基础区域设置为 en-US。
当当前区域设置与基础区域设置匹配时,18ways 会立即返回源文本并跳过翻译工作。
目标区域
您的目标区域是用户当前正在阅读的语言。
在 Vanilla JS 中,您可以通过 engine.setLocale(...) 直接在引擎上设置它。
上下文
上下文是18ways如何将相关的文案分组。
使用它们来保持翻译请求的小巧,并避免将无关的文本混合在一起。
import { create18waysEngine } from '@18ways/core/engine';
const engine = create18waysEngine({
apiKey: 'YOUR_18WAYS_PUBLIC_API_KEY',
baseLocale: 'en-GB',
locale: 'fr-FR',
context: 'marketing',
});
const heroTitle = await engine.t(
'Wrap your text. We handle the rest.',
{
context: 'marketing.hero',
}
);
const pricingTitle = await engine.t(
'Simple pricing',
{
context: 'marketing.pricing',
}
);使用稳定的上下文名称,以便相关的文本保持在一起。
接受的区域设置
18ways 区分如下:
- 一个它可以识别的区域设置,例如
fr-FR - 您的项目实际接受的区域设置
在核心包中,您通常会在自己的应用程序中保留接受的区域设置列表,并在调用 engine.setLocale(...) 之前进行规范化。
const acceptedLocales = [
'en-GB',
'fr-FR',
'de-DE',
];
function setLocale(nextLocale: string) {
const locale = acceptedLocales.includes(
nextLocale
)
? nextLocale
: 'en-GB';
engine.setLocale(locale);
}坚持
运行时适配器使用的区域设置首选项 cookie 是 18ways_locale.
如果您坚持本地化自己并希望与 React 或 Next 层保持兼容,请使用相同的名称。
加载翻译时
@18ways/core 为您提供了更低级的引擎和缓存,但您掌控渲染流程。
共享心理模型
保持模型简单:
- 选择适合您应用的正确软件包。
- 正确设置基础区域设置。
- 保持上下文键的稳定性和意义。
- 让运行时翻译完整的短语,而不是片段。
下一步: 消息格式化