- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css, js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img, fonts→assets/fonts; 删除 assets/vendor - libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向 - 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入 路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_* - 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化 - 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→ window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel, .zib-slider→.aksrt-slider, zib_menu_options meta 键等 - 自有 CSS 改名: legacy-utilities/compat-vars/footer shell - admin SPA 重建; 契约测试同步(路径/断言/文件更名) - 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用) 验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过; 契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
86 lines
3.4 KiB
JavaScript
86 lines
3.4 KiB
JavaScript
export const i18nSchema = {
|
|
key: 'global.i18n',
|
|
title: '多语言翻译',
|
|
icon: 'fa fas fa-language',
|
|
description: '配置站点语言、语言切换器和翻译管理。',
|
|
defaults: {
|
|
i18n_enabled: false,
|
|
i18n_default_lang: 'zh-CN',
|
|
i18n_switcher_position: 'footer',
|
|
i18n_auto_detect: true,
|
|
i18n_available_langs: 'zh-CN|简体中文\nen|English\nzh-TW|繁體中文\nja|日本語\nko|한국어\nfr|Français\nde|Deutsch\nes|Español\nru|Русский',
|
|
i18n_nomenclature: '',
|
|
i18n_url_strategy: 'query',
|
|
},
|
|
groups: [
|
|
{
|
|
key: 'basic',
|
|
title: '基础配置',
|
|
icon: 'fa fas fa-globe',
|
|
fields: [
|
|
{ key: 'i18n_enabled', label: '启用多语言', type: 'switch', default: false, help: '开启后站点将支持多语言切换' },
|
|
{
|
|
key: 'i18n_default_lang',
|
|
label: '默认语言',
|
|
type: 'select',
|
|
default: 'zh-CN',
|
|
options: [
|
|
{ label: '简体中文', value: 'zh-CN' },
|
|
{ label: 'English', value: 'en' },
|
|
{ label: '繁體中文', value: 'zh-TW' },
|
|
{ label: '日本語', value: 'ja' },
|
|
{ label: '한국어', value: 'ko' },
|
|
{ label: 'Français', value: 'fr' },
|
|
{ label: 'Deutsch', value: 'de' },
|
|
{ label: 'Español', value: 'es' },
|
|
{ label: 'Русский', value: 'ru' },
|
|
],
|
|
dependsOn: { key: 'i18n_enabled', value: true },
|
|
},
|
|
{ key: 'i18n_auto_detect', label: '自动检测浏览器语言', type: 'switch', default: true, dependsOn: { key: 'i18n_enabled', value: true }, help: '基于浏览器 Accept-Language 自动切换(AKSRT 方案,区别于 legacy IP 定位方案)' },
|
|
],
|
|
},
|
|
{
|
|
key: 'languages',
|
|
title: '语言管理',
|
|
icon: 'fa fas fa-language',
|
|
fields: [
|
|
{ key: 'i18n_available_langs', label: '可用语言列表', type: 'textarea', default: 'zh-CN|简体中文\nen|English\nzh-TW|繁體中文\nja|日本語\nko|한국어\nfr|Français\nde|Deutsch\nes|Español\nru|Русский', dependsOn: { key: 'i18n_enabled', value: true }, help: '每行一个语言:语言代码|显示名称(9 种内置语言)' },
|
|
{ key: 'i18n_nomenclature', label: '自定义术语', type: 'code', default: '', dependsOn: { key: 'i18n_enabled', value: true }, help: 'JSON 格式自定义翻译术语(key => 翻译),对齐 legacy nomenclature' },
|
|
],
|
|
},
|
|
{
|
|
key: 'display',
|
|
title: '展示设置',
|
|
icon: 'fa fas fa-eye',
|
|
fields: [
|
|
{
|
|
key: 'i18n_switcher_position',
|
|
label: '语言切换器位置',
|
|
type: 'radio',
|
|
default: 'footer',
|
|
options: [
|
|
{ label: '导航栏', value: 'header' },
|
|
{ label: '页脚', value: 'footer' },
|
|
{ label: '导航栏+页脚', value: 'both' },
|
|
{ label: '隐藏', value: 'none' },
|
|
],
|
|
dependsOn: { key: 'i18n_enabled', value: true },
|
|
},
|
|
{
|
|
key: 'i18n_url_strategy',
|
|
label: 'URL 策略',
|
|
type: 'radio',
|
|
default: 'query',
|
|
options: [
|
|
{ label: '查询参数 (?lang=en)', value: 'query' },
|
|
{ label: '路径前缀 (/en/page)', value: 'path' },
|
|
{ label: '子域名 (en.site.com)', value: 'subdomain' },
|
|
],
|
|
dependsOn: { key: 'i18n_enabled', value: true },
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|