intlayer-react
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseIntlayer React Usage
Intlayer React 使用指南
Core Philosophy
核心理念
Intlayer promotes Component-Level Content Declaration. Instead of a massive global translation file, content is declared in files adjacent to the React components that use them.
*.content.tsIntlayer倡导组件级内容声明。无需庞大的全局翻译文件,内容直接在与使用它的React组件相邻的文件中定义。
*.content.tsWorkflow
操作流程
To create a translated component, you need two files:
- Declaration: A content file (e.g., ) defining the dictionary.
myComponent.content.ts - Implementation: A React component (e.g., ) using the
MyComponent.tsxhook.useIntlayer
要创建一个多语言组件,你需要两个文件:
- 内容声明:一个内容文件(例如)用于定义多语言字典。
myComponent.content.ts - 组件实现:一个React组件(例如),使用
MyComponent.tsx钩子。useIntlayer
1. Declare Content
1. 定义多语言内容
Create a content file using for translations.
File:
t()src/components/MyComponent/myComponent.content.tstypescript
import { t, type Dictionary } from "intlayer";
const content = {
// The 'key' must be unique and matches what you pass to useIntlayer()
key: "my-component",
content: {
text: t({
en: "Welcome",
fr: "Bienvenue",
es: "Hola",
// ... All other locales set in intlayer config file
}),
},
} satisfies Dictionary;
export default content;使用函数创建内容文件。
文件路径:
t()src/components/MyComponent/myComponent.content.tstypescript
import { t, type Dictionary } from "intlayer";
const content = {
// 'key'必须唯一,且与useIntlayer()中传入的参数一致
key: "my-component",
content: {
text: t({
en: "Welcome",
fr: "Bienvenue",
es: "Hola",
// ... 所有在intlayer配置文件中设置的语言环境
}),
},
} satisfies Dictionary;
export default content;Intlayer React Usage
Intlayer React 使用指南
Setup
环境搭建
- Vite and React
- Create React App
- React Router v7
- React Router v7 (fs routes)
- Tanstack Start
- React Native and Expo
- Lynx and React
- Vite与React
- Create React App
- React Router v7
- React Router v7(文件系统路由)
- Tanstack Start
- React Native与Expo
- Lynx与React
useIntlayer Hook
useIntlayer 钩子
tsx
import { useIntlayer } from "react-intlayer";
const MyComponent = () => {
const content = useIntlayer("my-dictionary-key");
return (
<div>
<h1>
{/* Return react node */}
{content.text}
</h1>
{/* Return string (.value) */}
<img src={content.text.value} alt={content.text.value} />
</div>
);
};tsx
import { useIntlayer } from "react-intlayer";
const MyComponent = () => {
const content = useIntlayer("my-dictionary-key");
return (
<div>
<h1>
{/* 返回React节点 */}
{content.text}
</h1>
{/* 返回字符串(.value) */}
<img src={content.text.value} alt={content.text.value} />
</div>
);
};References
参考文档
Environments
环境配置
- Vite and React
- Create React App
- Vite and React (React Router v7)
- Vite and React (React Router v7 FS Routes)
- Vite与React
- Create React App
- Vite与React(React Router v7)
- Vite与React(React Router v7 文件系统路由)
Packages
相关包
- Intlayer Exports
- React Intlayer Provider
- React Intlayer MarkdownRenderer
- React Intlayer Exports
- React Intlayer T
- React Intlayer useDictionary
- React Intlayer useI18n
- React Intlayer useIntlayer
- React Intlayer useLocale
- Intlayer 导出内容
- React Intlayer Provider
- React Intlayer MarkdownRenderer
- React Intlayer 导出内容
- React Intlayer T
- React Intlayer useDictionary
- React Intlayer useI18n
- React Intlayer useIntlayer
- React Intlayer useLocale