Skip to content

Commit 3d8bdff

Browse files
committed
feat: support flatten i18n json format for js widget
Signed-off-by: lileirjyb <lileirjyb@vivo.com>
1 parent 44397bd commit 3d8bdff

4 files changed

Lines changed: 63 additions & 2 deletions

File tree

core/framework/src/dsls/xvm/plugin-i18n/index.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,20 +106,60 @@ class PluginI18n {
106106
return null
107107
}
108108
for (let i = 0, len = resources.length; i < len; i++) {
109-
const ret = this._interpolate(locale, resources[i], key, host, interpolateMode, params, [key])
109+
let ret
110+
if (global.isRpkCardMinPlatformVersionGEQ(2000, host)) {
111+
console.warn(
112+
`### App Framework ### i18n:读取卡片多语言资源,key: ${key}, locale: ${locale}`
113+
)
114+
ret = this._interpolateFlatten(locale, resources[i], key, host, interpolateMode, params, [
115+
key
116+
])
117+
} else {
118+
console.warn(`### App Framework ### i18n:读取多语言资源,key: ${key}, locale: ${locale}`)
119+
ret = this._interpolate(locale, resources[i], key, host, interpolateMode, params, [key])
120+
}
110121
if (!isNull(ret)) {
111122
return ret
112123
}
113124
}
114125
return null
115126
}
116127

128+
_interpolateFlatten(locale, jsonObject, key, host, interpolateMode, params, visitedLinkStack) {
129+
if (!jsonObject) {
130+
return null
131+
}
132+
133+
const keyRet = jsonObject[key]
134+
return this._interpolateCore(
135+
locale,
136+
key,
137+
host,
138+
interpolateMode,
139+
params,
140+
visitedLinkStack,
141+
keyRet
142+
)
143+
}
144+
117145
_interpolate(locale, jsonObject, key, host, interpolateMode, params, visitedLinkStack) {
118146
if (!jsonObject) {
119147
return null
120148
}
121149

122150
const keyRet = this._path.getPathValue(jsonObject, key)
151+
return this._interpolateCore(
152+
locale,
153+
key,
154+
host,
155+
interpolateMode,
156+
params,
157+
visitedLinkStack,
158+
keyRet
159+
)
160+
}
161+
162+
_interpolateCore(locale, key, host, interpolateMode, params, visitedLinkStack, keyRet) {
123163
if (isPlainObject(keyRet) || Array.isArray(keyRet)) {
124164
return keyRet
125165
}

core/framework/src/infras/dock/page/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class XPage extends ModuleHost {
3838
this._visible = false
3939
this._meta = Object.assign({ query }, intent, meta)
4040
this._orientation = intent.orientation
41+
this._currentPageName = intent.currentPageName
4142
this.nextTickCallbacks = [] // nextTick的回调函数数组
4243
}
4344

@@ -53,6 +54,10 @@ class XPage extends ModuleHost {
5354
return this._orientation
5455
}
5556

57+
get currentPageName() {
58+
return this._currentPageName
59+
}
60+
5661
get pageName() {
5762
return this._meta.name
5863
}

core/framework/src/infras/platform/interface.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
import {
2121
registerManifest,
2222
isRpkMinPlatformVersionGEQ,
23+
isRpkCardMinPlatformVersionGEQ,
2324
getManifestField,
2425
isRpkDebugMode
2526
} from './manifest'
@@ -155,6 +156,7 @@ export default {
155156
registerManifest,
156157
getManifestField,
157158
isRpkMinPlatformVersionGEQ,
159+
isRpkCardMinPlatformVersionGEQ,
158160
isRpkDebugMode
159161
}
160162
}

core/framework/src/infras/platform/manifest.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ function isRpkMinPlatformVersionGEQ(val) {
5555
return manifestJSON.minPlatformVersion >= val
5656
}
5757

58+
function isRpkCardMinPlatformVersionGEQ(val, vm) {
59+
const widgetKey = vm._page.currentPageName()
60+
const widgetsOption = (manifestJSON.router && manifestJSON.router.widgets) || {}
61+
const widgetManiest = widgetsOption[widgetKey]
62+
63+
return widgetManiest.minCardPlatformVersion >= val
64+
}
65+
5866
let mode = null
5967

6068
function isRpkDebugMode() {
@@ -66,4 +74,10 @@ function isRpkDebugMode() {
6674
return mode
6775
}
6876

69-
export { registerManifest, isRpkMinPlatformVersionGEQ, getManifestField, isRpkDebugMode }
77+
export {
78+
registerManifest,
79+
isRpkMinPlatformVersionGEQ,
80+
isRpkCardMinPlatformVersionGEQ,
81+
getManifestField,
82+
isRpkDebugMode
83+
}

0 commit comments

Comments
 (0)