@seanyao/roll 3.611.2 → 3.611.3
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/CHANGELOG.md +36 -0
- package/README.md +24 -14
- package/dist/roll.mjs +7409 -4985
- package/lib/i18n/README.md +0 -1
- package/lib/i18n/alert.sh +4 -4
- package/lib/i18n/consistency.sh +2 -2
- package/lib/i18n/shared.sh +0 -6
- package/lib/i18n/skills/roll-onboard.sh +2 -2
- package/lib/i18n/skills_catalog.sh +8 -8
- package/package.json +1 -1
- package/skills/roll-build/SKILL.md +1 -0
- package/skills/roll-build/references/full-contract.md +5 -0
- package/skills/roll-fix/SKILL.md +1 -0
- package/skills/roll-fix/references/full-contract.md +5 -0
- package/skills/roll-onboard/SKILL.md +3 -3
- package/lib/i18n/migrate.sh +0 -74
package/lib/i18n/README.md
CHANGED
|
@@ -22,7 +22,6 @@ lib/i18n/
|
|
|
22
22
|
├── init.sh # roll init setup messages
|
|
23
23
|
├── lang.sh # locale detection + ROLL_LANG resolution
|
|
24
24
|
├── loop.sh # roll loop subcommand output (largest file)
|
|
25
|
-
├── migrate.sh # roll migrate messages
|
|
26
25
|
├── offboard.sh # roll offboard output
|
|
27
26
|
├── onboard.sh # roll onboard / legacy-onboard output
|
|
28
27
|
├── peer.sh # roll peer review messages
|
package/lib/i18n/alert.sh
CHANGED
|
@@ -14,7 +14,7 @@ _i18n_set zh alert.alert_resolved_and_cleared "告警已解决并清除"
|
|
|
14
14
|
_i18n_set en alert.unknown_subcommand "Unknown subcommand: %s"
|
|
15
15
|
_i18n_set zh alert.unknown_subcommand "未知子命令: %s"
|
|
16
16
|
|
|
17
|
-
_i18n_set en alert.run_roll_alert_ack_to_acknowledge "Run 'roll alert ack' to acknowledge alerts, 'roll alert resolve' to clear."
|
|
18
|
-
_i18n_set zh alert.run_roll_alert_ack_to_acknowledge " 运行 'roll alert ack' 确认告警,'roll alert resolve' 清除告警。"
|
|
19
|
-
_i18n_set en alert.usage_roll_alert_list_ack_resolve "Usage: roll alert [list|ack|resolve]"
|
|
20
|
-
_i18n_set zh alert.usage_roll_alert_list_ack_resolve " 用法: roll alert [list|ack|resolve]"
|
|
17
|
+
_i18n_set en alert.run_roll_alert_ack_to_acknowledge "Run 'roll loop alert ack' to acknowledge alerts, 'roll loop alert resolve' to clear."
|
|
18
|
+
_i18n_set zh alert.run_roll_alert_ack_to_acknowledge " 运行 'roll loop alert ack' 确认告警,'roll loop alert resolve' 清除告警。"
|
|
19
|
+
_i18n_set en alert.usage_roll_alert_list_ack_resolve "Usage: roll loop alert [list|ack|resolve]"
|
|
20
|
+
_i18n_set zh alert.usage_roll_alert_list_ack_resolve " 用法: roll loop alert [list|ack|resolve]"
|
package/lib/i18n/consistency.sh
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# Roll i18n catalog — consistency check messages (US-CONSIST-001).
|
|
3
3
|
|
|
4
|
-
_i18n_set en consistency.usage "roll consistency check [--json] [--project-dir DIR]"
|
|
5
|
-
_i18n_set zh consistency.usage "roll consistency check [--json] [--project-dir DIR]"
|
|
4
|
+
_i18n_set en consistency.usage "roll release consistency check [--json] [--project-dir DIR]"
|
|
5
|
+
_i18n_set zh consistency.usage "roll release consistency check [--json] [--project-dir DIR]"
|
|
6
6
|
|
|
7
7
|
_i18n_set en consistency.unknown_sub "Unknown consistency subcommand: %s"
|
|
8
8
|
_i18n_set zh consistency.unknown_sub "未知的一致性子命令: %s"
|
package/lib/i18n/shared.sh
CHANGED
|
@@ -16,12 +16,6 @@ _i18n_set zh init.onboard_retry "再试一次同一个 agent: roll init"
|
|
|
16
16
|
_i18n_set en init.onboard_switch "switch to another: ROLL_ONBOARD_AGENT=<name> roll init"
|
|
17
17
|
_i18n_set zh init.onboard_switch "换一个 agent: ROLL_ONBOARD_AGENT=<name> roll init"
|
|
18
18
|
|
|
19
|
-
# ── migrate ──
|
|
20
|
-
_i18n_set en migrate.tips.inspect "Inspect the migration commit"
|
|
21
|
-
_i18n_set zh migrate.tips.inspect "查看迁移提交"
|
|
22
|
-
_i18n_set en migrate.tips.verify "Verify new structure"
|
|
23
|
-
_i18n_set zh migrate.tips.verify "验证新结构"
|
|
24
|
-
|
|
25
19
|
# ── peer help ──
|
|
26
20
|
_i18n_set en peer.help.from "Originating agent"
|
|
27
21
|
_i18n_set zh peer.help.from "发起方"
|
|
@@ -7,8 +7,8 @@ _i18n_set en onboard.welcome "Welcome to Roll Onboard"
|
|
|
7
7
|
_i18n_set zh onboard.welcome "欢迎使用 Roll Onboard"
|
|
8
8
|
_i18n_set en onboard.scanning "Scanning project..."
|
|
9
9
|
_i18n_set zh onboard.scanning "正在扫描项目..."
|
|
10
|
-
_i18n_set en onboard.stop_migrate_first "This project has legacy Roll structure (BACKLOG.md or docs/features/). Run 'roll migrate' first before onboarding."
|
|
11
|
-
_i18n_set zh onboard.stop_migrate_first "此项目还保留着旧版 Roll 结构(BACKLOG.md 或 docs/features/)。请先运行 'roll migrate' 再 onboard。"
|
|
10
|
+
_i18n_set en onboard.stop_migrate_first "This project has legacy Roll structure (BACKLOG.md or docs/features/). Run 'npx @seanyao/roll@2 migrate' first before onboarding."
|
|
11
|
+
_i18n_set zh onboard.stop_migrate_first "此项目还保留着旧版 Roll 结构(BACKLOG.md 或 docs/features/)。请先运行 'npx @seanyao/roll@2 migrate' 再 onboard。"
|
|
12
12
|
|
|
13
13
|
# ── Step 3: Nine Questions ──
|
|
14
14
|
_i18n_set en onboard.questions_group1 "Group 1/3: Understanding your project"
|
|
@@ -8,17 +8,17 @@ _i18n_set zh skills.generated "已生成技能清单:%s"
|
|
|
8
8
|
_i18n_set en skills.check_ok "Skill catalog is up to date."
|
|
9
9
|
_i18n_set zh skills.check_ok "技能清单已是最新。"
|
|
10
10
|
|
|
11
|
-
_i18n_set en skills.check_drift "Skill catalog drift: %s differs from a fresh scan. Run 'roll skills
|
|
12
|
-
_i18n_set zh skills.check_drift "技能清单漂移:%s 与最新扫描不一致。请运行 'roll skills
|
|
11
|
+
_i18n_set en skills.check_drift "Skill catalog drift: %s differs from a fresh scan. Run 'roll setup skills'."
|
|
12
|
+
_i18n_set zh skills.check_drift "技能清单漂移:%s 与最新扫描不一致。请运行 'roll setup skills'。"
|
|
13
13
|
|
|
14
|
-
_i18n_set en skills.check_missing "Skill catalog not found at %s. Run 'roll skills
|
|
15
|
-
_i18n_set zh skills.check_missing "未找到技能清单 %s。请运行 'roll skills
|
|
14
|
+
_i18n_set en skills.check_missing "Skill catalog not found at %s. Run 'roll setup skills'."
|
|
15
|
+
_i18n_set zh skills.check_missing "未找到技能清单 %s。请运行 'roll setup skills'。"
|
|
16
16
|
|
|
17
17
|
_i18n_set en skills.unknown_sub "Unknown 'roll skills' subcommand: %s"
|
|
18
18
|
_i18n_set zh skills.unknown_sub "未知的 'roll skills' 子命令:%s"
|
|
19
19
|
|
|
20
|
-
_i18n_set en skills.usage "Usage: roll skills
|
|
21
|
-
_i18n_set zh skills.usage "用法:roll skills
|
|
20
|
+
_i18n_set en skills.usage "Usage: roll doctor skills | roll setup skills"
|
|
21
|
+
_i18n_set zh skills.usage "用法:roll doctor skills | roll setup skills"
|
|
22
22
|
|
|
23
23
|
_i18n_set en skills.doctor_heading "Skill catalog"
|
|
24
24
|
_i18n_set zh skills.doctor_heading "技能清单"
|
|
@@ -26,5 +26,5 @@ _i18n_set zh skills.doctor_heading "技能清单"
|
|
|
26
26
|
_i18n_set en skills.doctor_ok "✅ guide/skills.md matches skills/*/SKILL.md"
|
|
27
27
|
_i18n_set zh skills.doctor_ok "✅ guide/skills.md 与 skills/*/SKILL.md 一致"
|
|
28
28
|
|
|
29
|
-
_i18n_set en skills.doctor_drift "⚠️ guide/skills.md is stale — run 'roll skills
|
|
30
|
-
_i18n_set zh skills.doctor_drift "⚠️ guide/skills.md 已过期 — 请运行 'roll skills
|
|
29
|
+
_i18n_set en skills.doctor_drift "⚠️ guide/skills.md is stale — run 'roll setup skills'"
|
|
30
|
+
_i18n_set zh skills.doctor_drift "⚠️ guide/skills.md 已过期 — 请运行 'roll setup skills'"
|
package/package.json
CHANGED
|
@@ -35,6 +35,7 @@ Load when a user gives a US-XXX story or asks to ship a feature through Roll TCR
|
|
|
35
35
|
- TCR for every micro-step.
|
|
36
36
|
- No WIP commits or bypassed verification.
|
|
37
37
|
- Self-review, attest, E2E evidence, and self-score remain required.
|
|
38
|
+
- Docs/code/product alignment is a DoD gate: user-visible behavior, command, output-copy, site, or delivery-view changes update the touched README/docs/guide/site/help in the same delivery.
|
|
38
39
|
|
|
39
40
|
## Gotchas
|
|
40
41
|
|
|
@@ -768,6 +768,10 @@ Before creating any file or directory:
|
|
|
768
768
|
- .roll/backlog.md index row and `.roll/features/<feature>.md` US section are both required
|
|
769
769
|
- Neither can be skipped
|
|
770
770
|
|
|
771
|
+
8. **Docs/code/product stay aligned**
|
|
772
|
+
- User-visible behavior, command, output-copy, site, or delivery-view changes update the touched README/docs/guide/site/help in the same delivery
|
|
773
|
+
- Registry drift from FIX-242 remains a hard red line; `roll attest` doc-gap is a shadow warning and should be resolved before Done
|
|
774
|
+
|
|
771
775
|
---
|
|
772
776
|
|
|
773
777
|
## Definition of Done (per Action)
|
|
@@ -778,6 +782,7 @@ Before creating any file or directory:
|
|
|
778
782
|
- [ ] **E2E deposited** (golden path test for this Story, committed via TCR)
|
|
779
783
|
- [ ] All commits are green states (no broken commits)
|
|
780
784
|
- [ ] Local CI checks passed (format + lint + build + test)
|
|
785
|
+
- [ ] **Docs/code/product aligned** (user-visible changes updated touched README/docs/guide/site/help, or the delivery records why no doc surface changed)
|
|
781
786
|
- [ ] Self-code-review passed, blocking issues fixed via TCR
|
|
782
787
|
- [ ] Changes pushed to remote
|
|
783
788
|
- [ ] CI is green (or explicit, recorded exception)
|
package/skills/roll-fix/SKILL.md
CHANGED
|
@@ -35,6 +35,7 @@ Load when the user provides a FIX-XXX or BUG-XXX item, or asks for a focused hot
|
|
|
35
35
|
- Every fix gets a regression signal or documented exception.
|
|
36
36
|
- Blocking review findings are fixed in another TCR cycle.
|
|
37
37
|
- Self-score note is required before exit.
|
|
38
|
+
- Docs/code/product alignment is a DoD gate: user-visible behavior, command, output-copy, site, or delivery-view changes update the touched README/docs/guide/site/help in the same delivery.
|
|
38
39
|
|
|
39
40
|
## Gotchas
|
|
40
41
|
|
|
@@ -93,6 +93,10 @@ Before creating any file or directory:
|
|
|
93
93
|
- the change affects roadmap-visible behavior
|
|
94
94
|
- the fix should be tracked for follow-up work
|
|
95
95
|
|
|
96
|
+
7. **Docs/code/product stay aligned**
|
|
97
|
+
- User-visible behavior, command, output-copy, site, or delivery-view changes update the touched README/docs/guide/site/help in the same delivery
|
|
98
|
+
- Registry drift from FIX-242 remains a hard red line; `roll attest` doc-gap is a shadow warning and should be resolved before Done
|
|
99
|
+
|
|
96
100
|
## TCR Workflow
|
|
97
101
|
|
|
98
102
|
### 0. Pre-flight self-check (US-AGENT-007)
|
|
@@ -496,6 +500,7 @@ A minor change is only "done" when all are true:
|
|
|
496
500
|
- [ ] **TCR cycle(s) completed** (fix via Test && Commit)
|
|
497
501
|
- [ ] All commits are green states
|
|
498
502
|
- [ ] Local integration checks pass
|
|
503
|
+
- [ ] **Docs/code/product aligned** (user-visible changes updated touched README/docs/guide/site/help, or the delivery records why no doc surface changed)
|
|
499
504
|
- [ ] Quality review (code-reviewer) passed, blocking issues resolved via TCR
|
|
500
505
|
- [ ] Changes pushed
|
|
501
506
|
- [ ] CI is green (or explicit, recorded exception exists)
|
|
@@ -41,14 +41,14 @@ Hard constraint: **AI cannot create files in the user's project other than `.rol
|
|
|
41
41
|
1. The repository tree (use the project's own structure to infer technologies)
|
|
42
42
|
2. Any existing `README.md` / `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` etc. as evidence
|
|
43
43
|
3. `roll-doc --dry-run` output → identifies what documentation gaps exist
|
|
44
|
-
4. The path-audit pattern: scan for legacy structure markers (`BACKLOG.md`, `docs/features/`, etc.) — if any are present, REFUSE and tell the user to run `roll migrate` first
|
|
44
|
+
4. The path-audit pattern: scan for legacy structure markers (`BACKLOG.md`, `docs/features/`, etc.) — if any are present, REFUSE and tell the user to run `npx @seanyao/roll@2 migrate` first
|
|
45
45
|
|
|
46
46
|
## Workflow
|
|
47
47
|
|
|
48
48
|
### Step 0 — Pre-flight
|
|
49
49
|
|
|
50
50
|
1. Check that you're in a legacy project root (no `AGENTS.md`, has source code)
|
|
51
|
-
2. If `BACKLOG.md` or `docs/features/` already present → STOP, tell user to run `roll migrate` first (this is a partial-migration project, not legacy)
|
|
51
|
+
2. If `BACKLOG.md` or `docs/features/` already present → STOP, tell user to run `npx @seanyao/roll@2 migrate` first (this is a partial-migration project, not legacy)
|
|
52
52
|
3. Check `.roll/onboard-plan.yaml` doesn't already exist; if it does, ask user whether to overwrite
|
|
53
53
|
|
|
54
54
|
### Step 1 — Read code, build understanding
|
|
@@ -228,7 +228,7 @@ Do NOT run `roll init --apply` yourself. Do NOT modify other project files. Your
|
|
|
228
228
|
## When NOT to use
|
|
229
229
|
|
|
230
230
|
- **Not a legacy project**: empty dir or fresh project → use plain `roll init` instead
|
|
231
|
-
- **Has BACKLOG.md or docs/features/**: this is a pre-2.0 Roll project → run `roll migrate` first
|
|
231
|
+
- **Has BACKLOG.md or docs/features/**: this is a pre-2.0 Roll project → run `npx @seanyao/roll@2 migrate` first
|
|
232
232
|
- **Has .roll/ already**: already onboarded → don't re-run
|
|
233
233
|
|
|
234
234
|
## Failure modes
|
package/lib/i18n/migrate.sh
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
_i18n_set en migrate.unknown_arg_1 "Unknown arg: %s"
|
|
3
|
-
_i18n_set zh migrate.unknown_arg_1 "未知参数: %s"
|
|
4
|
-
_i18n_set en migrate.not_a_git_repository_roll_migrate "Not a git repository. roll migrate requires git."
|
|
5
|
-
_i18n_set zh migrate.not_a_git_repository_roll_migrate "当前目录不是 git 仓库。"
|
|
6
|
-
_i18n_set en migrate.both_old_and_new_structures_exist "Both old and new structures exist (partial migration detected)."
|
|
7
|
-
_i18n_set zh migrate.both_old_and_new_structures_exist "老结构与新结构同时存在(部分迁移)。"
|
|
8
|
-
_i18n_set en migrate.conflicting_paths "Conflicting paths:"
|
|
9
|
-
_i18n_set zh migrate.conflicting_paths "冲突路径:"
|
|
10
|
-
_i18n_set en migrate.resolve_manually_then_re_run "Resolve manually then re-run."
|
|
11
|
-
_i18n_set zh migrate.resolve_manually_then_re_run "请手动解决冲突后重新运行。"
|
|
12
|
-
_i18n_set en migrate.already_migrated_roll_exists_no_old "Already migrated. .roll/ exists, no old paths found."
|
|
13
|
-
_i18n_set zh migrate.already_migrated_roll_exists_no_old "已迁移,无需重复操作。"
|
|
14
|
-
_i18n_set en migrate.no_old_structure_detected_nothing_to "No old structure detected. Nothing to migrate."
|
|
15
|
-
_i18n_set zh migrate.no_old_structure_detected_nothing_to "未发现老结构,无需迁移。"
|
|
16
|
-
_i18n_set en migrate.old_structure_markers_found_but_no "Old structure markers found but no migratable files."
|
|
17
|
-
_i18n_set zh migrate.old_structure_markers_found_but_no "未找到可迁移文件。"
|
|
18
|
-
_i18n_set en migrate.working_tree_not_clean_commit_or "Working tree not clean. Commit or stash changes before running migrate."
|
|
19
|
-
_i18n_set zh migrate.working_tree_not_clean_commit_or "工作区有未提交改动,请先 commit 或 stash。"
|
|
20
|
-
_i18n_set en migrate.migration_preview_dry_run "Migration preview (dry-run):"
|
|
21
|
-
_i18n_set zh migrate.migration_preview_dry_run "迁移预览(dry-run)"
|
|
22
|
-
_i18n_set en migrate.run_without_dry_run_to_execute "Run without --dry-run to execute."
|
|
23
|
-
_i18n_set zh migrate.run_without_dry_run_to_execute "去掉 --dry-run 即可真实执行。"
|
|
24
|
-
_i18n_set en migrate.migrating_paths_via_git_mv "Migrating %s paths via git mv..."
|
|
25
|
-
_i18n_set zh migrate.migrating_paths_via_git_mv "正在通过 git mv 迁移 %s 个路径..."
|
|
26
|
-
_i18n_set en migrate.aborting_previous_moves_are_staged_but "Aborting; previous moves are staged but not committed. Run 'git reset --hard' to undo."
|
|
27
|
-
_i18n_set zh migrate.aborting_previous_moves_are_staged_but "已 stage 但未 commit,运行 'git reset --hard' 回滚。"
|
|
28
|
-
_i18n_set en migrate.migrated_paths_in_a_single_commit "Migrated %s paths in a single commit."
|
|
29
|
-
_i18n_set zh migrate.migrated_paths_in_a_single_commit "已在单 commit 中迁移 %s 个路径。"
|
|
30
|
-
_i18n_set en migrate.next_steps " Next steps"
|
|
31
|
-
_i18n_set zh migrate.next_steps "下一步:"
|
|
32
|
-
_i18n_set en migrate.summary " ┌─"
|
|
33
|
-
_i18n_set zh migrate.summary "操作摘要 Summary ──────────────────────────────────┐"
|
|
34
|
-
_i18n_set en migrate.roll_convention_status_roll "%sRoll Convention Status Roll"
|
|
35
|
-
_i18n_set zh migrate.roll_convention_status_roll "约定状态%s"
|
|
36
|
-
_i18n_set en migrate.roll_exists_roll "~/.roll/ exists ~/.roll/"
|
|
37
|
-
_i18n_set zh migrate.roll_exists_roll "已存在"
|
|
38
|
-
_i18n_set en migrate.roll_not_found_run_roll_setup "~/.roll/ not found — run 'roll setup' ~/.roll/"
|
|
39
|
-
_i18n_set zh migrate.roll_not_found_run_roll_setup "不存在 — 请运行 'roll setup'"
|
|
40
|
-
_i18n_set en migrate.global_conventions "%sGlobal conventions:"
|
|
41
|
-
_i18n_set zh migrate.global_conventions "全局约定%s"
|
|
42
|
-
_i18n_set en migrate.missing " %s-%s %s (missing /"
|
|
43
|
-
_i18n_set zh migrate.missing "缺失)"
|
|
44
|
-
_i18n_set en migrate.global_skills "%sGlobal skills:"
|
|
45
|
-
_i18n_set zh migrate.global_skills "全局技能%s"
|
|
46
|
-
_i18n_set en migrate.roll_skills_skills_installed " %s+%s ~/.roll/skills (%s skills installed /"
|
|
47
|
-
_i18n_set zh migrate.roll_skills_skills_installed "已安装 %s 个技能)"
|
|
48
|
-
_i18n_set en migrate.roll_skills_missing " %s-%s ~/.roll/skills (missing /"
|
|
49
|
-
_i18n_set zh migrate.roll_skills_missing "缺失)"
|
|
50
|
-
_i18n_set en migrate.sync_targets "%sSync targets:"
|
|
51
|
-
_i18n_set zh migrate.sync_targets "同步目标%s"
|
|
52
|
-
_i18n_set en migrate.no_ai_tools_configured_check_roll "No AI tools configured — check ~/.roll/config.yaml"
|
|
53
|
-
_i18n_set zh migrate.no_ai_tools_configured_check_roll "未配置 AI 工具 — 请检查 ~/.roll/config.yaml"
|
|
54
|
-
_i18n_set en migrate.add_ai_entries_or_run_roll "Add ai_* entries or run 'roll setup' to restore defaults."
|
|
55
|
-
_i18n_set zh migrate.add_ai_entries_or_run_roll "添加 ai_* 条目或运行 'roll setup' 恢复默认配置。"
|
|
56
|
-
_i18n_set en migrate.skill_symlinks "%sSkill symlinks:"
|
|
57
|
-
_i18n_set zh migrate.skill_symlinks "技能软链接%s"
|
|
58
|
-
_i18n_set en migrate.roll_skills_mounted " %s=%s %s: %s -> ~/.roll/skills (mounted /"
|
|
59
|
-
_i18n_set zh migrate.roll_skills_mounted "已挂载)"
|
|
60
|
-
_i18n_set en migrate.no_roll_skills_linked " %s-%s %s: %s (no roll-* skills linked /"
|
|
61
|
-
_i18n_set zh migrate.no_roll_skills_linked "未链接 roll-* 技能)"
|
|
62
|
-
_i18n_set en migrate.not_found " %s-%s %s: %s (not found /"
|
|
63
|
-
_i18n_set zh migrate.not_found "未找到)"
|
|
64
|
-
_i18n_set en migrate.no_ai_tools_configured_check_roll_2 "No AI tools configured — check ~/.roll/config.yaml"
|
|
65
|
-
_i18n_set zh migrate.no_ai_tools_configured_check_roll_2 "未配置 AI 工具 — 请检查 ~/.roll/config.yaml"
|
|
66
|
-
_i18n_set en migrate.templates "%sTemplates:"
|
|
67
|
-
_i18n_set zh migrate.templates "模板%s"
|
|
68
|
-
_i18n_set en migrate.missing_2 " %s-%s %s (missing /"
|
|
69
|
-
_i18n_set zh migrate.missing_2 "缺失)"
|
|
70
|
-
|
|
71
|
-
_i18n_set en migrate.old_path "Old path"
|
|
72
|
-
_i18n_set zh migrate.old_path "老路径"
|
|
73
|
-
_i18n_set en migrate.new_path "New path"
|
|
74
|
-
_i18n_set zh migrate.new_path "新路径"
|