最近更新时间:2022.01.10 15:03:59
首次发布时间:2022.01.10 15:03:59
import WebBackend from '@volcengine/i18n/dist/backend/web' const web = new WebBackend({...}) web.load('zh', (err, data) => { // data 数据结构:{ key: value } }) // 然后注入到对应的intl框架中
import NodeBackend from '@volcengine/i18n/dist/backend/node' const node = new WebBackend({...}) node.load('zh', (err, data) => { // data 数据结构:{ key: value } }) // 然后注入到对应的intl框架中
自定义扩展必须实现以下四个方法
获取签名接口
参数名 | 描述 |
---|---|
url | 鉴权文案接口地址 |
callback | (err, data) => void,有错误传err,正常请求传data,data结构: string |
拉取文案核心方案
参数名 | 描述 |
---|---|
url | 拉取文案接口地址 |
headers | 主要是 { Authorization: '' } 用于接口鉴权,需要放于请求头中 |
callback | (err, data) => void,有错误传err,正常请求传data,data结构: { key: value } |
保存文案进本地缓存,可以同时存入一个过期时间
参数名 | 描述 |
---|---|
key | 缓存key |
value | value结构: { key: value } |
获取本地缓存
参数名 | 描述 |
---|---|
key | 缓存key |
callback | (err, data) => void,有错误传err,正常请求传data,data结构: { key: value } |
import BaseBackend from '@volcengine/i18n/dist/backend/base' class OtherBackend extends BaseBackend { fetch(url, headers, callback) { throw new StarlingError('fetch() needs to be implemented.') } auth(url, callback) { throw new StarlingError('auth() needs to be implemented.') } getCache(key: string, callback) { try { const { expiredTime, value } = JSON.parse(localStorage.getItem(key) || '{}') if (Date.now() - expiredTime < this.options.expiredTime && Object.keys(value).length) { return callback(null, value) } callback(null, undefined) } catch (error) { callback(error, undefined) } } setCache(key, value) { try { const data = { expiredTime: Date.now(), value } localStorage.setItem(key, JSON.stringify(data)) } catch (error) { // } } }