@harmonyos-arkts/d2h 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +15 -13
- package/.claude-plugin/plugin.json +13 -7
- package/AGENTS.md +5 -5
- package/README.md +212 -212
- package/agents/android-to-hmos-00-orchestrator.md +318 -318
- package/agents/d2h.md +157 -157
- package/dist/bin/install-opencode.js +30 -30
- package/docs/environment-check.md +86 -86
- package/install-opencode.sh +160 -160
- package/opencode/agents.json +16 -16
- package/opencode/vscode-d2h-package.json +7 -7
- package/opencode/vscode-d2h-plugin.mjs +29 -29
- package/package.json +54 -54
- package/schemas/android-source-manifest.schema.json +25 -25
- package/schemas/checkpoint-provenance.schema.json +67 -67
- package/schemas/final-acceptance.schema.json +29 -29
- package/schemas/managed-evidence-index.schema.json +15 -15
- package/schemas/managed-evidence.schema.json +114 -114
- package/schemas/migration-config.schema.json +51 -51
- package/schemas/migration-report-index.schema.json +39 -39
- package/schemas/migration-report-item.schema.json +51 -51
- package/schemas/migration-report-summary.schema.json +25 -25
- package/schemas/migration-status.schema.json +202 -202
- package/schemas/preflight.schema.json +60 -60
- package/schemas/source-order-audit.schema.json +16 -16
- package/schemas/source-provenance-event.schema.json +19 -19
- package/schemas/spec-app-shard.schema.json +45 -45
- package/schemas/spec-fact-corrections-shard.schema.json +13 -13
- package/schemas/spec-features-shard.schema.json +43 -43
- package/schemas/spec-index.schema.json +26 -26
- package/schemas/spec-interactions-shard.schema.json +40 -40
- package/schemas/spec-page.schema.json +98 -98
- package/schemas/spec-pages-index.schema.json +1 -1
- package/schemas/spec-unresolved-shard.schema.json +1 -1
- package/schemas/task-envelope.schema.json +109 -109
- package/schemas/task-plan.schema.json +341 -341
- package/scripts/check-environment.mjs +320 -320
- package/skills/android2hmos_resources_convert/SKILL.md +180 -180
- package/skills/android2hmos_resources_convert/references/image-conversion-rules.md +230 -230
- package/skills/android2hmos_resources_convert/references/svg-fix-patterns.md +175 -175
- package/skills/android2hmos_resources_convert/references/xml-drawable-to-svg-rules.md +513 -513
- package/skills/arkts-app-identity/SKILL.md +238 -238
- package/skills/arkts-i18n/SKILL.md +496 -496
- package/skills/arkts-i18n/evals/evals.json +84 -84
- package/skills/arkts-i18n/references/code-examples.md +302 -302
- package/skills/arkts-i18n/references/common-pitfalls.md +391 -391
- package/skills/arkts-i18n/references/dynamic-language-switch.md +604 -604
- package/skills/arkts-i18n/references/hardcoded-string-scanner.md +348 -348
- package/skills/arkts-i18n/references/language-codes.md +104 -104
- package/skills/arkts-i18n/references/resource-file-structure.md +775 -775
- package/skills/arkts-i18n/references/static-vs-dynamic.md +242 -242
- package/skills/arkts-i18n/references/v1-compat.md +244 -244
- package/skills/arkts-i18n/scripts/audit_i18n_completeness.sh +174 -174
- package/skills/arkts-icon-sizing/SKILL.md +211 -211
- package/skills/arkts-icon-sizing/scripts/icon_audit.py +131 -131
- package/skills/arkts-icon-sizing/scripts/icon_autofix.py +88 -88
- package/skills/arkts-icon-sizing/scripts/icon_dims.py +179 -179
- package/skills/arkts-icon-sizing/scripts/icon_fix.py +119 -119
- package/skills/arkts-mvvm-architecture/SKILL.md +613 -613
- package/skills/d2h-hypium-forge/SKILL.md +309 -309
- package/skills/d2h-hypium-forge/references/functional-spec-template.md +140 -140
- package/skills/d2h-hypium-forge/references/official-api.md +135 -135
- package/skills/d2h-hypium-forge/references/pitfalls.md +98 -98
- package/skills/d2h-hypium-forge/references/testability-template.md +71 -71
- package/skills/d2h-hypium-forge/scripts/_common_template.py +659 -659
- package/skills/d2h-hypium-forge/scripts/analyze_results.py +165 -165
- package/skills/d2h-hypium-forge/scripts/assert_audit.py +107 -107
- package/skills/d2h-hypium-forge/scripts/collect_runtime_pages.py +169 -169
- package/skills/d2h-hypium-forge/scripts/forge_report.py +325 -325
- package/skills/d2h-hypium-forge/scripts/inject_resource_ids.py +114 -114
- package/skills/d2h-hypium-forge/scripts/lint_asserts.py +80 -80
- package/skills/d2h-hypium-forge/scripts/lint_locate.py +60 -60
- package/skills/d2h-hypium-forge/scripts/merge_appgraph.py +249 -249
- package/skills/d2h-hypium-forge/scripts/precondition.py +140 -140
- package/skills/d2h-hypium-forge/scripts/preinject_ids.py +232 -232
- package/skills/d2h-hypium-forge/scripts/probe.py +197 -197
- package/skills/d2h-hypium-forge/scripts/run_direct.py +823 -823
- package/skills/d2h-hypium-forge/scripts/run_parallel.py +121 -121
- package/skills/d2h-hypium-forge/scripts/scan_features.py +255 -255
- package/skills/d2h-hypium-forge/scripts/upgrade_asserts.py +66 -66
- package/skills/d2h-hypium-forge/scripts/validate_scenarios.py +84 -84
- package/skills/d2h-page-develop/SKILL.md +112 -112
- package/skills/d2h-page-develop/agents/openai.yaml +7 -7
- package/skills/d2h-page-spec-generate/SKILL.md +206 -206
- package/skills/d2h-page-spec-generate/scripts/build_batch_report.py +227 -227
- package/skills/d2h-utg-ai-generate/SKILL.md +128 -128
- package/skills/d2h-utg-ai-generate/references/click-paths-schema.json +76 -76
- package/skills/d2h-utg-ai-generate/references/extraction-guide.md +34 -34
- package/skills/d2h-utg-ai-generate/references/facts-contract.md +96 -96
- package/skills/d2h-utg-ai-generate/references/page-schema.json +61 -61
- package/skills/d2h-utg-ai-generate/references/utg-schema.json +89 -89
- package/skills/d2h-utg-ai-generate/scripts/build_page_json.py +314 -314
- package/skills/d2h-utg-ai-generate/scripts/build_utg.py +123 -123
- package/skills/d2h-utg-ai-generate/scripts/capture_from_page_json.ts +280 -280
- package/skills/d2h-utg-ai-generate/scripts/utg_common.py +524 -524
- package/skills/d2h-utg-ai-generate/scripts/utg_html.py +489 -489
- package/skills/d2h-utg-ai-generate/scripts/validate_utg.py +69 -69
- package/skills/d2h-utg-ai-generate/scripts/vendor/D3-LICENSE +13 -13
- package/skills/d2h-utg-ai-generate/scripts/vendor/d3-7.9.0.min.js +2 -2
- package/skills/d2h-utg-ai-generate/tests/test_pipeline.py +369 -369
- package/skills/d2h-utg-static-generate/SKILL.md +73 -73
- package/skills/d2h-utg-static-generate/references/discoveries.md +38 -38
- package/skills/d2h-utg-static-generate/scripts/generate.py +499 -499
- package/skills/d2h-utg-static-generate/tests/test_static.py +335 -335
- package/skills/d2h-utg-static-generate/tests/verify-offline-html.py +60 -60
- package/skills/d2h-utg-static-generate/tests/verify-produced-fixture.py +131 -131
- package/skills/harmonyos-migration-playbook/SKILL.md +83 -83
- package/skills/harmonyos-migration-playbook/agents/openai.yaml +7 -7
- package/skills/harmonyos-migration-playbook/references/arkts-compile.md +24 -24
- package/skills/harmonyos-migration-playbook/references/harmony-runtime.md +53 -53
- package/skills/harmonyos-migration-playbook/references/lesson-lifecycle.md +45 -45
- package/skills/harmonyos-migration-playbook/references/protocol-e2e.md +23 -23
- package/skills/harmonyos-migration-playbook/references/ui-automation.md +53 -53
- package/skills/harmonyos-migration-playbook/references/windows-environment.md +38 -38
- package/skills/maintaining-migration-report/SKILL.md +144 -144
- package/skills/maintaining-migration-report/references/final-acceptance.md +48 -48
- package/skills/maintaining-migration-report/references/source-provenance.md +66 -66
- package/skills/managing-d2h-toolchain/SKILL.md +24 -24
- package/skills/managing-d2h-toolchain/environment-requirements.json +16 -16
- package/skills/managing-d2h-toolchain/scripts/manage-toolchain.mjs +98 -98
- package/skills/managing-d2h-toolchain/toolchain.json +16 -16
- package/skills/native-library-substitution/SKILL.md +384 -384
- package/skills/native-library-substitution/references/native-library-substitution.json +56905 -56905
- package/skills/native-library-substitution/references/native-library-substitution.md +163 -163
- package/skills/preparing-migration-workspace/SKILL.md +131 -131
- package/skills/reviewing-migration-process/SKILL.md +62 -62
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
{
|
|
2
|
-
"skill_name": "arkts-i18n",
|
|
3
|
-
"evals": [
|
|
4
|
-
{
|
|
5
|
-
"id": 1,
|
|
6
|
-
"prompt": "为我的应用添加日语支持,需要创建哪些文件和目录?",
|
|
7
|
-
"expected_output": "说明资源目录结构(resources/ja/element/string.json)、string.json 格式、module.json5 的 supportedLanguages 配置。提供两种命名方案:1) 仅语言代码(ja),2) 语言+区域代码(ja_JP)。强调使用 ISO 639-1 标准,目录名必须完全匹配。",
|
|
8
|
-
"files": []
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"id": 2,
|
|
12
|
-
"prompt": "用户可以手动切换应用语言,从中文切换到英文后 UI 也要跟着变,怎么实现?",
|
|
13
|
-
"expected_output": "说明两种方案:1) ⚠️ 未验证:setPreferredLanguage() + V2 @Local refreshKey(或 @ObservedV2 LocaleModel + AppStorageV2.connect)触发 UI 刷新(需查证官方文档),2) ✅ 已验证:应用内维护语言状态 + router.replaceUrl() 重载页面。提供 V2 完整代码示例(@ComponentV2 + @Local),强调需要 module.json5 中声明 supportedLanguages。",
|
|
14
|
-
"files": []
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"id": 3,
|
|
18
|
-
"prompt": "检查我的 string.json 文件有没有国际化问题:base/element/string.json 和 en_US/element/string.json",
|
|
19
|
-
"expected_output": "基于代码仓实际结构(base/ 和 en_US/),检查:1) key 是否完全一致(996 行对应),2) value 是否为字符串类型,3) JSON 格式是否正确(无尾随逗号),4) 是否有硬编码。提供代码仓验证结果:✅ base 和 en_US 的 key 完全对应。",
|
|
20
|
-
"files": [
|
|
21
|
-
"entry/src/main/resources/base/element/string.json",
|
|
22
|
-
"entry/src/main/resources/en_US/element/string.json"
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"id": 4,
|
|
27
|
-
"prompt": "我的应用只支持中英文,应该用什么语言目录名?en 还是 en_US?",
|
|
28
|
-
"expected_output": "说明两种方案的优缺点:1) 简单方案(推荐):en/ + zh/,优点是简单适配所有区域,缺点是无法区分 zh_CN 和 zh_TW;2) 精确方案:en_US/ + zh_CN/,优点是精确区域划分,缺点是维护成本高。代码仓使用 en_US/(方案2)。提供选择建议和语言代码对照表。",
|
|
29
|
-
"files": []
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"id": 5,
|
|
33
|
-
"prompt": "代码中怎么获取字符串资源?有没有同步和异步两种方法?",
|
|
34
|
-
"expected_output": "提供代码仓验证的实现:✅ 同步方法:resourceManager.getStringByNameSync('key')(基于 ColumnsDialog.ets:11)。⚠️ 异步方法:resourceManager.getStringByName('key')(未验证)。提供完整代码示例,包括错误处理(try-catch)。",
|
|
35
|
-
"files": [
|
|
36
|
-
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"id": 6,
|
|
41
|
-
"prompt": "怎么判断当前应用加载的是中文还是英文资源?",
|
|
42
|
-
"expected_output": "提供代码仓验证的方法(基于 ColumnsDialog.ets:7-16):1) 使用 resourceManager.getStringByNameSync('dialog_column') 获取字符串,2) 用正则表达式 /[\\u4e00-\\u9fa5]/.test(str) 检测中文字符(Unicode 范围 0x4e00-0x9fa5),3) 返回布尔值表示是否中文环境。提供完整代码示例,包括 try-catch 错误处理和默认返回值。说明适用场景(需要根据语言执行不同逻辑)。",
|
|
43
|
-
"files": [
|
|
44
|
-
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets"
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": 7,
|
|
49
|
-
"prompt": "英文环境下,'1 column' 和 '2 columns' 这种复数怎么处理?",
|
|
50
|
-
"expected_output": "提供代码仓验证的完整实现(基于 ColumnsDialog.ets:18-31):1) 判断语言环境(isChineseLocale),2) 使用 resourceManager.getStringByNameSync('dialog_column') 获取字符串(含占位符 %d),3) 替换占位符 str.replace('%d', num.toString()),4) 判断是否需要添加 's'(条件:num > 1 && !isChineseLocale && !str.endsWith('s')),5) 提供 try-catch 兜底逻辑(return num === 1 ? '1 column' : `${num} columns`)。说明仅支持规则复数(+s),不规则复数需特殊处理。",
|
|
51
|
-
"files": [
|
|
52
|
-
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets",
|
|
53
|
-
"entry/src/main/resources/base/element/string.json",
|
|
54
|
-
"entry/src/main/resources/en_US/element/string.json"
|
|
55
|
-
]
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"id": 8,
|
|
59
|
-
"prompt": "我的应用只需要中英文,不需要应用内切换语言,应该怎么实现?",
|
|
60
|
-
"expected_output": "说明纯静态方案(基于代码仓实际实现):1) 组织资源文件(base/ + en_US/,确保 key 完全对应),2) 95%+ 使用 $r('app.string.xxx') 静态引用(270+ 处),3) 少数场景用 resourceManager.getStringByNameSync() 动态获取(如占位符替换、复数处理),4) 依赖系统语言自动匹配。对比动态方案:优点(简单、性能优、自动跟随系统、维护成本低),缺点(无法应用内切换、需重启应用)。说明代码仓选择原因和适用场景(大多数应用)。",
|
|
61
|
-
"files": [
|
|
62
|
-
"entry/src/main/resources/base/element/string.json",
|
|
63
|
-
"entry/src/main/resources/en_US/element/string.json"
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"id": 9,
|
|
68
|
-
"prompt": "占位符 %d 或 %s 怎么替换成实际的值?",
|
|
69
|
-
"expected_output": "提供两种方法:1) ✅ 手动替换(已验证):str.replace('%d', value.toString()) 或 str.replace('%s', value),基于 ColumnsDialog.ets:23。2) ⚠️ API 替换(未验证):resourceManager.getStringByName('key', param)。推荐方法1(更可靠)。提供完整代码示例,包括多个占位符的处理(链式 replace)。说明支持的占位符类型(%d 整数、%s 字符串、%f 浮点数)。",
|
|
70
|
-
"files": [
|
|
71
|
-
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets"
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"id": 10,
|
|
76
|
-
"prompt": "代码仓为什么要用 en_US 而不是 en 作为英文资源目录?",
|
|
77
|
-
"expected_output": "说明选择 en_US 的三大原因:1) 精确区域划分:明确标识为美国英语,与 en_GB(英国)、en_AU(澳大利亚)区分,符合 ISO 3166-1 标准。2) 扩展性好:未来可添加 en_GB、en_CA 等其他英文区域。3) 代码仓实际情况:base/ 和 en_US/ 的 key 完全对应(996 行),所有翻译已完成。对比 en/ 方案(简单但无法精确划分)。说明当前代码仓只需支持中英文,但使用 en_US/ 为未来扩展留出空间。",
|
|
78
|
-
"files": [
|
|
79
|
-
"entry/src/main/resources/base/element/string.json",
|
|
80
|
-
"entry/src/main/resources/en_US/element/string.json"
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "arkts-i18n",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "为我的应用添加日语支持,需要创建哪些文件和目录?",
|
|
7
|
+
"expected_output": "说明资源目录结构(resources/ja/element/string.json)、string.json 格式、module.json5 的 supportedLanguages 配置。提供两种命名方案:1) 仅语言代码(ja),2) 语言+区域代码(ja_JP)。强调使用 ISO 639-1 标准,目录名必须完全匹配。",
|
|
8
|
+
"files": []
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"id": 2,
|
|
12
|
+
"prompt": "用户可以手动切换应用语言,从中文切换到英文后 UI 也要跟着变,怎么实现?",
|
|
13
|
+
"expected_output": "说明两种方案:1) ⚠️ 未验证:setPreferredLanguage() + V2 @Local refreshKey(或 @ObservedV2 LocaleModel + AppStorageV2.connect)触发 UI 刷新(需查证官方文档),2) ✅ 已验证:应用内维护语言状态 + router.replaceUrl() 重载页面。提供 V2 完整代码示例(@ComponentV2 + @Local),强调需要 module.json5 中声明 supportedLanguages。",
|
|
14
|
+
"files": []
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": 3,
|
|
18
|
+
"prompt": "检查我的 string.json 文件有没有国际化问题:base/element/string.json 和 en_US/element/string.json",
|
|
19
|
+
"expected_output": "基于代码仓实际结构(base/ 和 en_US/),检查:1) key 是否完全一致(996 行对应),2) value 是否为字符串类型,3) JSON 格式是否正确(无尾随逗号),4) 是否有硬编码。提供代码仓验证结果:✅ base 和 en_US 的 key 完全对应。",
|
|
20
|
+
"files": [
|
|
21
|
+
"entry/src/main/resources/base/element/string.json",
|
|
22
|
+
"entry/src/main/resources/en_US/element/string.json"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": 4,
|
|
27
|
+
"prompt": "我的应用只支持中英文,应该用什么语言目录名?en 还是 en_US?",
|
|
28
|
+
"expected_output": "说明两种方案的优缺点:1) 简单方案(推荐):en/ + zh/,优点是简单适配所有区域,缺点是无法区分 zh_CN 和 zh_TW;2) 精确方案:en_US/ + zh_CN/,优点是精确区域划分,缺点是维护成本高。代码仓使用 en_US/(方案2)。提供选择建议和语言代码对照表。",
|
|
29
|
+
"files": []
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": 5,
|
|
33
|
+
"prompt": "代码中怎么获取字符串资源?有没有同步和异步两种方法?",
|
|
34
|
+
"expected_output": "提供代码仓验证的实现:✅ 同步方法:resourceManager.getStringByNameSync('key')(基于 ColumnsDialog.ets:11)。⚠️ 异步方法:resourceManager.getStringByName('key')(未验证)。提供完整代码示例,包括错误处理(try-catch)。",
|
|
35
|
+
"files": [
|
|
36
|
+
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": 6,
|
|
41
|
+
"prompt": "怎么判断当前应用加载的是中文还是英文资源?",
|
|
42
|
+
"expected_output": "提供代码仓验证的方法(基于 ColumnsDialog.ets:7-16):1) 使用 resourceManager.getStringByNameSync('dialog_column') 获取字符串,2) 用正则表达式 /[\\u4e00-\\u9fa5]/.test(str) 检测中文字符(Unicode 范围 0x4e00-0x9fa5),3) 返回布尔值表示是否中文环境。提供完整代码示例,包括 try-catch 错误处理和默认返回值。说明适用场景(需要根据语言执行不同逻辑)。",
|
|
43
|
+
"files": [
|
|
44
|
+
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": 7,
|
|
49
|
+
"prompt": "英文环境下,'1 column' 和 '2 columns' 这种复数怎么处理?",
|
|
50
|
+
"expected_output": "提供代码仓验证的完整实现(基于 ColumnsDialog.ets:18-31):1) 判断语言环境(isChineseLocale),2) 使用 resourceManager.getStringByNameSync('dialog_column') 获取字符串(含占位符 %d),3) 替换占位符 str.replace('%d', num.toString()),4) 判断是否需要添加 's'(条件:num > 1 && !isChineseLocale && !str.endsWith('s')),5) 提供 try-catch 兜底逻辑(return num === 1 ? '1 column' : `${num} columns`)。说明仅支持规则复数(+s),不规则复数需特殊处理。",
|
|
51
|
+
"files": [
|
|
52
|
+
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets",
|
|
53
|
+
"entry/src/main/resources/base/element/string.json",
|
|
54
|
+
"entry/src/main/resources/en_US/element/string.json"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": 8,
|
|
59
|
+
"prompt": "我的应用只需要中英文,不需要应用内切换语言,应该怎么实现?",
|
|
60
|
+
"expected_output": "说明纯静态方案(基于代码仓实际实现):1) 组织资源文件(base/ + en_US/,确保 key 完全对应),2) 95%+ 使用 $r('app.string.xxx') 静态引用(270+ 处),3) 少数场景用 resourceManager.getStringByNameSync() 动态获取(如占位符替换、复数处理),4) 依赖系统语言自动匹配。对比动态方案:优点(简单、性能优、自动跟随系统、维护成本低),缺点(无法应用内切换、需重启应用)。说明代码仓选择原因和适用场景(大多数应用)。",
|
|
61
|
+
"files": [
|
|
62
|
+
"entry/src/main/resources/base/element/string.json",
|
|
63
|
+
"entry/src/main/resources/en_US/element/string.json"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": 9,
|
|
68
|
+
"prompt": "占位符 %d 或 %s 怎么替换成实际的值?",
|
|
69
|
+
"expected_output": "提供两种方法:1) ✅ 手动替换(已验证):str.replace('%d', value.toString()) 或 str.replace('%s', value),基于 ColumnsDialog.ets:23。2) ⚠️ API 替换(未验证):resourceManager.getStringByName('key', param)。推荐方法1(更可靠)。提供完整代码示例,包括多个占位符的处理(链式 replace)。说明支持的占位符类型(%d 整数、%s 字符串、%f 浮点数)。",
|
|
70
|
+
"files": [
|
|
71
|
+
"entry/src/main/ets/components/dialogs/ColumnsDialog.ets"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": 10,
|
|
76
|
+
"prompt": "代码仓为什么要用 en_US 而不是 en 作为英文资源目录?",
|
|
77
|
+
"expected_output": "说明选择 en_US 的三大原因:1) 精确区域划分:明确标识为美国英语,与 en_GB(英国)、en_AU(澳大利亚)区分,符合 ISO 3166-1 标准。2) 扩展性好:未来可添加 en_GB、en_CA 等其他英文区域。3) 代码仓实际情况:base/ 和 en_US/ 的 key 完全对应(996 行),所有翻译已完成。对比 en/ 方案(简单但无法精确划分)。说明当前代码仓只需支持中英文,但使用 en_US/ 为未来扩展留出空间。",
|
|
78
|
+
"files": [
|
|
79
|
+
"entry/src/main/resources/base/element/string.json",
|
|
80
|
+
"entry/src/main/resources/en_US/element/string.json"
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|