@teriusu/rich-editor 0.10.8 → 0.11.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.
Files changed (147) hide show
  1. package/dist/components/BubbleToolbar.svelte +40 -36
  2. package/dist/components/BubbleToolbar.svelte.d.ts +3 -0
  3. package/dist/components/BubbleToolbar.svelte.d.ts.map +1 -1
  4. package/dist/components/EmojiSuggestionMenu.svelte +291 -0
  5. package/dist/components/EmojiSuggestionMenu.svelte.d.ts +9 -0
  6. package/dist/components/EmojiSuggestionMenu.svelte.d.ts.map +1 -0
  7. package/dist/components/FixedToolbar.svelte +53 -47
  8. package/dist/components/FixedToolbar.svelte.d.ts +3 -0
  9. package/dist/components/FixedToolbar.svelte.d.ts.map +1 -1
  10. package/dist/components/FloatingHelper.svelte +219 -0
  11. package/dist/components/FloatingHelper.svelte.d.ts +14 -0
  12. package/dist/components/FloatingHelper.svelte.d.ts.map +1 -0
  13. package/dist/components/InputModal.svelte +7 -3
  14. package/dist/components/InputModal.svelte.d.ts +3 -0
  15. package/dist/components/InputModal.svelte.d.ts.map +1 -1
  16. package/dist/components/MathModal.svelte +33 -29
  17. package/dist/components/MathModal.svelte.d.ts +3 -0
  18. package/dist/components/MathModal.svelte.d.ts.map +1 -1
  19. package/dist/components/MediaPickerModal.svelte +7 -3
  20. package/dist/components/MediaPickerModal.svelte.d.ts +3 -0
  21. package/dist/components/MediaPickerModal.svelte.d.ts.map +1 -1
  22. package/dist/components/SlashCommandMenu.svelte +88 -72
  23. package/dist/components/SlashCommandMenu.svelte.d.ts +3 -0
  24. package/dist/components/SlashCommandMenu.svelte.d.ts.map +1 -1
  25. package/dist/components/TableBubbleMenu.svelte +41 -33
  26. package/dist/components/TableBubbleMenu.svelte.d.ts +3 -0
  27. package/dist/components/TableBubbleMenu.svelte.d.ts.map +1 -1
  28. package/dist/components/TipTapEditor.svelte +239 -127
  29. package/dist/components/TipTapEditor.svelte.d.ts +7 -0
  30. package/dist/components/TipTapEditor.svelte.d.ts.map +1 -1
  31. package/dist/extensions/CardBlock.d.ts.map +1 -1
  32. package/dist/extensions/CardBlock.js +6 -4
  33. package/dist/extensions/FileAttachment.d.ts.map +1 -1
  34. package/dist/extensions/FileAttachment.js +2 -1
  35. package/dist/extensions/FixedDetails.d.ts.map +1 -1
  36. package/dist/extensions/FixedDetails.js +5 -3
  37. package/dist/extensions/LegacyBlock.d.ts.map +1 -1
  38. package/dist/extensions/LegacyBlock.js +8 -6
  39. package/dist/extensions/Math.d.ts.map +1 -1
  40. package/dist/extensions/Math.js +5 -2
  41. package/dist/extensions/MbusVideo.d.ts.map +1 -1
  42. package/dist/extensions/MbusVideo.js +73 -9
  43. package/dist/extensions/MediaToolbar.d.ts +41 -0
  44. package/dist/extensions/MediaToolbar.d.ts.map +1 -0
  45. package/dist/extensions/MediaToolbar.js +196 -0
  46. package/dist/extensions/MediaToolbar.test.d.ts +2 -0
  47. package/dist/extensions/MediaToolbar.test.d.ts.map +1 -0
  48. package/dist/extensions/MediaToolbar.test.js +231 -0
  49. package/dist/extensions/OrderedListMarker.d.ts +2 -0
  50. package/dist/extensions/OrderedListMarker.d.ts.map +1 -0
  51. package/dist/extensions/OrderedListMarker.js +114 -0
  52. package/dist/extensions/OrderedListMarker.test.d.ts +2 -0
  53. package/dist/extensions/OrderedListMarker.test.d.ts.map +1 -0
  54. package/dist/extensions/OrderedListMarker.test.js +176 -0
  55. package/dist/extensions/PdfBlock.d.ts.map +1 -1
  56. package/dist/extensions/PdfBlock.js +25 -23
  57. package/dist/extensions/ResizableImage.d.ts.map +1 -1
  58. package/dist/extensions/ResizableImage.js +20 -1
  59. package/dist/extensions/TableKeymap.d.ts +16 -0
  60. package/dist/extensions/TableKeymap.d.ts.map +1 -0
  61. package/dist/extensions/TableKeymap.js +97 -0
  62. package/dist/extensions/TableKeymap.test.d.ts +2 -0
  63. package/dist/extensions/TableKeymap.test.d.ts.map +1 -0
  64. package/dist/extensions/TableKeymap.test.js +147 -0
  65. package/dist/extensions/TabsBlock.d.ts.map +1 -1
  66. package/dist/extensions/TabsBlock.js +12 -9
  67. package/dist/extensions/TiptapMidibus.d.ts.map +1 -1
  68. package/dist/extensions/TiptapMidibus.js +60 -6
  69. package/dist/extensions/UploadSkeleton.d.ts +61 -0
  70. package/dist/extensions/UploadSkeleton.d.ts.map +1 -0
  71. package/dist/extensions/UploadSkeleton.js +233 -0
  72. package/dist/extensions/UploadSkeleton.test.d.ts +2 -0
  73. package/dist/extensions/UploadSkeleton.test.d.ts.map +1 -0
  74. package/dist/extensions/UploadSkeleton.test.js +128 -0
  75. package/dist/extensions/VideoEmbed.d.ts +8 -0
  76. package/dist/extensions/VideoEmbed.d.ts.map +1 -1
  77. package/dist/extensions/VideoEmbed.js +226 -45
  78. package/dist/extensions/VideoEmbed.test.js +131 -2
  79. package/dist/i18n/en.d.ts +3 -0
  80. package/dist/i18n/en.d.ts.map +1 -0
  81. package/dist/i18n/en.js +191 -0
  82. package/dist/i18n/es.d.ts +3 -0
  83. package/dist/i18n/es.d.ts.map +1 -0
  84. package/dist/i18n/es.js +191 -0
  85. package/dist/i18n/index.d.ts +43 -0
  86. package/dist/i18n/index.d.ts.map +1 -0
  87. package/dist/i18n/index.js +109 -0
  88. package/dist/i18n/index.test.d.ts +2 -0
  89. package/dist/i18n/index.test.d.ts.map +1 -0
  90. package/dist/i18n/index.test.js +173 -0
  91. package/dist/i18n/ja.d.ts +3 -0
  92. package/dist/i18n/ja.d.ts.map +1 -0
  93. package/dist/i18n/ja.js +191 -0
  94. package/dist/i18n/ko.d.ts +198 -0
  95. package/dist/i18n/ko.d.ts.map +1 -0
  96. package/dist/i18n/ko.js +215 -0
  97. package/dist/i18n/zh-hans.d.ts +3 -0
  98. package/dist/i18n/zh-hans.d.ts.map +1 -0
  99. package/dist/i18n/zh-hans.js +191 -0
  100. package/dist/i18n/zh-hant.d.ts +3 -0
  101. package/dist/i18n/zh-hant.d.ts.map +1 -0
  102. package/dist/i18n/zh-hant.js +192 -0
  103. package/dist/index.d.ts +7 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +13 -1
  106. package/dist/static/highlight.d.ts +13 -0
  107. package/dist/static/highlight.d.ts.map +1 -0
  108. package/dist/static/highlight.js +99 -0
  109. package/dist/static/index.d.ts +33 -0
  110. package/dist/static/index.d.ts.map +1 -0
  111. package/dist/static/index.js +367 -0
  112. package/dist/static/index.test.d.ts +2 -0
  113. package/dist/static/index.test.d.ts.map +1 -0
  114. package/dist/static/index.test.js +194 -0
  115. package/dist/static/tokenizer.d.ts +52 -0
  116. package/dist/static/tokenizer.d.ts.map +1 -0
  117. package/dist/static/tokenizer.js +289 -0
  118. package/dist/styles/editor.css +1 -1
  119. package/dist/utils/emoji-data.d.ts +15 -0
  120. package/dist/utils/emoji-suggestion.d.ts +48 -0
  121. package/dist/utils/emoji-suggestion.d.ts.map +1 -0
  122. package/dist/utils/emoji-suggestion.js +51 -0
  123. package/dist/utils/emoji-suggestion.test.d.ts +2 -0
  124. package/dist/utils/emoji-suggestion.test.d.ts.map +1 -0
  125. package/dist/utils/emoji-suggestion.test.js +117 -0
  126. package/dist/utils/floating-helper.d.ts +60 -0
  127. package/dist/utils/floating-helper.d.ts.map +1 -0
  128. package/dist/utils/floating-helper.js +63 -0
  129. package/dist/utils/floating-helper.test.d.ts +2 -0
  130. package/dist/utils/floating-helper.test.d.ts.map +1 -0
  131. package/dist/utils/floating-helper.test.js +141 -0
  132. package/dist/utils/guard-vscode-paste.d.ts +19 -0
  133. package/dist/utils/guard-vscode-paste.d.ts.map +1 -0
  134. package/dist/utils/guard-vscode-paste.js +46 -0
  135. package/dist/utils/guard-vscode-paste.test.d.ts +2 -0
  136. package/dist/utils/guard-vscode-paste.test.d.ts.map +1 -0
  137. package/dist/utils/guard-vscode-paste.test.js +86 -0
  138. package/dist/utils/media-size.d.ts +29 -0
  139. package/dist/utils/media-size.d.ts.map +1 -0
  140. package/dist/utils/media-size.js +90 -0
  141. package/dist/utils/resize.d.ts +12 -0
  142. package/dist/utils/resize.d.ts.map +1 -1
  143. package/dist/utils/resize.js +5 -5
  144. package/dist/utils/sanitize.d.ts +2 -0
  145. package/dist/utils/sanitize.d.ts.map +1 -1
  146. package/dist/utils/sanitize.js +28 -3
  147. package/package.json +8 -1
@@ -0,0 +1,173 @@
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import { Editor } from '@tiptap/core';
3
+ import StarterKit from '@tiptap/starter-kit';
4
+ import { createTranslator, defaultTranslator, getEditorTranslator, EditorI18n, ko, en, ja, es, zhHans, zhHant } from './index';
5
+ import { TabsBlock, Tab } from '../extensions/TabsBlock';
6
+ describe('createTranslator — 기본(미주입) = ko', () => {
7
+ it('로케일 없이 만들면 기존 하드코딩 문자열과 동일한 ko 를 돌려준다', () => {
8
+ const t = createTranslator();
9
+ expect(t('placeholder')).toBe("'/'를 눌러 명령어를 입력하세요...");
10
+ expect(t('bold')).toBe('굵게');
11
+ expect(t('tabAdd')).toBe('탭 추가');
12
+ expect(t('pdfLoading')).toBe('PDF 로딩 중...');
13
+ expect(t('imageUploadFailed')).toBe('이미지 업로드에 실패했습니다.');
14
+ });
15
+ it('defaultTranslator 도 같은 ko 값이다', () => {
16
+ expect(defaultTranslator('cancel')).toBe('취소');
17
+ expect(defaultTranslator('noResult')).toBe('결과 없음');
18
+ });
19
+ it('null·undefined·빈 문자열 입력도 전부 ko 다', () => {
20
+ expect(createTranslator(null)('confirm')).toBe('확인');
21
+ expect(createTranslator(undefined)('confirm')).toBe('확인');
22
+ expect(createTranslator('')('confirm')).toBe('확인');
23
+ });
24
+ // i18n 이전부터 영어로 노출되던 문자열은 ko 에서도 그대로다 (픽셀 단위 하위호환)
25
+ it('원래 영어였던 문자열은 ko 에서도 원문 그대로다', () => {
26
+ const t = createTranslator();
27
+ expect(t('fileSizeLoading')).toBe('loading...');
28
+ expect(t('detailsExpand')).toBe('Expand details content');
29
+ });
30
+ });
31
+ describe('createTranslator — 로케일 전환', () => {
32
+ it('로케일 코드로 라벨이 바뀐다', () => {
33
+ expect(createTranslator('en')('bold')).toBe('Bold');
34
+ expect(createTranslator('ja')('bold')).toBe('太字');
35
+ expect(createTranslator('es')('bold')).toBe('Negrita');
36
+ expect(createTranslator('zh-hans')('bold')).toBe('加粗');
37
+ expect(createTranslator('zh-hant')('bold')).toBe('粗體');
38
+ });
39
+ it('지역 변형·표기 변형을 정규화한다', () => {
40
+ expect(createTranslator('en-US')('cancel')).toBe('Cancel');
41
+ expect(createTranslator('en-GB')('cancel')).toBe('Cancel');
42
+ expect(createTranslator('ko-KR')('cancel')).toBe('취소');
43
+ expect(createTranslator('ko_KR')('cancel')).toBe('취소');
44
+ expect(createTranslator('ja-JP')('cancel')).toBe('キャンセル');
45
+ expect(createTranslator('es-419')('cancel')).toBe('Cancelar');
46
+ });
47
+ it('중국어는 문자 체계로 이분한다 (TW·HK·MO·Hant → 번체)', () => {
48
+ expect(createTranslator('zh')('table')).toBe('表格');
49
+ expect(createTranslator('zh-CN')('close')).toBe('关闭');
50
+ expect(createTranslator('zh-TW')('close')).toBe('關閉');
51
+ expect(createTranslator('zh-HK')('close')).toBe('關閉');
52
+ expect(createTranslator('zh-Hant')('close')).toBe('關閉');
53
+ expect(createTranslator('zh-Hans')('close')).toBe('关闭');
54
+ });
55
+ it('해석할 수 없는 로케일은 ko 로 떨어진다 (하위호환 폴백)', () => {
56
+ expect(createTranslator('fr')('bold')).toBe('굵게');
57
+ expect(createTranslator('xx-YY')('bold')).toBe('굵게');
58
+ });
59
+ });
60
+ describe('createTranslator — 오버라이드·미정의 키 폴백', () => {
61
+ it('부분 오버라이드 객체는 준 키만 바꾸고 나머지는 ko 폴백', () => {
62
+ const t = createTranslator({ bold: 'Fett' });
63
+ expect(t('bold')).toBe('Fett');
64
+ expect(t('italic')).toBe('기울임'); // 미정의 키 → ko
65
+ });
66
+ it('사전에 아예 없는 키는 키 이름 그대로 돌려준다 (조용히 죽지 않는다)', () => {
67
+ const t = createTranslator('en');
68
+ // 타입을 우회해 런타임 방어를 확인한다
69
+ expect(t('noSuchKey')).toBe('noSuchKey');
70
+ });
71
+ });
72
+ describe('보간 — {name} 자리 채움', () => {
73
+ it('params 로 자리를 채운다', () => {
74
+ const t = createTranslator();
75
+ expect(t('tabDefaultTitle', { n: 3 })).toBe('탭 3');
76
+ expect(t('toggleHeading', { level: 2 })).toBe('토글 제목 2');
77
+ expect(t('legacyNotice', { kind: '임베드' })).toBe('임베드 (옛 형식 · 편집 불가)');
78
+ expect(t('characterCount', { chars: 10, words: 2 })).toBe('10 자 · 2 단어');
79
+ });
80
+ it('영어에서는 어순까지 바뀐다', () => {
81
+ const t = createTranslator('en');
82
+ expect(t('tabDelete', { title: 'Tab 1' })).toBe('Delete Tab 1');
83
+ });
84
+ it('params 가 없거나 이름이 빠지면 자리를 그대로 둔다', () => {
85
+ const t = createTranslator();
86
+ expect(t('tabDefaultTitle')).toBe('탭 {n}');
87
+ expect(t('tabDefaultTitle', { x: 1 })).toBe('탭 {n}');
88
+ });
89
+ });
90
+ describe('사전 완전성', () => {
91
+ it('여섯 로케일의 키 집합이 ko 와 정확히 같다', () => {
92
+ const keys = Object.keys(ko).sort();
93
+ for (const dict of [en, ja, es, zhHans, zhHant]) {
94
+ expect(Object.keys(dict).sort()).toEqual(keys);
95
+ }
96
+ });
97
+ it('값이 빈 문자열인 키는 없다', () => {
98
+ for (const dict of [ko, en, ja, es, zhHans, zhHant]) {
99
+ for (const [key, value] of Object.entries(dict)) {
100
+ expect(value, key).not.toBe('');
101
+ }
102
+ }
103
+ });
104
+ });
105
+ describe('vanilla NodeView 접근 경로 — editor.storage.editorI18n', () => {
106
+ let editor = null;
107
+ let host = null;
108
+ const make = (extensions) => {
109
+ host = document.createElement('div');
110
+ document.body.appendChild(host);
111
+ editor = new Editor({
112
+ element: host,
113
+ extensions,
114
+ content: '<p></p>',
115
+ editable: true
116
+ });
117
+ return editor;
118
+ };
119
+ afterEach(() => {
120
+ editor?.destroy();
121
+ editor = null;
122
+ host?.remove();
123
+ host = null;
124
+ });
125
+ it('EditorI18n 이 없으면 getEditorTranslator 는 ko 기본 번역기다', () => {
126
+ const e = make([StarterKit, TabsBlock, Tab]);
127
+ expect(getEditorTranslator(e)('tabAdd')).toBe('탭 추가');
128
+ });
129
+ it('null·storage 없는 객체도 ko 기본 번역기로 폴백한다', () => {
130
+ expect(getEditorTranslator(null)('tabAdd')).toBe('탭 추가');
131
+ expect(getEditorTranslator(undefined)('delete')).toBe('삭제');
132
+ expect(getEditorTranslator({})('delete')).toBe('삭제');
133
+ });
134
+ it('EditorI18n.configure({ locale }) 가 storage 로 번역기를 나른다', () => {
135
+ const e = make([StarterKit, TabsBlock, Tab, EditorI18n.configure({ locale: 'en' })]);
136
+ expect(getEditorTranslator(e)('tabAdd')).toBe('Add tab');
137
+ });
138
+ it('NodeView(탭 블록)가 storage 의 로케일로 그려진다 — 기본(미주입)=ko', () => {
139
+ const e = make([StarterKit, TabsBlock, Tab]);
140
+ e.commands.setTabs(2);
141
+ const add = e.view.dom.querySelector('.hce-tabs-add');
142
+ expect(add?.getAttribute('aria-label')).toBe('탭 추가');
143
+ // 생성된 탭 기본 이름도 ko
144
+ const titles = [];
145
+ e.state.doc.descendants((node) => {
146
+ if (node.type.name === 'tab')
147
+ titles.push(String(node.attrs.title));
148
+ });
149
+ expect(titles).toEqual(['탭 1', '탭 2']);
150
+ });
151
+ it('NodeView(탭 블록)가 en 로케일로 그려진다', () => {
152
+ const e = make([StarterKit, TabsBlock, Tab, EditorI18n.configure({ locale: 'en' })]);
153
+ e.commands.setTabs(2);
154
+ const add = e.view.dom.querySelector('.hce-tabs-add');
155
+ expect(add?.getAttribute('aria-label')).toBe('Add tab');
156
+ const titles = [];
157
+ e.state.doc.descendants((node) => {
158
+ if (node.type.name === 'tab')
159
+ titles.push(String(node.attrs.title));
160
+ });
161
+ expect(titles).toEqual(['Tab 1', 'Tab 2']);
162
+ });
163
+ it('메시지 오버라이드 객체도 확장 옵션으로 그대로 통한다', () => {
164
+ const e = make([
165
+ StarterKit,
166
+ TabsBlock,
167
+ Tab,
168
+ EditorI18n.configure({ locale: { tabAdd: '추가!' } })
169
+ ]);
170
+ e.commands.setTabs(1);
171
+ expect(e.view.dom.querySelector('.hce-tabs-add')?.getAttribute('aria-label')).toBe('추가!');
172
+ });
173
+ });
@@ -0,0 +1,3 @@
1
+ import type { EditorMessages } from './ko';
2
+ export declare const ja: EditorMessages;
3
+ //# sourceMappingURL=ja.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../src/i18n/ja.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,eAAO,MAAM,EAAE,EAAE,cA+MhB,CAAC"}
@@ -0,0 +1,191 @@
1
+ export const ja = {
2
+ close: '閉じる',
3
+ cancel: 'キャンセル',
4
+ confirm: 'OK',
5
+ delete: '削除',
6
+ insert: '挿入',
7
+ upload: 'アップロード',
8
+ link: 'リンク',
9
+ noResult: '結果なし',
10
+ preview: 'プレビュー',
11
+ paragraph: '本文',
12
+ heading1: '見出し 1',
13
+ heading2: '見出し 2',
14
+ heading3: '見出し 3',
15
+ toggleHeading: 'トグル見出し {level}',
16
+ bulletList: '箇条書き',
17
+ orderedList: '番号付きリスト',
18
+ taskList: 'チェックリスト',
19
+ blockquote: '引用',
20
+ toggle: 'トグル',
21
+ code: 'コード',
22
+ codeBlock: 'コードブロック',
23
+ math: '数式',
24
+ mathBlock: '数式ブロック',
25
+ mathInline: 'インライン数式',
26
+ table: '表',
27
+ table3x3: '表 (3x3)',
28
+ divider: '区切り線',
29
+ columns2: '2カラム',
30
+ columns3: '3カラム',
31
+ tabs: 'タブ',
32
+ card: 'カード',
33
+ image: '画像',
34
+ video: '動画',
35
+ mbusVideo: 'ミディバス動画',
36
+ file: 'ファイル',
37
+ fileAttach: 'ファイルを添付',
38
+ pdfFile: 'PDFファイル',
39
+ undo: '元に戻す',
40
+ redo: 'やり直す',
41
+ blockType: 'ブロックタイプ',
42
+ bold: '太字',
43
+ italic: '斜体',
44
+ underline: '下線',
45
+ strike: '取り消し線',
46
+ alignLeft: '左揃え',
47
+ alignCenter: '中央揃え',
48
+ alignRight: '右揃え',
49
+ highlight: 'ハイライト',
50
+ textColor: '文字色',
51
+ customColor: 'カスタム',
52
+ colorDefault: 'デフォルト',
53
+ colorBlack: '黒',
54
+ colorGray: 'グレー',
55
+ colorRed: '赤',
56
+ colorOrange: 'オレンジ',
57
+ colorYellow: '黄',
58
+ colorGreen: '緑',
59
+ colorBlue: '青',
60
+ colorPurple: '紫',
61
+ videoUrl: '動画URL',
62
+ mbusVideoUrl: 'ミディバス動画URL',
63
+ promptLinkUrl: 'リンクURLを入力',
64
+ promptImageUrl: '画像URLを入力',
65
+ promptVideoUrl: '動画URLを入力(YouTube・Vimeoなど)',
66
+ promptMbusUrl: 'ミディバス動画のURLを入力',
67
+ sectionFrequent: 'よく使う',
68
+ sectionBasic: '基本',
69
+ sectionList: 'リスト',
70
+ sectionBlock: 'ブロック',
71
+ sectionLayout: 'レイアウト',
72
+ sectionMedia: 'メディア',
73
+ emptyLineTools: '空行ツール',
74
+ floatingHint: '/ でコマンドを入力',
75
+ floatingHintOr: '。または',
76
+ insertMath: '数式を挿入',
77
+ insertCodeBlock: 'コードブロックを挿入',
78
+ mathSuperscript: '上付き文字',
79
+ mathSubscript: '下付き文字',
80
+ mathFraction: '分数',
81
+ mathSqrt: '平方根',
82
+ mathSum: '総和',
83
+ mathProduct: '総乗',
84
+ mathLog: '対数',
85
+ mathBigO: 'ビッグオー記法',
86
+ mathLe: '以下',
87
+ mathGe: '以上',
88
+ mathNe: '不等号',
89
+ mathTimes: '掛け算',
90
+ mathDivide: '割り算',
91
+ mathIn: '属する',
92
+ mathInfinity: '無限大',
93
+ mathAlpha: 'アルファ',
94
+ mathTheta: 'シータ',
95
+ mathPi: 'パイ',
96
+ mathArrow: '矢印',
97
+ mathCdots: '三点リーダー',
98
+ mathConfirmHint: '⌘/Ctrl + Enter で確定',
99
+ mathPromptDisplay: '数式 (LaTeX)',
100
+ mathPromptInline: 'インライン数式 (LaTeX)',
101
+ mathEmpty: '数式を入力',
102
+ placeholder: "'/' でコマンドを入力...",
103
+ uploading: 'アップロード中...',
104
+ imageUploadFailed: '画像のアップロードに失敗しました。',
105
+ pdfUploadFailed: 'PDFのアップロードに失敗しました。',
106
+ fileUploadFailed: 'ファイルのアップロードに失敗しました。',
107
+ characterCount: '{chars} 文字 · {words} 語',
108
+ addImage: '画像を追加',
109
+ uploadFile: 'ファイルをアップロード',
110
+ imageLinkPlaceholder: '画像リンクを貼り付け',
111
+ imageEmbed: '画像を埋め込む',
112
+ imageLinkHint: 'ウェブ上のあらゆる画像に対応',
113
+ addFile: 'ファイルを追加',
114
+ chooseFile: 'ファイルを選択',
115
+ fileLinkPlaceholder: 'ファイルリンクを貼り付け',
116
+ fileEmbed: 'ファイルを埋め込む',
117
+ imageUrlTitle: '画像URLを入力',
118
+ tableEdit: '表を編集',
119
+ rowAddAbove: '上に行を追加',
120
+ rowAddBelow: '下に行を追加',
121
+ colAddLeft: '左に列を追加',
122
+ colAddRight: '右に列を追加',
123
+ headerRowToggle: 'ヘッダー行を切り替え',
124
+ headerColToggle: 'ヘッダー列を切り替え',
125
+ cellMerge: 'セルを結合',
126
+ cellSplit: 'セルを分割',
127
+ lineSpacing: '行間',
128
+ spacingNarrow: '狭い',
129
+ spacingNormal: '標準',
130
+ spacingWide: '広い',
131
+ widthEqual: '幅を均等に',
132
+ cellBackground: 'セルの背景色',
133
+ background: '背景色',
134
+ rowDelete: '行を削除',
135
+ colDelete: '列を削除',
136
+ tableDelete: '表を削除',
137
+ bgNone: 'なし',
138
+ bgGray: 'ライトグレー',
139
+ bgBlue: 'ライトブルー',
140
+ bgGreen: 'ライトグリーン',
141
+ bgYellow: 'ライトイエロー',
142
+ bgOrange: 'ライトオレンジ',
143
+ bgRed: 'ライトレッド',
144
+ bgPurple: 'ライトパープル',
145
+ bgPink: 'ライトピンク',
146
+ alignLeftShort: '左',
147
+ alignCenterShort: '中央',
148
+ alignRightShort: '右',
149
+ mediaToolbar: 'メディアのサイズと配置',
150
+ imageResizeWidth: '画像の幅を調整',
151
+ videoResizeWidth: '動画の幅を調整',
152
+ videoResizeHeight: '動画の高さを調整',
153
+ lectureResizeHeight: '講義動画の高さを調整',
154
+ cardResizeHeight: 'カードの高さを調整',
155
+ pdfResizeWidth: 'PDFの幅を調整',
156
+ cardTitlePlaceholder: 'カードタイトル',
157
+ cardChangeBackground: '背景を変更',
158
+ cardBackgroundPrompt: 'カード背景(CSS background 値)',
159
+ tabDefaultTitle: 'タブ {n}',
160
+ tabRenameTip: 'ダブルクリックで名前を変更',
161
+ tabDelete: '{title} を削除',
162
+ tabAdd: 'タブを追加',
163
+ videoCannotEmbed: 'このブラウザでは動画をここに表示できません',
164
+ openInNewTab: '新しいタブで開く',
165
+ lectureVideo: '講義動画',
166
+ lectureEmptySrc: '動画アドレスが空です',
167
+ legacyYoutube: 'YouTube動画',
168
+ legacyIframe: '埋め込み',
169
+ legacyColumns: '段組み',
170
+ legacyNotice: '{kind}(旧形式・編集不可)',
171
+ pdfViewerAria: 'PDF文書 — 左右キーでページ送り',
172
+ pdfZoom50: '原寸の50% — サムネイル。文字は読みにくい',
173
+ pdfZoom75: '原寸の75% — 図・表の確認用',
174
+ pdfZoom100: '原寸のまま (100%)',
175
+ pdfZoom150: '原寸の150% — 読みやすいサイズ',
176
+ pdfZoomOther: '原寸の{label}',
177
+ pdfFitWidth: '幅に合わせる — 本文幅いっぱいに表示',
178
+ pdfFitPage: '画面に合わせる — 1ページが画面に収まるサイズ',
179
+ download: 'ダウンロード',
180
+ pdfOpenNewTab: '新しいタブで開く',
181
+ pdfOpenNewTabTip: '新しいタブで開く — ブラウザビューアで大きく表示',
182
+ pdfLoading: 'PDFを読み込み中...',
183
+ pdfPrevPage: '前のページ',
184
+ pdfNextPage: '次のページ',
185
+ pdfGoToPage: 'ページ番号へ移動',
186
+ pdfPageNumber: 'ページ番号',
187
+ pdfLoadFailed: 'PDFを読み込めませんでした。',
188
+ fileSizeLoading: '読み込み中...',
189
+ detailsExpand: '詳細を展開',
190
+ detailsCollapse: '詳細を折りたたむ'
191
+ };
@@ -0,0 +1,198 @@
1
+ export declare const ko: {
2
+ close: string;
3
+ cancel: string;
4
+ confirm: string;
5
+ delete: string;
6
+ insert: string;
7
+ upload: string;
8
+ link: string;
9
+ noResult: string;
10
+ preview: string;
11
+ paragraph: string;
12
+ heading1: string;
13
+ heading2: string;
14
+ heading3: string;
15
+ toggleHeading: string;
16
+ bulletList: string;
17
+ orderedList: string;
18
+ taskList: string;
19
+ blockquote: string;
20
+ toggle: string;
21
+ code: string;
22
+ codeBlock: string;
23
+ math: string;
24
+ mathBlock: string;
25
+ mathInline: string;
26
+ table: string;
27
+ table3x3: string;
28
+ divider: string;
29
+ columns2: string;
30
+ columns3: string;
31
+ tabs: string;
32
+ card: string;
33
+ image: string;
34
+ video: string;
35
+ mbusVideo: string;
36
+ file: string;
37
+ fileAttach: string;
38
+ pdfFile: string;
39
+ undo: string;
40
+ redo: string;
41
+ blockType: string;
42
+ bold: string;
43
+ italic: string;
44
+ underline: string;
45
+ strike: string;
46
+ alignLeft: string;
47
+ alignCenter: string;
48
+ alignRight: string;
49
+ highlight: string;
50
+ textColor: string;
51
+ customColor: string;
52
+ colorDefault: string;
53
+ colorBlack: string;
54
+ colorGray: string;
55
+ colorRed: string;
56
+ colorOrange: string;
57
+ colorYellow: string;
58
+ colorGreen: string;
59
+ colorBlue: string;
60
+ colorPurple: string;
61
+ videoUrl: string;
62
+ mbusVideoUrl: string;
63
+ promptLinkUrl: string;
64
+ promptImageUrl: string;
65
+ promptVideoUrl: string;
66
+ promptMbusUrl: string;
67
+ sectionFrequent: string;
68
+ sectionBasic: string;
69
+ sectionList: string;
70
+ sectionBlock: string;
71
+ sectionLayout: string;
72
+ sectionMedia: string;
73
+ emptyLineTools: string;
74
+ floatingHint: string;
75
+ floatingHintOr: string;
76
+ insertMath: string;
77
+ insertCodeBlock: string;
78
+ mathSuperscript: string;
79
+ mathSubscript: string;
80
+ mathFraction: string;
81
+ mathSqrt: string;
82
+ mathSum: string;
83
+ mathProduct: string;
84
+ mathLog: string;
85
+ mathBigO: string;
86
+ mathLe: string;
87
+ mathGe: string;
88
+ mathNe: string;
89
+ mathTimes: string;
90
+ mathDivide: string;
91
+ mathIn: string;
92
+ mathInfinity: string;
93
+ mathAlpha: string;
94
+ mathTheta: string;
95
+ mathPi: string;
96
+ mathArrow: string;
97
+ mathCdots: string;
98
+ mathConfirmHint: string;
99
+ mathPromptDisplay: string;
100
+ mathPromptInline: string;
101
+ mathEmpty: string;
102
+ placeholder: string;
103
+ uploading: string;
104
+ imageUploadFailed: string;
105
+ pdfUploadFailed: string;
106
+ fileUploadFailed: string;
107
+ characterCount: string;
108
+ addImage: string;
109
+ uploadFile: string;
110
+ imageLinkPlaceholder: string;
111
+ imageEmbed: string;
112
+ imageLinkHint: string;
113
+ addFile: string;
114
+ chooseFile: string;
115
+ fileLinkPlaceholder: string;
116
+ fileEmbed: string;
117
+ imageUrlTitle: string;
118
+ tableEdit: string;
119
+ rowAddAbove: string;
120
+ rowAddBelow: string;
121
+ colAddLeft: string;
122
+ colAddRight: string;
123
+ headerRowToggle: string;
124
+ headerColToggle: string;
125
+ cellMerge: string;
126
+ cellSplit: string;
127
+ lineSpacing: string;
128
+ spacingNarrow: string;
129
+ spacingNormal: string;
130
+ spacingWide: string;
131
+ widthEqual: string;
132
+ cellBackground: string;
133
+ background: string;
134
+ rowDelete: string;
135
+ colDelete: string;
136
+ tableDelete: string;
137
+ bgNone: string;
138
+ bgGray: string;
139
+ bgBlue: string;
140
+ bgGreen: string;
141
+ bgYellow: string;
142
+ bgOrange: string;
143
+ bgRed: string;
144
+ bgPurple: string;
145
+ bgPink: string;
146
+ alignLeftShort: string;
147
+ alignCenterShort: string;
148
+ alignRightShort: string;
149
+ mediaToolbar: string;
150
+ imageResizeWidth: string;
151
+ videoResizeWidth: string;
152
+ videoResizeHeight: string;
153
+ lectureResizeHeight: string;
154
+ cardResizeHeight: string;
155
+ pdfResizeWidth: string;
156
+ cardTitlePlaceholder: string;
157
+ cardChangeBackground: string;
158
+ cardBackgroundPrompt: string;
159
+ tabDefaultTitle: string;
160
+ tabRenameTip: string;
161
+ tabDelete: string;
162
+ tabAdd: string;
163
+ videoCannotEmbed: string;
164
+ openInNewTab: string;
165
+ lectureVideo: string;
166
+ lectureEmptySrc: string;
167
+ legacyYoutube: string;
168
+ legacyIframe: string;
169
+ legacyColumns: string;
170
+ legacyNotice: string;
171
+ pdfViewerAria: string;
172
+ pdfZoom50: string;
173
+ pdfZoom75: string;
174
+ pdfZoom100: string;
175
+ pdfZoom150: string;
176
+ pdfZoomOther: string;
177
+ pdfFitWidth: string;
178
+ pdfFitPage: string;
179
+ download: string;
180
+ pdfOpenNewTab: string;
181
+ pdfOpenNewTabTip: string;
182
+ pdfLoading: string;
183
+ pdfPrevPage: string;
184
+ pdfNextPage: string;
185
+ pdfGoToPage: string;
186
+ pdfPageNumber: string;
187
+ pdfLoadFailed: string;
188
+ fileSizeLoading: string;
189
+ detailsExpand: string;
190
+ detailsCollapse: string;
191
+ };
192
+ /** 메시지 사전 형태 — ko 가 키 목록의 기준이다. 다른 로케일은 이 타입으로 완전성을 강제한다. */
193
+ export type EditorMessages = {
194
+ [K in keyof typeof ko]: string;
195
+ };
196
+ /** 메시지 키. */
197
+ export type EditorMessageKey = keyof typeof ko;
198
+ //# sourceMappingURL=ko.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../src/i18n/ko.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiOd,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG;KAAG,CAAC,IAAI,MAAM,OAAO,EAAE,GAAG,MAAM;CAAE,CAAC;AAChE,aAAa;AACb,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,EAAE,CAAC"}