Skip to content
全新发布

PDF SDK 与 AI 文档处理

在 GitHub 获取完整的私有化部署SDK 包及 AI 智能文档处理能力,一键部署,快速构建您的文档处理工作流。

本地化

WebViewer UI 使用 i18next 进行国际化。内置六种语言;可在运行时切换并添加自定义语言。

支持的语言

翻译文件位于 packages/webview/public/locales/(构建时复制到 dist/locales/),命名为 translation-<lng>.json,与 i18next-http-backend 加载路径 ./locales/-.json 匹配。

代码语言
en英语(回退)
zh-CN简体中文
zh-TW繁体中文
ja日语
fr法语
th泰语

默认/回退:en。所选语言持久化在 localStoragelanguage 键下。

UI API

UI.setLanguage(language)

运行时切换 UI 语言。异步。

javascript
/**
 * @method UI.setLanguage
 * @param {string} language 默认支持:en、zh-CN、zh-TW、fr、th、ja。
 */
await UI.setLanguage('zh-CN');

内部:await i18next.changeLanguage(language),再 store.setLanguage(language),再持久化到 localStorage['language']。组件通过 i18next-vueuseTranslation() 消费翻译。

UI.addLanguage(language)

向可用集合添加语言资源。

javascript
UI.addLanguage({ /* 语言资源对象 */ });

UI.removeLanguage(language)

从可用集合移除语言。

javascript
UI.removeLanguage('fr');

UI.setLanguages(languages)

替换整个可用语言集合。

javascript
UI.setLanguages([ /* 数组或对象 */ ]);

i18n 初始化原理

活动的初始化器是 packages/webview/src/i18n.js

  • 使用 i18next + i18next-http-backend + i18next-vue
  • 语言选择: localStorage['language'] || localStorage['currentLanguage'] || 'en'
  • 初始化选项: load: 'currentOnly'returnObjects: truefallbackLng: 'en'、命名空间 translation
  • 后端: 通过自定义 XHR 请求器加载 ./locales/-.json,可容忍 Android webview 在 file:// 加载时的 status 0
  • 全局暴露 window.i18next = i18next,并导出 i18nextPromise(在 App/index.vue 中应用渲染前 await)。

packages/webview/src/i18nNext.js 是一个极简的遗留变体(无 HTTP 后端、无 localStorage),不被 main.js 导入,已被 i18n.js 取代。

packages/webview/src/helpers/setupI18n.js 声明了 25 个 [code, displayName] 对的 Languages[] 目录,以及将内部代码映射到 i18next/dayjs 语言代码的 languageRules——可作为扩展 SDK 支持更广泛语言目录的参考。

示例

切换到日语

javascript
await UI.setLanguage('ja');

添加自定义语言(示意)

javascript
UI.addLanguage({
  code: 'ko',
  translations: {
    'header.tools.annotate': '주석',
    /* …完整翻译映射… */
  },
});
await UI.setLanguage('ko');

资源对象的确切结构遵循 i18next 资源结构;完整键集见 translation-en.json

相关