prts-terrarchive 0.2.0
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/GAME_ASSETS.md +26 -0
- package/LICENSE +21 -0
- package/README.en.md +274 -0
- package/README.md +423 -0
- package/THIRD_PARTY_NOTICES.md +61 -0
- package/bin/bake-rhine-details.mjs +34 -0
- package/bin/install.js +273 -0
- package/bin/pack-map-assets.mjs +110 -0
- package/bin/preview-rhine.mjs +71 -0
- package/bin/rhine-detail-baker.ts +84 -0
- package/contracts/cloud_tools_v1.schema.json +243 -0
- package/contracts/corpus_i18n_v1.schema.json +179 -0
- package/contracts/corpus_tools_v1.schema.json +1801 -0
- package/cordis.patch.yml +32 -0
- package/docs/endfield-official-i18n.md +103 -0
- package/lib/client.js +3912 -0
- package/lib/endfield-map/map.js.br +0 -0
- package/lib/endfield-map/map.js.gz +0 -0
- package/lib/endfield-map/resources/map-00b0d0744a1b4404.json.br +0 -0
- package/lib/endfield-map/resources/map-00b0d0744a1b4404.json.gz +0 -0
- package/lib/endfield-map/resources/map-01616f534aaaeca1.png +0 -0
- package/lib/endfield-map/resources/map-1562e0dff4be3d23.png +0 -0
- package/lib/endfield-map/resources/map-160fe040f080f6a3.png +0 -0
- package/lib/endfield-map/resources/map-17b9d8be25dc2b39.json.br +0 -0
- package/lib/endfield-map/resources/map-17b9d8be25dc2b39.json.gz +0 -0
- package/lib/endfield-map/resources/map-1c4245c4e8b80c43.json.br +0 -0
- package/lib/endfield-map/resources/map-1c4245c4e8b80c43.json.gz +0 -0
- package/lib/endfield-map/resources/map-1d30baaaef3e29cc.png +0 -0
- package/lib/endfield-map/resources/map-21a61386af79cd12.json.br +0 -0
- package/lib/endfield-map/resources/map-21a61386af79cd12.json.gz +0 -0
- package/lib/endfield-map/resources/map-24b920b8dab49b44.json.br +0 -0
- package/lib/endfield-map/resources/map-24b920b8dab49b44.json.gz +0 -0
- package/lib/endfield-map/resources/map-26caf8d71247abb7.png +0 -0
- package/lib/endfield-map/resources/map-2729942c89545e73.json.br +0 -0
- package/lib/endfield-map/resources/map-2729942c89545e73.json.gz +0 -0
- package/lib/endfield-map/resources/map-29063a9802f67014.json.br +0 -0
- package/lib/endfield-map/resources/map-29063a9802f67014.json.gz +0 -0
- package/lib/endfield-map/resources/map-2f35d09a3ab60a63.json.br +0 -0
- package/lib/endfield-map/resources/map-2f35d09a3ab60a63.json.gz +0 -0
- package/lib/endfield-map/resources/map-2f98a873da81425e.json.br +0 -0
- package/lib/endfield-map/resources/map-2f98a873da81425e.json.gz +0 -0
- package/lib/endfield-map/resources/map-3ab978ae44190f80.json.br +0 -0
- package/lib/endfield-map/resources/map-3ab978ae44190f80.json.gz +0 -0
- package/lib/endfield-map/resources/map-3b62c80d14208902.json.br +0 -0
- package/lib/endfield-map/resources/map-3b62c80d14208902.json.gz +0 -0
- package/lib/endfield-map/resources/map-3d486e887ae121ac.png +0 -0
- package/lib/endfield-map/resources/map-418dc4865608fce5.png +0 -0
- package/lib/endfield-map/resources/map-4366b84607335f76.json.br +0 -0
- package/lib/endfield-map/resources/map-4366b84607335f76.json.gz +0 -0
- package/lib/endfield-map/resources/map-4371259d3ab7aac7.png +0 -0
- package/lib/endfield-map/resources/map-48dcc0fd55e13f7f.png +0 -0
- package/lib/endfield-map/resources/map-4aabda0e41197570.json.br +0 -0
- package/lib/endfield-map/resources/map-4aabda0e41197570.json.gz +0 -0
- package/lib/endfield-map/resources/map-505f5687b287043c.json.br +0 -0
- package/lib/endfield-map/resources/map-505f5687b287043c.json.gz +0 -0
- package/lib/endfield-map/resources/map-5177e9d1d46f47e2.png +0 -0
- package/lib/endfield-map/resources/map-51baeb59b7f8c28d.png +0 -0
- package/lib/endfield-map/resources/map-549561b46e621874.png +0 -0
- package/lib/endfield-map/resources/map-56c6a0bef799c8dc.json.br +0 -0
- package/lib/endfield-map/resources/map-56c6a0bef799c8dc.json.gz +0 -0
- package/lib/endfield-map/resources/map-5a6963909423b674.png +0 -0
- package/lib/endfield-map/resources/map-5a9c533c0552d7b7.png +0 -0
- package/lib/endfield-map/resources/map-5d20ae9ffa9a02b0.png +0 -0
- package/lib/endfield-map/resources/map-626c8847393f60bf.png +0 -0
- package/lib/endfield-map/resources/map-63d43cbec3bed3b8.png +0 -0
- package/lib/endfield-map/resources/map-661b6ec56e722574.png +0 -0
- package/lib/endfield-map/resources/map-6ddd384eca190828.png +0 -0
- package/lib/endfield-map/resources/map-6fc1aa9144f8156c.json.br +0 -0
- package/lib/endfield-map/resources/map-6fc1aa9144f8156c.json.gz +0 -0
- package/lib/endfield-map/resources/map-738ebaa002c33cfc.png +0 -0
- package/lib/endfield-map/resources/map-758c13be6085ec07.json.br +0 -0
- package/lib/endfield-map/resources/map-758c13be6085ec07.json.gz +0 -0
- package/lib/endfield-map/resources/map-78929f26d6844509.png +0 -0
- package/lib/endfield-map/resources/map-7f09c142950a0f74.png +0 -0
- package/lib/endfield-map/resources/map-8385e11f39e1a51c.json.br +0 -0
- package/lib/endfield-map/resources/map-8385e11f39e1a51c.json.gz +0 -0
- package/lib/endfield-map/resources/map-881343926a568f27.json.br +0 -0
- package/lib/endfield-map/resources/map-881343926a568f27.json.gz +0 -0
- package/lib/endfield-map/resources/map-8d1ade3f01d952b0.png +0 -0
- package/lib/endfield-map/resources/map-8fef3495bb7ed60f.png +0 -0
- package/lib/endfield-map/resources/map-907a7ecf8a0ce352.png +0 -0
- package/lib/endfield-map/resources/map-9113d5951c4db903.json.br +0 -0
- package/lib/endfield-map/resources/map-9113d5951c4db903.json.gz +0 -0
- package/lib/endfield-map/resources/map-94ad6634436224e3.json.br +0 -0
- package/lib/endfield-map/resources/map-94ad6634436224e3.json.gz +0 -0
- package/lib/endfield-map/resources/map-99722e61da5f3e53.png +0 -0
- package/lib/endfield-map/resources/map-9be9596cc059abe3.png +0 -0
- package/lib/endfield-map/resources/map-a4db9a4763e47fbf.png +0 -0
- package/lib/endfield-map/resources/map-a4e8ef07159997e7.json.br +0 -0
- package/lib/endfield-map/resources/map-a4e8ef07159997e7.json.gz +0 -0
- package/lib/endfield-map/resources/map-ab35d06875ee418f.png +0 -0
- package/lib/endfield-map/resources/map-ac51bb3e7623cd8b.png +0 -0
- package/lib/endfield-map/resources/map-ac830a66296bc83a.png +0 -0
- package/lib/endfield-map/resources/map-b3fd04209718e55e.json.br +0 -0
- package/lib/endfield-map/resources/map-b3fd04209718e55e.json.gz +0 -0
- package/lib/endfield-map/resources/map-b8164f1af7c5d895.png +0 -0
- package/lib/endfield-map/resources/map-b8cde93b965384d8.json.br +0 -0
- package/lib/endfield-map/resources/map-b8cde93b965384d8.json.gz +0 -0
- package/lib/endfield-map/resources/map-b8e48511502e0e8d.json.br +0 -0
- package/lib/endfield-map/resources/map-b8e48511502e0e8d.json.gz +0 -0
- package/lib/endfield-map/resources/map-bfc58277d5ba649d.png +0 -0
- package/lib/endfield-map/resources/map-c013f82048c6891a.png +0 -0
- package/lib/endfield-map/resources/map-c49c947841ae4ab5.json.br +0 -0
- package/lib/endfield-map/resources/map-c49c947841ae4ab5.json.gz +0 -0
- package/lib/endfield-map/resources/map-c4d1b1c6d6706c81.json.br +0 -0
- package/lib/endfield-map/resources/map-c4d1b1c6d6706c81.json.gz +0 -0
- package/lib/endfield-map/resources/map-c607f8b4c8ad8967.png +0 -0
- package/lib/endfield-map/resources/map-c6f20276b8781326.json.br +0 -0
- package/lib/endfield-map/resources/map-c6f20276b8781326.json.gz +0 -0
- package/lib/endfield-map/resources/map-d51adf5952af1e8e.png +0 -0
- package/lib/endfield-map/resources/map-d695eface22f8b74.json.br +0 -0
- package/lib/endfield-map/resources/map-d695eface22f8b74.json.gz +0 -0
- package/lib/endfield-map/resources/map-db11d394456a7465.png +0 -0
- package/lib/endfield-map/resources/map-dcc4d218581e3dc6.png +0 -0
- package/lib/endfield-map/resources/map-ddd43dbb8ab8a4e3.json.br +0 -0
- package/lib/endfield-map/resources/map-ddd43dbb8ab8a4e3.json.gz +0 -0
- package/lib/endfield-map/resources/map-defe5db7dabf748a.png +0 -0
- package/lib/endfield-map/resources/map-e1aeb833e22520aa.json.br +0 -0
- package/lib/endfield-map/resources/map-e1aeb833e22520aa.json.gz +0 -0
- package/lib/endfield-map/resources/map-e25ee9af6e493500.png +0 -0
- package/lib/endfield-map/resources/map-e3824082cd6f747d.json.br +0 -0
- package/lib/endfield-map/resources/map-e3824082cd6f747d.json.gz +0 -0
- package/lib/endfield-map/resources/map-e694a91e630b1bd6.png +0 -0
- package/lib/endfield-map/resources/map-eaa93af79d12a87d.png +0 -0
- package/lib/endfield-map/resources/map-ec9575ee65d7766f.json.br +0 -0
- package/lib/endfield-map/resources/map-ec9575ee65d7766f.json.gz +0 -0
- package/lib/endfield-map/resources/map-ede421a329dc78a4.png +0 -0
- package/lib/endfield-map/resources/map-eff3bce8f6888fc5.json.br +0 -0
- package/lib/endfield-map/resources/map-eff3bce8f6888fc5.json.gz +0 -0
- package/lib/endfield-map/resources/map-fb5f4a59a181452c.png +0 -0
- package/lib/endfield-map/resources/map-fdeaa17eeba90d8e.json.br +0 -0
- package/lib/endfield-map/resources/map-fdeaa17eeba90d8e.json.gz +0 -0
- package/lib/rhine/assets/archive-assembly.glb +0 -0
- package/lib/rhine/assets/archive-cassette.glb +0 -0
- package/lib/rhine/fonts/MiSans-Bold.woff2 +0 -0
- package/lib/rhine/fonts/MiSans-Demibold.woff2 +0 -0
- package/lib/rhine/fonts/MiSans-Light.woff2 +0 -0
- package/lib/rhine/fonts/MiSans-Regular.woff2 +0 -0
- package/lib/rhine/fonts/MiSans-license.pdf +0 -0
- package/lib/rhine/fonts/NOTICE.txt +6 -0
- package/lib/rhine/licenses/RhineLabUI-MIT.txt +21 -0
- package/lib/rhine/licenses/entities-BSD-2-Clause.txt +11 -0
- package/lib/rhine/licenses/linkify-it-MIT.txt +22 -0
- package/lib/rhine/licenses/markdown-it-MIT.txt +22 -0
- package/lib/rhine/licenses/mdurl-MIT.txt +45 -0
- package/lib/rhine/licenses/punycode.js-MIT.txt +20 -0
- package/lib/rhine/licenses/rolling-number-MIT.txt +21 -0
- package/lib/rhine/licenses/three-MIT.txt +21 -0
- package/lib/rhine/licenses/uc.micro-MIT.txt +20 -0
- package/lib/rhine/rhine.css +1 -0
- package/lib/rhine/rhine.js +5106 -0
- package/lib/skins/common.css +31 -0
- package/lib/skins/endfield-aic.css +141 -0
- package/lib/skins/prts-agent.css +136 -0
- package/lib/skins/rhine-lab.css +70 -0
- package/package.json +112 -0
- package/presets/definition.js +26 -0
- package/presets/prts/agent.cordis.yml +25 -0
- package/presets/prts/preset.yml +3 -0
- package/presets/register.js +86 -0
- package/resources/entity-routing.json +21 -0
- package/skills/prts-investigation/SKILL.md +121 -0
- package/skills/prts-retrieval/SKILL.md +35 -0
- package/skills/prts-retrieval/references/cloud-tools.md +13 -0
- package/skills/prts-retrieval/references/diagnostics.md +15 -0
- package/skills/prts-retrieval/references/local-tools.md +24 -0
- package/skills/prts-retrieval/references/module-arknights.md +23 -0
- package/skills/prts-retrieval/references/module-dual.md +15 -0
- package/skills/prts-retrieval/references/module-endfield.md +21 -0
- package/skills/prts-retrieval/references/retrieval-process.md +44 -0
- package/skills/prts-retrieval/references/retrieval-recipes-dual.md +34 -0
- package/skills/prts-retrieval/references/retrieval-recipes-endfield.md +37 -0
- package/skills/prts-retrieval/references/retrieval-recipes.md +39 -0
- package/skills/prts-retrieval/references/tools-runtime.md +48 -0
- package/skills/prts-retrieval/references/wiki-schema.md +38 -0
- package/src/archive-presentation.js +287 -0
- package/src/cloud-projection.js +124 -0
- package/src/cloud.js +498 -0
- package/src/entity-recognizer.js +311 -0
- package/src/entity-routing.js +82 -0
- package/src/evidence-state.js +332 -0
- package/src/i18n.js +365 -0
- package/src/index.js +1261 -0
- package/src/installer.js +1362 -0
- package/src/investigation-review.js +87 -0
- package/src/investigation-store.js +579 -0
- package/src/investigation-tools.js +113 -0
- package/src/localization-format.js +23 -0
- package/src/manual-search.js +103 -0
- package/src/read.js +1097 -0
- package/src/release-compatibility.js +73 -0
- package/src/release-watch.js +40 -0
- package/src/search-projection.js +139 -0
- package/src/search.js +1522 -0
- package/src/skill.js +98 -0
- package/src/source-map.js +348 -0
- package/src/state.js +314 -0
- package/src/store.js +1569 -0
- package/src/timeline.js +386 -0
- package/src/ui.js +1353 -0
- package/src/wiki.js +111 -0
- package/tsconfig.rhine.json +15 -0
- package/ui/rhine/archive-navigation-limit.ts +31 -0
- package/ui/rhine/archive-rack.ts +83 -0
- package/ui/rhine/assets/evidence-observatory.webp +0 -0
- package/ui/rhine/board-plane-transform.ts +24 -0
- package/ui/rhine/catalogue.ts +72 -0
- package/ui/rhine/deferred-preparation.ts +146 -0
- package/ui/rhine/evidence-board-controls.css +22 -0
- package/ui/rhine/evidence-board-history.ts +73 -0
- package/ui/rhine/evidence-board-model.ts +189 -0
- package/ui/rhine/evidence-board-panel.ts +762 -0
- package/ui/rhine/evidence-board-scene.ts +548 -0
- package/ui/rhine/evidence-board.css +191 -0
- package/ui/rhine/evidence-card-art.ts +470 -0
- package/ui/rhine/evidence-card-style.ts +17 -0
- package/ui/rhine/evidence-inbox-scene.ts +43 -0
- package/ui/rhine/evidence-inbox.css +29 -0
- package/ui/rhine/evidence-inbox.ts +104 -0
- package/ui/rhine/index.ts +12 -0
- package/ui/rhine/interaction.css +20 -0
- package/ui/rhine/investigation-board-plane.ts +5 -0
- package/ui/rhine/investigation-board.css +34 -0
- package/ui/rhine/investigation-board.ts +348 -0
- package/ui/rhine/investigation-edits.ts +46 -0
- package/ui/rhine/investigation-layout.ts +29 -0
- package/ui/rhine/label-prefetch.ts +34 -0
- package/ui/rhine/looping-title.ts +40 -0
- package/ui/rhine/manual-search.css +41 -0
- package/ui/rhine/manual-search.ts +89 -0
- package/ui/rhine/original/appearance.ts +180 -0
- package/ui/rhine/original/archive-label.ts +84 -0
- package/ui/rhine/original/archive-lighting.ts +39 -0
- package/ui/rhine/original/archive-loop.ts +82 -0
- package/ui/rhine/original/archive-refill.ts +64 -0
- package/ui/rhine/original/array-detail-data.ts +2 -0
- package/ui/rhine/original/array-detail.ts +41 -0
- package/ui/rhine/original/array-interior.ts +411 -0
- package/ui/rhine/original/array-occlusion.ts +166 -0
- package/ui/rhine/original/array-shell.ts +38 -0
- package/ui/rhine/original/array-visibility.ts +309 -0
- package/ui/rhine/original/asset-url.ts +4 -0
- package/ui/rhine/original/brand.ts +12 -0
- package/ui/rhine/original/cassette-lod.ts +81 -0
- package/ui/rhine/original/data.ts +21 -0
- package/ui/rhine/original/decryption.ts +185 -0
- package/ui/rhine/original/detail-signature.ts +18 -0
- package/ui/rhine/original/glass-reveal.ts +45 -0
- package/ui/rhine/original/internal-optics.ts +70 -0
- package/ui/rhine/original/label-renderer.ts +119 -0
- package/ui/rhine/original/label-textures.ts +117 -0
- package/ui/rhine/original/model-viewer.ts +658 -0
- package/ui/rhine/original/motion.ts +116 -0
- package/ui/rhine/original/opaque-backfaces.ts +64 -0
- package/ui/rhine/original/program-preparation.ts +111 -0
- package/ui/rhine/original/quality-renderer.ts +97 -0
- package/ui/rhine/original/quality-settings.ts +111 -0
- package/ui/rhine/original/render-quality.ts +163 -0
- package/ui/rhine/original/scene.ts +2051 -0
- package/ui/rhine/original/shelf-interior.ts +142 -0
- package/ui/rhine/original/ui-transitions.ts +111 -0
- package/ui/rhine/original/viewer-camera.ts +92 -0
- package/ui/rhine/original/viewport-layout.ts +41 -0
- package/ui/rhine/original-ui.css +2334 -0
- package/ui/rhine/readability.css +46 -0
- package/ui/rhine/reading-object.ts +96 -0
- package/ui/rhine/reading-origin.ts +28 -0
- package/ui/rhine/reading-room.css +55 -0
- package/ui/rhine/report-markdown.ts +98 -0
- package/ui/rhine/scene-edge-navigation.ts +84 -0
- package/ui/rhine/scene.ts +1726 -0
- package/ui/rhine/shelf-layout.ts +38 -0
- package/ui/rhine/snapshot-update-gate.ts +22 -0
- package/ui/rhine/source-reading.ts +15 -0
- package/ui/rhine/source-selection.css +164 -0
- package/ui/rhine/temporary-performance-observers.ts +163 -0
- package/ui/rhine/temporary-performance-panel.ts +124 -0
- package/ui/rhine/temporary-performance.css +19 -0
- package/ui/rhine/temporary-performance.ts +552 -0
- package/ui/rhine/temporary-render-diagnostics.ts +105 -0
- package/ui/rhine/tool-activity.ts +69 -0
- package/ui/rhine/types.ts +219 -0
- package/ui/rhine/visible-scene-hit.ts +13 -0
- package/ui/rhine/workbench.css +818 -0
- package/ui/rhine/workbench.ts +2245 -0
- package/ui/rhine/workspace-travel.ts +32 -0
- package/vite.rhine.config.ts +19 -0
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# PRTS.chat 本地语料插件层(工具层,随 bundle 默认加载)。
|
|
2
|
+
# 插件零 npm 依赖;宿主只需提供 ctx.tools 注册表。
|
|
3
|
+
# 五工具:corpus_search / corpus_read / timeline_search +(配置 cloud.baseUrl 时)cloud_search / cloud_inspect。
|
|
4
|
+
# releasesDir 支持绝对路径或相对进程 cwd 的路径;默认 $DSH_HOME/prts-corpus/releases。
|
|
5
|
+
- insert:
|
|
6
|
+
- id: prts-preset-seed
|
|
7
|
+
name: prts-terrarchive/presets
|
|
8
|
+
- id: prts-corpus
|
|
9
|
+
name: prts-terrarchive
|
|
10
|
+
config:
|
|
11
|
+
# host 常驻只做资料管理(/api + 设置 UI),不注册语料工具;
|
|
12
|
+
# 语料工具由 PRTS 预设(模式)的 agent.cordis.yml 加载时才注册。
|
|
13
|
+
registerTools: false
|
|
14
|
+
# releasesDir 省略时默认 $DSH_HOME/prts-corpus/releases;
|
|
15
|
+
# 如资料放在别处再填绝对路径(Windows 亦可用正斜杠)。
|
|
16
|
+
# releasesDir: D:/prts/agent-dsh/data/releases
|
|
17
|
+
# 设置页下载时先从 PRTS.chat current 选定最新版本,再按此
|
|
18
|
+
# 顺序选择字节源;模式选择和首次请求都不会自动下载。
|
|
19
|
+
# download:
|
|
20
|
+
# order: [modelscope, site] # 下载源顺序,默认 ModelScope→站点
|
|
21
|
+
# siteBaseUrl: https://prts.chat # 仅字节回退;可信元数据固定来自 PRTS.chat
|
|
22
|
+
# cacheShards: 24
|
|
23
|
+
# 启用的资料模块;双模块要求当前 release 同时含两个官方资料包。
|
|
24
|
+
# enabledGames: [arknights, endfield]
|
|
25
|
+
# Host 与 PRTS preset 使用同一云端基础配置;设置页写入的用户层会同时
|
|
26
|
+
# 覆盖两份实例,避免界面开关与会话实际工具状态不一致。
|
|
27
|
+
cloud:
|
|
28
|
+
baseUrl: https://prts.chat # 本地开发可指 http://127.0.0.1:5565
|
|
29
|
+
game: all # all | arknights | endfield
|
|
30
|
+
# token: Bearer xxx # 静态 token;省略则走匿名 PoW 会话(init-session/login)
|
|
31
|
+
# userId: dsh-xxxx # 匿名会话 user_id;省略则每次加载随机
|
|
32
|
+
# timeoutMs: 90000
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# 终末地官方多语言工具
|
|
2
|
+
|
|
3
|
+
插件 0.2.0 提供 `corpus_i18n`。当前支持终末地官方资料,采用游戏原有文本 ID 查询本地化字典,不生成翻译。资料正文仍保持原有结构和中文行号。
|
|
4
|
+
|
|
5
|
+
## 使用方式
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
// 只有名称或原句时,直接反查;默认不显示文本 ID。
|
|
9
|
+
corpus_i18n({query: "管理员,你来了。", languages: ["EN", "JP", "KR"]})
|
|
10
|
+
|
|
11
|
+
// 已有检索结果时,优先沿用可引用位置。
|
|
12
|
+
corpus_i18n({title: "<检索结果的完整标题>", line: 1, languages: ["EN"]})
|
|
13
|
+
corpus_i18n({document_uid: "<检索结果的定位>", line: 1, languages: ["JP"]})
|
|
14
|
+
|
|
15
|
+
// 外语原句或片段也可反查。
|
|
16
|
+
corpus_i18n({query: "Endmin, you're here.", source_language: "EN", languages: ["CN"]})
|
|
17
|
+
corpus_i18n({query: "管理员", match_mode: "literal", languages: ["EN"]})
|
|
18
|
+
|
|
19
|
+
// 仅在核验/精确复查时暴露内部 ID;ID 始终是字符串。
|
|
20
|
+
corpus_i18n({query: "管理员,你来了。", languages: ["EN"], include_ids: true})
|
|
21
|
+
corpus_i18n({text_ids: ["3040337695571803105"], languages: ["EN"]})
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`query`、`title`、`document_uid`、`text_ids` 四选一。`languages` 必填,一次最多 4 种;原句语言默认 `CN`,也接受 `en`、`ja`、`ko`、`zh-CN` 等代码。匹配会规范化大小写、空白及已识别的游戏富文本标签,返回正文保留官方字典值。对相同原文对应的多个文本 ID 保留全部候选和各自来源,不用语义猜测选译文。
|
|
25
|
+
|
|
26
|
+
结果给出目标语言原文、篇章定位、游戏和资料版本。默认每页 5 个候选、16,000 个正文字符;`max_matches` 为 1–20,`max_chars` 为 1,000–48,000。字符预算约束原文及译文,不含固定的引用元数据。每个候选最多显示 8 个来源位置和 8 个调试来源字段。使用结果中的 `page.continuation` 原样续查;改变查询或资料版本会拒绝旧续页。
|
|
27
|
+
|
|
28
|
+
大段档案按各语言自身的 Unicode 字符位置分块,`character_start/end` 是从零开始的左闭右开区间,不构成译文逐字符对齐。角色档案 `alignment:record` 返回整条记录,档案库 `alignment:document` 返回整篇中的原始内容块;中文第 N 行只是定位锚点,引用目标文本须注明语言。
|
|
29
|
+
|
|
30
|
+
状态区分:
|
|
31
|
+
|
|
32
|
+
- `missing_localization`:对应 ID 在目标语言没有非空文本。
|
|
33
|
+
- `unmapped_source`:文档/行尚无可证明的本地化映射。
|
|
34
|
+
- `unavailable`:该资料包没有本地化附件,或某种语言未安装。
|
|
35
|
+
- `not_found`:本次原句/文本 ID 查询没有命中。
|
|
36
|
+
|
|
37
|
+
旧资料包可继续搜索、阅读;新工具不会因附件不存在而破坏原有功能。
|
|
38
|
+
|
|
39
|
+
## 导出与数据格式
|
|
40
|
+
|
|
41
|
+
`data_update/endfield_documents.py` 在原有规范行上增加可选的 `localization` 字段。它只保存 `_debug.fields` 中的文本 ID、来源表、行、字段、子节点及原始字符串 hash,不携带完整调试内容和开发机路径。所有 int64 文本 ID 在 Python 中转为字符串。
|
|
42
|
+
|
|
43
|
+
`agent/scripts/build_endfield_browser_pack.py --i18n-table-root` 编译附件。剧情映射来自上述字段;角色记录通过 `char_id + recordID/voId` 回到 `CharacterTable`,并验证中文正文一致;档案使用原始档案 ID,通过 `PrtsAllItem`、`RichContentTable` 或 `RadioTable` 关联。角色记录新增来源 ID,默认阅读响应仍只展示原有字段。
|
|
44
|
+
|
|
45
|
+
附件只包含已收录官方资料引用的正文、说话人、名称、标题和提示 ID。不是全游戏 UI/物品字典。文件布局:
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
endfield_official_game/
|
|
49
|
+
pack-manifest.json # localization 元数据、每个附件的大小及 SHA-256
|
|
50
|
+
localization/catalog.jsonl.gz # text_id → 来源字段及文档/中文行/对齐粒度
|
|
51
|
+
localization/CN.jsonl.gz # [text_id, 官方原始字符串]
|
|
52
|
+
localization/EN.jsonl.gz
|
|
53
|
+
localization/JP.jsonl.gz
|
|
54
|
+
...
|
|
55
|
+
localization-report.json # 本地构建诊断;不在分发附件内
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
附件 hash 和语言元数据共同纳入 release 内容根;安装器验证大小、hash、路径及来源版本。发布校验、站点资源路由、镜像和增量资源枚举均包含附件。带附件的 release 要求最低插件版本 0.2.0。
|
|
59
|
+
|
|
60
|
+
运行时首次查询加载来源目录及所需语言,后续精确查询走内存索引;片段搜索扫描缓存后的标准化字典。最多缓存 4 种语言,不影响中文 `corpus_read` 的证据覆盖。切版会废弃旧缓存,进行中的查询拒绝混合版本。
|
|
61
|
+
|
|
62
|
+
## 构建示例
|
|
63
|
+
|
|
64
|
+
以下命令在 PRTS.chat 父仓库执行。各路径应来自同一个游戏数据快照;输出使用新目录。
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
python -m data_update.cli materialize-endfield-originals \
|
|
68
|
+
--source /home/cloudstack/sda/endfieldgamedata/story \
|
|
69
|
+
--release-id xuesong-youmeng --game-version 1.5.3 \
|
|
70
|
+
--output var/endfield_i18n/<build>/original_game
|
|
71
|
+
|
|
72
|
+
python agent/scripts/build_endfield_browser_pack.py \
|
|
73
|
+
--source var/endfield_i18n/<build>/original_game \
|
|
74
|
+
--archive-root Endfield_Wiki_Lib/data/export/prts \
|
|
75
|
+
--character-root Endfield_Wiki_Lib/data/export/char_profiles \
|
|
76
|
+
--i18n-table-root /home/cloudstack/sda/endfieldgamedata/tables/1.5.3/Table \
|
|
77
|
+
--output var/endfield_i18n/<build>/endfield_official_game
|
|
78
|
+
|
|
79
|
+
python agent/scripts/compose_endfield_i18n_release.py \
|
|
80
|
+
--base-release prts-terrarchive/data/releases/<base-release> \
|
|
81
|
+
--endfield-pack var/endfield_i18n/<build>/endfield_official_game \
|
|
82
|
+
--output prts-terrarchive/data/releases/<new-release>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
组合命令复用其他包的不可变文件,验证新 release,默认标记为 development;它不改 current 指针、不发布。构建后可在本地版本管理中激活。后续正式分发继续使用现有的 release 发布与镜像流程。
|
|
86
|
+
|
|
87
|
+
## 本次真实数据验证
|
|
88
|
+
|
|
89
|
+
2026-09-19,游戏版本 1.5.3:
|
|
90
|
+
|
|
91
|
+
- 77,034 个被官方资料引用的文本 ID,14 种语言,压缩附件约 50.5 MB。
|
|
92
|
+
- 剧情正文 42,724 行,其中 42,689 行有直接文本 ID。
|
|
93
|
+
- 2,721 条角色档案/语音记录全部建立映射。
|
|
94
|
+
- 430 篇档案中 429 篇通过原始 ID 建立映射。
|
|
95
|
+
- 未映射清单包含 32 行 SNS、3 行 research-kit 自带的 WebUI 说明,以及原始 ID 为“桂花糕”的一篇档案;这些不会被猜测翻译。
|
|
96
|
+
|
|
97
|
+
数据覆盖随版本变化,构建报告及实际工具返回状态为准。
|
|
98
|
+
|
|
99
|
+
2026-09-19 本地验证使用 `agent-corpus-v2-20260919-endfield-i18n-v2`,内容版本为 `7e70f3d55b556d57bc9da5abdefa5a7b36356cb57845f1658fb23074bf9ef75b`。当时为 development release,未发布远端。原本的本地 current 指针备份在 `work/i18n/previous-current.json`。
|
|
100
|
+
|
|
101
|
+
已通过注册后的插件工具验证中文原句反查、外语反查、剧情行定位、角色记录和资料库内容块;结果保存在 `work/i18n/smoke-v2.json`。首次调用约 4 秒(包含资料初始化,并行运行测试时测得),缓存后同句查询低于 1 毫秒,文档定位约 3–7 毫秒,均为本机单次测量。
|
|
102
|
+
|
|
103
|
+
2026-09-20 验证结果:相关 Python 测试 28 项通过;注册工具的真实资料验收 17 项通过;全部 14 种语言的 1,078,476 个字段值与原始官方表一致。发布前修复了修改前已存在的旧搜索游标分页问题,全量插件测试 46 个测试文件全部通过。
|