Creation:2026-01-30Last update:2026-01-30
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "初始文档"v8.0.02026/1/30
此页面的内容已使用 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
文档:adonis-intlayer 中的 t 函数
adonis-intlayer 包中的 t 函数是在 AdonisJS 应用程序中提供本地化响应的核心工具。它通过根据用户的首选语言动态选择内容,简化了国际化 (i18n) 过程。
概述
t 函数用于定义和检索一组给定语言的翻译。它根据客户端的请求设置(如 Accept-Language 标头)自动确定要返回的相应语言。如果首选语言不可用,它会优雅地回退到配置中指定的默认语言区域。
关键特性
- 动态本地化:自动为客户端选择最合适的翻译。
- 回退到默认语言区域:如果客户端的首选语言不可用,则回退到默认语言区域,确保用户体验的连续性。
- 异步上下文:使用 Async Local Storage 在 AdonisJS 请求生命周期内无缝工作。
- TypeScript 支持:为您的翻译强制执行类型安全。
函数签名
typescript
复制代码
复制代码到剪贴板
t(translations: Record<string, any>): any;参数
translations:一个对象,其键为语言区域代码(例如en、fr、es),值为相应的翻译内容。
返回值
- 代表客户端首选语言的内容。
加载中间件
为了确保 t 函数正常工作,您必须在 AdonisJS 应用程序中注册 intlayer 中间件。
start/kernel.ts
复制代码
复制代码到剪贴板
router.use([() => import("adonis-intlayer/middleware")]);使用示例
基础示例
start/routes.ts
复制代码
复制代码到剪贴板
import router from "@adonisjs/core/services/router";import { t } from "adonis-intlayer";router.get("/", async () => { return t({ en: "Welcome!", fr: "Bienvenue !", es: "¡Bienvenido!", });});在控制器中使用
app/controllers/example_controller.ts
复制代码
复制代码到剪贴板
import type { HttpContext } from "@adonisjs/core/http";import { t } from "adonis-intlayer";export default class ExampleController { async index({ response }: HttpContext) { return response.send( t({ en: "Hello from controller", fr: "Bonjour 來自控制器", }) ); }}高级主题
回退机制
如果首选语言区域不可用,t 函数将回退到 intlayer.config.ts 中定义的默认语言区域。
typescript
复制代码
复制代码到剪贴板
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.RUSSIAN, Locales.JAPANESE, Locales.FRENCH, Locales.KOREAN, Locales.CHINESE, Locales.SPANISH, Locales.GERMAN, Locales.ARABIC, Locales.ITALIAN, Locales.ENGLISH_UNITED_KINGDOM, Locales.PORTUGUESE, Locales.HINDI, Locales.TURKISH, Locales.POLISH, Locales.INDONESIAN, Locales.VIETNAMESE, Locales.UKRAINIAN, ], defaultLocale: Locales.ENGLISH, },};export default config;TypeScript 集成
当与定义的字典一起使用时,t 函数是类型安全的。有关更多详细信息,请参阅 TypeScript 文档。