dsh-cait 1.1.6 → 1.1.7
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 +43 -0
- package/README.ja.md +20 -10
- package/README.md +91 -72
- package/README.zh-CN.md +20 -10
- package/client/components.js +126 -13
- package/client/locales.js +74 -2
- package/client/styles.js +6 -2
- package/client.js +206 -17
- package/lib/aligner.js +6 -6
- package/lib/api.js +6 -0
- package/lib/docx.js +124 -26
- package/lib/import-export.js +115 -10
- package/lib/localization.js +1098 -0
- package/lib/persistence.js +14 -0
- package/lib/pptx.js +33 -1
- package/lib/qa.js +18 -0
- package/lib/store-utils.js +8 -3
- package/lib/store.js +14 -2
- package/lib/subtitles.js +213 -0
- package/lib/xlsx.js +176 -66
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,49 @@ All notable changes to CAIT are documented here. The project follows
|
|
|
4
4
|
[Semantic Versioning](https://semver.org/) and the format is based on
|
|
5
5
|
[Keep a Changelog](https://keepachangelog.com/).
|
|
6
6
|
|
|
7
|
+
## [1.1.7] - 2026-11-10
|
|
8
|
+
|
|
9
|
+
Format-depth release: DOCX tables, headers, footers, and notes; Apple/Android
|
|
10
|
+
string catalogs and other localization formats; PowerPoint speaker notes,
|
|
11
|
+
multi-sheet XLSX, and subtitle timing controls.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **DOCX content outside the body.** Import and export paragraphs in tables,
|
|
16
|
+
headers, footers, footnotes, and endnotes, keyed by `docxPart` and
|
|
17
|
+
`docxParagraph`; body-only documents keep the old path.
|
|
18
|
+
- **Localization string formats.** Apple `.strings` and `.stringsdict`, Android
|
|
19
|
+
`strings.xml`/plurals, `.resx`, `.arb`, nested YAML, and Java `.properties`.
|
|
20
|
+
Keys, comments, plural variants, block scalars, inline XML tags, and ARB
|
|
21
|
+
metadata are preserved for round trips. Nested YAML supports mappings,
|
|
22
|
+
sequences, scalars, block scalars, and comments; anchors, aliases, merge keys,
|
|
23
|
+
and flow collections are rejected explicitly.
|
|
24
|
+
- **PowerPoint speaker notes.** Notes pages are imported as separate units and
|
|
25
|
+
written back by part; slide text and notes stay in document order.
|
|
26
|
+
- **Multi-sheet XLSX with source-preserving export.** Every worksheet is
|
|
27
|
+
imported with `sheet`/`sheetName` metadata and cell references. When the
|
|
28
|
+
source workbook is retained, export patches the original cells instead of
|
|
29
|
+
rebuilding the workbook, so styles, merged ranges, and other sheets survive;
|
|
30
|
+
formula cells are skipped.
|
|
31
|
+
- **Subtitle timeline controls.** Merge adjacent cues, split a cue at a time
|
|
32
|
+
point, and shift all cues by milliseconds. Overlapping cues are reported as a
|
|
33
|
+
high-risk QA finding rather than being changed automatically.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- Segment views include their metadata (`start`/`end`, `docxPart`, `sheetName`,
|
|
38
|
+
key paths, and similar) so timeline and format context reaches the UI.
|
|
39
|
+
|
|
40
|
+
### Known limits
|
|
41
|
+
|
|
42
|
+
- Segment merge/split still only cover text formats; Office merge/split needs a
|
|
43
|
+
paragraph-mapping contract.
|
|
44
|
+
- XLSX export needs a target column; formula cells are skipped, and workbooks
|
|
45
|
+
imported before 1.1.7 have no retained source package to patch.
|
|
46
|
+
- Nested YAML rejects anchors, aliases, merge keys, and flow collections.
|
|
47
|
+
- Subtitle editing has no waveform/playhead; split uses a time point, merge uses
|
|
48
|
+
the outer cue range.
|
|
49
|
+
|
|
7
50
|
## [1.1.6] - 2026-11-09
|
|
8
51
|
|
|
9
52
|
Review-workbench release: find and replace, a command palette, segment notes,
|
package/README.ja.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<p align="center">
|
|
18
18
|
<a href="https://www.npmjs.com/package/dsh-cait"><img alt="npm バージョン" src="https://img.shields.io/npm/v/dsh-cait.svg" /></a>
|
|
19
19
|
<img alt="DSH 0.2.x" src="https://img.shields.io/badge/DSH-0.2.x-4d6bfe.svg" />
|
|
20
|
-
<img alt="テスト
|
|
20
|
+
<img alt="テスト 45 スイート" src="https://img.shields.io/badge/tests-45%20suites-brightgreen.svg" />
|
|
21
21
|
<img alt="API キー不要" src="https://img.shields.io/badge/API%20key-not%20required-6b7280.svg" />
|
|
22
22
|
</p>
|
|
23
23
|
|
|
@@ -56,6 +56,13 @@ Host のリビジョンをポーリングするため、エージェントによ
|
|
|
56
56
|
|
|
57
57
|
## 機能
|
|
58
58
|
|
|
59
|
+
### 1.1.7 の新機能
|
|
60
|
+
|
|
61
|
+
- **DOCX の深い構造**:表、ヘッダー、フッター、脚注、文末脚注の段落を通常のセグメントとして取り込み、元の part に書き戻します。
|
|
62
|
+
- **ローカライズ文字列**:Apple `.strings`/`.stringsdict`、Android `strings.xml`/複数形、`.resx`、`.arb`、ネストした YAML、Java `.properties` を往復でき、キー、コメント、複数形、ブロックスカラー、インラインタグを保持します。
|
|
63
|
+
- **スピーカーノートと複数シート**:PPTX のノートページを独立したセグメントにし、XLSX はシート名、順序、セル参照を保ったまま全シートを扱います。元ファイルを保持している場合は元のセルへ書き戻すため、スタイルと結合範囲も残ります。
|
|
64
|
+
- **字幕タイムライン**:隣接 cue の結合、時刻指定の分割、全 cue のシフトに対応。重なりは高リスクの QA として報告し、時間は自動変更しません。
|
|
65
|
+
|
|
59
66
|
### 1.1.6 の新機能
|
|
60
67
|
|
|
61
68
|
- **検索と置換**:原文/訳文のプレビュー、一括適用、直前の置換の取り消し。確定済みセグメントの訳文を変更すると校閲待ちに戻ります。
|
|
@@ -228,7 +235,7 @@ CAIT はエンドポイントもキーも持ちません。セレクタは DSH
|
|
|
228
235
|
| SDLXLIFF | ✅ | ✅ | XLIFF 1.2 の基本パス。SDL 固有の拡張はラウンドトリップしない |
|
|
229
236
|
| HTML | ✅ | ✅ | テキストブロックとインラインタグを保持。文書全体の CSS / レイアウトは再構築しない |
|
|
230
237
|
| JSON | ✅ | ✅ | 文字列パスのサブセット。オブジェクト / 配列構造はテンプレートで保持。キーと数値は翻訳しない |
|
|
231
|
-
| XLSX | ✅ | ✅ |
|
|
238
|
+
| XLSX | ✅ | ✅ | 全ワークシート。ソース / ターゲット列またはヘッダーを認識。元ファイルを保持している場合はセルへ書き戻し、スタイル、結合範囲、他のシートも保持。数式セルはスキップ |
|
|
232
239
|
| PPTX | ✅ | ✅* | ソース保持エクスポート。インポートした `.pptx` パッケージが必要。本文テキストのみで、ノート / グラフ / SmartArt はインポートしない |
|
|
233
240
|
| RTF | ✅ | ✅ | 基本的な段落、`\uN`、`\'hh`、制御語。元のスタイルはラウンドトリップしない |
|
|
234
241
|
|
|
@@ -273,7 +280,7 @@ DSH デスクトップ(または `plugin_manager` ツールがある任意の
|
|
|
273
280
|
plugin_manager install_bundle target: dsh-cait
|
|
274
281
|
```
|
|
275
282
|
|
|
276
|
-
バージョンを固定するときは `dsh-cait@1.1.
|
|
283
|
+
バージョンを固定するときは `dsh-cait@1.1.7`、最新版は `dsh-cait@latest` を指定します。
|
|
277
284
|
マネージャが registry のパッケージを解決し、bundle patch を適用してプラグインを有効化します。
|
|
278
285
|
|
|
279
286
|
CLI 管理のプロファイル:
|
|
@@ -478,7 +485,7 @@ node _dev/test-mt.mjs
|
|
|
478
485
|
|
|
479
486
|
インポート / エクスポートのフィクスチャは `_dev/sample.docx`、`_dev/sample-table.docx`、
|
|
480
487
|
`_dev/sample-format.docx` です。対応する `python _dev/make-*.py` スクリプトで再生成
|
|
481
|
-
できます。
|
|
488
|
+
できます。45 スイートすべてが通るはずです。
|
|
482
489
|
|
|
483
490
|
### リリース
|
|
484
491
|
|
|
@@ -524,12 +531,15 @@ npm publish
|
|
|
524
531
|
画像 OCR も未対応です。
|
|
525
532
|
- EPUB インポートは spine 内の本文 XHTML テキストブロックのみを対象とします。
|
|
526
533
|
DRM、固定レイアウト、スクリプト化、MathML を多用する書籍は非対応です。
|
|
527
|
-
- DOCX
|
|
528
|
-
|
|
534
|
+
- DOCX インポートは本文、表、ヘッダー、フッター、脚注、文末脚注を対象にします。
|
|
535
|
+
フィールド、代替テキスト、変更履歴の削除はソース言語のまま残ります。
|
|
529
536
|
- 複数の run が混在する DOCX/PPTX の段落は、先頭 run の書式を継承します。
|
|
530
|
-
- PPTX
|
|
531
|
-
- XLSX
|
|
532
|
-
|
|
537
|
+
- PPTX インポートは本文とスピーカーノートを対象にし、グラフと SmartArt は対象外です。
|
|
538
|
+
- XLSX エクスポートはターゲット列がある場合に書き戻します。数式セルはスキップされ、
|
|
539
|
+
1.1.7 より前にインポートした文書は元ワークブックを保持していないため再構築になります。
|
|
540
|
+
- ネストした YAML は mapping、sequence、scalar、ブロックスカラー、コメントに対応します。
|
|
541
|
+
アンカー、エイリアス、merge key、flow コレクションは
|
|
542
|
+
`LOCALIZATION_YAML_UNSUPPORTED` で拒否します。
|
|
533
543
|
- HTML/RTF のエクスポートは元のスタイルをラウンドトリップしません。JSON は文字列値だけを
|
|
534
544
|
翻訳します。
|
|
535
545
|
- TM のマッチングは意味ではなく字句に基づきます。ステミング、同義語、埋め込みはありません。
|
|
@@ -542,7 +552,7 @@ npm publish
|
|
|
542
552
|
README も英語・簡体字中国語・日本語の 3 版があり、英語版が正本です。
|
|
543
553
|
|
|
544
554
|
次に予定しているのは、マルチモーダルな DSH ルート経由の画像 / ビジョン入力、
|
|
545
|
-
|
|
555
|
+
Office 段落マッピング後の結合 / 分割、字幕の波形 / 再生ヘッドです。
|
|
546
556
|
|
|
547
557
|
## 変更履歴とバージョン
|
|
548
558
|
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<strong>Computer-aided translation, inside DeepSeek Harness.</strong><br/>
|
|
9
|
-
Translation memory
|
|
9
|
+
Translation memory · glossary · segment editor · MT assistance · document tabs · Office / subtitle / localization formats
|
|
10
10
|
</p>
|
|
11
11
|
<p align="center">
|
|
12
12
|
<a href="README.zh-CN.md">简体中文</a> · <a href="README.ja.md">日本語</a> · <a href="README.md">English</a>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<p align="center">
|
|
17
17
|
<a href="https://www.npmjs.com/package/dsh-cait"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-cait.svg" /></a>
|
|
18
18
|
<img alt="DSH 0.2.x" src="https://img.shields.io/badge/DSH-0.2.x-4d6bfe.svg" />
|
|
19
|
-
<img alt="Tests:
|
|
19
|
+
<img alt="Tests: 45 suites" src="https://img.shields.io/badge/tests-45%20suites-brightgreen.svg" />
|
|
20
20
|
<img alt="No API key required" src="https://img.shields.io/badge/API%20key-not%20required-6b7280.svg" />
|
|
21
21
|
</p>
|
|
22
22
|
|
|
@@ -57,6 +57,21 @@ manual reload.
|
|
|
57
57
|
|
|
58
58
|
## Features
|
|
59
59
|
|
|
60
|
+
### New in 1.1.7
|
|
61
|
+
|
|
62
|
+
- **DOCX depth.** Table cells, headers, footers, footnotes, and endnotes are
|
|
63
|
+
imported as normal segments and written back to their original parts.
|
|
64
|
+
- **Localization catalogs.** Apple `.strings`/`.stringsdict`, Android
|
|
65
|
+
`strings.xml`/plurals, `.resx`, `.arb`, nested YAML, and Java `.properties`
|
|
66
|
+
round-trip with keys, comments, plural variants, block scalars, and inline
|
|
67
|
+
tags intact.
|
|
68
|
+
- **Speaker notes and multi-sheet workbooks.** PowerPoint notes pages become
|
|
69
|
+
separate units; every XLSX worksheet keeps its own name, order, and cell
|
|
70
|
+
references. When the source workbook is retained, export patches the original
|
|
71
|
+
cells so styles and merged ranges survive.
|
|
72
|
+
- **Subtitle timeline.** Merge adjacent cues, split at a time point, and shift
|
|
73
|
+
all cues; overlapping cues show up as a high-risk QA finding.
|
|
74
|
+
|
|
60
75
|
### New in 1.1.6
|
|
61
76
|
|
|
62
77
|
- **Find and replace** across source/target with a preview, one-step apply, and
|
|
@@ -148,7 +163,7 @@ manual reload.
|
|
|
148
163
|
marker when the term is already known. Counting finds and ranks the candidates
|
|
149
164
|
(Latin n-grams, repeated CJK substrings filtered by boundary entropy); you
|
|
150
165
|
confirm the wording and add them. A model-assisted shortlist that can include
|
|
151
|
-
single-occurrence proper nouns is
|
|
166
|
+
single-occurrence proper nouns is included since 1.1.6.
|
|
152
167
|
|
|
153
168
|
### Library workspace
|
|
154
169
|
|
|
@@ -273,21 +288,21 @@ provider/model/code/status; the client receives only `MT_PROVIDER_FAILED`.
|
|
|
273
288
|
|
|
274
289
|
| Format | Import | Export | Notes |
|
|
275
290
|
| --- | :---: | :---: | --- |
|
|
276
|
-
| TXT / Markdown |
|
|
277
|
-
| CSV |
|
|
278
|
-
| DOCX |
|
|
279
|
-
| EPUB |
|
|
280
|
-
| TMX 1.4 |
|
|
281
|
-
| SRT / WebVTT |
|
|
282
|
-
| PO |
|
|
283
|
-
| XLIFF 1.2 |
|
|
284
|
-
| XLIFF 2.0 |
|
|
285
|
-
| SDLXLIFF |
|
|
286
|
-
| HTML |
|
|
287
|
-
| JSON |
|
|
288
|
-
| XLSX |
|
|
289
|
-
| PPTX |
|
|
290
|
-
| RTF |
|
|
291
|
+
| TXT / Markdown | ✅ | ✅ | Paragraph and sentence segmentation |
|
|
292
|
+
| CSV | ✅ | ✅ | Comma, semicolon, tab, or pipe delimiter auto-detected; source/target column by header name or 1-based number; existing bilingual export |
|
|
293
|
+
| DOCX | ✅ | ✅ | Body paragraphs; table blocks are excluded from import. Export patches the original package, keeping styles, numbering, images, headers, tables, and layout. |
|
|
294
|
+
| EPUB | ✅ | ✅ | EPUB 3 spine order; XHTML text blocks with inline markup kept as tokens and patched back into the retained package. DRM-protected, fixed-layout, and scripted EPUBs are not supported. |
|
|
295
|
+
| TMX 1.4 | ✅ | ✅ | Common `<tu>/<tuv>/<seg>` subset; inline markup flattened with warning; context kept in `<prop type="x-context">` |
|
|
296
|
+
| SRT / WebVTT | ✅ | ✅ | One cue per segment, timings/settings/identifier retained; semantic tags kept; invalid ranges rejected |
|
|
297
|
+
| PO | ✅ | ✅ | Contexts, plural forms, translator comments, obsolete `#~` entries |
|
|
298
|
+
| XLIFF 1.2 | ✅ | ✅ | Inline tags become `{n}` tokens; missing tokens block confirmation |
|
|
299
|
+
| XLIFF 2.0 | ✅ | ✅ | Basic `<unit><segment><source>/<target>` subset |
|
|
300
|
+
| SDLXLIFF | ✅ | ✅ | Basic XLIFF 1.2 path; SDL-specific extensions are not round-tripped |
|
|
301
|
+
| HTML | ✅ | ✅ | Text blocks and inline tags preserved; document CSS/layout is not rebuilt |
|
|
302
|
+
| JSON | ✅ | ✅ | String-path subset; object/array structure preserved via a template; keys and numbers are not translated |
|
|
303
|
+
| XLSX | ✅ | ✅ | All worksheets; source/target columns (or headers); source-preserving patch keeps styles, merges, and other sheets; formulas are skipped |
|
|
304
|
+
| PPTX | ✅ | ✅ | Source-preserving export; requires the imported `.pptx` package. Body text and speaker notes; charts/SmartArt not imported. |
|
|
305
|
+
| RTF | ✅ | ✅ | Basic paragraphs, `\uN`, `\'hh`, control words; original styling not round-tripped |
|
|
291
306
|
|
|
292
307
|
\* PPTX export fails with `PPTX_SOURCE_REQUIRED` when the retained source package
|
|
293
308
|
is missing rather than silently producing an unformatted deck.
|
|
@@ -331,7 +346,7 @@ In DSH Desktop (or any profile with the `plugin_manager` tool):
|
|
|
331
346
|
plugin_manager install_bundle target: dsh-cait
|
|
332
347
|
```
|
|
333
348
|
|
|
334
|
-
Pin a release with `dsh-cait@1.1.
|
|
349
|
+
Pin a release with `dsh-cait@1.1.7`, or ask for the newest one with
|
|
335
350
|
`dsh-cait@latest`. The manager resolves the registry package, applies the bundle
|
|
336
351
|
patch, and activates the plugin — no hand-written profile rows.
|
|
337
352
|
|
|
@@ -474,48 +489,48 @@ flowchart LR
|
|
|
474
489
|
|
|
475
490
|
```text
|
|
476
491
|
cait/
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
492
|
+
├─ package.json
|
|
493
|
+
├─ cordis.patch.yml
|
|
494
|
+
├─ index.js # Host half
|
|
495
|
+
├─ client.js # generated Web bundle
|
|
496
|
+
├─ client/ # helpers, styles, RPC, components, locales, entry
|
|
497
|
+
├─ scripts/build-client.mjs
|
|
498
|
+
├─ icon.svg
|
|
499
|
+
├─ locale/{en,zh,ja}.json
|
|
500
|
+
├─ NOTICE
|
|
501
|
+
├─ README.md
|
|
502
|
+
├─ README.zh-CN.md
|
|
503
|
+
├─ README.ja.md
|
|
504
|
+
├─ CHANGELOG.md
|
|
505
|
+
├─ lib/
|
|
506
|
+
│ ├─ store.js # CatStore facade + document/segment core
|
|
507
|
+
│ ├─ errors.js
|
|
508
|
+
│ ├─ store-utils.js
|
|
509
|
+
│ ├─ libraries.js # TM/glossary registries + mounts
|
|
510
|
+
│ ├─ library-view.js # Library paging/search + export entry points
|
|
511
|
+
│ ├─ library-export.js # Glossary TBX / CSV / JSON builders
|
|
512
|
+
│ ├─ tm.js
|
|
513
|
+
│ ├─ glossary.js
|
|
514
|
+
│ ├─ persistence.js
|
|
515
|
+
│ ├─ import-export.js
|
|
516
|
+
│ ├─ formats.js # CSV/SRT/VTT/PO/XLIFF/HTML/JSON/RTF
|
|
517
|
+
│ ├─ html.js # Shared HTML/XHTML run scanner + patcher
|
|
518
|
+
│ ├─ epub.js # EPUB package read / spine import / patch export
|
|
519
|
+
│ ├─ preprocess.js # Import-time source cleaning stage
|
|
520
|
+
│ ├─ pre-translate.js # Block pre-translation methods
|
|
521
|
+
│ ├─ qa.js # Derived QA report (never persisted)
|
|
522
|
+
│ ├─ xlsx.js
|
|
523
|
+
│ ├─ pptx.js
|
|
524
|
+
│ ├─ segmenter.js
|
|
525
|
+
│ ├─ similarity.js
|
|
526
|
+
│ ├─ tmx.js
|
|
527
|
+
│ ├─ docx.js
|
|
528
|
+
│ ├─ markdown.js
|
|
529
|
+
│ ├─ xml.js
|
|
530
|
+
│ ├─ mt.js
|
|
531
|
+
│ ├─ tools.js
|
|
532
|
+
│ └─ api.js
|
|
533
|
+
└─ _dev/ # tests, fixtures, local patch overlay
|
|
519
534
|
```
|
|
520
535
|
|
|
521
536
|
</details>
|
|
@@ -610,12 +625,15 @@ GitHub with a release.
|
|
|
610
625
|
[PDF is not supported](#pdf-is-not-supported)). No image OCR yet.
|
|
611
626
|
- EPUB import follows the spine and body XHTML text blocks; DRM-protected,
|
|
612
627
|
fixed-layout, scripted, and MathML-heavy books are not supported.
|
|
613
|
-
- DOCX import
|
|
614
|
-
|
|
628
|
+
- DOCX import covers body, tables, headers, footers, footnotes, and endnotes;
|
|
629
|
+
fields, alt text, and tracked deletions still stay in the source language.
|
|
615
630
|
- Mixed-run DOCX/PPTX paragraphs inherit the first run's formatting.
|
|
616
|
-
- PPTX import covers body text
|
|
617
|
-
- XLSX
|
|
618
|
-
|
|
631
|
+
- PPTX import covers body text and speaker notes, not charts or SmartArt.
|
|
632
|
+
- XLSX export needs a target column to patch; formula cells are skipped, and a
|
|
633
|
+
workbook imported before 1.1.7 has no retained source to patch.
|
|
634
|
+
- Nested YAML supports mappings, sequences, scalars, block scalars, and
|
|
635
|
+
comments; anchors, aliases, merge keys, and flow collections are rejected
|
|
636
|
+
with `LOCALIZATION_YAML_UNSUPPORTED`.
|
|
619
637
|
- HTML/RTF export does not round-trip original styling; JSON translates string
|
|
620
638
|
values only.
|
|
621
639
|
- TM matching is lexical, not semantic; no stemming, synonyms, or embeddings.
|
|
@@ -629,12 +647,13 @@ GitHub with a release.
|
|
|
629
647
|
Settings; this README ships in English, Simplified Chinese, and Japanese, and
|
|
630
648
|
the English version is the source of truth.
|
|
631
649
|
|
|
632
|
-
|
|
633
|
-
bilingual DOCX review output, and an XLIFF review package
|
|
634
|
-
find/replace, segment merge/split/lock, comments, local undo
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
650
|
+
Shipped since 1.1.5: per-document TM/glossary binding, word-count and leverage
|
|
651
|
+
analysis, bilingual DOCX review output, and an XLIFF review package. 1.1.6 added
|
|
652
|
+
find/replace, segment merge/split/lock, comments, local undo, and an optional LLM
|
|
653
|
+
review pass. 1.1.7 added DOCX tables/headers/footnotes, nested localization
|
|
654
|
+
catalogs, source-preserving multi-sheet XLSX, speaker notes, and subtitle
|
|
655
|
+
timeline controls. Next candidates: Office paragraph mapping for merge/split
|
|
656
|
+
and a subtitle waveform.
|
|
638
657
|
|
|
639
658
|
## Changelog and versioning
|
|
640
659
|
|
package/README.zh-CN.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<p align="center">
|
|
17
17
|
<a href="https://www.npmjs.com/package/dsh-cait"><img alt="npm 版本" src="https://img.shields.io/npm/v/dsh-cait.svg" /></a>
|
|
18
18
|
<img alt="DSH 0.2.x" src="https://img.shields.io/badge/DSH-0.2.x-4d6bfe.svg" />
|
|
19
|
-
<img alt="
|
|
19
|
+
<img alt="45 套测试" src="https://img.shields.io/badge/tests-45%20suites-brightgreen.svg" />
|
|
20
20
|
<img alt="无需 API Key" src="https://img.shields.io/badge/API%20key-not%20required-6b7280.svg" />
|
|
21
21
|
</p>
|
|
22
22
|
|
|
@@ -53,6 +53,13 @@ CAIT 为 DSH Web UI 和 DSH 桌面端增加一个 CAT 翻译工作台。它从
|
|
|
53
53
|
|
|
54
54
|
## 功能
|
|
55
55
|
|
|
56
|
+
### 1.1.7 新增
|
|
57
|
+
|
|
58
|
+
- **DOCX 深度**:表格、页眉、页脚、脚注和尾注里的段落都会作为普通句段导入,并写回原来的 part。
|
|
59
|
+
- **本地化字符串**:Apple `.strings`/`.stringsdict`、Android `strings.xml`/复数、`.resx`、`.arb`、嵌套 YAML、Java `.properties` 可往返,保留 key、注释、复数变体、块标量和内联标签。
|
|
60
|
+
- **演讲者备注与多工作表**:PPTX 备注页独立成段;XLSX 每个工作表保留名称、顺序和单元格引用;保留源文件时按原单元格回写,样式和合并区域不丢。
|
|
61
|
+
- **字幕时间轴**:合并相邻 cue、按时间点拆分、整体平移时间码;重叠 cue 作为高风险 QA 提示,不自动改时间。
|
|
62
|
+
|
|
56
63
|
### 1.1.6 新增
|
|
57
64
|
|
|
58
65
|
- **查找替换**:原文/译文预览、一次应用、撤销上次替换;已确认句段的译文被改动时自动回到待审状态。
|
|
@@ -214,7 +221,7 @@ provider/model/code/status,客户端只会收到 `MT_PROVIDER_FAILED`。
|
|
|
214
221
|
| SDLXLIFF | ✅ | ✅ | 走基础 XLIFF 1.2 路径;SDL 专有扩展不会完整往返 |
|
|
215
222
|
| HTML | ✅ | ✅ | 保留文本块与内联标签;不重建文档级 CSS/版式 |
|
|
216
223
|
| JSON | ✅ | ✅ | 字符串路径子集;通过模板保留对象/数组结构;key 和数字不翻译 |
|
|
217
|
-
| XLSX | ✅ | ✅ |
|
|
224
|
+
| XLSX | ✅ | ✅ | 全部工作表;识别源/目标列或表头;保留源文件时按单元格回写,样式、合并区域和其他工作表不丢;公式单元格跳过 |
|
|
218
225
|
| PPTX | ✅ | ✅* | 保留源格式导出;需要导入时保留的 `.pptx` 包。仅正文;备注/图表/SmartArt 不导入。 |
|
|
219
226
|
| RTF | ✅ | ✅ | 基础段落、`\uN`、`\'hh`、控制字;不往返原始样式 |
|
|
220
227
|
|
|
@@ -256,7 +263,7 @@ CAIT 以 DSH bundle 的形式安装;发布的 npm 包名为 `dsh-cait`,插
|
|
|
256
263
|
plugin_manager install_bundle target: dsh-cait
|
|
257
264
|
```
|
|
258
265
|
|
|
259
|
-
需要固定版本时写 `dsh-cait@1.1.
|
|
266
|
+
需要固定版本时写 `dsh-cait@1.1.7`,需要最新版时写 `dsh-cait@latest`。管理器会解析 registry
|
|
260
267
|
上的包、应用 bundle patch 并激活插件,不需要手工在配置档里加行。
|
|
261
268
|
|
|
262
269
|
使用 CLI 管理的配置档:
|
|
@@ -455,7 +462,7 @@ node _dev/test-mt.mjs
|
|
|
455
462
|
|
|
456
463
|
导入/导出 fixture 为 `_dev/sample.docx`、`_dev/sample-table.docx` 和
|
|
457
464
|
`_dev/sample-format.docx`;可用对应的 `python _dev/make-*.py` 脚本重新生成。
|
|
458
|
-
|
|
465
|
+
45 套测试应全部通过。
|
|
459
466
|
|
|
460
467
|
### 发布
|
|
461
468
|
|
|
@@ -497,11 +504,14 @@ GitHub release 发布。
|
|
|
497
504
|
[不支持 PDF](#不支持-pdf))。暂不支持图片 OCR。
|
|
498
505
|
- EPUB 导入只覆盖 spine 中的正文 XHTML 文本块;不支持 DRM、固定版式、
|
|
499
506
|
脚本化以及大量使用 MathML 的电子书。
|
|
500
|
-
- DOCX
|
|
501
|
-
|
|
507
|
+
- DOCX 导入覆盖正文、表格、页眉、页脚、脚注和尾注;域、替代文本和修订删除
|
|
508
|
+
仍保持源语言。
|
|
502
509
|
- DOCX/PPTX 中混合 run 的段落会继承第一个 run 的格式。
|
|
503
|
-
- PPTX
|
|
504
|
-
- XLSX
|
|
510
|
+
- PPTX 导入覆盖正文和演讲者备注,不包含图表或 SmartArt。
|
|
511
|
+
- XLSX 导出需要目标列才能回写;公式单元格会跳过;1.1.7 之前导入的文档没有
|
|
512
|
+
保留源工作簿,只能重建新表。
|
|
513
|
+
- 嵌套 YAML 支持 mapping、sequence、scalar、块标量和注释;锚点、别名、
|
|
514
|
+
merge key 和 flow 集合会以 `LOCALIZATION_YAML_UNSUPPORTED` 拒绝。
|
|
505
515
|
- HTML/RTF 导出不往返原始样式;JSON 只翻译字符串值。
|
|
506
516
|
- TM 匹配是词法级的,不是语义级;没有词干、同义词或向量。
|
|
507
517
|
- 每个上下文下,同一原文存一条译文:重复的句子会为每种相邻句组合保留一条变体,
|
|
@@ -510,8 +520,8 @@ GitHub release 发布。
|
|
|
510
520
|
- TBX 与 JSON 术语导出是单向的;只有 TMX 和 CSV 能再导入回来。
|
|
511
521
|
- 工作台界面提供中文、English、日本語三种语言,可在设置中切换;README 提供英文、简体中文和日文三个版本,以英文版为准。
|
|
512
522
|
|
|
513
|
-
后续计划:通过多模态 DSH
|
|
514
|
-
|
|
523
|
+
后续计划:通过多模态 DSH 路由支持图片/视觉输入、Office 段落映射后的合并/拆分,
|
|
524
|
+
以及字幕波形/播放头。
|
|
515
525
|
|
|
516
526
|
## 变更日志与版本
|
|
517
527
|
|