使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "Initial documentation"v9.4.02026/8/23
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接复制文档 Markdown 到剪贴板
Documentation: getIntlayerAsync Function in intlayer
Description
The getIntlayerAsync function picks one dictionary by its key and resolves its content for a given locale, loading that locale alone.
It is the asynchronous counterpart of getIntlayer, meant for the places a dictionary is read outside of rendering — route head / metadata builders, loaders, server functions.
Where getIntlayer pulls in the merged dictionary holding every locale, the build plugins (@intlayer/babel, @intlayer/swc) rewrite this call into getDictionaryAsync(loaderMap, key, locale), pointing it at the per-locale chunks in .intlayer/dynamic_dictionaries/. The bundle therefore only ever carries the locale actually requested.
Without those plugins — an unoptimized build — the call resolves through the synchronous dictionary registry instead: the same content, without the per-locale split.
Key Features:
- Same typed keys, selectors and returned content as
getIntlayer - Loads only the requested locale chunk in optimized builds
- Concurrent calls for the same chunk share a single load
- Safe to use in
asyncmetadata builders, loaders and server functions
Function Signature
复制代码到剪贴板
Parameters
key: DictionaryKeys- Description: The key of the dictionary to read, as declared in your content files.
- Type:
DictionaryKeys— a union of every declared dictionary key. - Required: Yes
localeOrSelector: LocalesValues | DictionarySelector- Description: The locale to interpret the content with, or a selector object for dynamic dictionaries.
'fr'— a locale{ item: 2 }— a collection item (omititemto get every item as an array){ variant: 'black-friday' }— a named variant (omit for thedefaultone){ variant: { id: 'prod_abc', userId: '123' } }— a structured variant- Any selector can carry a locale:
{ item: 2, locale: 'fr' }
- Type:
LocalesValues | DictionarySelector - Required: No (Optional) — defaults to the configured
defaultLocale.
- Description: The locale to interpret the content with, or a selector object for dynamic dictionaries.
plugins: Plugins[]- Description: Custom node transformers replacing the base interpreter plugins. Advanced use only.
- Type:
Plugins[] - Required: No (Optional)
Returns
- Type:
Promise<Content>— a promise resolving to the interpreted content of the dictionary, typed from your declaration.
Example Usage
Basic Usage
复制代码到剪贴板
import { getIntlayerAsync } from "intlayer";
const { title } = await getIntlayerAsync("app", "fr"); // "Bonjour"
In a TanStack Start route head
Because the locale chunk is loaded on demand, head becomes async:
复制代码到剪贴板
In a Next.js generateMetadata
复制代码到剪贴板
In a server function
复制代码到剪贴板
getIntlayer vs getIntlayerAsync
在弹窗中打开表格以清晰地查看所有数据
getIntlayer | getIntlayerAsync | |
|---|---|---|
| Returns | The content | A promise of the content |
| Dictionary loaded | The merged dictionary (all locales) | The chunk of the requested locale only |
| Best suited for | Rendering, synchronous code paths | Metadata, loaders, server functions |
| Requires a plugin? | No | No — the per-locale split needs the build plugins |
Both accept the same arguments and return the same content: switching from one to the other only changes when and how much is loaded.
Related Functions
getIntlayer: Synchronous equivalent reading the merged dictionary.getDictionaryAsync: The lower-level function the build plugins rewrite this call into.getLocale: Detects the locale of an incoming request.
TypeScript
复制代码到剪贴板