Skip to content

Commit 24a6b11

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

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed

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

+37-1
Original file line numberDiff line numberDiff line change
@@ -106,20 +106,56 @@ 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)) {
111+
ret = this._interpolateFlatten(locale, resources[i], key, host, interpolateMode, params, [
112+
key
113+
])
114+
} else {
115+
ret = this._interpolate(locale, resources[i], key, host, interpolateMode, params, [key])
116+
}
110117
if (!isNull(ret)) {
111118
return ret
112119
}
113120
}
114121
return null
115122
}
116123

124+
_interpolateFlatten(locale, jsonObject, key, host, interpolateMode, params, visitedLinkStack) {
125+
if (!jsonObject) {
126+
return null
127+
}
128+
129+
const keyRet = jsonObject[key]
130+
return this._interpolateCore(
131+
locale,
132+
key,
133+
host,
134+
interpolateMode,
135+
params,
136+
visitedLinkStack,
137+
keyRet
138+
)
139+
}
140+
117141
_interpolate(locale, jsonObject, key, host, interpolateMode, params, visitedLinkStack) {
118142
if (!jsonObject) {
119143
return null
120144
}
121145

122146
const keyRet = this._path.getPathValue(jsonObject, key)
147+
return this._interpolateCore(
148+
locale,
149+
key,
150+
host,
151+
interpolateMode,
152+
params,
153+
visitedLinkStack,
154+
keyRet
155+
)
156+
}
157+
158+
_interpolateCore(locale, key, host, interpolateMode, params, visitedLinkStack, keyRet) {
123159
if (isPlainObject(keyRet) || Array.isArray(keyRet)) {
124160
return keyRet
125161
}

Diff for: core/framework/src/infras/platform/interface.js

+2
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
}

Diff for: core/framework/src/infras/platform/manifest.js

+11-1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ function isRpkMinPlatformVersionGEQ(val) {
5555
return manifestJSON.minPlatformVersion >= val
5656
}
5757

58+
function isRpkCardMinPlatformVersionGEQ(val) {
59+
return manifestJSON.minCardPlatformVersion >= val
60+
}
61+
5862
let mode = null
5963

6064
function isRpkDebugMode() {
@@ -66,4 +70,10 @@ function isRpkDebugMode() {
6670
return mode
6771
}
6872

69-
export { registerManifest, isRpkMinPlatformVersionGEQ, getManifestField, isRpkDebugMode }
73+
export {
74+
registerManifest,
75+
isRpkMinPlatformVersionGEQ,
76+
isRpkCardMinPlatformVersionGEQ,
77+
getManifestField,
78+
isRpkDebugMode
79+
}

0 commit comments

Comments
 (0)