Creation:2026-08-23Last update:2026-08-23
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "Initial documentation"v9.4.02026/8/23
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本编辑此文档
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接Copy
复制文档 Markdown 到剪贴板
Documentation: intlayer 中的 getDictionaryAsync 函数
描述
getDictionaryAsync 函数加载字典的单个语言环境块并返回其解释后的内容。
它是 getDictionary 的对应物,用于在 .intlayer/dynamic_dictionaries/ 中发出的每个语言环境加载器映射:它不是接收包含每个语言环境的字典,而是接收加载器映射并仅等待请求的语言环境所需的块。
在应用程序代码中,你通常会调用getIntlayerAsync,而不是这个函数。构建插件 会将每个getIntlayerAsync('key', locale)调用重写为getDictionaryAsync(loaderMap, 'key', locale)调用。getDictionaryAsync会被导出供自定义加载器和为自己的加载器映射构建工具使用。
主要特性:
- 仅加载请求的语言环境块
- 支持普通(
locale → loader)和限定(locale → qualifierId → loader)加载器映射 - 对同一块的并发加载进行去重,并缓存解决的内容
- 失败的加载会从缓存中清除,以便后续调用重新尝试该块
函数签名
typescript
复制代码
复制代码到剪贴板
参数
dictionaryLoaders: PlainDynamicLoaderMap | QualifiedDynamicLoaderMap- 描述: 按语言的加载器映射。普通映射将语言与加载器关联;限定映射(用于集合和变体)将语言与限定符 id 关联,然后与加载器关联。对于限定映射,仅加载选择器指向的块。
- 类型:
PlainDynamicLoaderMap<T> | QualifiedDynamicLoaderMap - 必需: 是
key: string- 描述: 字典键,用于命名块缓存。
- 类型:
string - 必需: 是
localeOrSelector: LocalesValues | DictionarySelector- 描述: 用于解释内容的语言,或选择器对象(
{ item }、{ variant },可选择带有locale)。参见动态字典。 - 类型:
LocalesValues | DictionarySelector - 必需: 否(可选)— 默认为配置的
defaultLocale。
- 描述: 用于解释内容的语言,或选择器对象(
plugins: Plugins[]- 描述: Node 转换器。默认为基础解释器集。
- 类型:
Plugins[] - 必需: 否(可选)
返回值
- Type:
Promise<Content>— 一个 promise,解析为加载的 chunk 的解释内容。 - Description: 当 map 对请求的 locale 及其任何 fallback 都没有发出 chunk 时,解析为
null,镜像缺失的合格坐标如何解析。
使用示例
使用生成的 loader map
typescript
复制代码
复制代码到剪贴板
import { getDictionaryAsync } from "intlayer";
import appLoaderMap from "../.intlayer/dynamic_dictionaries/app";
const { title } = await getDictionaryAsync(appLoaderMap, "app", "fr");
使用自定义加载器映射
typescript
复制代码
复制代码到剪贴板
在合格的map上使用选择器
typescript
复制代码
复制代码到剪贴板
行为注释
缓存和去重
缓存存储每个 key + locale + selector 三元组的 promise,因此对同一 chunk 的并发调用会等待单次加载。被拒绝的加载会从缓存中移除,因此失败的 chunk 会在下次调用时重试,而不是永远重放同样的失败。
区域设置回退
普通加载器映射沿着与同步模式相同的回退链进行遍历:首先是请求的区域设置,然后是其回退,如果没有发出任何块,则为 null。
相关函数
getIntlayerAsync: 应用程序调用的函数;build 插件将其重写为getDictionaryAsync。getDictionary: 同步对应函数,接收完整的字典。- 动态字典: 集合和变体,以及它们生成的 loader 映射。
TypeScript
typescript
复制代码
复制代码到剪贴板
