Skip to content

Commit dc34630

Browse files
committed
feat: support flatten i18n json format for js widget
Signed-off-by: lileirjyb <[email protected]>
1 parent 44397bd commit dc34630

File tree

4 files changed

+69
-2
lines changed

4 files changed

+69
-2
lines changed

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

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,20 +106,66 @@ 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.log(
112+
`### App Framework ### i18n:读取卡片多语言资源,key: ${key}, locale: ${locale}, resources: ${JSON.stringify(
113+
resources[i]
114+
)}`
115+
)
116+
ret = this._interpolateFlatten(locale, resources[i], key, host, interpolateMode, params, [
117+
key
118+
])
119+
} else {
120+
console.log(
121+
`### App Framework ### i18n:读取多语言资源,key: ${key}, locale: ${locale}, resources: ${JSON.stringify(
122+
resources[i]
123+
)}`
124+
)
125+
ret = this._interpolate(locale, resources[i], key, host, interpolateMode, params, [key])
126+
}
110127
if (!isNull(ret)) {
111128
return ret
112129
}
113130
}
114131
return null
115132
}
116133

134+
_interpolateFlatten(locale, jsonObject, key, host, interpolateMode, params, visitedLinkStack) {
135+
if (!jsonObject) {
136+
return null
137+
}
138+
139+
const keyRet = jsonObject[key]
140+
return this._interpolateCore(
141+
locale,
142+
key,
143+
host,
144+
interpolateMode,
145+
params,
146+
visitedLinkStack,
147+
keyRet
148+
)
149+
}
150+
117151
_interpolate(locale, jsonObject, key, host, interpolateMode, params, visitedLinkStack) {
118152
if (!jsonObject) {
119153
return null
120154
}
121155

122156
const keyRet = this._path.getPathValue(jsonObject, key)
157+
return this._interpolateCore(
158+
locale,
159+
key,
160+
host,
161+
interpolateMode,
162+
params,
163+
visitedLinkStack,
164+
keyRet
165+
)
166+
}
167+
168+
_interpolateCore(locale, key, host, interpolateMode, params, visitedLinkStack, keyRet) {
123169
if (isPlainObject(keyRet) || Array.isArray(keyRet)) {
124170
return keyRet
125171
}

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)