开始使用 Intlayer 和 Express 进行国际化 (i18n)
express-intlayer 是一个强大的国际化 (i18n) 中间件,适用于 Express 应用程序,旨在通过根据客户端的偏好提供本地化响应,使您的后端服务能够全球化访问。
为什么要国际化您的后端?
国际化您的后端对于有效服务全球受众至关重要。它使您的应用程序能够以每个用户的首选语言提供内容和消息。这种能力提升了用户体验,并通过使应用程序更易于访问和更贴近不同语言背景的用户,扩大了应用程序的影响范围。
实际使用场景
以用户语言显示后端错误:当发生错误时,以用户的母语显示消息可以提高理解力并减少挫败感。这对于可能在前端组件(如弹出消息或模态框)中显示的动态错误消息尤为有用。
检索多语言内容:对于从数据库中提取内容的应用程序,国际化确保您可以以多种语言提供这些内容。这对于需要以用户首选语言显示产品描述、文章和其他内容的平台(如电子商务网站或内容管理系统)至关重要。
发送多语言电子邮件:无论是事务性电子邮件、营销活动还是通知,以收件人的语言发送电子邮件可以显著提高参与度和效果。
多语言推送通知:对于移动应用程序,以用户首选语言发送推送通知可以增强互动性和用户留存率。这种个性化处理可以使通知更具相关性和可操作性。
其他通信:来自后端的任何形式的通信,例如短信消息、系统警报或用户界面更新,都因使用用户的语言而受益,从而确保清晰度并提升整体用户体验。
通过国际化后端,您的应用程序不仅尊重文化差异,还更好地与全球市场需求保持一致,从而成为扩展服务全球化的关键步骤。
入门
安装
要开始使用 express-intlayer,请使用 npm 安装该包:
npm install intlayer express-intlayer
配置
通过在项目根目录中创建 intlayer.config.ts 来配置国际化设置:
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH_MEXICO, Locales.SPANISH_SPAIN, ], defaultLocale: Locales.ENGLISH, },};export default config;
Express 应用程序设置
设置您的 Express 应用程序以使用 express-intlayer:
import express, { type Express } from "express";import { intlayer, t } from "express-intlayer";const app: Express = express();// 加载国际化请求处理程序app.use(intlayer());// 路由app.get("/", (_req, res) => { res.send( t({ en: "Example of returned content in English", fr: "Exemple de contenu renvoyé en français", "es-ES": "Ejemplo de contenido devuelto en español (España)", "es-MX": "Ejemplo de contenido devuelto en español (México)", }) );});// 启动服务器app.listen(3000, () => console.log(`Listening on port 3000`));
兼容性
express-intlayer 完全兼容以下工具:
- react-intlayer 适用于 React 应用程序
- next-intlayer 适用于 Next.js 应用程序
- vite-intlayer 适用于 Vite 应用程序
它还可以与各种环境中的任何国际化解决方案无缝协作,包括浏览器和 API 请求。您可以自定义中间件以通过头信息或 Cookie 检测语言环境:
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { // ... 其他配置选项 middleware: { headerName: "my-locale-header", cookieName: "my-locale-cookie", },};export default config;
默认情况下,express-intlayer 将解释 Accept-Language 头信息以确定客户端的首选语言。
有关配置和高级主题的更多信息,请访问我们的文档。
配置 TypeScript
express-intlayer 利用 TypeScript 的强大功能来增强国际化过程。TypeScript 的静态类型确保每个翻译键都被考虑在内,从而减少遗漏翻译的风险并提高可维护性。
确保自动生成的类型(默认位于 ./types/intlayer.d.ts)已包含在您的 tsconfig.json 文件中。
{ // ... 您现有的 TypeScript 配置 "include": [ // ... 您现有的 TypeScript 配置 ".intlayer/**/*.ts", // 包含自动生成的类型 ],}
Git 配置
建议忽略由 Intlayer 生成的文件。这样可以避免将它们提交到您的 Git 仓库中。
为此,您可以将以下指令添加到 .gitignore 文件中:
# 忽略由 Intlayer 生成的文件.intlayer
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接