香草JS参考
create18waysEngine(options)
从 @18ways/core/engine 导入。
import { create18waysEngine } from '@18ways/core/engine';常见选项:
| 选项 | 类型 | 笔记 |
|---|---|---|
apiKey | 字符串 | 必填。 |
baseLocale | 字符串 | 源语言环境。 |
区域设置 | 字符串 | 当前目标区域设置。 |
上下文 | 字符串 | 对象 | 默认上下文键。 |
初始翻译 | 翻译 | 可选的起始缓存。 |
apiUrl | 字符串 | 可选的 API 基础覆盖。 |
fetcher | typeof fetch | 自定义获取实现。 |
cacheTtlSeconds | 数字 | 请求缓存的生存时间(TTL)。 |
origin | 字符串 | 源已在服务器端请求中转发。 |
引擎方法
t(text, options?)
翻译一个字符串并返回解析后的值。
setLocale(locale)
更改目标区域设置。
getLocale()
读取当前目标区域设置。
getStore()
访问基础翻译存储。
TranslationStore
engine.getStore() 暴露了底层运行时状态机。store 拥有区域设置状态、
配置、已加载的译文、记住的源字符串,以及阻塞式加载状态。
常见方法:
| 方法 | 笔记 |
|---|---|
获取状态() | 读取当前选定的区域设置、已确定的区域设置、配置和缓存的翻译。 |
hydrate(input) | 将翻译和配置合并到 store 中。适用于 SSR 或自定义引导。 |
dehydrate() | 将商店快照为一个便于合并的 hydration 载荷。 |
加载配置() | 只获取一次已接受的区域设置和回退配置,然后缓存结果。 |
setLocale(locale) | 在商店内启动区域转换。 |
getTranslationSync(input) | 同步读取:要么返回就绪值,要么返回带有回退值的挂起读取。 |
getTranslation(input) | 异步翻译读取,最终会解析为最终翻译后的字符串。 |
isLoading(input?) | 当全局或某个上下文中仍有阻塞翻译工作待处理时,返回 true。 |
waitForIdle(input?) | 当阻塞的翻译工作完成后会解析。传入 timeoutMs 可在达到截止时间后停止等待,同时加载会在后台继续进行。 |
getIdleState(input?) | 返回渲染器使用的、由存储持有的定时等待状态:{timedOut, promise}。 |
挂载(entry) / 卸载(entry) | 针对启用挂载感知垃圾回收的集成的可选挂载跟踪。 |
如果你直接使用 @18ways/core,通常会停留在 engine.t(...) 这一层。只有在你构建自己的渲染运行时或 hydration 层时,才需要用到 store。
t() 选项
| 选项 | 类型 | 笔记 |
|---|---|---|
区域设置 | 字符串 | 覆盖此调用的目标区域设置。 |
baseLocale | 字符串 | 覆盖此调用的基础区域设置。 |
上下文 | 字符串 | 对象 | 覆盖此调用的上下文。 |
变量 | Record<string, unknown> | waysParser 的变量输入。 |
Utility exports
核心包还导出了更低级的辅助工具,例如:
fetchAcceptedLocalesfetchConfig- 区域设置工具
在需要时使用它们,但引擎应该是默认的起点。