UNPKG

weapp-vite

Version:

weapp-vite 一个现代化的小程序打包工具

45 lines (30 loc) 2.1 kB
# First-party i18n `weapp.i18n` 提供微信小程序构建期 locale 编译、WXS 模板查询和逻辑层语言切换。运行时与 catalog 编译语义来自独立包 `@weapp-vite/i18n`,weapp-vite 负责扫描、模板改写、分包归属、Vite/Rolldown emit 和 HMR。 ```ts import { defineConfig } from 'weapp-vite/config' export default defineConfig({ weapp: { i18n: { defaultLocale: 'zh-CN', fallbackLocale: 'en-US', }, }, }) ``` 默认扫描 `srcRoot` 下的 `**/i18n/*.json`,按文件名识别 locale。嵌套对象会展开为点路径;重复叶子 key、非字符串叶子、缺失 default/fallback locale 会直接构建失败。 Native Component 和使用 Component 构造的 Page 都直接使用 `i18n.behavior````ts import { i18n } from 'weapp-vite/i18n' Component({ behaviors: [i18n.behavior] }) // 仅用于传统 Page({...}) 项目 i18n.page({}) i18n.global.locale = 'en-US' ``` Vue/Wevu 组件使用 `defineOptions({ behaviors: [i18n.behavior] })`。模板直接调用: ```wxml <view>{{ t('common.greeting', { user }) }}</view> ``` 运行时导出构建实例 `i18n`,并提供 `i18n.global.t()``i18n.global.locale``i18n.global.fallbackLocale``i18n.global.availableLocales``i18n.global.onLocaleChange()`。写入未构建语言会抛出 `RangeError`;主包和普通分包共享实例,独立分包使用自己的实例。该能力不自动持久化 storage;`i18n.page()` 会显式组合传统 Page 的 `onLoad` / `onUnload`## 不使用 weapp-vite 原生微信小程序可以直接安装 `@weapp-vite/i18n`,运行 `weapp-i18n compile` 生成 `i18n/locales.js``i18n/locales.wxs`,再通过 `createI18n({ locale, fallbackLocale, messages })` 创建应用内实例。独立包同时提供 CommonJS、ESM、类型、`miniprogram` 入口和 `@weapp-vite/i18n/compiler`;完整示例见 [@weapp-vite/i18n](https://vite.weapp.dev/packages/i18n)。 v1 只编译 `{name}``{user.name}` 占位符,不支持 ICU/MessageFormat、复数、select、日期或数字格式化。当前只支持微信平台。