Creation:2026-06-12Last update:2026-06-12
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "发布变体字典功能"v9.0.02026/6/12
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本Edit this doc
If you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy
Copy doc Markdown to clipboard
变体
变体(Variant)是一组共享相同字典键(key)但声明不同变体名称(variant)的内容文件。Intlayer 会根据传递给 useIntlayer 的选择器提供合适的文件。
声明变体
每个文件代表一个命名替代方案。如果省略 variant(或将其设置为 "default"),则表示它是默认(回退)变体。
hero-banner.content.ts
复制代码
复制代码到剪贴板
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "hero-banner",
variant: "default",
content: {
headline: t({
en: "Build faster with Intlayer",
fr: "Développez plus vite avec Intlayer",
}),
cta: t({ en: "Get started", fr: "Commencer" }),
},
} satisfies Dictionary;
export default dictionary;hero-banner.black-friday.content.ts
复制代码
复制代码到剪贴板
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "hero-banner",
variant: "black_friday",
content: {
headline: t({
en: "50 % off — today only",
fr: "−50 % — aujourd'hui seulement",
}),
cta: t({ en: "Shop now", fr: "Acheter maintenant" }),
},
} satisfies Dictionary;
export default dictionary;使用变体
默认变体
Hero.tsx
复制代码
复制代码到剪贴板
import { useIntlayer } from "react-intlayer";
export const Hero = () => {
const { headline, cta } = useIntlayer("hero-banner");
// → 默认变体
return (
<section>
<h1>{headline}</h1>
<a>{cta}</a>
</section>
);
};命名变体
tsx
复制代码
复制代码到剪贴板
const { headline, cta } = useIntlayer("hero-banner", { variant: "black_friday",});使用显式语言环境的命名变体
tsx
复制代码
复制代码到剪贴板
const content = useIntlayer("hero-banner", { variant: "black_friday", locale: "zh",});典型使用场景
- 由实验键值驱动的文案 A/B 测试
- 季节性或促销横幅
- 受功能标志(feature flags)控制的消息文案
- 针对特定区域的营销活动