|
16 | 16 | <script setup lang="ts" name="wngEditor"> |
17 | 17 | // https://www.wangeditor.com/v5/for-frame.html#vue3 |
18 | 18 | import '@wangeditor/editor/dist/css/style.css' |
19 | | -import { IDomEditor } from '@wangeditor/editor' |
| 19 | +import { IDomEditor, i18nChangeLanguage, i18nAddResources } from '@wangeditor/editor' |
20 | 20 | import { Toolbar, Editor } from '@wangeditor/editor-for-vue' |
21 | 21 | import { FileApi } from '/@/api/admin/File' |
22 | | -import { t } from '/@/i18n' |
| 22 | +import { t, locale } from '/@/i18n' |
23 | 23 |
|
24 | 24 | type InsertFnType = (url: string, alt: string, href: string) => void |
25 | 25 | type InsertVideoFnType = (url: string, poster: string) => void |
@@ -113,6 +113,146 @@ const handleChange = (editor: IDomEditor) => { |
113 | 113 | emit('update:modelValue', editor.getHtml()) |
114 | 114 | emit('update:getText', editor.getText()) |
115 | 115 | } |
| 116 | +
|
| 117 | +onMounted(() => { |
| 118 | + if (locale.value === 'en') { |
| 119 | + i18nChangeLanguage('en') |
| 120 | + } else if (locale.value === 'zh-tw') { |
| 121 | + i18nAddResources('zh-TW', { |
| 122 | + editor: { |
| 123 | + more: '更多', |
| 124 | + justify: '對齊', |
| 125 | + indent: '縮排', |
| 126 | + image: '圖片', |
| 127 | + video: '影片', |
| 128 | + }, |
| 129 | + common: { |
| 130 | + ok: '確定', |
| 131 | + delete: '刪除', |
| 132 | + enter: '換行', |
| 133 | + }, |
| 134 | + blockQuote: { |
| 135 | + title: '引用', |
| 136 | + }, |
| 137 | + codeBlock: { |
| 138 | + title: '程式碼區塊', |
| 139 | + }, |
| 140 | + color: { |
| 141 | + color: '文字顏色', |
| 142 | + bgColor: '背景色', |
| 143 | + default: '預設顏色', |
| 144 | + clear: '清除背景色', |
| 145 | + }, |
| 146 | + divider: { |
| 147 | + title: '分隔線', |
| 148 | + }, |
| 149 | + emotion: { |
| 150 | + title: '表情', |
| 151 | + }, |
| 152 | + fontSize: { |
| 153 | + title: '字號', |
| 154 | + default: '預設字號', |
| 155 | + }, |
| 156 | + fontFamily: { |
| 157 | + title: '字型', |
| 158 | + default: '預設字型', |
| 159 | + }, |
| 160 | + fullScreen: { |
| 161 | + title: '全螢幕', |
| 162 | + }, |
| 163 | + header: { |
| 164 | + title: '標題', |
| 165 | + text: '內文', |
| 166 | + }, |
| 167 | + image: { |
| 168 | + netImage: '網路圖片', |
| 169 | + delete: '刪除圖片', |
| 170 | + edit: '編輯圖片', |
| 171 | + viewLink: '查看連結', |
| 172 | + src: '圖片位址', |
| 173 | + desc: '圖片描述', |
| 174 | + link: '圖片連結', |
| 175 | + }, |
| 176 | + indent: { |
| 177 | + decrease: '減少縮排', |
| 178 | + increase: '增加縮排', |
| 179 | + }, |
| 180 | + justify: { |
| 181 | + left: '左對齊', |
| 182 | + right: '右對齊', |
| 183 | + center: '置中對齊', |
| 184 | + justify: '兩端對齊', |
| 185 | + }, |
| 186 | + lineHeight: { |
| 187 | + title: '行高', |
| 188 | + default: '預設行高', |
| 189 | + }, |
| 190 | + link: { |
| 191 | + insert: '插入連結', |
| 192 | + text: '連結文字', |
| 193 | + url: '連結位址', |
| 194 | + unLink: '取消連結', |
| 195 | + edit: '修改連結', |
| 196 | + view: '查看連結', |
| 197 | + }, |
| 198 | + textStyle: { |
| 199 | + bold: '粗體', |
| 200 | + clear: '清除格式', |
| 201 | + code: '行內程式碼', |
| 202 | + italic: '斜體', |
| 203 | + sub: '下標', |
| 204 | + sup: '上標', |
| 205 | + through: '刪除線', |
| 206 | + underline: '底線', |
| 207 | + }, |
| 208 | + undo: { |
| 209 | + undo: '復原', |
| 210 | + redo: '重做', |
| 211 | + }, |
| 212 | + todo: { |
| 213 | + todo: '待辦', |
| 214 | + }, |
| 215 | + listModule: { |
| 216 | + unOrderedList: '無序清單', |
| 217 | + orderedList: '有序清單', |
| 218 | + }, |
| 219 | + tableModule: { |
| 220 | + deleteCol: '刪除欄', |
| 221 | + deleteRow: '刪除列', |
| 222 | + deleteTable: '刪除表格', |
| 223 | + widthAuto: '寬度自動調整', |
| 224 | + insertCol: '插入欄', |
| 225 | + insertRow: '插入列', |
| 226 | + insertTable: '插入表格', |
| 227 | + header: '表頭', |
| 228 | + }, |
| 229 | + videoModule: { |
| 230 | + delete: '刪除影片', |
| 231 | + uploadVideo: '上傳影片', |
| 232 | + insertVideo: '插入影片', |
| 233 | + videoSrc: '影片位址', |
| 234 | + videoSrcPlaceHolder: '影片檔案 url 或第三方 <iframe>', |
| 235 | + videoPoster: '影片封面', |
| 236 | + videoPosterPlaceHolder: '封面圖片 url', |
| 237 | + ok: '確定', |
| 238 | + editSize: '修改尺寸', |
| 239 | + width: '寬度', |
| 240 | + height: '高度', |
| 241 | + }, |
| 242 | + uploadImgModule: { |
| 243 | + uploadImage: '上傳圖片', |
| 244 | + uploadError: '{{fileName}} 上傳出錯', |
| 245 | + }, |
| 246 | + highLightModule: { |
| 247 | + selectLang: '選擇語言', |
| 248 | + }, |
| 249 | + }) |
| 250 | + i18nChangeLanguage('zh-TW') |
| 251 | + } else { |
| 252 | + i18nChangeLanguage('zh-CN') |
| 253 | + } |
| 254 | +}) |
| 255 | +
|
116 | 256 | // 页面销毁时 |
117 | 257 | onBeforeUnmount(() => { |
118 | 258 | const editor = editorRef.value |
|
0 commit comments