更新记录

1.12.27(2023-12-27)

完成wy-core插件适配

1.1.1(2023-02-11)

1.0.1 (2023-02-11)

*兼容vue3,新增file参数,详细看使用说明 ***不再内置md5文件作为默认key编码方法,新增 wyLocale.setOption({keyEncode:md5})方法,从外部传入

1.0.0(2022-06-09)

*新增样例

1.1.0(2023-02-11)

1.0.1 (2023-02-11)

*兼容vue3,新增file参数,详细看使用说明 ***不再内置md5文件作为默认key编码方法,新增 wyLocale.setOption({keyEncode:md5})方法,从外部传入

1.0.0(2022-06-09)

*新增样例

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.4.10 app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

wy-locale uniapp国际化方案

  • 本方案只是针对uniapp现有的国际方案的补充优化
  • 涉及到pages.json manifest.json 等框架内置文件仍使用官方方案
  • 已在安卓/iOS/iPad均有应用,效果还可以,就是不知道对性能是否有影响或者有优化对空间,欢迎留言。

    本方案特点

  • 支持中文或者指定语言作为键值
  • 多语言配置在一个文件如 lang:['中文','english','es']
  • 支持分组词库、公共词库。传入分组key值后优先按分组匹配,其次以公共词库兜底

目录结构

├── wy-locale
│   ├── modules
|   |   ├──app.js
|   |   ├──demo.js
│   ├── utils
|   |   ├── md5.js
│   └── index.js

使用教程参考样例工程

词库文件demo.js参考配置

export default {
    keys:['zh-Hans','en','es'],//中文 英文 西班牙语
    lang:{
        nvue:{
            _translate:[ //分组等公共词库
                ['分组匹配','group','group-es'],
                ['你好','hello','HI'],
                ['分组优先匹配','group first 233','group first es 344'] ,//公共词库优先级最低
                ['分组公共词库','group public']
            ],
            //完整键值 demo.nvue.register
            demokey:['key值精准匹配,需传入文件名作为分组','key demo','key demo-es'],
            groupkey:['分组优先匹配','group first','group first es']
        },
        com:{ //组件
            _translate:[
                ['组件分组匹配','com group','group-es'], 
                ['组件分组优先匹配','com group first 233','group first es 344'] ,//公共词库优先级最低
                ['组件分组公共词库','com group public']
            ],
            demokey:['key值精准匹配,需传入文件名作为分组','key demo','key demo-es'],
            groupkey:['分组优先匹配','group first','group first es']
        },
        locale:{
            auto:['系统','auto'],
            en:['英文','english'],
            'zh-hans':['中文简体','zh-hans'],

        }
    },
    translate:[ //公共词库,中文作为键值
        ['中文公共词库匹配','use zh-cn'],
        ['wy-locale补充方案','lala'],
        ['语言','language'],
        ['应用此设置将重启App','Applying this setting will restart the app']
    ]
}

main.js 初始化

import wyLocale from '@/uni_modules/locale/index'
import locales from '@/locale/custom' //自定义词库,同名键值可以覆盖插件默认词库
let {localeParse,localeInit}=wyLocale
var messageObj=localeParse([locales],'zh-Hans') //使用中文作为键值
uni.$wyLocale=wyLocale.localeInit(messageObj)  //挂载在uni下

使用方法,在页面和组件等methods中定义方法

/**
* 在methods 中定义方法
* @param {*} key 值
* @param {*} isContent 是否传入内容作为键值
* @param {*} group 分组
*/
localeFun(key,isContent=true,group='nvue'){
  return uni.$wyLocale(key,isContent,group) 
},

页面中使用,支持nvue

<view class="title">{{localeFun('中文公共词库匹配',true,'')}}</view>
<view class="title">{{localeFun('分组优先匹配',true,'nvue')}}</view>
<view class="title">{{localeFun('分组公共词库',true,'nvue')}}</view>
<view class="title">{{localeFun('nvue.demokey',false,'demo')}}</view>
<view class="title">{{localeFun('匹配不到原样输出',true,'nvue')}}</view>
<wy-locale-com></wy-locale-com>

组件中使用

<view class="title">{{localeFun('组件分组优先匹配',true,'com')}}</view>
<view class="title">{{localeFun('组件分组公共词库',true,'com')}}</view>
<view class="title">{{localeFun('com.demokey',false,'demo')}}</view>

js中使用直接调用方法即可

详情参考样例方法。 在线文档地址

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问