@zero-library/common 3.1.6 → 3.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/dist/index.cjs.js CHANGED
@@ -1,8 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var i18next = require('i18next');
4
- var reactI18next = require('react-i18next');
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var icons = require('@ant-design/icons');
5
5
  var antd = require('antd');
6
+ var classNames2 = require('classnames');
7
+ var docxPreview = require('docx-preview');
8
+ var React3 = require('react');
6
9
  var copyToClipboard = require('copy-to-clipboard');
7
10
  var AES = require('crypto-js/aes');
8
11
  var encUtf8 = require('crypto-js/enc-utf8');
@@ -18,11 +21,6 @@ var Decimal = require('decimal.js');
18
21
  var dayjs = require('dayjs');
19
22
  var relativeTime = require('dayjs/plugin/relativeTime');
20
23
  var axios = require('axios');
21
- var jsxRuntime = require('react/jsx-runtime');
22
- var icons = require('@ant-design/icons');
23
- var classNames2 = require('classnames');
24
- var docxPreview = require('docx-preview');
25
- var React3 = require('react');
26
24
  var markdownItKatex = require('@traptitech/markdown-it-katex');
27
25
  var parse = require('html-react-parser');
28
26
  require('katex/dist/katex.min.css');
@@ -86,6 +84,8 @@ function _interopNamespace(e) {
86
84
  return Object.freeze(n);
87
85
  }
88
86
 
87
+ var classNames2__default = /*#__PURE__*/_interopDefault(classNames2);
88
+ var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
89
89
  var copyToClipboard__default = /*#__PURE__*/_interopDefault(copyToClipboard);
90
90
  var AES__default = /*#__PURE__*/_interopDefault(AES);
91
91
  var encUtf8__default = /*#__PURE__*/_interopDefault(encUtf8);
@@ -98,8 +98,6 @@ var Decimal__default = /*#__PURE__*/_interopDefault(Decimal);
98
98
  var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
99
99
  var relativeTime__default = /*#__PURE__*/_interopDefault(relativeTime);
100
100
  var axios__default = /*#__PURE__*/_interopDefault(axios);
101
- var classNames2__default = /*#__PURE__*/_interopDefault(classNames2);
102
- var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
103
101
  var markdownItKatex__default = /*#__PURE__*/_interopDefault(markdownItKatex);
104
102
  var parse__default = /*#__PURE__*/_interopDefault(parse);
105
103
  var zh_CN__default = /*#__PURE__*/_interopDefault(zh_CN);
@@ -113,7 +111,44 @@ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitiv
113
111
  var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
114
112
  var throttle__default = /*#__PURE__*/_interopDefault(throttle);
115
113
 
116
- // src/i18n/index.ts
114
+ // src/components/File/styles.module.less
115
+ var styles_module_default = {
116
+ nsPreviewImage: "styles_module_nsPreviewImage",
117
+ nsPreviewPdf: "styles_module_nsPreviewPdf",
118
+ pdfToolbar: "styles_module_pdfToolbar",
119
+ nsPreviewPdfImage: "styles_module_nsPreviewPdfImage",
120
+ pdfImageNav: "styles_module_pdfImageNav",
121
+ pdfImageNavItem: "styles_module_pdfImageNavItem",
122
+ pdfImageNavItemImgWrapper: "styles_module_pdfImageNavItemImgWrapper",
123
+ pdfImageNavItemActive: "styles_module_pdfImageNavItemActive",
124
+ pdfImageNavItemImg: "styles_module_pdfImageNavItemImg",
125
+ pdfImageNavItemTip: "styles_module_pdfImageNavItemTip",
126
+ pdfImageBody: "styles_module_pdfImageBody",
127
+ pdfImageBodyToolbar: "styles_module_pdfImageBodyToolbar",
128
+ pdfImageBodyItem: "styles_module_pdfImageBodyItem",
129
+ pdfImageBodyItemInnerWrapper: "styles_module_pdfImageBodyItemInnerWrapper",
130
+ pdfImageBodyItemInner: "styles_module_pdfImageBodyItemInner",
131
+ pdfImageBodyItemActive: "styles_module_pdfImageBodyItemActive",
132
+ pdfImageBodyItemImg: "styles_module_pdfImageBodyItemImg",
133
+ nsPreviewVideo: "styles_module_nsPreviewVideo",
134
+ nsPreviewAudio: "styles_module_nsPreviewAudio",
135
+ nsPreviewDocx: "styles_module_nsPreviewDocx",
136
+ docxToolbar: "styles_module_docxToolbar",
137
+ docxContent: "styles_module_docxContent",
138
+ stateBody: "styles_module_stateBody",
139
+ pdfContainer: "styles_module_pdfContainer",
140
+ floatingToolbar: "styles_module_floatingToolbar",
141
+ divider: "styles_module_divider",
142
+ pdfBody: "styles_module_pdfBody",
143
+ pdfDocument: "styles_module_pdfDocument",
144
+ pdfPage: "styles_module_pdfPage"
145
+ };
146
+ var AudioPlayer_default = ({ fileUrl }) => {
147
+ return /* @__PURE__ */ jsxRuntime.jsxs("audio", { controls: true, className: styles_module_default.nsPreviewAudio, children: [
148
+ /* @__PURE__ */ jsxRuntime.jsx("source", { src: fileUrl, type: "audio/mpeg" }),
149
+ "\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 audio \u6807\u7B7E\u3002"
150
+ ] }, fileUrl);
151
+ };
117
152
 
118
153
  // src/utils/is.ts
119
154
  var toString = Object.prototype.toString;
@@ -448,7 +483,7 @@ var arrToObj = (arr = [], key) => {
448
483
  });
449
484
  return obj;
450
485
  };
451
- var setInterval2 = (fn, t2) => {
486
+ var setInterval2 = (fn, t) => {
452
487
  let timer = null;
453
488
  let running = true;
454
489
  const loop = () => {
@@ -456,7 +491,7 @@ var setInterval2 = (fn, t2) => {
456
491
  if (!running) return;
457
492
  await fn();
458
493
  if (running) loop();
459
- }, t2);
494
+ }, t);
460
495
  };
461
496
  loop();
462
497
  return {
@@ -480,9 +515,9 @@ var genNonDuplicateID = () => {
480
515
  return v.toString(16);
481
516
  });
482
517
  };
483
- var copyText = async (text, prompt) => {
518
+ var copyText = async (text, prompt = "\u590D\u5236\u6210\u529F") => {
484
519
  await copyToClipboard__default.default(text);
485
- if (prompt !== "") antd.message.success(prompt || t("common.copySuccess"));
520
+ if (prompt) antd.message.success(prompt);
486
521
  };
487
522
  function formatNumberWithCommas(number) {
488
523
  const numericValue = parseFloat(number);
@@ -569,7 +604,7 @@ var buildUrlParams = (obj, url, format = "repeat") => {
569
604
  };
570
605
  var downloadFile = (url, name) => {
571
606
  const a = document.createElement("a");
572
- a.download = name || t("common.defaultFileName");
607
+ a.download = name || "\u6587\u4EF6";
573
608
  a.href = url;
574
609
  document.body.appendChild(a);
575
610
  a.click();
@@ -926,7 +961,7 @@ var isExpire = (date) => {
926
961
  };
927
962
  var createCachedMessage = () => {
928
963
  const messageCache = {};
929
- return ({ title = t("common.defaultTitle"), content, type = "warning", duration = 3, onClose, isCache = true, isOnly = false }) => {
964
+ return ({ title = "\u63D0\u793A", content, type = "warning", duration = 3, onClose, isCache = true, isOnly = false }) => {
930
965
  if (!content) return;
931
966
  const cacheKey = isOnly ? "unique-message-key" : content;
932
967
  const handleClose = () => {
@@ -970,72 +1005,50 @@ var cachedMessage = createCachedMessage();
970
1005
  // src/utils/pattern.ts
971
1006
  var RegMobile = {
972
1007
  pattern: /^1[3-9]\d{9}$/,
973
- get message() {
974
- return t("pattern.mobileInvalid");
975
- }
1008
+ message: "\u624B\u673A\u53F7\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01"
976
1009
  };
977
1010
  var RegFixedTelePhone = {
978
1011
  pattern: /^0\d{2,3}-\d{7,8}$/,
979
- get message() {
980
- return t("pattern.phoneInvalid");
981
- }
1012
+ message: "\u7535\u8BDD\u53F7\u7801\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01"
982
1013
  };
983
1014
  var RegTelePhone = {
984
1015
  pattern: /^[\\+\-\\(\\)\\(\\)\d]{1,20}$/,
985
- get message() {
986
- return t("pattern.phoneInvalid");
987
- }
1016
+ message: "\u7535\u8BDD\u53F7\u7801\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01"
988
1017
  };
989
1018
  var RegTaxNo = {
990
1019
  pattern: /^[A-Z0-9]{15}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/,
991
- get message() {
992
- return t("pattern.taxNoInvalid");
993
- }
1020
+ message: "\u7A0E\u53F7\u683C\u5F0F\u6709\u8BEF\uFF01"
994
1021
  };
995
1022
  var RegBankCardNo = {
996
1023
  pattern: /^[0-9]*$/,
997
- get message() {
998
- return t("pattern.bankCardInvalid");
999
- }
1024
+ message: "\u94F6\u884C\u5361\u53F7\u683C\u5F0F\u6709\u8BEF\uFF01"
1000
1025
  };
1001
1026
  var RegIdentityCardNo = {
1002
1027
  pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
1003
- get message() {
1004
- return t("pattern.idCardInvalid");
1005
- }
1028
+ message: "\u8EAB\u4EFD\u8BC1\u53F7\u683C\u5F0F\u6709\u8BEF\uFF01"
1006
1029
  };
1007
1030
  var RegNumNo = {
1008
1031
  pattern: /^[0-9]*$/,
1009
- get message() {
1010
- return t("pattern.numberInvalid");
1011
- }
1032
+ message: "\u683C\u5F0F\u6709\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\uFF01"
1012
1033
  };
1013
1034
  var RegSmsCode = {
1014
1035
  pattern: /^[0-9]{6}$/,
1015
- get message() {
1016
- return t("pattern.smsCodeInvalid");
1017
- }
1036
+ message: "\u9A8C\u8BC1\u7801\u4E3A6\u4F4D\u6570\u5B57"
1018
1037
  };
1019
1038
  var RegEmail = {
1020
1039
  pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
1021
- get message() {
1022
- return t("pattern.emailInvalid");
1023
- }
1040
+ message: "\u90AE\u7BB1\u683C\u5F0F\u6709\u8BEF\uFF01"
1024
1041
  };
1025
1042
  var RegDetailAddress = {
1026
1043
  pattern: /.*(街|路|村|乡|镇|道|巷|号).*/,
1027
- get message() {
1028
- return t("pattern.addressInvalid");
1029
- }
1044
+ message: "\u5FC5\u987B\u5305\u542B\u201C\u8857\u3001\u8DEF\u3001\u6751\u3001\u4E61\u3001\u9547\u3001\u9053\u3001\u5DF7\u3001\u53F7\u201D\u7B49\u5173\u952E\u8BCD\u4E4B\u4E00"
1030
1045
  };
1031
1046
  var RegPassword = {
1032
1047
  pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,26}$/,
1033
- get message() {
1034
- return t("pattern.passwordInvalid");
1035
- }
1048
+ message: "\u5BC6\u7801\u4E3A8\u523026\u4F4D\u4E4B\u95F4\u6570\u5B57\u4E0E\u5B57\u6BCD\u7EC4\u5408"
1036
1049
  };
1037
- var PhoneOrMobileValidator = (errMessage) => ({
1038
- validator: (_, value) => !value || RegFixedTelePhone.pattern.test(value) || RegMobile.pattern.test(value) ? Promise.resolve() : Promise.reject(new Error(errMessage || t("pattern.phoneOrMobileInvalid")))
1050
+ var PhoneOrMobileValidator = (errMessage = "\u8054\u7CFB\u7535\u8BDD\u683C\u5F0F\u4E0D\u6B63\u786E") => ({
1051
+ validator: (_, value) => !value || RegFixedTelePhone.pattern.test(value) || RegMobile.pattern.test(value) ? Promise.resolve() : Promise.reject(new Error(errMessage))
1039
1052
  });
1040
1053
  var ThanNumValidator = ({
1041
1054
  min,
@@ -1052,12 +1065,12 @@ var ThanNumValidator = ({
1052
1065
  }
1053
1066
  if (isNumberNoNaN(parseFloat(min))) {
1054
1067
  if (!(Number(value) > Number(min) || equalMin && Number(value) === Number(min))) {
1055
- return Promise.reject(new Error(minErrMessage || errMessage || t(equalMin ? "lessThanOrEqual" : "lessThan", { value: min })));
1068
+ return Promise.reject(new Error(minErrMessage || errMessage || `\u4E0D\u80FD\u5C0F\u4E8E${equalMin ? "" : "\u7B49\u4E8E"}${min}`));
1056
1069
  }
1057
1070
  }
1058
1071
  if (isNumberNoNaN(parseFloat(max))) {
1059
1072
  if (!(Number(value) < Number(max) || equalMax && Number(value) === Number(max))) {
1060
- return Promise.reject(new Error(maxErrMessage || errMessage || t(equalMax ? "greaterThanOrEqual" : "greaterThan", { value: max })));
1073
+ return Promise.reject(new Error(maxErrMessage || errMessage || `\u4E0D\u80FD\u5927\u4E8E${equalMax ? "" : "\u7B49\u4E8E"}${max}`));
1061
1074
  }
1062
1075
  }
1063
1076
  return Promise.resolve();
@@ -1077,17 +1090,17 @@ var ThanNumLengthValidator = ({
1077
1090
  }
1078
1091
  if (isNumber(length)) {
1079
1092
  if (precision(value) > length) {
1080
- return Promise.reject(new Error(lengthErrMessage || t("pattern.totalLengthExceed", { length })));
1093
+ return Promise.reject(new Error(lengthErrMessage || `\u603B\u4F4D\u6570\u4E0D\u80FD\u8D85\u8FC7${length}\u4F4D`));
1081
1094
  }
1082
1095
  }
1083
1096
  if (isNumber(integerLength)) {
1084
1097
  if (precision(value) - decimalPlaces(value) > integerLength) {
1085
- return Promise.reject(new Error(integerLengthErrMessage || t("pattern.integerLengthExceed", { length: integerLength })));
1098
+ return Promise.reject(new Error(integerLengthErrMessage || `\u6574\u6570\u4F4D\u4E0D\u80FD\u8D85\u8FC7${integerLength}\u4F4D`));
1086
1099
  }
1087
1100
  }
1088
1101
  if (isNumber(decimalsLength)) {
1089
1102
  if (decimalPlaces(value) > decimalsLength) {
1090
- return Promise.reject(new Error(decimalsLengthErrMessage || t("pattern.decimalLengthExceed", { length: decimalsLength })));
1103
+ return Promise.reject(new Error(decimalsLengthErrMessage || `\u5C0F\u6570\u4F4D\u4E0D\u80FD\u8D85\u8FC7${decimalsLength}\u4F4D`));
1091
1104
  }
1092
1105
  }
1093
1106
  return Promise.resolve();
@@ -1097,7 +1110,7 @@ var MultiEmailValidator = (max) => ({
1097
1110
  validator: (_, value) => {
1098
1111
  if (value) {
1099
1112
  const emailArr = value.split(",").map((v) => v.trim()).filter((v) => v);
1100
- if (emailArr.length > max) return Promise.reject(new Error(t("pattern.maxEmailsExceed", { max })));
1113
+ if (emailArr.length > max) return Promise.reject(new Error(`\u6700\u591A\u8F93\u5165${max}\u4E2A\u90AE\u7BB1`));
1101
1114
  const noEmailArr = emailArr.filter((email) => !RegEmail.pattern.test(email));
1102
1115
  if (noEmailArr.length) return Promise.reject(new Error(RegEmail.message));
1103
1116
  }
@@ -1165,14 +1178,14 @@ function createRequest(config) {
1165
1178
  return Promise.reject(err);
1166
1179
  }
1167
1180
  if (!err.response) {
1168
- if (showError(err?.config?.showError)) cachedMessage({ content: t("request.networkError"), type: "error" });
1181
+ if (showError(err?.config?.showError)) cachedMessage({ content: "\u7F51\u7EDC\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC", type: "error" });
1169
1182
  } else {
1170
1183
  switch (err.response?.status) {
1171
1184
  case HttpStatus.UNAUTHORIZED:
1172
1185
  if (showError(err?.config?.showError)) cachedMessage({ content: err.response?.data.message, type: "error" });
1173
1186
  break;
1174
1187
  default:
1175
- if (showError(err?.config?.showError)) cachedMessage({ content: err.response?.data.message || t("request.requestError"), type: "error" });
1188
+ if (showError(err?.config?.showError)) cachedMessage({ content: err.response?.data.message || "\u8BF7\u6C42\u9519\u8BEF\uFF01", type: "error" });
1176
1189
  }
1177
1190
  }
1178
1191
  return Promise.reject(err);
@@ -1287,650 +1300,7 @@ function createTokenManager({ key, storage = localStorage }) {
1287
1300
  clear: tokenManager.clear
1288
1301
  };
1289
1302
  }
1290
-
1291
- // src/i18n/constants.ts
1292
- var NS_COMMON = "common";
1293
-
1294
- // src/i18n/zh-CN.ts
1295
- var commonZhCN = {
1296
- // 通用文案
1297
- common: {
1298
- copySuccess: "\u590D\u5236\u6210\u529F",
1299
- confirm: "\u786E\u5B9A",
1300
- cancel: "\u53D6\u6D88",
1301
- download: "\u4E0B\u8F7D",
1302
- save: "\u4FDD\u5B58",
1303
- defaultFileName: "\u6587\u4EF6",
1304
- defaultTitle: "\u63D0\u793A",
1305
- loading: "\u52A0\u8F7D\u4E2D..."
1306
- },
1307
- // utils/request.ts
1308
- request: {
1309
- networkError: "\u7F51\u7EDC\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC",
1310
- requestError: "\u8BF7\u6C42\u9519\u8BEF\uFF01"
1311
- },
1312
- // utils/pattern.ts — 验证消息
1313
- pattern: {
1314
- mobileInvalid: "\u624B\u673A\u53F7\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01",
1315
- phoneInvalid: "\u7535\u8BDD\u53F7\u7801\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01",
1316
- taxNoInvalid: "\u7A0E\u53F7\u683C\u5F0F\u6709\u8BEF\uFF01",
1317
- bankCardInvalid: "\u94F6\u884C\u5361\u53F7\u683C\u5F0F\u6709\u8BEF\uFF01",
1318
- idCardInvalid: "\u8EAB\u4EFD\u8BC1\u53F7\u683C\u5F0F\u6709\u8BEF\uFF01",
1319
- numberInvalid: "\u683C\u5F0F\u6709\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\uFF01",
1320
- smsCodeInvalid: "\u9A8C\u8BC1\u7801\u4E3A6\u4F4D\u6570\u5B57",
1321
- emailInvalid: "\u90AE\u7BB1\u683C\u5F0F\u6709\u8BEF\uFF01",
1322
- addressInvalid: '\u5FC5\u987B\u5305\u542B"\u8857\u3001\u8DEF\u3001\u6751\u3001\u4E61\u3001\u9547\u3001\u9053\u3001\u5DF7\u3001\u53F7"\u7B49\u5173\u952E\u8BCD\u4E4B\u4E00',
1323
- passwordInvalid: "\u5BC6\u7801\u4E3A8\u523026\u4F4D\u4E4B\u95F4\u6570\u5B57\u4E0E\u5B57\u6BCD\u7EC4\u5408",
1324
- phoneOrMobileInvalid: "\u8054\u7CFB\u7535\u8BDD\u683C\u5F0F\u4E0D\u6B63\u786E",
1325
- // 插值示例:{{value}} 会被替换为实际值
1326
- lessThan: "\u4E0D\u80FD\u5C0F\u4E8E{{value}}",
1327
- lessThanOrEqual: "\u4E0D\u80FD\u5C0F\u4E8E\u7B49\u4E8E{{value}}",
1328
- greaterThan: "\u4E0D\u80FD\u5927\u4E8E{{value}}",
1329
- greaterThanOrEqual: "\u4E0D\u80FD\u5927\u4E8E\u7B49\u4E8E{{value}}",
1330
- totalLengthExceed: "\u603B\u4F4D\u6570\u4E0D\u80FD\u8D85\u8FC7{{length}}\u4F4D",
1331
- integerLengthExceed: "\u6574\u6570\u4F4D\u4E0D\u80FD\u8D85\u8FC7{{length}}\u4F4D",
1332
- decimalLengthExceed: "\u5C0F\u6570\u4F4D\u4E0D\u80FD\u8D85\u8FC7{{length}}\u4F4D",
1333
- maxEmailsExceed: "\u6700\u591A\u8F93\u5165{{max}}\u4E2A\u90AE\u7BB1"
1334
- },
1335
- // utils/date.ts
1336
- date: {
1337
- yearMonthFormat: "YYYY\u5E74MM\u6708",
1338
- yearMonthDayFormat: "YYYY\u5E74MM\u6708DD\u65E5"
1339
- },
1340
- // SpeechButton 语音按钮
1341
- speechButton: {
1342
- notSupported: "\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u8BED\u97F3\u8BC6\u522B",
1343
- permissionDenied: "\u9EA6\u514B\u98CE\u6743\u9650\u5DF2\u62D2\u7EDD",
1344
- stop: "\u505C\u6B62\u5F55\u97F3",
1345
- start: "\u70B9\u51FB\u5F00\u59CB\u5F55\u97F3"
1346
- },
1347
- // MicroApp / Iframe
1348
- microApp: {
1349
- loading: "\u52A0\u8F7D\u4E2D..."
1350
- },
1351
- iframe: {
1352
- loading: "\u52A0\u8F7D\u4E2D..."
1353
- },
1354
- // LazyComponent 延时加载组件
1355
- lazyComponent: {
1356
- unknownType: "\u672A\u77E5\u7C7B\u578B\uFF1A{{type}}",
1357
- componentLoading: "\u7EC4\u4EF6\u52A0\u8F7D\u4E2D..."
1358
- },
1359
- // File 文件预览组件群
1360
- filePreview: {
1361
- title: "\u6587\u4EF6\u9884\u89C8",
1362
- closePreview: "\u5173\u95ED\u9884\u89C8",
1363
- previewImageAlt: "\u9884\u89C8\u56FE\u7247",
1364
- previewNotSupported: "\u6682\u4E0D\u652F\u6301 {{suffix}} \u6587\u4EF6\u7684\u9884\u89C8",
1365
- previewNotSupportedDownload: "{{suffix}} \u6587\u4EF6\u6682\u4E0D\u652F\u6301\u5728\u7EBF\u9884\u89C8\uFF0C\u8BF7\u4E0B\u8F7D\u6253\u5F00",
1366
- previewGenerating: "\u9884\u89C8\u6587\u4EF6\u6B63\u5728\u751F\u6210\u4E2D...",
1367
- audioNotSupported: "\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 audio \u6807\u7B7E\u3002",
1368
- videoNotSupported: "\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 video \u6807\u7B7E\u3002",
1369
- requestFailedWithStatus: "\u8BF7\u6C42\u5931\u8D25\uFF0C\u72B6\u6001\u7801: {{status}}",
1370
- emptyResponse: "\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A",
1371
- loadFileFailed: "\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25",
1372
- fileParseFailed: "\u52A0\u8F7D\u6216\u89E3\u6790\u6587\u4EF6\u5931\u8D25",
1373
- fileUrlInvalid: "\u6587\u4EF6\u5730\u5740\u9519\u8BEF",
1374
- htmlParseFailed: "\u52A0\u8F7D\u6216\u89E3\u6790 HTML \u5931\u8D25",
1375
- docLoadFailed: "\u6587\u6863\u52A0\u8F7D\u5931\u8D25",
1376
- pdfLoadFailed: "PDF \u52A0\u8F7D\u5931\u8D25",
1377
- pdfParseFailed: "\u52A0\u8F7D\u6216\u89E3\u6790 pdf \u5931\u8D25",
1378
- pdfUrlInvalid: "pdf\u5730\u5740\u9519\u8BEF",
1379
- pdfPasswordInvalid: "\u5BC6\u7801\u65E0\u6548\u3002\u8BF7\u518D\u8BD5\u4E00\u6B21\uFF01",
1380
- pdfPasswordPlaceholder: "\u8BF7\u8F93\u5165\u5BC6\u7801",
1381
- pdfSubmit: "\u63D0 \u4EA4",
1382
- pdfInvalidOrDamaged: "\u6587\u4EF6\u65E0\u6548\u6216\u5DF2\u635F\u574F",
1383
- pdfFileNotFound: "\u6587\u4EF6\u4E0D\u5B58\u5728",
1384
- pdfUnexpectedResponse: "\u610F\u5916\u7684\u670D\u52A1\u5668\u54CD\u5E94",
1385
- pdfLoadDocumentFailed: "\u65E0\u6CD5\u52A0\u8F7D\u6587\u6863",
1386
- zoomOut: "\u7F29\u5C0F",
1387
- zoomIn: "\u653E\u5927",
1388
- zoomReset: "\u8FD8\u539F",
1389
- fitWidth: "\u9002\u5E94\u5BBD\u5EA6"
1390
- },
1391
- // MarkdownEditor 富文本编辑器
1392
- markdownEditor: {
1393
- mainArea: "\u4E3B\u5185\u5BB9\u533A\u57DF\uFF0C\u5F00\u59CB\u8F93\u5165\u6587\u672C...",
1394
- unknown: "\u672A\u77E5",
1395
- // 工具栏
1396
- toolbar: {
1397
- quote: "\u5F15\u7528\u9009\u4E2D\u6587\u672C",
1398
- annotation: "\u6279\u6CE8",
1399
- excerpt: "\u6458\u5F55\u7B14\u8BB0",
1400
- undo: "\u64A4\u9500",
1401
- redo: "\u91CD\u505A",
1402
- alignLeft: "\u5DE6\u5BF9\u9F50",
1403
- alignCenter: "\u5C45\u4E2D\u5BF9\u9F50",
1404
- alignRight: "\u53F3\u5BF9\u9F50",
1405
- alignJustify: "\u4E24\u7AEF\u5BF9\u9F50",
1406
- bold: "\u7C97\u4F53",
1407
- italic: "\u659C\u4F53",
1408
- underline: "\u4E0B\u5212\u7EBF",
1409
- strike: "\u5220\u9664\u7EBF",
1410
- code: "\u4EE3\u7801",
1411
- superscript: "\u4E0A\u89D2\u6807",
1412
- subscript: "\u4E0B\u89D2\u6807",
1413
- bulletList: "\u65E0\u5E8F\u5217\u8868",
1414
- orderedList: "\u6709\u5E8F\u5217\u8868",
1415
- taskList: "\u4EFB\u52A1\u5217\u8868",
1416
- listOptions: "\u5217\u8868\u9009\u9879",
1417
- list: "\u5217\u8868",
1418
- blockquote: "\u5F15\u7528\u5757",
1419
- codeBlock: "\u4EE3\u7801\u5757",
1420
- heading: "\u6807\u9898",
1421
- headingLevel: "\u6807\u9898 {{level}}",
1422
- addImage: "\u6DFB\u52A0\u56FE\u7247",
1423
- link: "\u94FE\u63A5",
1424
- linkPlaceholder: "\u7C98\u8D34\u94FE\u63A5...",
1425
- applyLink: "\u5E94\u7528\u94FE\u63A5",
1426
- openInNewWindow: "\u5728\u65B0\u7A97\u53E3\u4E2D\u6253\u5F00",
1427
- removeLink: "\u79FB\u9664\u94FE\u63A5"
1428
- },
1429
- // 高亮 / 背景色
1430
- highlight: {
1431
- toggle: "\u5207\u6362\u9AD8\u4EAE\u663E\u793A ({{color}})",
1432
- label: "\u80CC\u666F\u8272",
1433
- textLabel: "\u6587\u672C\u80CC\u666F\u8272",
1434
- removeBackground: "\u79FB\u9664\u80CC\u666F",
1435
- removeHighlight: "\u79FB\u9664\u9AD8\u4EAE",
1436
- default: "\u9ED8\u8BA4\u80CC\u666F",
1437
- gray: "\u7070\u8272\u80CC\u666F",
1438
- brown: "\u68D5\u8272\u80CC\u666F",
1439
- orange: "\u6A59\u8272\u80CC\u666F",
1440
- yellow: "\u9EC4\u8272\u80CC\u666F",
1441
- green: "\u7EFF\u8272\u80CC\u666F",
1442
- blue: "\u84DD\u8272\u80CC\u666F",
1443
- purple: "\u7D2B\u8272\u80CC\u666F",
1444
- pink: "\u7C89\u8272\u80CC\u666F",
1445
- red: "\u7EA2\u8272\u80CC\u666F"
1446
- },
1447
- // 批注
1448
- annotation: {
1449
- title: "\u6279\u6CE8",
1450
- list: "\u6279\u6CE8\u5217\u8868",
1451
- add: "\u6DFB\u52A0\u6279\u6CE8",
1452
- content: "\u6279\u6CE8\u5185\u5BB9",
1453
- required: "\u8BF7\u8F93\u5165\u6279\u6CE8\u5185\u5BB9",
1454
- maxLength: "\u6279\u6CE8\u5185\u5BB9\u4E0D\u80FD\u8D85\u8FC7500\u4E2A\u5B57\u7B26",
1455
- placeholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u6279\u6CE8\u5185\u5BB9...",
1456
- edit: "\u7F16\u8F91\u6279\u6CE8",
1457
- delete: "\u5220\u9664\u6279\u6CE8",
1458
- confirmDelete: "\u786E\u8BA4\u5220\u9664\u5F53\u524D\u6279\u6CE8\u5417?",
1459
- empty: "\u6682\u65E0\u6279\u6CE8"
1460
- },
1461
- // 摘录
1462
- collection: {
1463
- title: "\u6458\u5F55",
1464
- list: "\u6458\u5F55\u5217\u8868",
1465
- delete: "\u5220\u9664\u6458\u5F55",
1466
- confirmDelete: "\u786E\u8BA4\u5220\u9664\u5F53\u524D\u6458\u5F55\u5417?",
1467
- empty: "\u6682\u65E0\u6458\u5F55"
1468
- },
1469
- // 文件 / 图片上传
1470
- upload: {
1471
- noFile: "\u672A\u63D0\u4F9B\u6587\u4EF6",
1472
- canceled: "\u4E0A\u4F20\u5DF2\u53D6\u6D88",
1473
- fileSizeExceeded: "\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7\u6700\u5927\u9650\u5236 ({{max}}MB)",
1474
- undefined: "\u4E0A\u4F20\u529F\u80FD\u672A\u5B9A\u4E49",
1475
- failedNoUrl: "\u4E0A\u4F20\u5931\u8D25\uFF1A\u672A\u8FD4\u56DEURL",
1476
- failed: "\u4E0A\u4F20\u5931\u8D25",
1477
- noFileToUpload: "\u6CA1\u6709\u6587\u4EF6\u53EF\u4E0A\u4F20",
1478
- maxFileCount: "\u6700\u591A\u5141\u8BB8\u4E0A\u4F20 {{limit}} \u4E2A\u6587\u4EF6"
1479
- }
1480
- }
1481
- };
1482
-
1483
- // src/i18n/en-US.ts
1484
- var commonEnUS = {
1485
- common: {
1486
- copySuccess: "Copied successfully",
1487
- confirm: "OK",
1488
- cancel: "Cancel",
1489
- download: "Download",
1490
- save: "Save",
1491
- defaultFileName: "file",
1492
- defaultTitle: "Notice",
1493
- loading: "Loading..."
1494
- },
1495
- request: {
1496
- networkError: "Network error, please check your connection",
1497
- requestError: "Request error!"
1498
- },
1499
- pattern: {
1500
- mobileInvalid: "Invalid phone number!",
1501
- phoneInvalid: "Invalid phone number!",
1502
- taxNoInvalid: "Invalid tax number!",
1503
- bankCardInvalid: "Invalid bank card number!",
1504
- idCardInvalid: "Invalid ID card number!",
1505
- numberInvalid: "Invalid format, please re-enter!",
1506
- smsCodeInvalid: "SMS code must be 6 digits",
1507
- emailInvalid: "Invalid email format!",
1508
- addressInvalid: "Must contain one of: street, road, village, town, etc.",
1509
- passwordInvalid: "Password must be 8-26 characters with letters and numbers",
1510
- phoneOrMobileInvalid: "Invalid contact number",
1511
- lessThan: "Cannot be less than {{value}}",
1512
- lessThanOrEqual: "Cannot be less than or equal to {{value}}",
1513
- greaterThan: "Cannot be greater than {{value}}",
1514
- greaterThanOrEqual: "Cannot be greater than or equal to {{value}}",
1515
- totalLengthExceed: "Total digits cannot exceed {{length}}",
1516
- integerLengthExceed: "Integer digits cannot exceed {{length}}",
1517
- decimalLengthExceed: "Decimal digits cannot exceed {{length}}",
1518
- maxEmailsExceed: "Maximum {{max}} emails allowed"
1519
- },
1520
- date: {
1521
- yearMonthFormat: "YYYY-MM",
1522
- yearMonthDayFormat: "YYYY-MM-DD"
1523
- },
1524
- speechButton: {
1525
- notSupported: "Speech recognition is not supported in this browser",
1526
- permissionDenied: "Microphone permission denied",
1527
- stop: "Stop Recording",
1528
- start: "Click to Start Recording"
1529
- },
1530
- microApp: {
1531
- loading: "Loading..."
1532
- },
1533
- iframe: {
1534
- loading: "Loading..."
1535
- },
1536
- lazyComponent: {
1537
- unknownType: "Unknown type: {{type}}",
1538
- componentLoading: "Loading component..."
1539
- },
1540
- filePreview: {
1541
- title: "File Preview",
1542
- closePreview: "Close preview",
1543
- previewImageAlt: "Preview image",
1544
- previewNotSupported: "Preview of {{suffix}} files is not supported",
1545
- previewNotSupportedDownload: "{{suffix}} files cannot be previewed online, please download and open",
1546
- previewGenerating: "Preview file is being generated...",
1547
- audioNotSupported: "Your browser does not support the audio tag.",
1548
- videoNotSupported: "Your browser does not support the video tag.",
1549
- requestFailedWithStatus: "Request failed, status code: {{status}}",
1550
- emptyResponse: "Response content is empty",
1551
- loadFileFailed: "Failed to load file",
1552
- fileParseFailed: "Failed to load or parse file",
1553
- fileUrlInvalid: "Invalid file URL",
1554
- htmlParseFailed: "Failed to load or parse HTML",
1555
- docLoadFailed: "Failed to load document",
1556
- pdfLoadFailed: "Failed to load PDF",
1557
- pdfParseFailed: "Failed to load or parse PDF",
1558
- pdfUrlInvalid: "Invalid PDF URL",
1559
- pdfPasswordInvalid: "Invalid password. Please try again!",
1560
- pdfPasswordPlaceholder: "Please enter password",
1561
- pdfSubmit: "Submit",
1562
- pdfInvalidOrDamaged: "File is invalid or damaged",
1563
- pdfFileNotFound: "File not found",
1564
- pdfUnexpectedResponse: "Unexpected server response",
1565
- pdfLoadDocumentFailed: "Unable to load document",
1566
- zoomOut: "Zoom out",
1567
- zoomIn: "Zoom in",
1568
- zoomReset: "Reset",
1569
- fitWidth: "Fit width"
1570
- },
1571
- markdownEditor: {
1572
- mainArea: "Main content area, start typing...",
1573
- unknown: "Unknown",
1574
- toolbar: {
1575
- quote: "Quote Selected Text",
1576
- annotation: "Annotate",
1577
- excerpt: "Excerpt Note",
1578
- undo: "Undo",
1579
- redo: "Redo",
1580
- alignLeft: "Align Left",
1581
- alignCenter: "Align Center",
1582
- alignRight: "Align Right",
1583
- alignJustify: "Justify",
1584
- bold: "Bold",
1585
- italic: "Italic",
1586
- underline: "Underline",
1587
- strike: "Strikethrough",
1588
- code: "Code",
1589
- superscript: "Superscript",
1590
- subscript: "Subscript",
1591
- bulletList: "Bullet List",
1592
- orderedList: "Numbered List",
1593
- taskList: "Task List",
1594
- listOptions: "List Options",
1595
- list: "List",
1596
- blockquote: "Blockquote",
1597
- codeBlock: "Code Block",
1598
- heading: "Heading",
1599
- headingLevel: "Heading {{level}}",
1600
- addImage: "Add Image",
1601
- link: "Link",
1602
- linkPlaceholder: "Paste link...",
1603
- applyLink: "Apply Link",
1604
- openInNewWindow: "Open in New Window",
1605
- removeLink: "Remove Link"
1606
- },
1607
- highlight: {
1608
- toggle: "Toggle highlight ({{color}})",
1609
- label: "Background color",
1610
- textLabel: "Text background color",
1611
- removeBackground: "Remove background",
1612
- removeHighlight: "Remove highlight",
1613
- default: "Default background",
1614
- gray: "Gray background",
1615
- brown: "Brown background",
1616
- orange: "Orange background",
1617
- yellow: "Yellow background",
1618
- green: "Green background",
1619
- blue: "Blue background",
1620
- purple: "Purple background",
1621
- pink: "Pink background",
1622
- red: "Red background"
1623
- },
1624
- annotation: {
1625
- title: "Annotations",
1626
- list: "Annotations",
1627
- add: "Add Annotation",
1628
- content: "Annotation content",
1629
- required: "Please enter annotation content",
1630
- maxLength: "Annotation content cannot exceed 500 characters",
1631
- placeholder: "Please enter your annotation...",
1632
- edit: "Edit Annotation",
1633
- delete: "Delete annotation",
1634
- confirmDelete: "Delete this annotation?",
1635
- empty: "No annotations"
1636
- },
1637
- collection: {
1638
- title: "Excerpts",
1639
- list: "Excerpts",
1640
- delete: "Delete excerpt",
1641
- confirmDelete: "Delete this excerpt?",
1642
- empty: "No excerpts"
1643
- },
1644
- upload: {
1645
- noFile: "No file provided",
1646
- canceled: "Upload canceled",
1647
- fileSizeExceeded: "File size exceeds the maximum limit ({{max}}MB)",
1648
- undefined: "Upload function is not defined",
1649
- failedNoUrl: "Upload failed: no URL returned",
1650
- failed: "Upload failed",
1651
- noFileToUpload: "No file to upload",
1652
- maxFileCount: "A maximum of {{limit}} files can be uploaded"
1653
- }
1654
- }
1655
- };
1656
-
1657
- // src/i18n/ja-JP.ts
1658
- var commonJaJP = {
1659
- // 共通文案
1660
- common: {
1661
- copySuccess: "\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",
1662
- confirm: "OK",
1663
- cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
1664
- download: "\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
1665
- save: "\u4FDD\u5B58",
1666
- defaultFileName: "\u30D5\u30A1\u30A4\u30EB",
1667
- defaultTitle: "\u30D2\u30F3\u30C8",
1668
- loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D..."
1669
- },
1670
- // utils/request.ts
1671
- request: {
1672
- networkError: "\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044",
1673
- requestError: "\u30EA\u30AF\u30A8\u30B9\u30C8\u30A8\u30E9\u30FC\uFF01"
1674
- },
1675
- // utils/pattern.ts — バリデーションメッセージ
1676
- pattern: {
1677
- mobileInvalid: "\u643A\u5E2F\u96FB\u8A71\u756A\u53F7\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\uFF01",
1678
- phoneInvalid: "\u96FB\u8A71\u756A\u53F7\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\uFF01",
1679
- taxNoInvalid: "\u7A0E\u756A\u53F7\u306E\u5F62\u5F0F\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\uFF01",
1680
- bankCardInvalid: "\u9280\u884C\u30AB\u30FC\u30C9\u756A\u53F7\u306E\u5F62\u5F0F\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\uFF01",
1681
- idCardInvalid: "\u8EAB\u5206\u8A3C\u660E\u66F8\u756A\u53F7\u306E\u5F62\u5F0F\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\uFF01",
1682
- numberInvalid: "\u5F62\u5F0F\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\u3002\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF01",
1683
- smsCodeInvalid: "\u8A8D\u8A3C\u30B3\u30FC\u30C9\u306F6\u6841\u306E\u6570\u5B57\u3067\u3059",
1684
- emailInvalid: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306E\u5F62\u5F0F\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\uFF01",
1685
- addressInvalid: "\u300C\u8857\u300D\u300C\u9053\u8DEF\u300D\u300C\u6751\u300D\u300C\u753A\u300D\u300C\u9053\u300D\u300C\u8DEF\u5730\u300D\u300C\u756A\u53F7\u300D\u306A\u3069\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1686
- passwordInvalid: "\u30D1\u30B9\u30EF\u30FC\u30C9\u306F8\u301C26\u6587\u5B57\u306E\u82F1\u6570\u5B57\u306E\u7D44\u307F\u5408\u308F\u305B\u3067\u3059",
1687
- phoneOrMobileInvalid: "\u9023\u7D61\u5148\u96FB\u8A71\u756A\u53F7\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",
1688
- // 補間例:{{value}} は実際の値に置換されます
1689
- lessThan: "{{value}}\u672A\u6E80\u306B\u3067\u304D\u307E\u305B\u3093",
1690
- lessThanOrEqual: "{{value}}\u4EE5\u4E0B\u306B\u3067\u304D\u307E\u305B\u3093",
1691
- greaterThan: "{{value}}\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",
1692
- greaterThanOrEqual: "{{value}}\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
1693
- totalLengthExceed: "\u7DCF\u6841\u6570\u306F{{length}}\u6841\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",
1694
- integerLengthExceed: "\u6574\u6570\u90E8\u306F{{length}}\u6841\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",
1695
- decimalLengthExceed: "\u5C0F\u6570\u90E8\u306F{{length}}\u6841\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",
1696
- maxEmailsExceed: "\u6700\u5927{{max}}\u4EF6\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u307E\u3067\u5165\u529B\u3067\u304D\u307E\u3059"
1697
- },
1698
- // utils/date.ts
1699
- date: {
1700
- yearMonthFormat: "YYYY\u5E74MM\u6708",
1701
- yearMonthDayFormat: "YYYY\u5E74MM\u6708DD\u65E5"
1702
- },
1703
- // SpeechButton 音声ボタン
1704
- speechButton: {
1705
- notSupported: "\u73FE\u5728\u306E\u30D6\u30E9\u30A6\u30B6\u306F\u97F3\u58F0\u8A8D\u8B58\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",
1706
- permissionDenied: "\u30DE\u30A4\u30AF\u306E\u6A29\u9650\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F",
1707
- stop: "\u9332\u97F3\u3092\u505C\u6B62",
1708
- start: "\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u9332\u97F3\u3092\u958B\u59CB"
1709
- },
1710
- // MicroApp / Iframe
1711
- microApp: {
1712
- loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D..."
1713
- },
1714
- iframe: {
1715
- loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D..."
1716
- },
1717
- // LazyComponent 遅延読み込みコンポーネント
1718
- lazyComponent: {
1719
- unknownType: "\u4E0D\u660E\u306A\u30BF\u30A4\u30D7\uFF1A{{type}}",
1720
- componentLoading: "\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D..."
1721
- },
1722
- // File ファイルプレビューコンポーネント群
1723
- filePreview: {
1724
- title: "\u30D5\u30A1\u30A4\u30EB\u30D7\u30EC\u30D3\u30E5\u30FC",
1725
- closePreview: "\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u9589\u3058\u308B",
1726
- previewImageAlt: "\u30D7\u30EC\u30D3\u30E5\u30FC\u753B\u50CF",
1727
- previewNotSupported: "{{suffix}}\u30D5\u30A1\u30A4\u30EB\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u306B\u306F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",
1728
- previewNotSupportedDownload: "{{suffix}}\u30D5\u30A1\u30A4\u30EB\u306F\u30AA\u30F3\u30E9\u30A4\u30F3\u30D7\u30EC\u30D3\u30E5\u30FC\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u958B\u3044\u3066\u304F\u3060\u3055\u3044",
1729
- previewGenerating: "\u30D7\u30EC\u30D3\u30E5\u30FC\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u4E2D...",
1730
- audioNotSupported: "\u304A\u4F7F\u3044\u306E\u30D6\u30E9\u30A6\u30B6\u306F audio \u30BF\u30B0\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002",
1731
- videoNotSupported: "\u304A\u4F7F\u3044\u306E\u30D6\u30E9\u30A6\u30B6\u306F video \u30BF\u30B0\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002",
1732
- requestFailedWithStatus: "\u30EA\u30AF\u30A8\u30B9\u30C8\u5931\u6557\u3001\u30B9\u30C6\u30FC\u30BF\u30B9\u30B3\u30FC\u30C9: {{status}}",
1733
- emptyResponse: "\u8FD4\u4FE1\u5185\u5BB9\u304C\u7A7A\u3067\u3059",
1734
- loadFileFailed: "\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
1735
- fileParseFailed: "\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u8FBC\u307F\u307E\u305F\u306F\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
1736
- fileUrlInvalid: "\u30D5\u30A1\u30A4\u30EBURL\u304C\u4E0D\u6B63\u3067\u3059",
1737
- htmlParseFailed: "HTML\u306E\u8AAD\u307F\u8FBC\u307F\u307E\u305F\u306F\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
1738
- docLoadFailed: "\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
1739
- pdfLoadFailed: "PDF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
1740
- pdfParseFailed: "PDF\u306E\u8AAD\u307F\u8FBC\u307F\u307E\u305F\u306F\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
1741
- pdfUrlInvalid: "PDF\u306EURL\u304C\u4E0D\u6B63\u3067\u3059",
1742
- pdfPasswordInvalid: "\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u7121\u52B9\u3067\u3059\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\uFF01",
1743
- pdfPasswordPlaceholder: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
1744
- pdfSubmit: "\u9001 \u4FE1",
1745
- pdfInvalidOrDamaged: "\u30D5\u30A1\u30A4\u30EB\u304C\u7121\u52B9\u307E\u305F\u306F\u7834\u640D\u3057\u3066\u3044\u307E\u3059",
1746
- pdfFileNotFound: "\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u305B\u3093",
1747
- pdfUnexpectedResponse: "\u4E88\u671F\u3057\u306A\u3044\u30B5\u30FC\u30D0\u30FC\u30EC\u30B9\u30DD\u30F3\u30B9",
1748
- pdfLoadDocumentFailed: "\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093",
1749
- zoomOut: "\u7E2E\u5C0F",
1750
- zoomIn: "\u62E1\u5927",
1751
- zoomReset: "\u5143\u306B\u623B\u3059",
1752
- fitWidth: "\u5E45\u306B\u5408\u308F\u305B\u308B"
1753
- },
1754
- // MarkdownEditor リッチテキストエディタ
1755
- markdownEditor: {
1756
- mainArea: "\u30E1\u30A4\u30F3\u30B3\u30F3\u30C6\u30F3\u30C4\u30A8\u30EA\u30A2\u3001\u30C6\u30AD\u30B9\u30C8\u3092\u5165\u529B...",
1757
- unknown: "\u4E0D\u660E",
1758
- // ツールバー
1759
- toolbar: {
1760
- quote: "\u9078\u629E\u30C6\u30AD\u30B9\u30C8\u3092\u5F15\u7528",
1761
- annotation: "\u6CE8\u91C8",
1762
- excerpt: "\u629C\u7C8B\u30E1\u30E2",
1763
- undo: "\u5143\u306B\u623B\u3059",
1764
- redo: "\u3084\u308A\u76F4\u3059",
1765
- alignLeft: "\u5DE6\u63C3\u3048",
1766
- alignCenter: "\u4E2D\u592E\u63C3\u3048",
1767
- alignRight: "\u53F3\u63C3\u3048",
1768
- alignJustify: "\u4E21\u7AEF\u63C3\u3048",
1769
- bold: "\u592A\u5B57",
1770
- italic: "\u659C\u4F53",
1771
- underline: "\u4E0B\u7DDA",
1772
- strike: "\u53D6\u308A\u6D88\u3057\u7DDA",
1773
- code: "\u30B3\u30FC\u30C9",
1774
- superscript: "\u4E0A\u4ED8\u304D\u6587\u5B57",
1775
- subscript: "\u4E0B\u4ED8\u304D\u6587\u5B57",
1776
- bulletList: "\u7B87\u6761\u66F8\u304D",
1777
- orderedList: "\u756A\u53F7\u4ED8\u304D\u30EA\u30B9\u30C8",
1778
- taskList: "\u30BF\u30B9\u30AF\u30EA\u30B9\u30C8",
1779
- listOptions: "\u30EA\u30B9\u30C8\u30AA\u30D7\u30B7\u30E7\u30F3",
1780
- list: "\u30EA\u30B9\u30C8",
1781
- blockquote: "\u5F15\u7528\u30D6\u30ED\u30C3\u30AF",
1782
- codeBlock: "\u30B3\u30FC\u30C9\u30D6\u30ED\u30C3\u30AF",
1783
- heading: "\u898B\u51FA\u3057",
1784
- headingLevel: "\u898B\u51FA\u3057 {{level}}",
1785
- addImage: "\u753B\u50CF\u3092\u8FFD\u52A0",
1786
- link: "\u30EA\u30F3\u30AF",
1787
- linkPlaceholder: "\u30EA\u30F3\u30AF\u3092\u8CBC\u308A\u4ED8\u3051...",
1788
- applyLink: "\u30EA\u30F3\u30AF\u3092\u9069\u7528",
1789
- openInNewWindow: "\u65B0\u3057\u3044\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u958B\u304F",
1790
- removeLink: "\u30EA\u30F3\u30AF\u3092\u524A\u9664"
1791
- },
1792
- // ハイライト / 背景色
1793
- highlight: {
1794
- toggle: "\u30CF\u30A4\u30E9\u30A4\u30C8\u8868\u793A\u3092\u5207\u308A\u66FF\u3048 ({{color}})",
1795
- label: "\u80CC\u666F\u8272",
1796
- textLabel: "\u30C6\u30AD\u30B9\u30C8\u80CC\u666F\u8272",
1797
- removeBackground: "\u80CC\u666F\u3092\u524A\u9664",
1798
- removeHighlight: "\u30CF\u30A4\u30E9\u30A4\u30C8\u3092\u524A\u9664",
1799
- default: "\u30C7\u30D5\u30A9\u30EB\u30C8\u80CC\u666F",
1800
- gray: "\u30B0\u30EC\u30FC\u80CC\u666F",
1801
- brown: "\u30D6\u30E9\u30A6\u30F3\u80CC\u666F",
1802
- orange: "\u30AA\u30EC\u30F3\u30B8\u80CC\u666F",
1803
- yellow: "\u30A4\u30A8\u30ED\u30FC\u80CC\u666F",
1804
- green: "\u30B0\u30EA\u30FC\u30F3\u80CC\u666F",
1805
- blue: "\u30D6\u30EB\u30FC\u80CC\u666F",
1806
- purple: "\u30D1\u30FC\u30D7\u30EB\u80CC\u666F",
1807
- pink: "\u30D4\u30F3\u30AF\u80CC\u666F",
1808
- red: "\u30EC\u30C3\u30C9\u80CC\u666F"
1809
- },
1810
- // 注釈
1811
- annotation: {
1812
- title: "\u6CE8\u91C8",
1813
- list: "\u6CE8\u91C8\u30EA\u30B9\u30C8",
1814
- add: "\u6CE8\u91C8\u3092\u8FFD\u52A0",
1815
- content: "\u6CE8\u91C8\u5185\u5BB9",
1816
- required: "\u6CE8\u91C8\u5185\u5BB9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
1817
- maxLength: "\u6CE8\u91C8\u5185\u5BB9\u306F500\u6587\u5B57\u4EE5\u5185\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
1818
- placeholder: "\u6CE8\u91C8\u5185\u5BB9\u3092\u5165\u529B...",
1819
- edit: "\u6CE8\u91C8\u3092\u7DE8\u96C6",
1820
- delete: "\u6CE8\u91C8\u3092\u524A\u9664",
1821
- confirmDelete: "\u3053\u306E\u6CE8\u91C8\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",
1822
- empty: "\u6CE8\u91C8\u306F\u3042\u308A\u307E\u305B\u3093"
1823
- },
1824
- // 抜粋
1825
- collection: {
1826
- title: "\u629C\u7C8B",
1827
- list: "\u629C\u7C8B\u30EA\u30B9\u30C8",
1828
- delete: "\u629C\u7C8B\u3092\u524A\u9664",
1829
- confirmDelete: "\u3053\u306E\u629C\u7C8B\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",
1830
- empty: "\u629C\u7C8B\u306F\u3042\u308A\u307E\u305B\u3093"
1831
- },
1832
- // ファイル / 画像アップロード
1833
- upload: {
1834
- noFile: "\u30D5\u30A1\u30A4\u30EB\u304C\u63D0\u4F9B\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
1835
- canceled: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F",
1836
- fileSizeExceeded: "\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA\u304C\u6700\u5927\u5236\u9650\u3092\u8D85\u3048\u3066\u3044\u307E\u3059 ({{max}}MB)",
1837
- undefined: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u6A5F\u80FD\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
1838
- failedNoUrl: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u5931\u6557\uFF1AURL\u304C\u8FD4\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",
1839
- failed: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
1840
- noFileToUpload: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093",
1841
- maxFileCount: "\u6700\u5927{{limit}}\u4EF6\u307E\u3067\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u307E\u3059"
1842
- }
1843
- }
1844
- };
1845
-
1846
- // src/i18n/index.ts
1847
- var DEFAULT_LNG = "zh-CN";
1848
- var LANG_KEY = "ns-lang";
1849
- var langManager = createTokenManager({ key: LANG_KEY });
1850
- function getLang() {
1851
- return langManager.get() || DEFAULT_LNG;
1852
- }
1853
- var i18n = i18next.createInstance({
1854
- lng: DEFAULT_LNG,
1855
- fallbackLng: DEFAULT_LNG,
1856
- defaultNS: NS_COMMON,
1857
- interpolation: { escapeValue: false },
1858
- resources: { [DEFAULT_LNG]: { [NS_COMMON]: commonZhCN } }
1859
- }).use(reactI18next.initReactI18next);
1860
- void i18n.init();
1861
- function addBundledResource(lng, ns, res) {
1862
- if (lng === DEFAULT_LNG && ns === NS_COMMON) return;
1863
- i18n.addResourceBundle(lng, ns, res, true, true);
1864
- }
1865
- function initI18n(options = {}) {
1866
- const { lng = getLang(), resources } = options;
1867
- for (const [l, namespaces] of Object.entries(resources ?? {})) {
1868
- for (const [ns, messages] of Object.entries(namespaces)) {
1869
- i18n.addResourceBundle(l, ns, messages, true, true);
1870
- }
1871
- }
1872
- switchLang(lng);
1873
- return i18n;
1874
- }
1875
- function switchLang(lng, reload = false) {
1876
- langManager.set(lng);
1877
- if (reload) {
1878
- window?.top?.location.reload();
1879
- } else {
1880
- i18n.changeLanguage(lng);
1881
- }
1882
- }
1883
- function useTranslation(namespace) {
1884
- return reactI18next.useTranslation(namespace, { useSuspense: false });
1885
- }
1886
- function getI18n() {
1887
- return i18n;
1888
- }
1889
- function t(key, options) {
1890
- return i18n.t(key, options);
1891
- }
1892
-
1893
- // src/components/File/styles.module.less
1894
- var styles_module_default = {
1895
- nsPreviewImage: "styles_module_nsPreviewImage",
1896
- nsPreviewPdf: "styles_module_nsPreviewPdf",
1897
- pdfToolbar: "styles_module_pdfToolbar",
1898
- nsPreviewPdfImage: "styles_module_nsPreviewPdfImage",
1899
- pdfImageNav: "styles_module_pdfImageNav",
1900
- pdfImageNavItem: "styles_module_pdfImageNavItem",
1901
- pdfImageNavItemImgWrapper: "styles_module_pdfImageNavItemImgWrapper",
1902
- pdfImageNavItemActive: "styles_module_pdfImageNavItemActive",
1903
- pdfImageNavItemImg: "styles_module_pdfImageNavItemImg",
1904
- pdfImageNavItemTip: "styles_module_pdfImageNavItemTip",
1905
- pdfImageBody: "styles_module_pdfImageBody",
1906
- pdfImageBodyToolbar: "styles_module_pdfImageBodyToolbar",
1907
- pdfImageBodyItem: "styles_module_pdfImageBodyItem",
1908
- pdfImageBodyItemInnerWrapper: "styles_module_pdfImageBodyItemInnerWrapper",
1909
- pdfImageBodyItemInner: "styles_module_pdfImageBodyItemInner",
1910
- pdfImageBodyItemActive: "styles_module_pdfImageBodyItemActive",
1911
- pdfImageBodyItemImg: "styles_module_pdfImageBodyItemImg",
1912
- nsPreviewVideo: "styles_module_nsPreviewVideo",
1913
- nsPreviewAudio: "styles_module_nsPreviewAudio",
1914
- nsPreviewDocx: "styles_module_nsPreviewDocx",
1915
- docxToolbar: "styles_module_docxToolbar",
1916
- docxContent: "styles_module_docxContent",
1917
- stateBody: "styles_module_stateBody",
1918
- pdfContainer: "styles_module_pdfContainer",
1919
- floatingToolbar: "styles_module_floatingToolbar",
1920
- divider: "styles_module_divider",
1921
- pdfBody: "styles_module_pdfBody",
1922
- pdfDocument: "styles_module_pdfDocument",
1923
- pdfPage: "styles_module_pdfPage"
1924
- };
1925
- var AudioPlayer_default = ({ fileUrl }) => {
1926
- const { t: t2 } = useTranslation(NS_COMMON);
1927
- return /* @__PURE__ */ jsxRuntime.jsxs("audio", { controls: true, className: styles_module_default.nsPreviewAudio, children: [
1928
- /* @__PURE__ */ jsxRuntime.jsx("source", { src: fileUrl, type: "audio/mpeg" }),
1929
- t2("filePreview.audioNotSupported")
1930
- ] }, fileUrl);
1931
- };
1932
1303
  var DocxPreview_default = ({ fileUrl, scale = 1 }) => {
1933
- const { t: t2 } = useTranslation(NS_COMMON);
1934
1304
  const containerRef = React3.useRef(null);
1935
1305
  const [zoomRatio, setZoomRatio] = React3.useState(scale);
1936
1306
  React3.useEffect(() => {
@@ -1953,7 +1323,7 @@ var DocxPreview_default = ({ fileUrl, scale = 1 }) => {
1953
1323
  });
1954
1324
  }).catch((err) => {
1955
1325
  console.error("docx-preview \u6E32\u67D3\u5931\u8D25:", err);
1956
- if (containerRef.current) containerRef.current.innerHTML = `<p class="text-center">${t2("filePreview.docLoadFailed")}</p>`;
1326
+ if (containerRef.current) containerRef.current.innerHTML = '<p class="text-center">\u6587\u6863\u52A0\u8F7D\u5931\u8D25</p>';
1957
1327
  });
1958
1328
  }, [fileUrl]);
1959
1329
  const zoomIn = () => setZoomRatio((z) => Math.min(z + 0.1, 3));
@@ -1963,9 +1333,9 @@ var DocxPreview_default = ({ fileUrl, scale = 1 }) => {
1963
1333
  };
1964
1334
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classNames2__default.default(styles_module_default.nsPreviewDocx, "height-full", "width-full"), children: [
1965
1335
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { gap: 6, align: "center", className: styles_module_default.docxToolbar, children: [
1966
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomOut, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MinusCircleOutlined, {}), title: t2("filePreview.zoomOut") }),
1967
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomIn, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PlusCircleOutlined, {}), title: t2("filePreview.zoomIn") }),
1968
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: resetZoom, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.RedoOutlined, {}), title: t2("filePreview.zoomReset") })
1336
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomOut, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MinusCircleOutlined, {}), title: "\u7F29\u5C0F" }),
1337
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomIn, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PlusCircleOutlined, {}), title: "\u653E\u5927" }),
1338
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: resetZoom, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.RedoOutlined, {}), title: "\u8FD8\u539F" })
1969
1339
  ] }),
1970
1340
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: classNames2__default.default(styles_module_default.docxContent, "height-full", "scroll-fade-in"), children: /* @__PURE__ */ jsxRuntime.jsx(
1971
1341
  "div",
@@ -2043,10 +1413,9 @@ var FileIcon_default = ({ suffix, fontSize = 22 }) => {
2043
1413
  return /* @__PURE__ */ jsxRuntime.jsx("span", { style: styles, children: Icon });
2044
1414
  };
2045
1415
  var VideoPlayer_default = ({ fileUrl }) => {
2046
- const { t: t2 } = useTranslation(NS_COMMON);
2047
1416
  return /* @__PURE__ */ jsxRuntime.jsxs("video", { controls: true, className: styles_module_default.nsPreviewVideo, children: [
2048
1417
  /* @__PURE__ */ jsxRuntime.jsx("source", { src: fileUrl, type: "video/mp4" }),
2049
- t2("filePreview.videoNotSupported")
1418
+ "\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 video \u6807\u7B7E\u3002"
2050
1419
  ] }, fileUrl);
2051
1420
  };
2052
1421
 
@@ -2059,7 +1428,6 @@ var baseComponentMap = {
2059
1428
  };
2060
1429
  var lazyCache = /* @__PURE__ */ new Map();
2061
1430
  var LazyComponent_default = ({ type, customComponents, unknownContent, ...rest }) => {
2062
- const { t: t2 } = useTranslation(NS_COMMON);
2063
1431
  const loader2 = customComponents?.[type] || baseComponentMap[type];
2064
1432
  const LazyComponent = React3.useMemo(() => {
2065
1433
  if (!loader2) return null;
@@ -2069,11 +1437,11 @@ var LazyComponent_default = ({ type, customComponents, unknownContent, ...rest }
2069
1437
  lazyCache.set(type, component);
2070
1438
  return component;
2071
1439
  }, [loader2]);
2072
- if (!LazyComponent) return unknownContent || /* @__PURE__ */ jsxRuntime.jsx(antd.Alert, { title: t2("lazyComponent.unknownType", { type }), type: "warning" });
1440
+ if (!LazyComponent) return unknownContent || /* @__PURE__ */ jsxRuntime.jsx(antd.Alert, { title: `\u672A\u77E5\u7C7B\u578B\uFF1A${type}`, type: "warning" });
2073
1441
  return /* @__PURE__ */ jsxRuntime.jsx(
2074
1442
  React3.Suspense,
2075
1443
  {
2076
- fallback: /* @__PURE__ */ jsxRuntime.jsx(antd.Skeleton.Node, { active: true, className: styles_module_default2.skeleton, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { type: "secondary", children: t2("lazyComponent.componentLoading") }) }),
1444
+ fallback: /* @__PURE__ */ jsxRuntime.jsx(antd.Skeleton.Node, { active: true, className: styles_module_default2.skeleton, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { type: "secondary", children: "\u7EC4\u4EF6\u52A0\u8F7D\u4E2D..." }) }),
2077
1445
  children: /* @__PURE__ */ jsxRuntime.jsx(LazyComponent, { ...rest })
2078
1446
  }
2079
1447
  );
@@ -2185,13 +1553,12 @@ var RenderMarkdown_default = ({ content = "", searchValue, customComponents, ...
2185
1553
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ns-markdown", children: reactContent });
2186
1554
  };
2187
1555
  var MarkdownPreview_default = ({ fileUrl, searchValue, asPlainText }) => {
2188
- const { t: t2 } = useTranslation(NS_COMMON);
2189
1556
  const [content, setContent] = React3.useState("");
2190
1557
  const [error, setError] = React3.useState("");
2191
1558
  const fetchMarkdown = async () => {
2192
1559
  const res = await fetch(fileUrl);
2193
1560
  if (res.status !== 200) {
2194
- throw new Error(t2("filePreview.requestFailedWithStatus", { status: res.status }));
1561
+ throw new Error(`\u8BF7\u6C42\u5931\u8D25\uFF0C\u72B6\u6001\u7801: ${res.status}`);
2195
1562
  }
2196
1563
  const buffer = await res.arrayBuffer();
2197
1564
  let markdownText = "";
@@ -2203,7 +1570,7 @@ var MarkdownPreview_default = ({ fileUrl, searchValue, asPlainText }) => {
2203
1570
  markdownText = gbkDecoder.decode(buffer);
2204
1571
  }
2205
1572
  if (!markdownText) {
2206
- throw new Error(t2("filePreview.emptyResponse"));
1573
+ throw new Error("\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A");
2207
1574
  }
2208
1575
  return markdownText;
2209
1576
  };
@@ -2215,10 +1582,10 @@ var MarkdownPreview_default = ({ fileUrl, searchValue, asPlainText }) => {
2215
1582
  const content2 = await fetchMarkdown();
2216
1583
  setContent(content2);
2217
1584
  } catch {
2218
- setError(t2("filePreview.fileParseFailed"));
1585
+ setError("\u52A0\u8F7D\u6216\u89E3\u6790\u6587\u4EF6\u5931\u8D25");
2219
1586
  }
2220
1587
  } else {
2221
- setError(t2("filePreview.fileUrlInvalid"));
1588
+ setError("\u6587\u4EF6\u5730\u5740\u9519\u8BEF");
2222
1589
  }
2223
1590
  };
2224
1591
  React3.useEffect(() => {
@@ -2888,18 +2255,17 @@ var THUMB_IMG_HEIGHT = 514;
2888
2255
  var MAIN_IMG_HEIGHT = 800;
2889
2256
  var MAIN_IMG_WIDTH = 600;
2890
2257
  var PdfImagePreview_default = ({ fileUrl, pageNo, scale = 1, isHasThumbnails = true, onSetPageNo }) => {
2891
- const { t: t2 } = useTranslation(NS_COMMON);
2892
2258
  const [images, setImages] = React3.useState([]);
2893
2259
  const [currentIndex, setCurrentIndex, getCurrentIndex] = useRefState_default(0);
2894
2260
  const [error, setError] = React3.useState("");
2895
2261
  const fetchPdfImages = async () => {
2896
2262
  const res = await fetch(fileUrl);
2897
2263
  if (res.status !== 200) {
2898
- throw new Error(t2("filePreview.requestFailedWithStatus", { status: res.status }));
2264
+ throw new Error(`\u8BF7\u6C42\u5931\u8D25\uFF0C\u72B6\u6001\u7801: ${res.status}`);
2899
2265
  }
2900
2266
  const { data } = await res.json();
2901
2267
  if (!data?.items?.length) {
2902
- throw new Error(t2("filePreview.emptyResponse"));
2268
+ throw new Error("\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A");
2903
2269
  }
2904
2270
  setImages(data.items);
2905
2271
  };
@@ -2911,10 +2277,10 @@ var PdfImagePreview_default = ({ fileUrl, pageNo, scale = 1, isHasThumbnails = t
2911
2277
  try {
2912
2278
  await fetchPdfImages();
2913
2279
  } catch (error2) {
2914
- setError(t2("filePreview.pdfParseFailed"));
2280
+ setError("\u52A0\u8F7D\u6216\u89E3\u6790 pdf \u5931\u8D25");
2915
2281
  }
2916
2282
  } else {
2917
- setError(t2("filePreview.pdfUrlInvalid"));
2283
+ setError("pdf\u5730\u5740\u9519\u8BEF");
2918
2284
  }
2919
2285
  };
2920
2286
  React3.useEffect(() => {
@@ -3054,9 +2420,9 @@ var PdfImagePreview_default = ({ fileUrl, pageNo, scale = 1, isHasThumbnails = t
3054
2420
  ) }) }),
3055
2421
  /* @__PURE__ */ jsxRuntime.jsx(antd.Splitter.Panel, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classNames2__default.default("height-full", styles_module_default.pdfImageBody), children: [
3056
2422
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { gap: 6, align: "center", className: styles_module_default.pdfImageBodyToolbar, children: [
3057
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomOut, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MinusCircleOutlined, {}), title: t2("filePreview.zoomOut") }),
3058
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomIn, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PlusCircleOutlined, {}), title: t2("filePreview.zoomIn") }),
3059
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomFitWidth, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.ColumnWidthOutlined, {}), title: t2("filePreview.fitWidth") })
2423
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomOut, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MinusCircleOutlined, {}), title: "\u7F29\u5C0F" }),
2424
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomIn, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PlusCircleOutlined, {}), title: "\u653E\u5927" }),
2425
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: zoomFitWidth, icon: /* @__PURE__ */ jsxRuntime.jsx(icons.ColumnWidthOutlined, {}), title: "\u9002\u5E94\u5BBD\u5EA6" })
3060
2426
  ] }),
3061
2427
  /* @__PURE__ */ jsxRuntime.jsx("div", { ref: containerRef, className: "height-full scroll-fade-in", children: /* @__PURE__ */ jsxRuntime.jsx(
3062
2428
  "div",
@@ -3104,7 +2470,6 @@ var ProtectedView = ({
3104
2470
  verifyPassword,
3105
2471
  onVerifyPasswordEnd
3106
2472
  }) => {
3107
- const { t: t2 } = useTranslation(NS_COMMON);
3108
2473
  const [form] = antd.Form.useForm();
3109
2474
  const onSubmit = () => {
3110
2475
  form.validateFields().then((values) => {
@@ -3115,10 +2480,10 @@ var ProtectedView = ({
3115
2480
  });
3116
2481
  };
3117
2482
  return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { justify: "center", align: "center", className: "height-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { width: 300 }, children: [
3118
- passwordStatus === core$1.PasswordStatus.WrongPassword && /* @__PURE__ */ jsxRuntime.jsx(antd.Alert, { title: t2("filePreview.pdfPasswordInvalid"), type: "error" }),
2483
+ passwordStatus === core$1.PasswordStatus.WrongPassword && /* @__PURE__ */ jsxRuntime.jsx(antd.Alert, { title: "\u5BC6\u7801\u65E0\u6548\u3002\u8BF7\u518D\u8BD5\u4E00\u6B21\uFF01", type: "error" }),
3119
2484
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Form, { form, size: "large", className: "m-t-24", children: [
3120
- /* @__PURE__ */ jsxRuntime.jsx(antd.Form.Item, { name: "password", rules: [{ required: true, message: t2("filePreview.pdfPasswordPlaceholder") }], children: /* @__PURE__ */ jsxRuntime.jsx(antd.Input.Password, { autoComplete: "new-password", placeholder: t2("filePreview.pdfPasswordPlaceholder") }) }),
3121
- /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { justify: "center", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "primary", onClick: onSubmit, children: t2("filePreview.pdfSubmit") }) })
2485
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Form.Item, { name: "password", rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u5BC6\u7801" }], children: /* @__PURE__ */ jsxRuntime.jsx(antd.Input.Password, { autoComplete: "new-password", placeholder: "\u8BF7\u8F93\u5165\u5BC6\u7801" }) }),
2486
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { justify: "center", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "primary", onClick: onSubmit, children: "\u63D0 \u4EA4" }) })
3122
2487
  ] })
3123
2488
  ] }) });
3124
2489
  };
@@ -3137,7 +2502,6 @@ var openLinksNewTabPlugin = () => {
3137
2502
  };
3138
2503
  };
3139
2504
  var PdfPreview_default = ({ password, fileUrl, pageNo = 1, scale = 1, isHasThumbnails = true, onSetPassword, onSetPageNo }) => {
3140
- const { t: t2 } = useTranslation(NS_COMMON);
3141
2505
  const embedRef = React3.useRef(null);
3142
2506
  const [sizes, setSizes] = React3.useState([0]);
3143
2507
  const [docLoaded, setDocLoaded, getDocLoaded] = useRefState_default(false);
@@ -3211,19 +2575,19 @@ var PdfPreview_default = ({ password, fileUrl, pageNo = 1, scale = 1, isHasThumb
3211
2575
  let message3 = "";
3212
2576
  switch (error.name) {
3213
2577
  case "InvalidPDFException":
3214
- message3 = t2("filePreview.pdfInvalidOrDamaged");
2578
+ message3 = "\u6587\u4EF6\u65E0\u6548\u6216\u5DF2\u635F\u574F";
3215
2579
  break;
3216
2580
  case "MissingPDFException":
3217
- message3 = t2("filePreview.pdfFileNotFound");
2581
+ message3 = "\u6587\u4EF6\u4E0D\u5B58\u5728";
3218
2582
  break;
3219
2583
  case "UnexpectedResponseException":
3220
- message3 = t2("filePreview.pdfUnexpectedResponse");
2584
+ message3 = "\u610F\u5916\u7684\u670D\u52A1\u5668\u54CD\u5E94";
3221
2585
  break;
3222
2586
  // case 'CMapReaderFactory not initialized':
3223
2587
  // message = '字体映射文件加载失败,请刷新页面重试'
3224
2588
  // break
3225
2589
  default:
3226
- message3 = t2("filePreview.pdfLoadDocumentFailed");
2590
+ message3 = "\u65E0\u6CD5\u52A0\u8F7D\u6587\u6863";
3227
2591
  break;
3228
2592
  }
3229
2593
  return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { className: "height-full", justify: "center", align: "center", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Alert, { title: message3, type: "error", showIcon: true }) });
@@ -3294,7 +2658,6 @@ var PdfPreview_default = ({ password, fileUrl, pageNo = 1, scale = 1, isHasThumb
3294
2658
  ] }) }) });
3295
2659
  };
3296
2660
  var FilePreview_default = ({ suffix, fileUrl, pdfParams, password, searchValue, emptyProps, onSetPassword }) => {
3297
- const { t: t2 } = useTranslation(NS_COMMON);
3298
2661
  const Preview = React3.useMemo(() => {
3299
2662
  if (!fileUrl) {
3300
2663
  return /* @__PURE__ */ jsxRuntime.jsx(antd.Empty, { ...emptyProps });
@@ -3304,7 +2667,7 @@ var FilePreview_default = ({ suffix, fileUrl, pdfParams, password, searchValue,
3304
2667
  case "JPG":
3305
2668
  case "JPEG":
3306
2669
  case "GIF":
3307
- return /* @__PURE__ */ jsxRuntime.jsx(antd.Image, { classNames: { root: styles_module_default.nsPreviewImage }, src: fileUrl, alt: t2("filePreview.previewImageAlt") });
2670
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Image, { classNames: { root: styles_module_default.nsPreviewImage }, src: fileUrl, alt: "\u9884\u89C8\u56FE\u7247" });
3308
2671
  case "PDF":
3309
2672
  return /* @__PURE__ */ jsxRuntime.jsx(PdfPreview_default, { fileUrl, ...pdfParams, password, onSetPassword });
3310
2673
  case "PDF_IMG":
@@ -3324,25 +2687,11 @@ var FilePreview_default = ({ suffix, fileUrl, pdfParams, password, searchValue,
3324
2687
  case "DOCX":
3325
2688
  return /* @__PURE__ */ jsxRuntime.jsx(DocxPreview_default, { fileUrl });
3326
2689
  default:
3327
- return /* @__PURE__ */ jsxRuntime.jsx(antd.Result, { subTitle: t2("filePreview.previewNotSupported", { suffix: suffix || "" }) });
2690
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Result, { subTitle: `\u6682\u4E0D\u652F\u6301 ${suffix || ""} \u6587\u4EF6\u7684\u9884\u89C8` });
3328
2691
  }
3329
2692
  }, [suffix, fileUrl, pdfParams]);
3330
2693
  return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { justify: "center", align: "center", className: "height-full", children: Preview });
3331
2694
  };
3332
- var FilePreviewDrawer_default = ({ open, title, onClose, ...props }) => {
3333
- const { t: t2 } = useTranslation(NS_COMMON);
3334
- return /* @__PURE__ */ jsxRuntime.jsx(
3335
- antd.Drawer,
3336
- {
3337
- title: title || t2("filePreview.title"),
3338
- push: false,
3339
- size: "100%",
3340
- open,
3341
- onClose,
3342
- children: /* @__PURE__ */ jsxRuntime.jsx(FilePreview_default, { ...props })
3343
- }
3344
- );
3345
- };
3346
2695
  Editor.loader.config({ monaco: monaco__namespace });
3347
2696
  var getLanguage = (suffix) => {
3348
2697
  switch (suffix.toLowerCase()) {
@@ -3382,7 +2731,6 @@ var getLanguage = (suffix) => {
3382
2731
  }
3383
2732
  };
3384
2733
  var CodePreview = ({ fileUrl, suffix }) => {
3385
- const { t: t2 } = useTranslation(NS_COMMON);
3386
2734
  const [content, setContent] = React3.useState("");
3387
2735
  const [error, setError] = React3.useState("");
3388
2736
  const [loading, setLoading] = React3.useState(false);
@@ -3392,7 +2740,7 @@ var CodePreview = ({ fileUrl, suffix }) => {
3392
2740
  };
3393
2741
  const res = await fetch(fileUrl, { headers, signal });
3394
2742
  if (res.status !== 200) {
3395
- throw new Error(t2("filePreview.requestFailedWithStatus", { status: res.status }));
2743
+ throw new Error(`\u8BF7\u6C42\u5931\u8D25\uFF0C\u72B6\u6001\u7801: ${res.status}`);
3396
2744
  }
3397
2745
  const buffer = await res.arrayBuffer();
3398
2746
  let text = "";
@@ -3416,7 +2764,7 @@ var CodePreview = ({ fileUrl, suffix }) => {
3416
2764
  await fetchContent(controller.signal);
3417
2765
  } catch (error2) {
3418
2766
  if (!controller.signal.aborted) {
3419
- setError(t2("filePreview.loadFileFailed"));
2767
+ setError("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25");
3420
2768
  }
3421
2769
  } finally {
3422
2770
  if (!controller.signal.aborted) {
@@ -3566,7 +2914,6 @@ var PdfPage = React3__namespace.default.memo(({ pdf, pageNumber, scale, scrollCo
3566
2914
  );
3567
2915
  });
3568
2916
  var DocumentPreview = ({ fileUrl, previewEnabled = true }) => {
3569
- const { t: t2 } = useTranslation(NS_COMMON);
3570
2917
  const [loading, setLoading] = React3.useState(false);
3571
2918
  const [pdf, setPdf] = React3.useState(null);
3572
2919
  const [numPages, setNumPages] = React3.useState(0);
@@ -3626,9 +2973,9 @@ var DocumentPreview = ({ fileUrl, previewEnabled = true }) => {
3626
2973
  if (aborted) return;
3627
2974
  const message3 = e?.message;
3628
2975
  if (typeof message3 === "string" && message3.includes("cancelled")) ; else if (typeof message3 === "string" && message3.includes("(903)")) {
3629
- setError(t2("filePreview.previewGenerating"));
2976
+ setError("\u9884\u89C8\u6587\u4EF6\u6B63\u5728\u751F\u6210\u4E2D...");
3630
2977
  } else {
3631
- setError(message3 || t2("filePreview.pdfLoadFailed"));
2978
+ setError(message3 || "PDF \u52A0\u8F7D\u5931\u8D25");
3632
2979
  }
3633
2980
  } finally {
3634
2981
  if (!aborted) {
@@ -3733,7 +3080,7 @@ var DocumentPreview = ({ fileUrl, previewEnabled = true }) => {
3733
3080
  /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PlusOutlined, {}), size: "small", onClick: onZoomIn, disabled: scale >= MAX_SCALE })
3734
3081
  ] });
3735
3082
  if (!previewEnabled) {
3736
- return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { className: styles_module_default.stateBody, children: t2("filePreview.closePreview") });
3083
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { className: styles_module_default.stateBody, children: "\u5173\u95ED\u9884\u89C8" });
3737
3084
  }
3738
3085
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module_default.pdfContainer, children: [
3739
3086
  toolbar,
@@ -3742,7 +3089,6 @@ var DocumentPreview = ({ fileUrl, previewEnabled = true }) => {
3742
3089
  };
3743
3090
  var DocumentPreview_default = DocumentPreview;
3744
3091
  var HtmlPreview = ({ fileUrl }) => {
3745
- const { t: t2 } = useTranslation(NS_COMMON);
3746
3092
  const [content, setContent] = React3.useState("");
3747
3093
  const [error, setError] = React3.useState("");
3748
3094
  const [loading, setLoading] = React3.useState(false);
@@ -3755,7 +3101,7 @@ var HtmlPreview = ({ fileUrl }) => {
3755
3101
  signal
3756
3102
  });
3757
3103
  if (res.status !== 200) {
3758
- throw new Error(t2("filePreview.requestFailedWithStatus", { status: res.status }));
3104
+ throw new Error(`\u8BF7\u6C42\u5931\u8D25\uFF0C\u72B6\u6001\u7801: ${res.status}`);
3759
3105
  }
3760
3106
  const buffer = await res.arrayBuffer();
3761
3107
  let htmlText = "";
@@ -3767,7 +3113,7 @@ var HtmlPreview = ({ fileUrl }) => {
3767
3113
  htmlText = gbkDecoder.decode(buffer);
3768
3114
  }
3769
3115
  if (!htmlText) {
3770
- throw new Error(t2("filePreview.emptyResponse"));
3116
+ throw new Error("\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A");
3771
3117
  }
3772
3118
  setContent(htmlText);
3773
3119
  };
@@ -3782,7 +3128,7 @@ var HtmlPreview = ({ fileUrl }) => {
3782
3128
  await fetchHtml(controller.signal);
3783
3129
  } catch (error2) {
3784
3130
  if (!controller.signal.aborted) {
3785
- setError(t2("filePreview.htmlParseFailed"));
3131
+ setError("\u52A0\u8F7D\u6216\u89E3\u6790 HTML \u5931\u8D25");
3786
3132
  }
3787
3133
  } finally {
3788
3134
  if (!controller.signal.aborted) {
@@ -3808,7 +3154,6 @@ var HtmlPreview = ({ fileUrl }) => {
3808
3154
  };
3809
3155
  var HtmlPreview_default = HtmlPreview;
3810
3156
  var luyaFilePreview_default = ({ suffix, fileUrl, emptyProps, fileName }) => {
3811
- const { t: t2 } = useTranslation(NS_COMMON);
3812
3157
  const extension = suffix ? suffix : getFileSuffixName(fileName || "");
3813
3158
  const Preview = React3.useMemo(() => {
3814
3159
  if (!fileUrl) {
@@ -3824,7 +3169,7 @@ var luyaFilePreview_default = ({ suffix, fileUrl, emptyProps, fileName }) => {
3824
3169
  case "SVG":
3825
3170
  case "ICO":
3826
3171
  case "TIFF":
3827
- return /* @__PURE__ */ jsxRuntime.jsx(antd.Image, { classNames: { root: styles_module_default.nsPreviewImage }, src: fileUrl, alt: t2("filePreview.previewImageAlt") });
3172
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Image, { classNames: { root: styles_module_default.nsPreviewImage }, src: fileUrl, alt: "\u9884\u89C8\u56FE\u7247" });
3828
3173
  case "DOC":
3829
3174
  case "DOCX":
3830
3175
  case "PDF":
@@ -3869,18 +3214,30 @@ var luyaFilePreview_default = ({ suffix, fileUrl, emptyProps, fileName }) => {
3869
3214
  case "TXT":
3870
3215
  return /* @__PURE__ */ jsxRuntime.jsx(MarkdownPreview_default, { fileUrl, asPlainText: true });
3871
3216
  default:
3872
- return /* @__PURE__ */ jsxRuntime.jsx(antd.Result, { subTitle: t2("filePreview.previewNotSupportedDownload", { suffix: suffix || "" }) });
3217
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Result, { subTitle: `${suffix || ""} \u6587\u4EF6\u6682\u4E0D\u652F\u6301\u5728\u7EBF\u9884\u89C8\uFF0C\u8BF7\u4E0B\u8F7D\u6253\u5F00` });
3873
3218
  }
3874
3219
  }, [suffix, fileUrl, fileName]);
3875
3220
  return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { justify: "center", align: "center", className: "height-full p-t-16 p-b-16 p-l-16", children: Preview });
3876
3221
  };
3222
+ var FilePreviewDrawer_default = ({ open, title = "\u6587\u4EF6\u9884\u89C8", onClose, ...props }) => {
3223
+ return /* @__PURE__ */ jsxRuntime.jsx(
3224
+ antd.Drawer,
3225
+ {
3226
+ title,
3227
+ push: false,
3228
+ size: "100%",
3229
+ open,
3230
+ onClose,
3231
+ children: /* @__PURE__ */ jsxRuntime.jsx(FilePreview_default, { ...props })
3232
+ }
3233
+ );
3234
+ };
3877
3235
 
3878
3236
  // src/components/MicroApp/styles.module.less
3879
3237
  var styles_module_default3 = {
3880
3238
  microApp: "styles_module_microApp"
3881
3239
  };
3882
3240
  var MicroApp_default = ({ name, url, className, onMounted, onError, data, ...rest }) => {
3883
- const { t: t2 } = useTranslation(NS_COMMON);
3884
3241
  const [loading, setLoading] = React3.useState(false);
3885
3242
  React3.useEffect(() => {
3886
3243
  setLoading(true);
@@ -3895,10 +3252,10 @@ var MicroApp_default = ({ name, url, className, onMounted, onError, data, ...res
3895
3252
  };
3896
3253
  const microAppData = React3.useMemo(() => {
3897
3254
  const parentMainSource = window?.microApp?.getData?.()?.mainSource || [];
3898
- return { [LANG_KEY]: getLang(), mainSource: [...parentMainSource, name], ...data };
3255
+ return { mainSource: [...parentMainSource, name], ...data };
3899
3256
  }, [data, name]);
3900
3257
  const TagName = microApp__default.default.tagName || "micro-app";
3901
- return /* @__PURE__ */ jsxCustomEvent__default.default(antd.Spin, { spinning: loading, classNames: { root: "full-spin" }, description: t2("microApp.loading") }, /* @__PURE__ */ jsxCustomEvent__default.default(
3258
+ return /* @__PURE__ */ jsxCustomEvent__default.default(antd.Spin, { spinning: loading, classNames: { root: "full-spin" }, description: "\u52A0\u8F7D\u4E2D..." }, /* @__PURE__ */ jsxCustomEvent__default.default(
3902
3259
  TagName,
3903
3260
  {
3904
3261
  name,
@@ -3987,12 +3344,10 @@ var styles_module_default4 = {
3987
3344
  iframe: "styles_module_iframe"
3988
3345
  };
3989
3346
  var Iframe_default = React3.forwardRef(({ defaultMainSource, id, src, className, onLoad }, ref) => {
3990
- const { t: t2 } = useTranslation(NS_COMMON);
3991
3347
  const [loading, setLoading] = React3.useState(false);
3992
3348
  const finalSrc = React3.useMemo(() => {
3993
- const baseUrl = addUrlLastSlash(setUrlMainSource(src, location.href, defaultMainSource));
3994
- return buildUrlParams({ v: Date.now(), [LANG_KEY]: getLang() }, baseUrl);
3995
- }, [src, defaultMainSource]);
3349
+ return buildUrlParams({ v: Date.now() }, addUrlLastSlash(setUrlMainSource(src, location.href, defaultMainSource)));
3350
+ }, [src]);
3996
3351
  const onHandleLoad = () => {
3997
3352
  setLoading(false);
3998
3353
  onLoad?.();
@@ -4000,7 +3355,7 @@ var Iframe_default = React3.forwardRef(({ defaultMainSource, id, src, className,
4000
3355
  React3.useEffect(() => {
4001
3356
  setLoading(true);
4002
3357
  }, [src]);
4003
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { spinning: loading, classNames: { root: "full-spin" }, description: t2("iframe.loading"), children: /* @__PURE__ */ jsxRuntime.jsx(
3358
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { spinning: loading, classNames: { root: "full-spin" }, description: "\u52A0\u8F7D\u4E2D...", children: /* @__PURE__ */ jsxRuntime.jsx(
4004
3359
  "iframe",
4005
3360
  {
4006
3361
  id,
@@ -4680,37 +4035,24 @@ function useIsBreakpoint(mode = "max", breakpoint = 768) {
4680
4035
  }
4681
4036
  var { TextArea } = antd.Input;
4682
4037
  var AnnotationModal_default = ({ visible, onCancel, onConfirm }) => {
4683
- const { t: t2 } = useTranslation(NS_COMMON);
4684
4038
  const [form] = antd.Form.useForm();
4685
4039
  const handleOk = async () => {
4686
4040
  const values = await form.validateFields();
4687
4041
  onConfirm(values.content.trim());
4688
4042
  onCancel();
4689
4043
  };
4690
- return /* @__PURE__ */ jsxRuntime.jsx(
4691
- antd.Modal,
4044
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Modal, { title: "\u6DFB\u52A0\u6279\u6CE8", open: visible, onOk: handleOk, onCancel, destroyOnHidden: true, okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Form, { form, layout: "vertical", children: /* @__PURE__ */ jsxRuntime.jsx(
4045
+ antd.Form.Item,
4692
4046
  {
4693
- title: t2("markdownEditor.annotation.add"),
4694
- open: visible,
4695
- onOk: handleOk,
4696
- onCancel,
4697
- destroyOnHidden: true,
4698
- okText: t2("common.confirm"),
4699
- cancelText: t2("common.cancel"),
4700
- children: /* @__PURE__ */ jsxRuntime.jsx(antd.Form, { form, layout: "vertical", children: /* @__PURE__ */ jsxRuntime.jsx(
4701
- antd.Form.Item,
4702
- {
4703
- name: "content",
4704
- label: t2("markdownEditor.annotation.content"),
4705
- rules: [
4706
- { whitespace: true, required: true, message: t2("markdownEditor.annotation.required") },
4707
- { max: 500, message: t2("markdownEditor.annotation.maxLength") }
4708
- ],
4709
- children: /* @__PURE__ */ jsxRuntime.jsx(TextArea, { rows: 4, placeholder: t2("markdownEditor.annotation.placeholder"), showCount: true, maxLength: 500 })
4710
- }
4711
- ) })
4047
+ name: "content",
4048
+ label: "\u6279\u6CE8\u5185\u5BB9",
4049
+ rules: [
4050
+ { whitespace: true, required: true, message: "\u8BF7\u8F93\u5165\u6279\u6CE8\u5185\u5BB9" },
4051
+ { max: 500, message: "\u6279\u6CE8\u5185\u5BB9\u4E0D\u80FD\u8D85\u8FC7500\u4E2A\u5B57\u7B26" }
4052
+ ],
4053
+ children: /* @__PURE__ */ jsxRuntime.jsx(TextArea, { rows: 4, placeholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u6279\u6CE8\u5185\u5BB9...", showCount: true, maxLength: 500 })
4712
4054
  }
4713
- );
4055
+ ) }) });
4714
4056
  };
4715
4057
 
4716
4058
  // src/components/MarkdownEditor/annotation/constant.ts
@@ -4735,7 +4077,6 @@ var AnnotationSidebar_default = ({
4735
4077
  annotationConfig,
4736
4078
  onClose
4737
4079
  }) => {
4738
- const { t: t2 } = useTranslation(NS_COMMON);
4739
4080
  const [form] = antd.Form.useForm();
4740
4081
  const [editingId, setEditingId] = React3.useState();
4741
4082
  const itemRefs = React3.useRef({});
@@ -4772,7 +4113,7 @@ var AnnotationSidebar_default = ({
4772
4113
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Space, { children: [
4773
4114
  /* @__PURE__ */ jsxRuntime.jsx(icons.MessageOutlined, {}),
4774
4115
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
4775
- t2("markdownEditor.annotation.title"),
4116
+ "\u6279\u6CE8",
4776
4117
  annotations.length > 0 && `\uFF08${annotations.length}\uFF09`
4777
4118
  ] })
4778
4119
  ] }),
@@ -4807,15 +4148,15 @@ var AnnotationSidebar_default = ({
4807
4148
  {
4808
4149
  name: "content",
4809
4150
  rules: [
4810
- { whitespace: true, required: true, message: t2("markdownEditor.annotation.required") },
4811
- { max: 500, message: t2("markdownEditor.annotation.maxLength") }
4151
+ { whitespace: true, required: true, message: "\u8BF7\u8F93\u5165\u6279\u6CE8\u5185\u5BB9" },
4152
+ { max: 500, message: "\u6279\u6CE8\u5185\u5BB9\u4E0D\u80FD\u8D85\u8FC7500\u4E2A\u5B57\u7B26" }
4812
4153
  ],
4813
- children: /* @__PURE__ */ jsxRuntime.jsx(TextArea2, { autoFocus: true, rows: 2, placeholder: t2("markdownEditor.annotation.placeholder"), showCount: true, maxLength: 500 })
4154
+ children: /* @__PURE__ */ jsxRuntime.jsx(TextArea2, { autoFocus: true, rows: 2, placeholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u6279\u6CE8\u5185\u5BB9...", showCount: true, maxLength: 500 })
4814
4155
  }
4815
4156
  ) }),
4816
4157
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Space, { children: [
4817
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "primary", onClick: handleSaveEdit, children: t2("common.save") }),
4818
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", onClick: handleCancelEdit, children: t2("common.cancel") })
4158
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "primary", onClick: handleSaveEdit, children: "\u4FDD\u5B58" }),
4159
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", onClick: handleCancelEdit, children: "\u53D6\u6D88" })
4819
4160
  ] })
4820
4161
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { gap: 8, vertical: true, children: [
4821
4162
  /* @__PURE__ */ jsxRuntime.jsx(Text2, { children: annotation.content }),
@@ -4825,7 +4166,7 @@ var AnnotationSidebar_default = ({
4825
4166
  {
4826
4167
  type: "text",
4827
4168
  size: "small",
4828
- title: t2("markdownEditor.annotation.edit"),
4169
+ title: "\u7F16\u8F91\u6279\u6CE8",
4829
4170
  icon: /* @__PURE__ */ jsxRuntime.jsx(icons.EditOutlined, {}),
4830
4171
  onClick: (e) => {
4831
4172
  handleEdit(annotation);
@@ -4835,12 +4176,12 @@ var AnnotationSidebar_default = ({
4835
4176
  /* @__PURE__ */ jsxRuntime.jsx(
4836
4177
  antd.Popconfirm,
4837
4178
  {
4838
- title: t2("common.defaultTitle"),
4839
- okText: t2("common.confirm"),
4840
- cancelText: t2("common.cancel"),
4841
- description: t2("markdownEditor.annotation.confirmDelete"),
4179
+ title: "\u63D0\u793A",
4180
+ okText: "\u786E\u5B9A",
4181
+ cancelText: "\u53D6\u6D88",
4182
+ description: "\u786E\u8BA4\u5220\u9664\u5F53\u524D\u6279\u6CE8\u5417?",
4842
4183
  onConfirm: () => onDeleteAnnotation(annotation[ANNOTATION_ATTRS[0]]),
4843
- children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", size: "small", title: t2("markdownEditor.annotation.delete"), icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DeleteOutlined, {}) })
4184
+ children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", size: "small", title: "\u5220\u9664\u6279\u6CE8", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DeleteOutlined, {}) })
4844
4185
  }
4845
4186
  )
4846
4187
  ] })
@@ -4849,7 +4190,7 @@ var AnnotationSidebar_default = ({
4849
4190
  }
4850
4191
  )
4851
4192
  }
4852
- ) : /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { vertical: true, justify: "center", align: "center", className: "height-full", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Empty, { description: t2("markdownEditor.annotation.empty") }) })
4193
+ ) : /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { vertical: true, justify: "center", align: "center", className: "height-full", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Empty, { description: "\u6682\u65E0\u6279\u6CE8" }) })
4853
4194
  }
4854
4195
  );
4855
4196
  const container = annotationConfig?.getContainer?.();
@@ -5134,7 +4475,7 @@ var useAnnotations = (annotationConfig) => {
5134
4475
  const id = genNonDuplicateID();
5135
4476
  editor.current.chain().focus().setMark(ANNOTATION_KEY, {
5136
4477
  "annotation-id": id,
5137
- "user-name": annotationConfig?.user?.name || t("markdownEditor.unknown"),
4478
+ "user-name": annotationConfig?.user?.name || "\u672A\u77E5",
5138
4479
  "user-id": annotationConfig?.user.id || "0000",
5139
4480
  "update-time": getTimestamp(),
5140
4481
  content
@@ -5416,7 +4757,6 @@ var collectionSidebar_default = ({
5416
4757
  collectionConfig,
5417
4758
  onClose
5418
4759
  }) => {
5419
- const { t: t2 } = useTranslation(NS_COMMON);
5420
4760
  const itemRefs = React3.useRef({});
5421
4761
  React3.useEffect(() => {
5422
4762
  if (selectedCollectionId) {
@@ -5438,7 +4778,7 @@ var collectionSidebar_default = ({
5438
4778
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Space, { children: [
5439
4779
  /* @__PURE__ */ jsxRuntime.jsx(icons.BookOutlined, {}),
5440
4780
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
5441
- t2("markdownEditor.collection.title"),
4781
+ "\u6458\u5F55",
5442
4782
  collections.length > 0 && `\uFF08${collections.length}\uFF09`
5443
4783
  ] })
5444
4784
  ] }),
@@ -5481,12 +4821,12 @@ var collectionSidebar_default = ({
5481
4821
  !disabled && selectedCollectionId === collection[COLLECTION_ATTRS[0]] && /* @__PURE__ */ jsxRuntime.jsx(antd.Space, { children: /* @__PURE__ */ jsxRuntime.jsx(
5482
4822
  antd.Popconfirm,
5483
4823
  {
5484
- title: t2("common.defaultTitle"),
5485
- okText: t2("common.confirm"),
5486
- cancelText: t2("common.cancel"),
5487
- description: t2("markdownEditor.collection.confirmDelete"),
4824
+ title: "\u63D0\u793A",
4825
+ okText: "\u786E\u5B9A",
4826
+ cancelText: "\u53D6\u6D88",
4827
+ description: "\u786E\u8BA4\u5220\u9664\u5F53\u524D\u6458\u5F55\u5417?",
5488
4828
  onConfirm: () => onDeleteCollection(collection[COLLECTION_ATTRS[0]]),
5489
- children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", size: "small", title: t2("markdownEditor.collection.delete"), icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DeleteOutlined, {}) })
4829
+ children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", size: "small", title: "\u5220\u9664\u6458\u5F55", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DeleteOutlined, {}) })
5490
4830
  }
5491
4831
  ) })
5492
4832
  ] })
@@ -5495,7 +4835,7 @@ var collectionSidebar_default = ({
5495
4835
  );
5496
4836
  }
5497
4837
  }
5498
- ) : /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { vertical: true, justify: "center", align: "center", className: "height-full", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Empty, { description: t2("markdownEditor.collection.empty") }) })
4838
+ ) : /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { vertical: true, justify: "center", align: "center", className: "height-full", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Empty, { description: "\u6682\u65E0\u6458\u5F55" }) })
5499
4839
  }
5500
4840
  );
5501
4841
  const container = collectionConfig?.getContainer?.();
@@ -5536,7 +4876,7 @@ var useCollections = (collectionConfig) => {
5536
4876
  }
5537
4877
  editor.current.chain().focus().setMark(COLLECTION_KEY, {
5538
4878
  "collection-id": remoteId,
5539
- "user-name": collectionConfig?.user?.name || t("markdownEditor.unknown"),
4879
+ "user-name": collectionConfig?.user?.name || "\u672A\u77E5",
5540
4880
  "user-id": collectionConfig?.user.id || "0000",
5541
4881
  "update-time": getTimestamp(),
5542
4882
  "page-no": pageIndex
@@ -6085,7 +5425,6 @@ var BlockquoteButton = React3.forwardRef(
6085
5425
  hideWhenUnavailable,
6086
5426
  onToggled
6087
5427
  });
6088
- const { t: t2 } = useTranslation(NS_COMMON);
6089
5428
  const handleClick = React3.useCallback(
6090
5429
  (event) => {
6091
5430
  onClick?.(event);
@@ -6109,7 +5448,7 @@ var BlockquoteButton = React3.forwardRef(
6109
5448
  "data-disabled": !canToggle3,
6110
5449
  "aria-label": label,
6111
5450
  "aria-pressed": isActive,
6112
- tooltip: t2("markdownEditor.toolbar.blockquote"),
5451
+ tooltip: "\u5F15\u7528\u5757",
6113
5452
  onClick: handleClick,
6114
5453
  ...buttonProps,
6115
5454
  ref,
@@ -6277,7 +5616,7 @@ function useBlockquote(config) {
6277
5616
  isActive,
6278
5617
  handleToggle,
6279
5618
  canToggle: canToggle3,
6280
- label: t("markdownEditor.toolbar.blockquote"),
5619
+ label: "\u5F15\u7528\u5757",
6281
5620
  shortcutKeys: BLOCKQUOTE_SHORTCUT_KEY,
6282
5621
  Icon: BlockquoteIcon
6283
5622
  };
@@ -6312,7 +5651,6 @@ var CodeBlockButton = React3.forwardRef(
6312
5651
  hideWhenUnavailable,
6313
5652
  onToggled
6314
5653
  });
6315
- const { t: t2 } = useTranslation(NS_COMMON);
6316
5654
  const handleClick = React3.useCallback(
6317
5655
  (event) => {
6318
5656
  onClick?.(event);
@@ -6336,7 +5674,7 @@ var CodeBlockButton = React3.forwardRef(
6336
5674
  tabIndex: -1,
6337
5675
  "aria-label": label,
6338
5676
  "aria-pressed": isActive,
6339
- tooltip: t2("markdownEditor.toolbar.codeBlock"),
5677
+ tooltip: "\u4EE3\u7801\u5757",
6340
5678
  onClick: handleClick,
6341
5679
  ...buttonProps,
6342
5680
  ref,
@@ -6495,7 +5833,7 @@ function useCodeBlock(config) {
6495
5833
  isActive,
6496
5834
  handleToggle,
6497
5835
  canToggle: canToggleState,
6498
- label: t("markdownEditor.toolbar.codeBlock"),
5836
+ label: "\u4EE3\u7801\u5757",
6499
5837
  shortcutKeys: CODE_BLOCK_SHORTCUT_KEY,
6500
5838
  Icon: CodeBlockIcon
6501
5839
  };
@@ -6656,7 +5994,6 @@ var ColorHighlightButton = React3.forwardRef(
6656
5994
  style,
6657
5995
  ...buttonProps
6658
5996
  }, ref) => {
6659
- const { t: t2 } = useTranslation(NS_COMMON);
6660
5997
  const { editor } = useTiptapEditor(providedEditor);
6661
5998
  const {
6662
5999
  isVisible,
@@ -6668,7 +6005,7 @@ var ColorHighlightButton = React3.forwardRef(
6668
6005
  } = useColorHighlight({
6669
6006
  editor,
6670
6007
  highlightColor,
6671
- label: text || t2("markdownEditor.highlight.toggle", { color: highlightColor }),
6008
+ label: text || `\u5207\u6362\u9AD8\u4EAE\u663E\u793A (${highlightColor})`,
6672
6009
  hideWhenUnavailable,
6673
6010
  mode,
6674
6011
  onApplied
@@ -6727,52 +6064,52 @@ ColorHighlightButton.displayName = "ColorHighlightButton";
6727
6064
  var COLOR_HIGHLIGHT_SHORTCUT_KEY = "mod+shift+h";
6728
6065
  var HIGHLIGHT_COLORS = [
6729
6066
  {
6730
- labelKey: "markdownEditor.highlight.default",
6067
+ label: "\u9ED8\u8BA4\u80CC\u666F",
6731
6068
  value: "var(--tt-bg-color)",
6732
6069
  border: "var(--tt-bg-color-contrast)"
6733
6070
  },
6734
6071
  {
6735
- labelKey: "markdownEditor.highlight.gray",
6072
+ label: "\u7070\u8272\u80CC\u666F",
6736
6073
  value: "var(--tt-color-highlight-gray)",
6737
6074
  border: "var(--tt-color-highlight-gray-contrast)"
6738
6075
  },
6739
6076
  {
6740
- labelKey: "markdownEditor.highlight.brown",
6077
+ label: "\u68D5\u8272\u80CC\u666F",
6741
6078
  value: "var(--tt-color-highlight-brown)",
6742
6079
  border: "var(--tt-color-highlight-brown-contrast)"
6743
6080
  },
6744
6081
  {
6745
- labelKey: "markdownEditor.highlight.orange",
6082
+ label: "\u6A59\u8272\u80CC\u666F",
6746
6083
  value: "var(--tt-color-highlight-orange)",
6747
6084
  border: "var(--tt-color-highlight-orange-contrast)"
6748
6085
  },
6749
6086
  {
6750
- labelKey: "markdownEditor.highlight.yellow",
6087
+ label: "\u9EC4\u8272\u80CC\u666F",
6751
6088
  value: "var(--tt-color-highlight-yellow)",
6752
6089
  border: "var(--tt-color-highlight-yellow-contrast)"
6753
6090
  },
6754
6091
  {
6755
- labelKey: "markdownEditor.highlight.green",
6092
+ label: "\u7EFF\u8272\u80CC\u666F",
6756
6093
  value: "var(--tt-color-highlight-green)",
6757
6094
  border: "var(--tt-color-highlight-green-contrast)"
6758
6095
  },
6759
6096
  {
6760
- labelKey: "markdownEditor.highlight.blue",
6097
+ label: "\u84DD\u8272\u80CC\u666F",
6761
6098
  value: "var(--tt-color-highlight-blue)",
6762
6099
  border: "var(--tt-color-highlight-blue-contrast)"
6763
6100
  },
6764
6101
  {
6765
- labelKey: "markdownEditor.highlight.purple",
6102
+ label: "\u7D2B\u8272\u80CC\u666F",
6766
6103
  value: "var(--tt-color-highlight-purple)",
6767
6104
  border: "var(--tt-color-highlight-purple-contrast)"
6768
6105
  },
6769
6106
  {
6770
- labelKey: "markdownEditor.highlight.pink",
6107
+ label: "\u7C89\u8272\u80CC\u666F",
6771
6108
  value: "var(--tt-color-highlight-pink)",
6772
6109
  border: "var(--tt-color-highlight-pink-contrast)"
6773
6110
  },
6774
6111
  {
6775
- labelKey: "markdownEditor.highlight.red",
6112
+ label: "\u7EA2\u8272\u80CC\u666F",
6776
6113
  value: "var(--tt-color-highlight-red)",
6777
6114
  border: "var(--tt-color-highlight-red-contrast)"
6778
6115
  }
@@ -6898,7 +6235,7 @@ function useColorHighlight(config) {
6898
6235
  const handleRemoveHighlight = React3.useCallback(() => {
6899
6236
  const success = removeHighlight(editor, mode);
6900
6237
  if (success) {
6901
- onApplied?.({ color: "", label: t("markdownEditor.highlight.removeBackground"), mode });
6238
+ onApplied?.({ color: "", label: "\u79FB\u9664\u80CC\u666F", mode });
6902
6239
  }
6903
6240
  return success;
6904
6241
  }, [editor, onApplied, mode]);
@@ -6920,31 +6257,28 @@ function useColorHighlight(config) {
6920
6257
  handleColorHighlight,
6921
6258
  handleRemoveHighlight,
6922
6259
  canColorHighlight: canColorHighlightState,
6923
- label: label || t("markdownEditor.highlight.label"),
6260
+ label: label || `\u80CC\u666F\u8272`,
6924
6261
  shortcutKeys: COLOR_HIGHLIGHT_SHORTCUT_KEY,
6925
6262
  Icon: HighlighterIcon,
6926
6263
  mode
6927
6264
  };
6928
6265
  }
6929
- var ColorHighlightPopoverButton = React3.forwardRef(({ className, children, ...props }, ref) => {
6930
- const { t: t2 } = useTranslation(NS_COMMON);
6931
- return /* @__PURE__ */ jsxRuntime.jsx(
6932
- Button7,
6933
- {
6934
- type: "button",
6935
- className,
6936
- "data-style": "ghost",
6937
- "data-appearance": "default",
6938
- role: "button",
6939
- tabIndex: -1,
6940
- "aria-label": t2("markdownEditor.highlight.textLabel"),
6941
- tooltip: t2("markdownEditor.highlight.label"),
6942
- ref,
6943
- ...props,
6944
- children: children ?? /* @__PURE__ */ jsxRuntime.jsx(HighlighterIcon, { className: "tiptap-button-icon" })
6945
- }
6946
- );
6947
- });
6266
+ var ColorHighlightPopoverButton = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6267
+ Button7,
6268
+ {
6269
+ type: "button",
6270
+ className,
6271
+ "data-style": "ghost",
6272
+ "data-appearance": "default",
6273
+ role: "button",
6274
+ tabIndex: -1,
6275
+ "aria-label": "\u6587\u672C\u80CC\u666F\u8272",
6276
+ tooltip: "\u80CC\u666F\u8272",
6277
+ ref,
6278
+ ...props,
6279
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsx(HighlighterIcon, { className: "tiptap-button-icon" })
6280
+ }
6281
+ ));
6948
6282
  ColorHighlightPopoverButton.displayName = "ColorHighlightPopoverButton";
6949
6283
  function ColorHighlightPopoverContent({
6950
6284
  editor,
@@ -6959,10 +6293,9 @@ function ColorHighlightPopoverContent({
6959
6293
  const { handleRemoveHighlight } = useColorHighlight({ editor });
6960
6294
  const isMobile = useIsBreakpoint();
6961
6295
  const containerRef = React3.useRef(null);
6962
- const { t: t2 } = useTranslation(NS_COMMON);
6963
6296
  const menuItems = React3.useMemo(
6964
- () => [...colors.map((c) => ({ ...c, label: t2(c.labelKey) })), { label: t2("markdownEditor.highlight.removeHighlight"), value: "none" }],
6965
- [colors, t2]
6297
+ () => [...colors, { label: "\u79FB\u9664\u9AD8\u4EAE", value: "none" }],
6298
+ [colors]
6966
6299
  );
6967
6300
  const { selectedIndex } = useMenuNavigation({
6968
6301
  containerRef,
@@ -6991,8 +6324,8 @@ function ColorHighlightPopoverContent({
6991
6324
  {
6992
6325
  editor,
6993
6326
  highlightColor: color.value,
6994
- tooltip: t2(color.labelKey),
6995
- "aria-label": `${t2(color.labelKey)} highlight color`,
6327
+ tooltip: color.label,
6328
+ "aria-label": `${color.label} highlight color`,
6996
6329
  tabIndex: index === selectedIndex ? 0 : -1,
6997
6330
  "data-highlighted": selectedIndex === index
6998
6331
  },
@@ -7003,8 +6336,8 @@ function ColorHighlightPopoverContent({
7003
6336
  Button7,
7004
6337
  {
7005
6338
  onClick: handleRemoveHighlight,
7006
- "aria-label": t2("markdownEditor.highlight.removeBackground"),
7007
- tooltip: t2("markdownEditor.highlight.removeBackground"),
6339
+ "aria-label": "\u79FB\u9664\u80CC\u666F",
6340
+ tooltip: "\u79FB\u9664\u80CC\u666F",
7008
6341
  tabIndex: selectedIndex === colors.length ? 0 : -1,
7009
6342
  type: "button",
7010
6343
  role: "menuitem",
@@ -7030,7 +6363,6 @@ function ColorHighlightPopover({
7030
6363
  onApplied,
7031
6364
  ...props
7032
6365
  }) {
7033
- const { t: t2 } = useTranslation(NS_COMMON);
7034
6366
  const { editor } = useTiptapEditor(providedEditor);
7035
6367
  const [isOpen, setIsOpen] = React3.useState(false);
7036
6368
  const { isVisible, canColorHighlight: canColorHighlight2, isActive, label, Icon } = useColorHighlight({
@@ -7053,7 +6385,7 @@ function ColorHighlightPopover({
7053
6385
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "tiptap-button-icon" })
7054
6386
  }
7055
6387
  ) }),
7056
- /* @__PURE__ */ jsxRuntime.jsx(PopoverContent, { "aria-label": t2("markdownEditor.highlight.label"), children: /* @__PURE__ */ jsxRuntime.jsx(ColorHighlightPopoverContent, { editor, colors }) })
6388
+ /* @__PURE__ */ jsxRuntime.jsx(PopoverContent, { "aria-label": "\u80CC\u666F\u8272", children: /* @__PURE__ */ jsxRuntime.jsx(ColorHighlightPopoverContent, { editor, colors }) })
7057
6389
  ] });
7058
6390
  }
7059
6391
  var ChevronDownIcon = React3.memo(({ className, ...props }) => {
@@ -7536,7 +6868,6 @@ var HeadingDropdownMenu = React3.forwardRef(
7536
6868
  }, ref) => {
7537
6869
  const { editor } = useTiptapEditor(providedEditor);
7538
6870
  const [isOpen, setIsOpen] = React3.useState(false);
7539
- const { t: t2 } = useTranslation(NS_COMMON);
7540
6871
  const { isVisible, isActive, canToggle: canToggle3, Icon } = useHeadingDropdownMenu({
7541
6872
  editor,
7542
6873
  levels,
@@ -7566,7 +6897,7 @@ var HeadingDropdownMenu = React3.forwardRef(
7566
6897
  "data-disabled": !canToggle3,
7567
6898
  "aria-label": "Format text as heading",
7568
6899
  "aria-pressed": isActive,
7569
- tooltip: t2("markdownEditor.toolbar.heading"),
6900
+ tooltip: "\u6807\u9898",
7570
6901
  ...buttonProps,
7571
6902
  ref,
7572
6903
  children: [
@@ -7580,10 +6911,10 @@ var HeadingDropdownMenu = React3.forwardRef(
7580
6911
  {
7581
6912
  editor,
7582
6913
  level,
7583
- text: t2("markdownEditor.toolbar.headingLevel", { level }),
6914
+ text: `\u6807\u9898 ${level}`,
7584
6915
  showTooltip: false
7585
6916
  }
7586
- ) }, level)) }) }) }) })
6917
+ ) }, `\u6807\u9898 ${level}`)) }) }) }) })
7587
6918
  ] });
7588
6919
  }
7589
6920
  );
@@ -7646,7 +6977,7 @@ function useHeadingDropdownMenu(config) {
7646
6977
  isActive,
7647
6978
  canToggle: canToggleState,
7648
6979
  levels,
7649
- label: t("markdownEditor.toolbar.heading"),
6980
+ label: "\u6807\u9898",
7650
6981
  Icon: activeLevel ? headingIcons[activeLevel] : HeadingIcon
7651
6982
  };
7652
6983
  }
@@ -7772,7 +7103,6 @@ function InputGroup({
7772
7103
  }
7773
7104
  var LinkButton = React3.forwardRef(
7774
7105
  ({ className, children, ...props }, ref) => {
7775
- const { t: t2 } = useTranslation(NS_COMMON);
7776
7106
  return /* @__PURE__ */ jsxRuntime.jsx(
7777
7107
  Button7,
7778
7108
  {
@@ -7781,8 +7111,8 @@ var LinkButton = React3.forwardRef(
7781
7111
  "data-style": "ghost",
7782
7112
  role: "button",
7783
7113
  tabIndex: -1,
7784
- "aria-label": t2("markdownEditor.toolbar.link"),
7785
- tooltip: t2("markdownEditor.toolbar.link"),
7114
+ "aria-label": "\u94FE\u63A5",
7115
+ tooltip: "\u94FE\u63A5",
7786
7116
  ref,
7787
7117
  ...props,
7788
7118
  children: children || /* @__PURE__ */ jsxRuntime.jsx(LinkIcon, { className: "tiptap-button-icon" })
@@ -7800,7 +7130,6 @@ var LinkMain = ({
7800
7130
  isActive
7801
7131
  }) => {
7802
7132
  const isMobile = useIsBreakpoint();
7803
- const { t: t2 } = useTranslation(NS_COMMON);
7804
7133
  const handleKeyDown = (event) => {
7805
7134
  if (event.key === "Enter") {
7806
7135
  event.preventDefault();
@@ -7824,7 +7153,7 @@ var LinkMain = ({
7824
7153
  Input4,
7825
7154
  {
7826
7155
  type: "url",
7827
- placeholder: t2("markdownEditor.toolbar.linkPlaceholder"),
7156
+ placeholder: "\u7C98\u8D34\u94FE\u63A5...",
7828
7157
  value: url,
7829
7158
  onChange: (e) => setUrl(e.target.value),
7830
7159
  onKeyDown: handleKeyDown,
@@ -7839,7 +7168,7 @@ var LinkMain = ({
7839
7168
  {
7840
7169
  type: "button",
7841
7170
  onClick: setLink,
7842
- title: t2("markdownEditor.toolbar.applyLink"),
7171
+ title: "\u5E94\u7528\u94FE\u63A5",
7843
7172
  disabled: !url && !isActive,
7844
7173
  "data-style": "ghost",
7845
7174
  children: /* @__PURE__ */ jsxRuntime.jsx(CornerDownLeftIcon, { className: "tiptap-button-icon" })
@@ -7852,7 +7181,7 @@ var LinkMain = ({
7852
7181
  {
7853
7182
  type: "button",
7854
7183
  onClick: openLink,
7855
- title: t2("markdownEditor.toolbar.openInNewWindow"),
7184
+ title: "\u5728\u65B0\u7A97\u53E3\u4E2D\u6253\u5F00",
7856
7185
  disabled: !url && !isActive,
7857
7186
  "data-style": "ghost",
7858
7187
  children: /* @__PURE__ */ jsxRuntime.jsx(ExternalLinkIcon, { className: "tiptap-button-icon" })
@@ -7863,7 +7192,7 @@ var LinkMain = ({
7863
7192
  {
7864
7193
  type: "button",
7865
7194
  onClick: removeLink,
7866
- title: t2("markdownEditor.toolbar.removeLink"),
7195
+ title: "\u79FB\u9664\u94FE\u63A5",
7867
7196
  disabled: !url && !isActive,
7868
7197
  "data-style": "ghost",
7869
7198
  children: /* @__PURE__ */ jsxRuntime.jsx(TrashIcon, { className: "tiptap-button-icon" })
@@ -8377,10 +7706,10 @@ var listIcons = {
8377
7706
  orderedList: ListOrderedIcon,
8378
7707
  taskList: ListTodoIcon
8379
7708
  };
8380
- var listLabelKeys = {
8381
- bulletList: "markdownEditor.toolbar.bulletList",
8382
- orderedList: "markdownEditor.toolbar.orderedList",
8383
- taskList: "markdownEditor.toolbar.taskList"
7709
+ var listLabels = {
7710
+ bulletList: "\u65E0\u5E8F\u5217\u8868",
7711
+ orderedList: "\u6709\u5E8F\u5217\u8868",
7712
+ taskList: "\u4EFB\u52A1\u5217\u8868"
8384
7713
  };
8385
7714
  var LIST_SHORTCUT_KEYS = {
8386
7715
  bulletList: "mod+shift+8",
@@ -8527,24 +7856,24 @@ function useList(config) {
8527
7856
  isActive,
8528
7857
  handleToggle,
8529
7858
  canToggle: canToggle3,
8530
- label: t(listLabelKeys[type]),
7859
+ label: listLabels[type],
8531
7860
  shortcutKeys: LIST_SHORTCUT_KEYS[type],
8532
7861
  Icon: listIcons[type]
8533
7862
  };
8534
7863
  }
8535
7864
  var listOptions = [
8536
7865
  {
8537
- labelKey: "markdownEditor.toolbar.bulletList",
7866
+ label: "\u65E0\u5E8F\u5217\u8868",
8538
7867
  type: "bulletList",
8539
7868
  icon: ListIcon
8540
7869
  },
8541
7870
  {
8542
- labelKey: "markdownEditor.toolbar.orderedList",
7871
+ label: "\u6709\u5E8F\u5217\u8868",
8543
7872
  type: "orderedList",
8544
7873
  icon: ListOrderedIcon
8545
7874
  },
8546
7875
  {
8547
- labelKey: "markdownEditor.toolbar.taskList",
7876
+ label: "\u4EFB\u52A1\u5217\u8868",
8548
7877
  type: "taskList",
8549
7878
  icon: ListTodoIcon
8550
7879
  }
@@ -8585,13 +7914,7 @@ function useListDropdownMenu(config) {
8585
7914
  const { editor } = useTiptapEditor(providedEditor);
8586
7915
  const [isVisible, setIsVisible] = React3.useState(true);
8587
7916
  const listInSchema = types.some((type) => isNodeInSchema(type, editor));
8588
- const filteredLists = React3.useMemo(
8589
- () => getFilteredListOptions(types).map((option) => ({
8590
- ...option,
8591
- label: t(option.labelKey)
8592
- })),
8593
- [types]
8594
- );
7917
+ const filteredLists = React3.useMemo(() => getFilteredListOptions(types), [types]);
8595
7918
  const canToggleAny = canToggleAnyList(editor, types);
8596
7919
  const isAnyActive = isAnyListActive(editor, types);
8597
7920
  const activeType = getActiveListType(editor, types);
@@ -8621,7 +7944,7 @@ function useListDropdownMenu(config) {
8621
7944
  canToggle: canToggleAny,
8622
7945
  types,
8623
7946
  filteredLists,
8624
- label: t("markdownEditor.toolbar.list"),
7947
+ label: "List",
8625
7948
  Icon: activeList ? listIcons[activeList.type] : ListIcon
8626
7949
  };
8627
7950
  }
@@ -8635,7 +7958,6 @@ function ListDropdownMenu({
8635
7958
  }) {
8636
7959
  const { editor } = useTiptapEditor(providedEditor);
8637
7960
  const [isOpen, setIsOpen] = React3.useState(false);
8638
- const { t: t2 } = useTranslation(NS_COMMON);
8639
7961
  const { filteredLists, canToggle: canToggle3, isActive, isVisible, Icon } = useListDropdownMenu({
8640
7962
  editor,
8641
7963
  types,
@@ -8662,8 +7984,8 @@ function ListDropdownMenu({
8662
7984
  tabIndex: -1,
8663
7985
  disabled: !canToggle3,
8664
7986
  "data-disabled": !canToggle3,
8665
- "aria-label": t2("markdownEditor.toolbar.listOptions"),
8666
- tooltip: t2("markdownEditor.toolbar.list"),
7987
+ "aria-label": "\u5217\u8868\u9009\u9879",
7988
+ tooltip: "\u5217\u8868",
8667
7989
  ...props,
8668
7990
  children: [
8669
7991
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "tiptap-button-icon" }),
@@ -8999,14 +8321,14 @@ var MARK_SHORTCUT_KEYS = {
8999
8321
  superscript: "mod+.",
9000
8322
  subscript: "mod+,"
9001
8323
  };
9002
- var MARK_ACTION_LABEL_KEYS = {
9003
- bold: "markdownEditor.toolbar.bold",
9004
- italic: "markdownEditor.toolbar.italic",
9005
- underline: "markdownEditor.toolbar.underline",
9006
- strike: "markdownEditor.toolbar.strike",
9007
- code: "markdownEditor.toolbar.code",
9008
- superscript: "markdownEditor.toolbar.superscript",
9009
- subscript: "markdownEditor.toolbar.subscript"
8324
+ var MARK_ACTION_LABELS = {
8325
+ bold: "\u7C97\u4F53",
8326
+ italic: "\u659C\u4F53",
8327
+ underline: "\u4E0B\u5212\u7EBF",
8328
+ strike: "\u5220\u9664\u7EBF",
8329
+ code: "\u4EE3\u7801",
8330
+ superscript: "\u4E0A\u89D2\u6807",
8331
+ subscript: "\u4E0B\u89D2\u6807"
9010
8332
  };
9011
8333
  function canToggleMark(editor, type) {
9012
8334
  if (!editor || !editor.isEditable) return false;
@@ -9033,8 +8355,7 @@ function shouldShowButton6(props) {
9033
8355
  return true;
9034
8356
  }
9035
8357
  function getFormattedMarkName(type) {
9036
- const labelKey = MARK_ACTION_LABEL_KEYS[type];
9037
- return labelKey ? t(labelKey) : type.charAt(0).toUpperCase() + type.slice(1);
8358
+ return MARK_ACTION_LABELS[type] || type.charAt(0).toUpperCase() + type.slice(1);
9038
8359
  }
9039
8360
  function useMark(config) {
9040
8361
  const {
@@ -9344,11 +8665,11 @@ var textAlignIcons = {
9344
8665
  right: AlignRightIcon,
9345
8666
  justify: AlignJustifyIcon
9346
8667
  };
9347
- var textAlignLabelKeys = {
9348
- left: "markdownEditor.toolbar.alignLeft",
9349
- center: "markdownEditor.toolbar.alignCenter",
9350
- right: "markdownEditor.toolbar.alignRight",
9351
- justify: "markdownEditor.toolbar.alignJustify"
8668
+ var textAlignLabels = {
8669
+ left: "\u5DE6\u5BF9\u9F50",
8670
+ center: "\u5C45\u4E2D\u5BF9\u9F50",
8671
+ right: "\u53F3\u5BF9\u9F50",
8672
+ justify: "\u4E24\u7AEF\u5BF9\u9F50"
9352
8673
  };
9353
8674
  function canSetTextAlign(editor, align) {
9354
8675
  if (!editor || !editor.isEditable) return false;
@@ -9416,7 +8737,7 @@ function useTextAlign(config) {
9416
8737
  isActive,
9417
8738
  handleTextAlign,
9418
8739
  canAlign,
9419
- label: t(textAlignLabelKeys[align]),
8740
+ label: textAlignLabels[align],
9420
8741
  shortcutKeys: TEXT_ALIGN_SHORTCUT_KEYS[align],
9421
8742
  Icon: textAlignIcons[align]
9422
8743
  };
@@ -9541,9 +8862,9 @@ var UNDO_REDO_SHORTCUT_KEYS = {
9541
8862
  undo: "mod+z",
9542
8863
  redo: "mod+shift+z"
9543
8864
  };
9544
- var historyActionLabelKeys = {
9545
- undo: "markdownEditor.toolbar.undo",
9546
- redo: "markdownEditor.toolbar.redo"
8865
+ var historyActionLabels = {
8866
+ undo: "\u64A4\u9500",
8867
+ redo: "\u91CD\u505A"
9547
8868
  };
9548
8869
  var historyIcons = {
9549
8870
  undo: Undo2Icon,
@@ -9601,7 +8922,7 @@ function useUndoRedo(config) {
9601
8922
  isVisible,
9602
8923
  handleAction,
9603
8924
  canExecute,
9604
- label: t(historyActionLabelKeys[action]),
8925
+ label: historyActionLabels[action],
9605
8926
  shortcutKeys: UNDO_REDO_SHORTCUT_KEYS[action],
9606
8927
  Icon: historyIcons[action]
9607
8928
  };
@@ -9864,7 +9185,6 @@ var MainToolbarContent = ({
9864
9185
  isMobile,
9865
9186
  isBubble
9866
9187
  }) => {
9867
- const { t: t2 } = useTranslation(NS_COMMON);
9868
9188
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9869
9189
  /* @__PURE__ */ jsxRuntime.jsx(Spacer, {}),
9870
9190
  !isBubble && tools.includes("undo-redo") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -9874,9 +9194,9 @@ var MainToolbarContent = ({
9874
9194
  ] }),
9875
9195
  /* @__PURE__ */ jsxRuntime.jsx(ToolbarSeparator, {})
9876
9196
  ] }),
9877
- onQuote && /* @__PURE__ */ jsxRuntime.jsx(ToolbarGroup, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectButton, { icon: /* @__PURE__ */ jsxRuntime.jsx(QuoteIcon, {}), tooltip: t2("markdownEditor.toolbar.quote"), onClick: onQuote, children: t2("markdownEditor.toolbar.quote") }) }),
9878
- onCreateAnnotation && /* @__PURE__ */ jsxRuntime.jsx(ToolbarGroup, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectButton, { icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MessageOutlined, {}), tooltip: t2("markdownEditor.toolbar.annotation"), onClick: onCreateAnnotation, children: t2("markdownEditor.toolbar.annotation") }) }),
9879
- onCreateCollection && /* @__PURE__ */ jsxRuntime.jsx(ToolbarGroup, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectButton, { icon: /* @__PURE__ */ jsxRuntime.jsx(icons.BookOutlined, {}), tooltip: t2("markdownEditor.toolbar.excerpt"), onClick: onCreateCollection, children: t2("markdownEditor.toolbar.excerpt") }) }),
9197
+ onQuote && /* @__PURE__ */ jsxRuntime.jsx(ToolbarGroup, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectButton, { icon: /* @__PURE__ */ jsxRuntime.jsx(QuoteIcon, {}), tooltip: "\u5F15\u7528\u9009\u4E2D\u6587\u672C", onClick: onQuote, children: "\u5F15\u7528" }) }),
9198
+ onCreateAnnotation && /* @__PURE__ */ jsxRuntime.jsx(ToolbarGroup, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectButton, { icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MessageOutlined, {}), tooltip: "\u6279\u6CE8", onClick: onCreateAnnotation, children: "\u6279\u6CE8" }) }),
9199
+ onCreateCollection && /* @__PURE__ */ jsxRuntime.jsx(ToolbarGroup, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectButton, { icon: /* @__PURE__ */ jsxRuntime.jsx(icons.BookOutlined, {}), tooltip: "\u6458\u5F55\u7B14\u8BB0", onClick: onCreateCollection, children: "\u6458\u5F55" }) }),
9880
9200
  (tools.includes("heading") || tools.includes("list") || tools.includes("block")) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9881
9201
  /* @__PURE__ */ jsxRuntime.jsxs(ToolbarGroup, { children: [
9882
9202
  tools.includes("heading") && /* @__PURE__ */ jsxRuntime.jsx(HeadingDropdownMenu, { levels: [1, 2, 3, 4], portal: isMobile }),
@@ -10117,9 +9437,9 @@ var SearchAndReplace = core.Extension.create({
10117
9437
  addProseMirrorPlugins() {
10118
9438
  const editor = this.editor;
10119
9439
  const { searchResultClass, disableRegex } = this.options;
10120
- const setLastSearchTerm = (t2) => editor.storage.searchAndReplace.lastSearchTerm = t2;
10121
- const setLastCaseSensitive = (t2) => editor.storage.searchAndReplace.lastCaseSensitive = t2;
10122
- const setLastResultIndex = (t2) => editor.storage.searchAndReplace.lastResultIndex = t2;
9440
+ const setLastSearchTerm = (t) => editor.storage.searchAndReplace.lastSearchTerm = t;
9441
+ const setLastCaseSensitive = (t) => editor.storage.searchAndReplace.lastCaseSensitive = t;
9442
+ const setLastResultIndex = (t) => editor.storage.searchAndReplace.lastResultIndex = t;
10123
9443
  return [
10124
9444
  new state.Plugin({
10125
9445
  key: searchAndReplacePluginKey,
@@ -10220,7 +9540,6 @@ var MarkdownEditor_default = React3.forwardRef(
10220
9540
  collectionConfig,
10221
9541
  pageNoConfig
10222
9542
  }, ref) => {
10223
- const { t: t2 } = useTranslation(NS_COMMON);
10224
9543
  const isMobile = useIsBreakpoint();
10225
9544
  const lastContentRef = React3.useRef("");
10226
9545
  const { setPageNoEditor, onPageChange } = usePageNo(pageNoConfig);
@@ -10257,7 +9576,7 @@ var MarkdownEditor_default = React3.forwardRef(
10257
9576
  autocomplete: "off",
10258
9577
  autocorrect: "off",
10259
9578
  autocapitalize: "off",
10260
- "aria-label": t2("markdownEditor.mainArea")
9579
+ "aria-label": "\u4E3B\u5185\u5BB9\u533A\u57DF\uFF0C\u5F00\u59CB\u8F93\u5165\u6587\u672C..."
10261
9580
  }
10262
9581
  },
10263
9582
  extensions: [
@@ -10418,7 +9737,7 @@ var MarkdownEditor_default = React3.forwardRef(
10418
9737
  antd.Button,
10419
9738
  {
10420
9739
  size: "small",
10421
- title: t2("markdownEditor.annotation.list"),
9740
+ title: "\u6279\u6CE8\u5217\u8868",
10422
9741
  icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MessageOutlined, {}),
10423
9742
  color: "primary",
10424
9743
  variant: "text",
@@ -10430,15 +9749,15 @@ var MarkdownEditor_default = React3.forwardRef(
10430
9749
  {
10431
9750
  style: { gap: "2px" },
10432
9751
  size: "small",
10433
- title: t2("markdownEditor.collection.list"),
9752
+ title: "\u6458\u5F55\u5217\u8868",
10434
9753
  icon: /* @__PURE__ */ jsxRuntime.jsx(icons.BookOutlined, {}),
10435
9754
  color: "primary",
10436
9755
  variant: "text",
10437
9756
  onClick: () => setShowCollection(!showCollection),
10438
- children: t2("markdownEditor.collection.title")
9757
+ children: "\u6458\u5F55"
10439
9758
  }
10440
9759
  ),
10441
- onDownloadFile && /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", color: "primary", variant: "text", onClick: downloadFile2, children: t2("common.download") }),
9760
+ onDownloadFile && /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", color: "primary", variant: "text", onClick: downloadFile2, children: "\u4E0B\u8F7D" }),
10442
9761
  extraNav
10443
9762
  ] })
10444
9763
  ] }),
@@ -10611,7 +9930,6 @@ exports.FilePreview = FilePreview_default;
10611
9930
  exports.FilePreviewDrawer = FilePreviewDrawer_default;
10612
9931
  exports.HttpStatus = HttpStatus;
10613
9932
  exports.Iframe = Iframe_default;
10614
- exports.LANG_KEY = LANG_KEY;
10615
9933
  exports.LazyComponent = LazyComponent_default;
10616
9934
  exports.LuyaFilePreview = luyaFilePreview_default;
10617
9935
  exports.MarkDrawing = MarkDrawing_default;
@@ -10621,7 +9939,6 @@ exports.MicroApp = MicroApp_default;
10621
9939
  exports.MicroAppDrawer = Drawer_default;
10622
9940
  exports.MicroAppWindow = Window_default;
10623
9941
  exports.MultiEmailValidator = MultiEmailValidator;
10624
- exports.NS_COMMON = NS_COMMON;
10625
9942
  exports.PdfImagePreview = PdfImagePreview_default;
10626
9943
  exports.PdfPreview = PdfPreview_default;
10627
9944
  exports.PhoneOrMobileValidator = PhoneOrMobileValidator;
@@ -10643,7 +9960,6 @@ exports.ThanNumValidator = ThanNumValidator;
10643
9960
  exports.UserAvatar = UserAvatar_default;
10644
9961
  exports.VideoPlayer = VideoPlayer_default;
10645
9962
  exports.absVal = absVal;
10646
- exports.addBundledResource = addBundledResource;
10647
9963
  exports.addUrlLastSlash = addUrlLastSlash;
10648
9964
  exports.aesDecrypt = aesDecrypt;
10649
9965
  exports.aesEncrypt = aesEncrypt;
@@ -10651,9 +9967,6 @@ exports.arrToObj = arrToObj;
10651
9967
  exports.buildUrlParams = buildUrlParams;
10652
9968
  exports.cachedMessage = cachedMessage;
10653
9969
  exports.calculate = calculate;
10654
- exports.commonEnUS = commonEnUS;
10655
- exports.commonJaJP = commonJaJP;
10656
- exports.commonZhCN = commonZhCN;
10657
9970
  exports.compareNum = compareNum;
10658
9971
  exports.convertCurrency = convertCurrency;
10659
9972
  exports.convertNewlineToBr = convertNewlineToBr;
@@ -10681,8 +9994,6 @@ exports.getDeviceId = getDeviceId;
10681
9994
  exports.getEndOfTimestamp = getEndOfTimestamp;
10682
9995
  exports.getFileName = getFileName;
10683
9996
  exports.getFileSuffixName = getFileSuffixName;
10684
- exports.getI18n = getI18n;
10685
- exports.getLang = getLang;
10686
9997
  exports.getRowSpanCount = getRowSpanCount;
10687
9998
  exports.getStartOfTimestamp = getStartOfTimestamp;
10688
9999
  exports.getTimestamp = getTimestamp;
@@ -10690,7 +10001,6 @@ exports.getWebSocketUrl = getWebSocketUrl;
10690
10001
  exports.htmlToMarkdown = htmlToMarkdown;
10691
10002
  exports.htmlToText = htmlToText;
10692
10003
  exports.importThirdPartyFile = importThirdPartyFile;
10693
- exports.initI18n = initI18n;
10694
10004
  exports.is = is;
10695
10005
  exports.isArray = isArray;
10696
10006
  exports.isBlob = isBlob;
@@ -10732,8 +10042,6 @@ exports.safeParseJson = safeParseJson;
10732
10042
  exports.setInterval = setInterval2;
10733
10043
  exports.setUrlMainSource = setUrlMainSource;
10734
10044
  exports.shouldRender = shouldRender;
10735
- exports.switchLang = switchLang;
10736
- exports.t = t;
10737
10045
  exports.times = times;
10738
10046
  exports.toFixed = toFixed;
10739
10047
  exports.transform = transform;
@@ -10748,7 +10056,6 @@ exports.useIframeRelayBridge = useIframeRelayBridge_default;
10748
10056
  exports.useRefState = useRefState_default;
10749
10057
  exports.useSyncInput = useSyncInput_default;
10750
10058
  exports.useThrottle = useThrottle_default;
10751
- exports.useTranslation = useTranslation;
10752
10059
  exports.useWebSocket = useWebSocket_default;
10753
10060
  //# sourceMappingURL=index.cjs.js.map
10754
10061
  //# sourceMappingURL=index.cjs.js.map