ts-intl
章节导航:命名空间与作用域

命名空间与作用域

按功能模块或页面组织翻译词条,可以避免键名冲突,并简化调用路径。

局部作用域翻译器

在调用 getTranslations 时传入第二个参数作为命名空间,返回限定在该命名空间作用域下的翻译函数:

const messages = {
  admin: {
    dashboard: {
      metrics: "实时监控指标",
      refresh: "刷新数据",
    },
  },
} as const;

// 绑定到多级嵌套命名空间
const t = getTranslations("zh-Hans", "admin.dashboard");

t("metrics"); // "实时监控指标"
t("refresh"); // "刷新数据"

全局扁平翻译器

若省略命名空间参数,getTranslations 返回根翻译器,支持通过点分隔路径访问嵌套键:

const t = getTranslations("zh-Hans");

t("admin.dashboard.metrics"); // "实时监控指标"

提取原始数据 t.raw()

需要直接获取配置对象或数组等原始结构时,可以使用 t.raw()

const messages = {
  config: {
    maxRetries: 3,
    endpoints: ["api-1.example.com", "api-2.example.com"],
  },
} as const;

const t = getTranslations("zh-Hans");

const endpoints = t.raw("config.endpoints");
// 推导类型: readonly ["api-1.example.com", "api-2.example.com"]

检查键是否存在 t.has()

检测指定键在当前语言或回退语言中是否存在,不会触发缺失键警告:

const t = getTranslations("zh-Hans", "features");

if (t.has("betaFeatureBadge")) {
  renderBadge(t("betaFeatureBadge"));
}