核心概念

18ways 对一些事情有明确的看法。一旦这些清楚了,API 的其余部分就很简单了。

基础区域

您的 baseLocale 是您所使用的语言。

如果您的产品文案是用英式英语撰写的,则您的基础区域设置为 en-GB。如果是用美式英语撰写的,则您的基础区域设置为 en-US

当当前区域设置与基础区域设置匹配时,18ways 会立即返回源文本并跳过翻译工作。

目标区域

您的目标区域是用户当前正在阅读的语言。

在 Next.js 中,适配器可以从中间件、cookie、路径名和浏览器偏好设置中解析它。

上下文

上下文是18ways如何将相关的文案分组。

使用它们来保持翻译请求的小巧,并避免将无关的文本混合在一起。

tsx
'use client';
 
import { Ways } from '@18ways/react';
 
export function MarketingPage() {
  return (
    <Ways context="marketing">
      <Ways context="hero">
        <Hero />
      </Ways>
      <Ways context="pricing">
        <Pricing />
      </Ways>
    </Ways>
  );
}

嵌套的 Ways 范围组合成一个上下文路径。 marketing 加上 hero 变成 marketing.hero.

接受的区域设置

18ways 区分如下:

  • 一个它可以识别的区域设置,例如 fr-FR
  • 您的项目实际接受的区域设置

运行时可以从 API 获取接受的区域设置列表,然后根据该列表规范化传入的区域设置值。

这就是为什么 @18ways/next 可以做一些合理的事情,比如将 /en-US/docs 重定向到 /en-GB/docs 当只有 en-GB 被启用时。

ts
import { init as initWays } from '@18ways/next/server';
 
const ways = initWays({
  apiKey: 'YOUR_18WAYS_PUBLIC_API_KEY',
  baseLocale: 'en-GB',
  acceptedLocales: [
    'en-GB',
    'fr-FR',
    'de-DE',
  ],
  pathRouting: {
    exclude: ['/dashboard', '/__design', '/__email'],
  },
});

坚持

运行时使用的区域设置首选项 cookie 是 18ways_locale.

加载翻译时

@18ways/next 可以在服务器上解析区域设置,种子上下文翻译,并发出翻译后的元数据。

共享心理模型

保持模型简单:

  1. 选择适合您应用的正确软件包。
  2. 正确设置基础区域设置。
  3. 保持上下文键的稳定性和意义。
  4. 让运行时翻译完整的短语,而不是片段。

下一步: 消息格式化