dsh-cait 1.0.5 → 1.1.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/client/locales.js CHANGED
@@ -47,6 +47,40 @@
47
47
  'editor.emptyTarget': '请先输入译文',
48
48
  'editor.done': '全部句段已确认',
49
49
  'editor.confirmedAt': '确认于',
50
+ 'editor.suggestion': '机器建议',
51
+ 'editor.adopt': '采纳',
52
+ 'editor.adoptHint': '把建议填入译文,保留它的来源',
53
+ 'editor.remaining': '句待确认',
54
+ 'status.translated': '已翻译',
55
+ 'origin.tm': 'TM',
56
+ 'origin.mt': 'MT',
57
+ 'origin.agent': 'Agent',
58
+ 'origin.manual': '手动',
59
+ 'rail.filter.all': '全部',
60
+ 'rail.filter.pending': '待译',
61
+ 'rail.filter.translated': '待审',
62
+ 'rail.filter.confirmed': '已确认',
63
+ 'rail.confirmAll': '全部确认',
64
+ 'rail.confirmAllHint': '把当前所有「待审」句段一次性确认并写入翻译记忆',
65
+ 'rail.confirmAllMessage': '将确认 {count} 个待审句段并写入翻译记忆,句段译文不会经过逐句复核。确定继续?',
66
+ 'toast.confirmedMany': '已确认 {count} 段',
67
+ 'qa.warn': '检查提醒',
68
+ 'qa.exportBanner': '导出前检查发现 {count} 条提醒(不影响导出):',
69
+ 'qa.counts': '占位符 {placeholder} · 数字 {number} · 术语 {term} · 空译文 {empty}',
70
+ 'qa.code.PLACEHOLDER_MISSING': '占位符缺失',
71
+ 'qa.code.NUMBER_MISMATCH': '数字不一致',
72
+ 'qa.code.TERM_NOT_USED': '术语未使用',
73
+ 'qa.code.EMPTY_TARGET': '空译文',
74
+ 'toast.suggestionAdopted': '已采纳建议',
75
+ 'pretranslate.start': '预翻译',
76
+ 'editor.noSuggestion': '暂无建议,可直接翻译或让 agent 补刀',
77
+ 'editor.baselineHint': '中间栏是机器或 agent 的初次产出,右侧可以对照着改',
78
+ 'pretranslate.title': '用翻译记忆与机器翻译给整篇铺底,之后逐句审校',
79
+ 'pretranslate.running': '预翻译中',
80
+ 'pretranslate.cancel': '停止预翻译',
81
+ 'toast.preDone': '预翻译完成,填充 {count} 段',
82
+ 'toast.preCancelled': '已停止预翻译',
83
+ 'toast.preFailed': '预翻译结束,{count} 段失败',
50
84
  'empty.title': '开始一次 CAT 翻译',
51
85
  'empty.desc': '粘贴文本、拖入文件,或加载演示文档。CAIT 会把源文切成句段,并同时查询翻译记忆与术语库;确认译文后自动入库。',
52
86
  'empty.paste': '粘贴文本',
@@ -95,6 +129,13 @@
95
129
  'libraries.create': '新建',
96
130
  'libraries.done': '完成',
97
131
  'libraries.created': '库已创建并自动挂载',
132
+ 'libraries.rename': '重命名',
133
+ 'libraries.save': '保存',
134
+ 'libraries.renamed': '库已重命名',
135
+ 'libraries.delete': '删除库',
136
+ 'libraries.deleted': '库已删除',
137
+ 'libraries.deleteTmWarn': '库里的记忆条目也会一起删除,无法撤销。',
138
+ 'libraries.deleteGlossaryWarn': '库里的术语也会一起删除,无法撤销。',
98
139
  'libraries.mountSaved': '挂载设置已保存',
99
140
  'panel.tm': '记忆库',
100
141
  'panel.glossary': '术语库',
@@ -112,6 +153,9 @@
112
153
  'match.high_fuzzy': '高模糊',
113
154
  'match.medium_fuzzy': '中模糊',
114
155
  'match.low_fuzzy': '低模糊',
156
+ 'match.context': '上下文匹配',
157
+ 'panel.contextPrev': '上文',
158
+ 'panel.contextNext': '下文',
115
159
  'panel.apply': '应用',
116
160
  'panel.importTmx': '导入 TMX',
117
161
  'panel.clearTm': '清空记忆库',
@@ -127,6 +171,8 @@
127
171
  'panel.saveTerm': '保存术语',
128
172
  'panel.cancel': '取消',
129
173
  'panel.delete': '删除',
174
+ 'panel.edit': '编辑',
175
+ 'panel.saveEntry': '保存修改',
130
176
  'panel.noTerms': '术语库为空。添加术语后,命中会自动高亮。',
131
177
  'panel.importCsv': '导入 CSV/TSV',
132
178
  'panel.clearGlossary': '清空术语库',
@@ -205,6 +251,7 @@
205
251
  'modal.confirm.clearGlossary':
206
252
  '清空当前挂载的术语?未挂载库不会受影响;如要清空全部库,请在 API 调用中显式传 all: true。此操作无法撤销。',
207
253
  'modal.confirm.deleteTerm': '删除术语',
254
+ 'modal.confirm.deleteTm': '删除记忆库条目',
208
255
  'modal.confirm.ok': '确认',
209
256
  'modal.confirm.cancel': '取消',
210
257
  'toast.confirmed': '句段已确认并写入记忆库',
@@ -217,6 +264,8 @@
217
264
  'toast.draftSaved': '草稿已保存',
218
265
  'toast.termSaved': '术语已保存',
219
266
  'toast.termDeleted': '术语已删除',
267
+ 'toast.tmUpdated': '记忆库条目已更新',
268
+ 'toast.tmDeleted': '记忆库条目已删除',
220
269
  'toast.tmImported': 'TMX 已导入',
221
270
  'toast.tmxMarkupLost': 'TMX 已导入;{count} 个内联占位符/格式标签已按纯文本处理,格式信息丢失。',
222
271
  'toast.glossaryImported': '术语已导入',
@@ -227,6 +276,93 @@
227
276
  'toast.copied': '已复制到剪贴板',
228
277
  'toast.mtReady': '译文建议已生成',
229
278
  'toast.error': '操作失败',
279
+ 'nav.documents': '文档',
280
+ 'nav.libraries': '库',
281
+ 'library.title': '翻译记忆与术语库',
282
+ 'library.tmTab': '翻译记忆',
283
+ 'library.glossaryTab': '术语库',
284
+ 'library.scope': '搜索范围',
285
+ 'library.scopeAll': '全部库',
286
+ 'library.search': '搜索原文或译文…',
287
+ 'library.language': '全部语言',
288
+ 'library.pageSize': '每页',
289
+ 'library.pageInfo': '第 {start}–{end} 条 / 共 {total} 条',
290
+ 'library.prev': '上一页',
291
+ 'library.next': '下一页',
292
+ 'library.empty': '这个库里还没有条目。',
293
+ 'library.noMatch': '没有匹配的条目。',
294
+ 'library.add': '新增',
295
+ 'library.import': '导入',
296
+ 'library.export': '导出',
297
+ 'library.clear': '清空',
298
+ 'library.newLibrary': '新建库',
299
+ 'library.rename': '重命名',
300
+ 'library.deleteLibrary': '删除库',
301
+ 'library.deleteLibraryMessage': '删除「{name}」?库里的条目也会一起删除。',
302
+ 'library.colSource': '原文',
303
+ 'library.colTarget': '译文',
304
+ 'library.colNote': '备注',
305
+ 'library.colContext': '上下文',
306
+ 'library.colLang': '语言',
307
+ 'library.colCase': '区分大小写',
308
+ 'library.colUpdated': '更新时间',
309
+ 'library.detail': '条目详情',
310
+ 'library.detailEmpty': '点一行查看和编辑。',
311
+ 'library.save': '保存',
312
+ 'library.deleteEntry': '删除条目',
313
+ 'library.entryCreated': '已新增条目',
314
+ 'library.entrySaved': '已保存',
315
+ 'library.entryDeleted': '已删除',
316
+ 'library.exported': '已导出',
317
+ 'library.exportFormat': '导出格式',
318
+ 'library.caseSensitiveHint': '区分大小写时只匹配完全一致的写法。',
319
+ 'library.noDocHint': '不用打开文档也能管理库。',
320
+ 'rail.pageInfo': '第 {start}–{end} 条 / 共 {total} 条',
321
+ 'rail.goto': '跳到编号',
322
+ 'rail.gotoInvalid': '编号超出范围。',
323
+ 'rail.nextUnconfirmed': '下一个未确认',
324
+ 'panel.searchInLibrary': '在库中搜索',
325
+ 'panel.viewAll': '在库页面查看全部',
326
+ 'panel.glossaryMatchesOnly': '这里只显示当前句段命中的术语。',
327
+ 'nav.align': '对齐',
328
+ 'align.title': '对齐两个文件',
329
+ 'align.hint': '分别放入源文件和译文文件,CAIT 会按段落逐句配对。两个文件可以是完全不同的语言。',
330
+ 'align.sourceFile': '源文件',
331
+ 'align.targetFile': '译文文件',
332
+ 'align.pick': '未选择文件',
333
+ 'align.choose': '选择',
334
+ 'align.chars': '{count} 字符',
335
+ 'align.run': '开始对齐',
336
+ 'align.running': '对齐中…',
337
+ 'align.needFiles': '请先选择源文件和译文文件。',
338
+ 'align.readError': '读取文件失败。',
339
+ 'align.sourceLang': '源语言(可选)',
340
+ 'align.targetLang': '目标语言(可选)',
341
+ 'align.stats': '高置信 {high} · 待确认 {medium} · 可疑 {low}',
342
+ 'align.unpairedSource': '未配对原文',
343
+ 'align.unpairedTarget': '未配对译文',
344
+ 'align.blocked': '文件较大,已按段落分块对齐,结果可能不如整体对齐稳定。',
345
+ 'align.confidence': '置信度',
346
+ 'align.merge': '与下一行合并',
347
+ 'align.split': '按换行拆开',
348
+ 'align.remove': '删除这一行',
349
+ 'align.write': '写入记忆库',
350
+ 'align.writeCount': '写入选中的 {count} 条',
351
+ 'align.writeMessage': '将写入 {count} 条,完全相同的条目会被跳过。',
352
+ 'align.written': '已写入 {written} 条,跳过 {skipped} 条。',
353
+ 'align.nothing': '没有可写入的行。',
354
+ 'origin.auto': '自动传播',
355
+ 'rail.propagate': '铺满重复句段',
356
+ 'rail.propagateMessage': '把已有译文填到本文档中其它相同原文的句段(已确认的不会动)。',
357
+ 'toast.propagated': '已铺满 {count} 个句段。',
358
+ 'term.title': '术语候选',
359
+ 'term.hint': '按出现次数与长度排序,点选后填入译文即可入库。',
360
+ 'term.extract': '从文档提取术语',
361
+ 'term.empty': '没有找到重复出现的候选术语。',
362
+ 'term.add': '加入术语库',
363
+ 'term.added': '已加入 {added} 条术语。',
364
+ 'term.noDoc': '先打开一个文档再提取术语。',
365
+ 'term.inLibrary': '已有',
230
366
  }
231
367
 
232
368
  const EN = {
@@ -278,6 +414,40 @@
278
414
  'editor.emptyTarget': 'Enter a translation first',
279
415
  'editor.done': 'All segments confirmed',
280
416
  'editor.confirmedAt': 'Confirmed',
417
+ 'editor.suggestion': 'Machine suggestion',
418
+ 'editor.adopt': 'Adopt',
419
+ 'editor.adoptHint': 'Fill the target with this suggestion and keep its origin',
420
+ 'editor.remaining': 'to review',
421
+ 'status.translated': 'Translated',
422
+ 'origin.tm': 'TM',
423
+ 'origin.mt': 'MT',
424
+ 'origin.agent': 'Agent',
425
+ 'origin.manual': 'Manual',
426
+ 'rail.filter.all': 'All',
427
+ 'rail.filter.pending': 'To translate',
428
+ 'rail.filter.translated': 'To review',
429
+ 'rail.filter.confirmed': 'Confirmed',
430
+ 'rail.confirmAll': 'Confirm all',
431
+ 'rail.confirmAllHint': 'Confirm every "To review" segment at once and write them to translation memory',
432
+ 'rail.confirmAllMessage': 'This confirms {count} segment(s) awaiting review and writes them to translation memory, without reviewing them one by one. Continue?',
433
+ 'toast.confirmedMany': 'Confirmed {count} segment(s)',
434
+ 'qa.warn': 'Review note',
435
+ 'qa.exportBanner': 'Pre-export check found {count} note(s) — export is not blocked:',
436
+ 'qa.counts': 'placeholders {placeholder} · numbers {number} · terms {term} · empty {empty}',
437
+ 'qa.code.PLACEHOLDER_MISSING': 'placeholder missing',
438
+ 'qa.code.NUMBER_MISMATCH': 'number mismatch',
439
+ 'qa.code.TERM_NOT_USED': 'term unused',
440
+ 'qa.code.EMPTY_TARGET': 'empty target',
441
+ 'toast.suggestionAdopted': 'Suggestion adopted',
442
+ 'pretranslate.start': 'Pre-translate',
443
+ 'editor.noSuggestion': 'No suggestion yet — translate directly or let an agent draft it',
444
+ 'editor.baselineHint': 'The middle column is what the machine or agent produced; edit against it on the right',
445
+ 'pretranslate.title': 'Fill the whole document from TM and machine translation, then review segment by segment',
446
+ 'pretranslate.running': 'Pre-translating',
447
+ 'pretranslate.cancel': 'Stop pre-translation',
448
+ 'toast.preDone': 'Pre-translation finished, {count} segment(s) filled',
449
+ 'toast.preCancelled': 'Pre-translation stopped',
450
+ 'toast.preFailed': 'Pre-translation finished, {count} segment(s) failed',
281
451
  'empty.title': 'Start a CAT translation',
282
452
  'empty.desc': 'Paste text, drop a file, or load the demo. CAIT splits the source into segments, queries translation memory and glossary hits, and stores each confirmed pair in TM.',
283
453
  'empty.paste': 'Paste text',
@@ -326,6 +496,13 @@
326
496
  'libraries.create': 'Create',
327
497
  'libraries.done': 'Done',
328
498
  'libraries.created': 'Library created and mounted',
499
+ 'libraries.rename': 'Rename',
500
+ 'libraries.save': 'Save',
501
+ 'libraries.renamed': 'Library renamed',
502
+ 'libraries.delete': 'Delete library',
503
+ 'libraries.deleted': 'Library deleted',
504
+ 'libraries.deleteTmWarn': 'Its TM entries are deleted with it. This cannot be undone.',
505
+ 'libraries.deleteGlossaryWarn': 'Its terms are deleted with it. This cannot be undone.',
329
506
  'libraries.mountSaved': 'Mount settings saved',
330
507
  'panel.tm': 'TM',
331
508
  'panel.glossary': 'Glossary',
@@ -343,6 +520,9 @@
343
520
  'match.high_fuzzy': 'High fuzzy',
344
521
  'match.medium_fuzzy': 'Medium fuzzy',
345
522
  'match.low_fuzzy': 'Low fuzzy',
523
+ 'match.context': 'Context match',
524
+ 'panel.contextPrev': 'Prev',
525
+ 'panel.contextNext': 'Next',
346
526
  'panel.apply': 'Apply',
347
527
  'panel.importTmx': 'Import TMX',
348
528
  'panel.clearTm': 'Clear TM',
@@ -358,6 +538,8 @@
358
538
  'panel.saveTerm': 'Save term',
359
539
  'panel.cancel': 'Cancel',
360
540
  'panel.delete': 'Delete',
541
+ 'panel.edit': 'Edit',
542
+ 'panel.saveEntry': 'Save changes',
361
543
  'panel.noTerms': 'The glossary is empty. Hits will be highlighted automatically.',
362
544
  'panel.importCsv': 'Import CSV/TSV',
363
545
  'panel.clearGlossary': 'Clear glossary',
@@ -436,6 +618,7 @@
436
618
  'modal.confirm.clearGlossary':
437
619
  'Clear the currently mounted glossary terms? Unmounted libraries are not affected; pass all: true to the API to clear every library. This cannot be undone.',
438
620
  'modal.confirm.deleteTerm': 'Delete term',
621
+ 'modal.confirm.deleteTm': 'Delete TM entry',
439
622
  'modal.confirm.ok': 'Confirm',
440
623
  'modal.confirm.cancel': 'Cancel',
441
624
  'toast.confirmed': 'Segment confirmed and written to TM',
@@ -448,6 +631,8 @@
448
631
  'toast.draftSaved': 'Draft saved',
449
632
  'toast.termSaved': 'Term saved',
450
633
  'toast.termDeleted': 'Term deleted',
634
+ 'toast.tmUpdated': 'TM entry updated',
635
+ 'toast.tmDeleted': 'TM entry deleted',
451
636
  'toast.tmImported': 'TMX imported',
452
637
  'toast.tmxMarkupLost': 'TMX imported; {count} inline placeholder/format tags were flattened to plain text.',
453
638
  'toast.glossaryImported': 'Glossary imported',
@@ -458,6 +643,93 @@
458
643
  'toast.copied': 'Copied to clipboard',
459
644
  'toast.mtReady': 'Suggestion ready',
460
645
  'toast.error': 'Operation failed',
646
+ 'nav.documents': 'Documents',
647
+ 'nav.libraries': 'Libraries',
648
+ 'library.title': 'Translation memory and glossary',
649
+ 'library.tmTab': 'Translation memory',
650
+ 'library.glossaryTab': 'Glossary',
651
+ 'library.scope': 'Search in',
652
+ 'library.scopeAll': 'All libraries',
653
+ 'library.search': 'Search source or target…',
654
+ 'library.language': 'All languages',
655
+ 'library.pageSize': 'Per page',
656
+ 'library.pageInfo': '{start}–{end} of {total}',
657
+ 'library.prev': 'Previous',
658
+ 'library.next': 'Next',
659
+ 'library.empty': 'This library has no entries yet.',
660
+ 'library.noMatch': 'No entries match.',
661
+ 'library.add': 'Add',
662
+ 'library.import': 'Import',
663
+ 'library.export': 'Export',
664
+ 'library.clear': 'Clear',
665
+ 'library.newLibrary': 'New library',
666
+ 'library.rename': 'Rename',
667
+ 'library.deleteLibrary': 'Delete library',
668
+ 'library.deleteLibraryMessage': 'Delete “{name}”? Its entries will be deleted too.',
669
+ 'library.colSource': 'Source',
670
+ 'library.colTarget': 'Target',
671
+ 'library.colNote': 'Note',
672
+ 'library.colContext': 'Context',
673
+ 'library.colLang': 'Language',
674
+ 'library.colCase': 'Case-sensitive',
675
+ 'library.colUpdated': 'Updated',
676
+ 'library.detail': 'Entry',
677
+ 'library.detailEmpty': 'Select a row to view and edit it.',
678
+ 'library.save': 'Save',
679
+ 'library.deleteEntry': 'Delete entry',
680
+ 'library.entryCreated': 'Entry added',
681
+ 'library.entrySaved': 'Saved',
682
+ 'library.entryDeleted': 'Deleted',
683
+ 'library.exported': 'Exported',
684
+ 'library.exportFormat': 'Format',
685
+ 'library.caseSensitiveHint': 'Case-sensitive terms match only the exact spelling.',
686
+ 'library.noDocHint': 'Manage libraries without opening a document.',
687
+ 'rail.pageInfo': '{start}–{end} of {total}',
688
+ 'rail.goto': 'Go to segment',
689
+ 'rail.gotoInvalid': 'Segment number is out of range.',
690
+ 'rail.nextUnconfirmed': 'Next unconfirmed',
691
+ 'panel.searchInLibrary': 'Search the library',
692
+ 'panel.viewAll': 'View all in libraries',
693
+ 'panel.glossaryMatchesOnly': 'Only terms that match this segment are listed here.',
694
+ 'nav.align': 'Align',
695
+ 'align.title': 'Align two files',
696
+ 'align.hint': 'Drop the source file and the translated file. CAIT pairs them paragraph by paragraph — they can be in completely different languages.',
697
+ 'align.sourceFile': 'Source file',
698
+ 'align.targetFile': 'Translated file',
699
+ 'align.pick': 'No file chosen',
700
+ 'align.choose': 'Choose',
701
+ 'align.chars': '{count} chars',
702
+ 'align.run': 'Align',
703
+ 'align.running': 'Aligning…',
704
+ 'align.needFiles': 'Choose both files first.',
705
+ 'align.readError': 'Could not read that file.',
706
+ 'align.sourceLang': 'Source language (optional)',
707
+ 'align.targetLang': 'Target language (optional)',
708
+ 'align.stats': 'high {high} · to review {medium} · doubtful {low}',
709
+ 'align.unpairedSource': 'Unpaired source',
710
+ 'align.unpairedTarget': 'Unpaired target',
711
+ 'align.blocked': 'Large files are aligned in paragraph blocks; results may be less stable than a whole-file pass.',
712
+ 'align.confidence': 'Confidence',
713
+ 'align.merge': 'Merge with the next row',
714
+ 'align.split': 'Split on line breaks',
715
+ 'align.remove': 'Remove this row',
716
+ 'align.write': 'Write to memory',
717
+ 'align.writeCount': 'Write {count} selected',
718
+ 'align.writeMessage': 'This writes {count} pair(s); identical entries are skipped.',
719
+ 'align.written': 'Wrote {written}, skipped {skipped}.',
720
+ 'align.nothing': 'Nothing selected to write.',
721
+ 'origin.auto': 'Propagated',
722
+ 'rail.propagate': 'Fill repeated segments',
723
+ 'rail.propagateMessage': 'Copy the existing translation to other segments with the same source. Confirmed segments are left alone.',
724
+ 'toast.propagated': 'Filled {count} segment(s).',
725
+ 'term.title': 'Terminology candidates',
726
+ 'term.hint': 'Ranked by occurrences and length. Pick the real terms, type a translation, and add them.',
727
+ 'term.extract': 'Mine terms from the document',
728
+ 'term.empty': 'No repeated candidate found.',
729
+ 'term.add': 'Add to glossary',
730
+ 'term.added': 'Added {added} term(s).',
731
+ 'term.noDoc': 'Open a document before mining terms.',
732
+ 'term.inLibrary': 'in library',
461
733
  }
462
734
 
463
735
  const JA = {
@@ -509,6 +781,40 @@
509
781
  'editor.emptyTarget': '先に訳文を入力してください',
510
782
  'editor.done': 'すべてのセグメントを確認済み',
511
783
  'editor.confirmedAt': '確認日時',
784
+ 'editor.suggestion': '機械翻訳の提案',
785
+ 'editor.adopt': '採用',
786
+ 'editor.adoptHint': '提案を訳文に反映し、出所を保ちます',
787
+ 'editor.remaining': '件が未確認',
788
+ 'status.translated': '翻訳済み',
789
+ 'origin.tm': 'TM',
790
+ 'origin.mt': 'MT',
791
+ 'origin.agent': 'Agent',
792
+ 'origin.manual': '手動',
793
+ 'rail.filter.all': 'すべて',
794
+ 'rail.filter.pending': '未翻訳',
795
+ 'rail.filter.translated': '要確認',
796
+ 'rail.filter.confirmed': '確認済み',
797
+ 'rail.confirmAll': 'まとめて確認',
798
+ 'rail.confirmAllHint': '「要確認」の文をまとめて確認し、翻訳メモリに書き込みます',
799
+ 'rail.confirmAllMessage': '要確認の {count} 文をまとめて確認し、翻訳メモリに書き込みます。1 文ずつ見直すことはありません。続けますか?',
800
+ 'toast.confirmedMany': '{count} 文を確認しました',
801
+ 'qa.warn': 'チェック注意',
802
+ 'qa.exportBanner': '書き出し前のチェックで {count} 件の注意が見つかりました(書き出しは可能です):',
803
+ 'qa.counts': 'プレースホルダー {placeholder} · 数字 {number} · 用語 {term} · 空訳 {empty}',
804
+ 'qa.code.PLACEHOLDER_MISSING': 'プレースホルダー欠落',
805
+ 'qa.code.NUMBER_MISMATCH': '数字の不一致',
806
+ 'qa.code.TERM_NOT_USED': '用語が未使用',
807
+ 'qa.code.EMPTY_TARGET': '訳文が空',
808
+ 'toast.suggestionAdopted': '提案を採用しました',
809
+ 'pretranslate.start': '事前翻訳',
810
+ 'editor.noSuggestion': '提案はまだありません。直接翻訳するか、agent に下訳させてください',
811
+ 'editor.baselineHint': '中央の列は機械翻訳/agent の初回出力です。右側で見比べながら直せます',
812
+ 'pretranslate.title': 'TM と機械翻訳で文書全体を下訳し、あとから文ごとに確認します',
813
+ 'pretranslate.running': '事前翻訳中',
814
+ 'pretranslate.cancel': '事前翻訳を停止',
815
+ 'toast.preDone': '事前翻訳が完了しました({count} 文を反映)',
816
+ 'toast.preCancelled': '事前翻訳を停止しました',
817
+ 'toast.preFailed': '事前翻訳が終了しました({count} 文が失敗)',
512
818
  'empty.title': 'CAT 翻訳を始める',
513
819
  'empty.desc': 'テキストを貼り付けるか、ファイルをドロップするか、デモ文書を読み込みます。CAIT は原文をセグメントに分割し、翻訳メモリと用語集を同時に検索します。確認した訳文は自動的に TM に保存されます。',
514
820
  'empty.paste': 'テキストを貼り付け',
@@ -557,6 +863,13 @@
557
863
  'libraries.create': '作成',
558
864
  'libraries.done': '完了',
559
865
  'libraries.created': 'ライブラリを作成してマウントしました',
866
+ 'libraries.rename': '名前を変更',
867
+ 'libraries.save': '保存',
868
+ 'libraries.renamed': 'ライブラリ名を変更しました',
869
+ 'libraries.delete': 'ライブラリを削除',
870
+ 'libraries.deleted': 'ライブラリを削除しました',
871
+ 'libraries.deleteTmWarn': '中の TM エントリも一緒に削除され、元に戻せません。',
872
+ 'libraries.deleteGlossaryWarn': '中の用語も一緒に削除され、元に戻せません。',
560
873
  'libraries.mountSaved': 'マウント設定を保存しました',
561
874
  'panel.tm': 'TM',
562
875
  'panel.glossary': '用語集',
@@ -574,6 +887,9 @@
574
887
  'match.high_fuzzy': '高あいまい一致',
575
888
  'match.medium_fuzzy': '中あいまい一致',
576
889
  'match.low_fuzzy': '低あいまい一致',
890
+ 'match.context': 'コンテキスト一致',
891
+ 'panel.contextPrev': '前文',
892
+ 'panel.contextNext': '後文',
577
893
  'panel.apply': '適用',
578
894
  'panel.importTmx': 'TMX をインポート',
579
895
  'panel.clearTm': 'TM をクリア',
@@ -589,6 +905,8 @@
589
905
  'panel.saveTerm': '用語を保存',
590
906
  'panel.cancel': 'キャンセル',
591
907
  'panel.delete': '削除',
908
+ 'panel.edit': '編集',
909
+ 'panel.saveEntry': '変更を保存',
592
910
  'panel.noTerms': '用語集は空です。用語を追加するとヒットが自動で強調表示されます。',
593
911
  'panel.importCsv': 'CSV/TSV をインポート',
594
912
  'panel.clearGlossary': '用語集をクリア',
@@ -667,6 +985,7 @@
667
985
  'modal.confirm.clearGlossary':
668
986
  '現在マウント中の用語をクリアしますか?未マウントのライブラリは影響を受けません。すべてのライブラリをクリアするには API に all: true を明示してください。この操作は元に戻せません。',
669
987
  'modal.confirm.deleteTerm': '用語を削除',
988
+ 'modal.confirm.deleteTm': 'TM エントリを削除',
670
989
  'modal.confirm.ok': '確認',
671
990
  'modal.confirm.cancel': 'キャンセル',
672
991
  'toast.confirmed': 'セグメントを確認して TM に保存しました',
@@ -679,6 +998,8 @@
679
998
  'toast.draftSaved': '下書きを保存しました',
680
999
  'toast.termSaved': '用語を保存しました',
681
1000
  'toast.termDeleted': '用語を削除しました',
1001
+ 'toast.tmUpdated': 'TM エントリを更新しました',
1002
+ 'toast.tmDeleted': 'TM エントリを削除しました',
682
1003
  'toast.tmImported': 'TMX をインポートしました',
683
1004
  'toast.tmxMarkupLost': 'TMX をインポートしました。{count} 個のインライン プレースホルダー/書式タグはプレーンテキストとして処理され、書式情報は失われました。',
684
1005
  'toast.glossaryImported': '用語をインポートしました',
@@ -689,6 +1010,93 @@
689
1010
  'toast.copied': 'クリップボードにコピーしました',
690
1011
  'toast.mtReady': '訳文候補を生成しました',
691
1012
  'toast.error': '操作に失敗しました',
1013
+ 'nav.documents': '文書',
1014
+ 'nav.libraries': 'ライブラリ',
1015
+ 'library.title': '翻訳メモリと用語集',
1016
+ 'library.tmTab': '翻訳メモリ',
1017
+ 'library.glossaryTab': '用語集',
1018
+ 'library.scope': '検索範囲',
1019
+ 'library.scopeAll': 'すべてのライブラリ',
1020
+ 'library.search': '原文または訳文を検索…',
1021
+ 'library.language': 'すべての言語',
1022
+ 'library.pageSize': '表示件数',
1023
+ 'library.pageInfo': '{start}–{end} 件 / 全 {total} 件',
1024
+ 'library.prev': '前へ',
1025
+ 'library.next': '次へ',
1026
+ 'library.empty': 'このライブラリにはまだエントリがありません。',
1027
+ 'library.noMatch': '一致するエントリはありません。',
1028
+ 'library.add': '追加',
1029
+ 'library.import': 'インポート',
1030
+ 'library.export': 'エクスポート',
1031
+ 'library.clear': 'クリア',
1032
+ 'library.newLibrary': '新しいライブラリ',
1033
+ 'library.rename': '名前を変更',
1034
+ 'library.deleteLibrary': 'ライブラリを削除',
1035
+ 'library.deleteLibraryMessage': '「{name}」を削除しますか?エントリも一緒に削除されます。',
1036
+ 'library.colSource': '原文',
1037
+ 'library.colTarget': '訳文',
1038
+ 'library.colNote': 'メモ',
1039
+ 'library.colContext': 'コンテキスト',
1040
+ 'library.colLang': '言語',
1041
+ 'library.colCase': '大文字小文字を区別',
1042
+ 'library.colUpdated': '更新日時',
1043
+ 'library.detail': 'エントリ詳細',
1044
+ 'library.detailEmpty': '行を選択すると表示・編集できます。',
1045
+ 'library.save': '保存',
1046
+ 'library.deleteEntry': 'エントリを削除',
1047
+ 'library.entryCreated': 'エントリを追加しました',
1048
+ 'library.entrySaved': '保存しました',
1049
+ 'library.entryDeleted': '削除しました',
1050
+ 'library.exported': 'エクスポートしました',
1051
+ 'library.exportFormat': '形式',
1052
+ 'library.caseSensitiveHint': '大文字小文字を区別すると、完全に同じ表記だけが一致します。',
1053
+ 'library.noDocHint': '文書を開かなくてもライブラリを管理できます。',
1054
+ 'rail.pageInfo': '{start}–{end} 件 / 全 {total} 件',
1055
+ 'rail.goto': '番号へ移動',
1056
+ 'rail.gotoInvalid': '番号が範囲外です。',
1057
+ 'rail.nextUnconfirmed': '次の未確認へ',
1058
+ 'panel.searchInLibrary': 'ライブラリを検索',
1059
+ 'panel.viewAll': 'ライブラリで全件表示',
1060
+ 'panel.glossaryMatchesOnly': 'ここには現在のセグメントに一致する用語だけを表示します。',
1061
+ 'nav.align': '整列',
1062
+ 'align.title': '2つのファイルを整列',
1063
+ 'align.hint': '原文ファイルと訳文ファイルをそれぞれ選んでください。段落ごとに 1 対 1 で対応づけます。言語が違っても構いません。',
1064
+ 'align.sourceFile': '原文ファイル',
1065
+ 'align.targetFile': '訳文ファイル',
1066
+ 'align.pick': 'ファイル未選択',
1067
+ 'align.choose': '選択',
1068
+ 'align.chars': '{count} 文字',
1069
+ 'align.run': '整列する',
1070
+ 'align.running': '整列中…',
1071
+ 'align.needFiles': '先に 2 つのファイルを選んでください。',
1072
+ 'align.readError': 'ファイルを読み込めませんでした。',
1073
+ 'align.sourceLang': '原文言語(任意)',
1074
+ 'align.targetLang': '訳文言語(任意)',
1075
+ 'align.stats': '高 {high} · 要確認 {medium} · 要注意 {low}',
1076
+ 'align.unpairedSource': '未対応の原文',
1077
+ 'align.unpairedTarget': '未対応の訳文',
1078
+ 'align.blocked': '大きいファイルは段落ブロックごとに整列します。全体整列より不安定になることがあります。',
1079
+ 'align.confidence': '信頼度',
1080
+ 'align.merge': '次の行と結合',
1081
+ 'align.split': '改行で分割',
1082
+ 'align.remove': 'この行を削除',
1083
+ 'align.write': 'メモリに保存',
1084
+ 'align.writeCount': '選択した {count} 件を保存',
1085
+ 'align.writeMessage': '{count} 件を保存します。同一の項目はスキップされます。',
1086
+ 'align.written': '{written} 件を保存、{skipped} 件をスキップしました。',
1087
+ 'align.nothing': '保存する行がありません。',
1088
+ 'origin.auto': '自動反映',
1089
+ 'rail.propagate': '重複セグメントを埋める',
1090
+ 'rail.propagateMessage': '同じ原文の他のセグメントに既存の訳文をコピーします。確定済みは変更しません。',
1091
+ 'toast.propagated': '{count} 件のセグメントを埋めました。',
1092
+ 'term.title': '用語候補',
1093
+ 'term.hint': '出現回数と長さで並んでいます。実際の用語だけを選び、訳語を入れて登録してください。',
1094
+ 'term.extract': '文書から用語を抽出',
1095
+ 'term.empty': '繰り返し現れる候補はありませんでした。',
1096
+ 'term.add': '用語集に追加',
1097
+ 'term.added': '{added} 件の用語を追加しました。',
1098
+ 'term.noDoc': '先に文書を開いてください。',
1099
+ 'term.inLibrary': '登録済み',
692
1100
  }
693
1101
 
694
1102
  // UI languages offered by the in-app switch. 'auto' follows the DSH locale