Skip to content

多语言国际化 i18n

Pixelium Design 组件库提供了完整的国际化支持,默认包含简体中文 (zh-cn) 和英文 (en, 默认) 两种语言包。通过 locale 模块,您可以轻松管理应用的多语言功能。

在组件中的多语言在 locale 更新后,会立刻触发响应式更新,例如作为组件使用 Dialog,通过组件静态方法调用的多语言则会在下次调用生效,例如通过 Dialog 上的静态方法唤起对话框,其中默认的标题部分。

ts
// Full import
import { locale } from '@pixelium/web-vue'

// If on-demand import
import { locale } from '@pixelium/web-vue/es'

设置语言 locale.setLocale

设置当前应用的语言环境。

ts
import { locale } from '@pixelium/web-vue'

// Switch to English
locale.setLocale('en')

// Switch to simplified Chinese
locale.setLocale('zh-cn')

查看翻译信息 locale.getMessages

返回指定语言的翻译信息,数据结构是一个值为字符串的嵌套字典对象。

ts
import { locale } from '@pixelium/web-vue'

locale.getMessages('en')

添加语言 / 修改翻译 locale.addMessages

添加或覆盖指定语言的翻译消息。

ts
import { locale } from '@pixelium/web-vue'

// Modify English translations
locale.addMessages('en', {
  dialog: {
    cancel: 'Cancel Operation'
  }
})

// Add French translations as a new language
locale.addMessages('fr', {
  dialog: {
    confirm: 'Soumettre',
    cancel: 'Annuler'
  }
})

辅助方法

locale.getCurrentLang

获取当前设置的语言代码。

ts
import { locale } from '@pixelium/web-vue'

const currentLang = locale.getCurrentLang()
console.log(currentLang) // 'zh-cn' or 'en'

locale.emitter

基于发布订阅模式的监听器,监听语言变化事件。

详细 API 请查阅 mitt

ts
import { locale } from '@pixelium/web-vue'

// Listen for language switch events
locale.emitter.on('lang-change', (lang) => {
  console.log(`Language changed to: ${lang}`)
  // Update application state here
})