whyuzeim 1.1.91 → 1.1.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/cjs/AddMember/index.js +5 -2
  2. package/cjs/ChatBox/index.js +13 -8
  3. package/cjs/GroupDetail/GroupDetailEditView/index.js +8 -5
  4. package/cjs/GroupDetail/GroupShareView/index.js +9 -4
  5. package/cjs/GroupDetail/image/icon_translation.svg.js +5 -0
  6. package/cjs/GroupDetail/index.js +8 -3
  7. package/cjs/HighlyCustomChat/index.js +9 -4
  8. package/cjs/IM/index.d.ts +3 -0
  9. package/cjs/IM/index.js +9 -3
  10. package/cjs/NoData/index.js +7 -2
  11. package/cjs/Sidebar/CreateGroup/index.js +7 -4
  12. package/cjs/Sidebar/GroupList/index.js +11 -4
  13. package/cjs/Sidebar/Searchbox/index.js +8 -3
  14. package/cjs/Sidebar/index.js +10 -7
  15. package/cjs/UserProfile/index.js +5 -2
  16. package/cjs/contexts/LocaleContext.d.ts +17 -0
  17. package/cjs/contexts/LocaleContext.js +143 -0
  18. package/cjs/index.d.ts +3 -0
  19. package/cjs/index.js +8 -0
  20. package/cjs/locales/en.d.ts +153 -0
  21. package/cjs/locales/en.js +156 -0
  22. package/cjs/locales/index.d.ts +2 -0
  23. package/cjs/locales/index.js +14 -0
  24. package/cjs/locales/zh-TW.d.ts +153 -0
  25. package/cjs/locales/zh-TW.js +156 -0
  26. package/es/AddMember/index.js +5 -2
  27. package/es/ChatBox/index.js +13 -8
  28. package/es/GroupDetail/GroupDetailEditView/index.js +8 -5
  29. package/es/GroupDetail/GroupShareView/index.js +9 -4
  30. package/es/GroupDetail/image/icon_translation.svg.js +3 -0
  31. package/es/GroupDetail/index.js +8 -3
  32. package/es/HighlyCustomChat/index.js +9 -4
  33. package/es/IM/index.d.ts +3 -0
  34. package/es/IM/index.js +9 -3
  35. package/es/NoData/index.js +7 -2
  36. package/es/Sidebar/CreateGroup/index.js +7 -4
  37. package/es/Sidebar/GroupList/index.js +11 -4
  38. package/es/Sidebar/Searchbox/index.js +8 -3
  39. package/es/Sidebar/index.js +10 -7
  40. package/es/UserProfile/index.js +5 -2
  41. package/es/contexts/LocaleContext.d.ts +17 -0
  42. package/es/contexts/LocaleContext.js +137 -0
  43. package/es/index.d.ts +3 -0
  44. package/es/index.js +3 -0
  45. package/es/locales/en.d.ts +153 -0
  46. package/es/locales/en.js +154 -0
  47. package/es/locales/index.d.ts +2 -0
  48. package/es/locales/index.js +9 -0
  49. package/es/locales/zh-TW.d.ts +153 -0
  50. package/es/locales/zh-TW.js +154 -0
  51. package/package.json +1 -1
@@ -16,9 +16,12 @@ var index$1 = require('../TypeItem/index.js');
16
16
  var context = require('../IM/context.js');
17
17
  var antd = require('antd');
18
18
  var useDebounce = require('use-debounce');
19
+ var LocaleContext = require('../contexts/LocaleContext.js');
19
20
  require('./style/index.scss');
20
21
 
21
22
  var AddMember = function AddMember() {
23
+ var _useTranslation = LocaleContext.useTranslation(),
24
+ t = _useTranslation.t;
22
25
  var _useContext = React.useContext(context.Context),
23
26
  setRightComponent = _useContext.setRightComponent;
24
27
  var _useState = React.useState(""),
@@ -123,11 +126,11 @@ var AddMember = function AddMember() {
123
126
  type: "primary",
124
127
  onClick: handleDebouncdAddMember,
125
128
  loading: loading
126
- }, "Confirm")), /*#__PURE__*/React.createElement("div", {
129
+ }, t('common.confirm'))), /*#__PURE__*/React.createElement("div", {
127
130
  className: "yuze-addMember-member p-4"
128
131
  }, /*#__PURE__*/React.createElement("span", {
129
132
  className: "block text-center"
130
- }, "Member"), /*#__PURE__*/React.createElement(index, {
133
+ }, t('common.member')), /*#__PURE__*/React.createElement(index, {
131
134
  className: "yuze-searchBox-list-content p-4",
132
135
  keyword: keyword,
133
136
  groupId: "",
@@ -26,10 +26,13 @@ var index$1 = require('../AddMember/index.js');
26
26
  var tools = require('../tools.js');
27
27
  var avatar_default = require('../Icon/avatar_default.svg.js');
28
28
  var index = require('../HighlyCustomChat/index.js');
29
+ var LocaleContext = require('../contexts/LocaleContext.js');
29
30
 
30
31
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
32
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context5 = ownKeys(Object(t), true)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
32
33
  var Chatbox = function Chatbox(props) {
34
+ var _useTranslation = LocaleContext.useTranslation(),
35
+ t = _useTranslation.t;
33
36
  var client = agoraChatUikit.useClient();
34
37
  var _useContext = React.useContext(context.Context),
35
38
  http = _useContext.http,
@@ -274,7 +277,7 @@ var Chatbox = function Chatbox(props) {
274
277
  onClick: function onClick() {
275
278
  antd.Modal.destroyAll();
276
279
  }
277
- }, "Close"), /*#__PURE__*/React.createElement(antd.Button, {
280
+ }, t('common.close')), /*#__PURE__*/React.createElement(antd.Button, {
278
281
  type: "primary",
279
282
  className: "flex-1",
280
283
  size: "large",
@@ -282,7 +285,7 @@ var Chatbox = function Chatbox(props) {
282
285
  setIsTopMenuOpen(false);
283
286
  leaveGroup(agoraChatUikit.rootStore.conversationStore.currentCvs.conversationId);
284
287
  }
285
- }, "Confirm"))
288
+ }, t('common.confirm')))
286
289
  });
287
290
  case 2:
288
291
  case "end":
@@ -347,7 +350,7 @@ var Chatbox = function Chatbox(props) {
347
350
  setRightComponent && setRightComponent(/*#__PURE__*/React.createElement(index$1, null));
348
351
  setIsTopMenuOpen(false);
349
352
  }
350
- }, "Add Members"), /*#__PURE__*/React.createElement("li", {
353
+ }, t('group.addMember')), /*#__PURE__*/React.createElement("li", {
351
354
  className: "".concat(theme === "light" ? "im-light yuze-li" : "im-dark yuze-li"),
352
355
  onClick: function onClick() {
353
356
  var cvs = agoraChatUikit.rootStore.conversationStore.currentCvs;
@@ -359,7 +362,7 @@ var Chatbox = function Chatbox(props) {
359
362
  });
360
363
  setIsTopMenuOpen(false);
361
364
  }
362
- }, "Clear Messages"), /*#__PURE__*/React.createElement("li", {
365
+ }, t('conversation.clearMessages')), /*#__PURE__*/React.createElement("li", {
363
366
  className: "".concat(theme === "light" ? "im-light yuze-li" : "im-dark yuze-li"),
364
367
  onClick: function onClick() {
365
368
  setIsTopMenuOpen(false);
@@ -372,13 +375,13 @@ var Chatbox = function Chatbox(props) {
372
375
  });
373
376
  setMidComponent && setMidComponent(undefined);
374
377
  }
375
- }, "Delete Chat"), agoraChatUikit.rootStore.conversationStore.currentCvs.chatType === "groupChat" && /*#__PURE__*/React.createElement("li", {
378
+ }, t('conversation.deleteChat')), agoraChatUikit.rootStore.conversationStore.currentCvs.chatType === "groupChat" && /*#__PURE__*/React.createElement("li", {
376
379
  className: "".concat(theme === "light" ? "im-light yuze-li" : "im-dark yuze-li"),
377
380
  onClick: function onClick() {
378
381
  setIsTopMenuOpen(false);
379
382
  handleConfirmRemove();
380
383
  }
381
- }, "Leave Group"));
384
+ }, t('group.leaveGroup')));
382
385
  return /*#__PURE__*/React.createElement("div", {
383
386
  className: "flex h-[64px] items-center bg-[var(--im-main-backgroundColor)] pl-4 pr-4 justify-between"
384
387
  }, /*#__PURE__*/React.createElement("div", {
@@ -410,7 +413,9 @@ var Chatbox = function Chatbox(props) {
410
413
  color: "var(--im-third-fontColor)"
411
414
  },
412
415
  className: "text-sm"
413
- }, headerInfo.memberCount, " members"))), mobile && /*#__PURE__*/React.createElement("div", {
416
+ }, t('group.memberCount', {
417
+ count: headerInfo.memberCount
418
+ })))), mobile && /*#__PURE__*/React.createElement("div", {
414
419
  className: "flex flex-col ellipsis text-[var(--im-main-fontColor)] text-base font-semibold",
415
420
  onClick: function onClick() {
416
421
  return props.onClickHeaderBack({
@@ -607,7 +612,7 @@ var Chatbox = function Chatbox(props) {
607
612
  cuiScrollList = document.querySelector(".cui-messageList .cui-scrollList div");
608
613
  cuiScrollListWrap = document.querySelector(".cui-messageList .cui-scrollList");
609
614
  if (cuiScrollList) {
610
- htmlString = "<div id=\"agent-generating-loader\" class=\"cui-messageList-msgItem\"><div><div class=\"thread-container\"><div id=\"1393207307050949578\" class=\"cui-message-base cui-message-base-left cui-message-base-hasAvatar cui-message-base-secondly cui-message-base-square cui-message-base-dark\"><img src=\"/icon/im/avatar_default.svg\" class=\"w-[48px] h-[48px] rounded-full overflow-hidden object-fit\"><div class=\"cui-message-base-box\"><div class=\"cui-message-base-info\"></div><div class=\"cui-message-base-body\"><div class=\"cui-message-base-content\" style=\"background: var(--im-msg-bubble-color-left); border-radius: 9px; padding: 10px 12px; color: var(--im-msg-bubble-font-color);\"><div style=\"display:flex;align-items:center\"><div class=\"generating-loader-wrap\"><div class=\"generating-loader\"></div></div><span class=\"cui-message-text\">Generating</span></div></div><div class=\"cui-message-base-time-and-status-box\"><span class=\"cui-message-status cui-message-status-icon\"></span><span class=\"cui-message-base-time\"></span></div></div></div></div></div></div><div class=\"cui-modal-root\"><div tabindex=\"-1\" class=\"cui-modal-wrap modify-message-modal\" style=\"display: none;\"></div></div></div>";
615
+ htmlString = "<div id=\"agent-generating-loader\" class=\"cui-messageList-msgItem\"><div><div class=\"thread-container\"><div id=\"1393207307050949578\" class=\"cui-message-base cui-message-base-left cui-message-base-hasAvatar cui-message-base-secondly cui-message-base-square cui-message-base-dark\"><img src=\"/icon/im/avatar_default.svg\" class=\"w-[48px] h-[48px] rounded-full overflow-hidden object-fit\"><div class=\"cui-message-base-box\"><div class=\"cui-message-base-info\"></div><div class=\"cui-message-base-body\"><div class=\"cui-message-base-content\" style=\"background: var(--im-msg-bubble-color-left); border-radius: 9px; padding: 10px 12px; color: var(--im-msg-bubble-font-color);\"><div style=\"display:flex;align-items:center\"><div class=\"generating-loader-wrap\"><div class=\"generating-loader\"></div></div><span class=\"cui-message-text\">".concat(t('common.generating'), "</span></div></div><div class=\"cui-message-base-time-and-status-box\"><span class=\"cui-message-status cui-message-status-icon\"></span><span class=\"cui-message-base-time\"></span></div></div></div></div></div></div><div class=\"cui-modal-root\"><div tabindex=\"-1\" class=\"cui-modal-wrap modify-message-modal\" style=\"display: none;\"></div></div></div>");
611
616
  template = document.createElement('template');
612
617
  template.innerHTML = _trimInstanceProperty(htmlString).call(htmlString);
613
618
  node = template.content.firstChild;
@@ -18,11 +18,14 @@ var context = require('../../IM/context.js');
18
18
  var antd = require('antd');
19
19
  require('../../IM/style/index.scss');
20
20
  var agoraChatUikit = require('agora-chat-uikit');
21
+ var LocaleContext = require('../../contexts/LocaleContext.js');
21
22
 
22
23
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
24
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context5 = ownKeys(Object(t), true)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
24
25
  var GroupDetailEditView = function GroupDetailEditView(props) {
25
26
  var _props$groupInfo$head, _props$groupInfo, _props$groupInfo$name, _props$groupInfo2, _props$groupInfo3, _context4;
27
+ var _useTranslation = LocaleContext.useTranslation(),
28
+ t = _useTranslation.t;
26
29
  var _useState = React.useState({
27
30
  imageUrl: (_props$groupInfo$head = (_props$groupInfo = props.groupInfo) === null || _props$groupInfo === void 0 ? void 0 : _props$groupInfo.headimgurl) !== null && _props$groupInfo$head !== void 0 ? _props$groupInfo$head : '',
28
31
  // 群组头像 URL
@@ -205,7 +208,7 @@ var GroupDetailEditView = function GroupDetailEditView(props) {
205
208
  d: "M6 18L18 6M6 6l12 12"
206
209
  }))), /*#__PURE__*/React.createElement("span", {
207
210
  className: "ml-2 text-[var(--im-main-fontColor)]"
208
- }, "Edit")), /*#__PURE__*/React.createElement("div", {
211
+ }, t('common.edit'))), /*#__PURE__*/React.createElement("div", {
209
212
  className: "my-10"
210
213
  }, /*#__PURE__*/React.createElement("div", {
211
214
  className: "flex justify-center"
@@ -235,11 +238,11 @@ var GroupDetailEditView = function GroupDetailEditView(props) {
235
238
  className: "w-20 h-20 rounded-lg bg-black-60 flex items-center justify-center"
236
239
  }, /*#__PURE__*/React.createElement("span", {
237
240
  className: "text-[var(--im-main-fontColor)]"
238
- }, "Upload Avatar")))))), /*#__PURE__*/React.createElement("div", {
241
+ }, t('group.uploadAvatar'))))))), /*#__PURE__*/React.createElement("div", {
239
242
  className: "gap-2 flex flex-col mt-4 gap-2 mx-4"
240
243
  }, /*#__PURE__*/React.createElement("span", {
241
244
  className: "text-[var(--im-seven-fontColor)] text-sm font-normal"
242
- }, "Group Name"), /*#__PURE__*/React.createElement("div", {
245
+ }, t('group.groupName')), /*#__PURE__*/React.createElement("div", {
243
246
  className: "w-full min-h-12 px-4 py-3 rounded-sm bg-[var(--im-main-bg-ten)]"
244
247
  }, /*#__PURE__*/React.createElement("div", {
245
248
  ref: nameInputRef,
@@ -250,7 +253,7 @@ var GroupDetailEditView = function GroupDetailEditView(props) {
250
253
  className: "gap-2 flex flex-col mt-4 mx-4"
251
254
  }, /*#__PURE__*/React.createElement("span", {
252
255
  className: "text-[var(--im-seven-fontColor)] text-sm font-normal"
253
- }, "Description"), /*#__PURE__*/React.createElement("div", {
256
+ }, t('common.description')), /*#__PURE__*/React.createElement("div", {
254
257
  className: "w-full min-h-12 px-4 py-3 rounded-sm bg-[var(--im-main-bg-ten)]"
255
258
  }, /*#__PURE__*/React.createElement("div", {
256
259
  ref: descriptionInputRef,
@@ -260,7 +263,7 @@ var GroupDetailEditView = function GroupDetailEditView(props) {
260
263
  }))), /*#__PURE__*/React.createElement("div", {
261
264
  className: "mt-4 mx-4 p-4 h-12 text-center text-base leading-normal font-semibold rounded-md cursor-pointer text-[var(--im-six-fontColor)] bg-[var(--im-green)] ".concat(_trimInstanceProperty(_context4 = groupForm.name).call(_context4) === '' ? 'opacity-50' : ''),
262
265
  onClick: saveGroupInfo
263
- }, "Save"));
266
+ }, t('common.save')));
264
267
  };
265
268
 
266
269
  module.exports = GroupDetailEditView;
@@ -8,8 +8,11 @@ var React = require('react');
8
8
  var context = require('../../IM/context.js');
9
9
  require('../../IM/style/index.scss');
10
10
  var agoraChatUikit = require('agora-chat-uikit');
11
+ var LocaleContext = require('../../contexts/LocaleContext.js');
11
12
 
12
13
  var GroupShareView = function GroupShareView(props) {
14
+ var _useTranslation = LocaleContext.useTranslation(),
15
+ t = _useTranslation.t;
13
16
  var _useContext = React.useContext(context.Context),
14
17
  http = _useContext.http,
15
18
  userInfo = _useContext.userInfo;
@@ -117,9 +120,9 @@ var GroupShareView = function GroupShareView(props) {
117
120
  d: "M6 18L18 6M6 6l12 12"
118
121
  }))), /*#__PURE__*/React.createElement("span", {
119
122
  className: "ml-2 text-[var(--im-main-fontColor)]"
120
- }, "Share")), /*#__PURE__*/React.createElement("p", {
123
+ }, t('group.share'))), /*#__PURE__*/React.createElement("p", {
121
124
  className: "text-[var(--im-main-fontColor)] text-base font-semibold text-center pt-6 px-4 pb-2.5 border-b border-[var(--im-main-bg-ten)]"
122
- }, "Groups"), /*#__PURE__*/React.createElement("div", {
125
+ }, t('group.groups')), /*#__PURE__*/React.createElement("div", {
123
126
  className: "flex flex-col mt-3 mx-4 gap-4 overflow-y-auto flex-1 min-h-0 pb-5 no-scrollbar"
124
127
  }, _mapInstanceProperty(groupList).call(groupList, function (groupinfo, index) {
125
128
  var _groupinfo$name, _groupinfo$members;
@@ -140,11 +143,13 @@ var GroupShareView = function GroupShareView(props) {
140
143
  className: "text-[var(--im-main-fontColor)] text-base font-semibold font-['Inter'] leading-normal"
141
144
  }, (_groupinfo$name = groupinfo === null || groupinfo === void 0 ? void 0 : groupinfo.name) !== null && _groupinfo$name !== void 0 ? _groupinfo$name : '-'), /*#__PURE__*/React.createElement("span", {
142
145
  className: "text-[var(--im-third-fontColor)] text-sm font-normal font-['Inter'] leading-snug"
143
- }, (_groupinfo$members = groupinfo === null || groupinfo === void 0 ? void 0 : groupinfo.members) !== null && _groupinfo$members !== void 0 ? _groupinfo$members : 0, " members"))), /*#__PURE__*/React.createElement("div", {
146
+ }, t('group.memberCount', {
147
+ count: (_groupinfo$members = groupinfo === null || groupinfo === void 0 ? void 0 : groupinfo.members) !== null && _groupinfo$members !== void 0 ? _groupinfo$members : 0
148
+ })))), /*#__PURE__*/React.createElement("div", {
144
149
  className: "flex flex-shrink-0 items-center justify-center w-14 h-6 text-center bg-gradient-to-r from-[#9cff1e] via-[#9cff1e] to-[#9cff1e] rounded"
145
150
  }, /*#__PURE__*/React.createElement("span", {
146
151
  className: " text-[var(--im-six-fontColor)] text-xs font-medium leading-normal"
147
- }, "Share")));
152
+ }, t('group.share'))));
148
153
  })));
149
154
  };
150
155
 
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ var img = "data:image/svg+xml,%3csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M2.02273 10C2.02273 5.59427 5.59427 2.02273 10 2.02273C12.7648 2.02273 15.2025 3.42934 16.6342 5.56818H15.3182V7.34091H19.75V2.90909H17.9773V4.39303C16.2134 1.88804 13.2987 0.25 10 0.25C4.61522 0.25 0.25 4.61522 0.25 10H2.02273Z' fill='white' fill-opacity='0.4'/%3e%3cpath d='M9.99995 19.75C15.3847 19.75 19.75 15.3848 19.75 10H17.9772C17.9772 14.4057 14.4057 17.9773 9.99995 17.9773C7.23516 17.9773 4.79749 16.5707 3.36579 14.4318H4.68182V12.6591H0.25V17.0909H2.02273V15.607C3.7866 18.112 6.70132 19.75 9.99995 19.75Z' fill='white' fill-opacity='0.4'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.30758 5.23249L6.40385 13.4225C6.37904 13.5052 6.40799 13.5466 6.49072 13.5466H8.11631C8.19904 13.5466 8.25281 13.5052 8.27763 13.4225L8.74917 11.9458H11.7025L12.1865 13.4225C12.2113 13.5052 12.2651 13.5466 12.3478 13.5466H13.961C14.0437 13.5466 14.0727 13.5052 14.0479 13.4225L11.1938 5.23249C11.1689 5.14976 11.1152 5.1084 11.0324 5.1084H9.4689C9.38617 5.1084 9.3324 5.14976 9.30758 5.23249ZM11.2062 10.3947H9.25795L10.2134 7.44131H10.2507L11.2062 10.3947Z' fill='white' fill-opacity='0.4'/%3e%3c/svg%3e";
4
+
5
+ module.exports = img;
@@ -14,12 +14,15 @@ var ic_group_edit = require('./image/ic_group_edit.svg.js');
14
14
  var ic_messages = require('./image/ic_messages.svg.js');
15
15
  var index$2 = require('../TypeItem/index.js');
16
16
  var context = require('../IM/context.js');
17
+ var LocaleContext = require('../contexts/LocaleContext.js');
17
18
  require('./style/index.scss');
18
19
  var index = require('./GroupDetailEditView/index.js');
19
20
  var index$1 = require('./GroupShareView/index.js');
20
21
 
21
22
  var GroupDetail = function GroupDetail(props) {
22
23
  var _groupInfo$sendbirdid;
24
+ var _useTranslation = LocaleContext.useTranslation(),
25
+ t = _useTranslation.t;
23
26
  var _useContext = React.useContext(context.Context),
24
27
  http = _useContext.http,
25
28
  mobile = _useContext.mobile,
@@ -180,7 +183,7 @@ var GroupDetail = function GroupDetail(props) {
180
183
  }
181
184
  })), /*#__PURE__*/React.createElement("span", {
182
185
  className: "text-base"
183
- }, "Profile")), /*#__PURE__*/React.createElement("div", {
186
+ }, t('common.profile'))), /*#__PURE__*/React.createElement("div", {
184
187
  className: classNames("yuze-groupDetail-header-right")
185
188
  }, ((groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.roletype) === 1 || (groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.roletype) === 2) && /*#__PURE__*/React.createElement("img", {
186
189
  onClick: function onClick() {
@@ -211,11 +214,13 @@ var GroupDetail = function GroupDetail(props) {
211
214
  className: "text-base mt-1"
212
215
  }, groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.name), /*#__PURE__*/React.createElement("span", {
213
216
  className: "text-base text-[var(--im-third-fontColor)] font-normal mt-2"
214
- }, groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.members, " members"))), /*#__PURE__*/React.createElement("div", {
217
+ }, t('group.memberCount', {
218
+ count: groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.members
219
+ })))), /*#__PURE__*/React.createElement("div", {
215
220
  className: "yuze-groupDetail-member p-4"
216
221
  }, /*#__PURE__*/React.createElement("span", {
217
222
  className: "block text-center"
218
- }, "Member"), /*#__PURE__*/React.createElement("div", {
223
+ }, t('common.member')), /*#__PURE__*/React.createElement("div", {
219
224
  className: "yuze-groupDetail-member-list pt-4"
220
225
  }, _mapInstanceProperty(memberList).call(memberList, function (item) {
221
226
  return /*#__PURE__*/React.createElement(index$2, {
@@ -34,11 +34,14 @@ var index = require('./AIReportMsg/index.js');
34
34
  var index$3 = require('./ ShareMsg/index.js');
35
35
  var classNames = require('classnames');
36
36
  require('highlight.js/styles/night-owl.css');
37
+ var LocaleContext = require('../contexts/LocaleContext.js');
37
38
 
38
39
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
39
40
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context4 = ownKeys(Object(t), true)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context5 = ownKeys(Object(t))).call(_context5, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
40
41
  var HighlyCustomChat = function HighlyCustomChat(props) {
41
42
  var _props$className;
43
+ var _useTranslation = LocaleContext.useTranslation(),
44
+ t = _useTranslation.t;
42
45
  // 设置默认值
43
46
  var client = agoraChatUikit.useClient();
44
47
  var _props$showHeader = props.showHeader,
@@ -349,7 +352,9 @@ var HighlyCustomChat = function HighlyCustomChat(props) {
349
352
  color: "var(--im-third-fontColor)"
350
353
  },
351
354
  className: "text-sm"
352
- }, headerInfo.memberCount, " members"))));
355
+ }, t('group.memberCount', {
356
+ count: headerInfo.memberCount
357
+ })))));
353
358
  };
354
359
  // First define initConversation with useCallback
355
360
  var initConversation = React.useCallback(function () {
@@ -464,7 +469,7 @@ var HighlyCustomChat = function HighlyCustomChat(props) {
464
469
  cuiScrollList = document.querySelector(".cui-messageList .cui-scrollList div");
465
470
  cuiScrollListWrap = document.querySelector(".cui-scrollList");
466
471
  if (cuiScrollList) {
467
- htmlString = "<div id=\"agent-generating-loader\" class=\"cui-messageList-msgItem\"><div><div class=\"thread-container\"><div id=\"1393207307050949578\" class=\"cui-message-base cui-message-base-left cui-message-base-hasAvatar cui-message-base-secondly cui-message-base-square cui-message-base-dark\"><img src=\"/icon/im/avatar_default.svg\" class=\"w-[48px] h-[48px] rounded-full overflow-hidden object-fit\"><div class=\"cui-message-base-box\"><div class=\"cui-message-base-info\"></div><div class=\"cui-message-base-body\"><div class=\"cui-message-base-content\" style=\"background: var(--im-msg-bubble-color-left); border-radius: 9px; padding: 10px 12px; color: var(--im-msg-bubble-font-color);\"><div style=\"display:flex;align-items:center\"><div class=\"generating-loader-wrap\"><div class=\"generating-loader\"></div></div><span class=\"cui-message-text\">Generating</span></div></div><div class=\"cui-message-base-time-and-status-box\"><span class=\"cui-message-status cui-message-status-icon\"></span><span class=\"cui-message-base-time\"></span></div></div></div></div></div></div><div class=\"cui-modal-root\"><div tabindex=\"-1\" class=\"cui-modal-wrap modify-message-modal\" style=\"display: none;\"></div></div></div>";
472
+ htmlString = "<div id=\"agent-generating-loader\" class=\"cui-messageList-msgItem\"><div><div class=\"thread-container\"><div id=\"1393207307050949578\" class=\"cui-message-base cui-message-base-left cui-message-base-hasAvatar cui-message-base-secondly cui-message-base-square cui-message-base-dark\"><img src=\"/icon/im/avatar_default.svg\" class=\"w-[48px] h-[48px] rounded-full overflow-hidden object-fit\"><div class=\"cui-message-base-box\"><div class=\"cui-message-base-info\"></div><div class=\"cui-message-base-body\"><div class=\"cui-message-base-content\" style=\"background: var(--im-msg-bubble-color-left); border-radius: 9px; padding: 10px 12px; color: var(--im-msg-bubble-font-color);\"><div style=\"display:flex;align-items:center\"><div class=\"generating-loader-wrap\"><div class=\"generating-loader\"></div></div><span class=\"cui-message-text\">".concat(t('common.generating'), "</span></div></div><div class=\"cui-message-base-time-and-status-box\"><span class=\"cui-message-status cui-message-status-icon\"></span><span class=\"cui-message-base-time\"></span></div></div></div></div></div></div><div class=\"cui-modal-root\"><div tabindex=\"-1\" class=\"cui-modal-wrap modify-message-modal\" style=\"display: none;\"></div></div></div>");
468
473
  template = document.createElement('template');
469
474
  template.innerHTML = _trimInstanceProperty(htmlString).call(htmlString);
470
475
  node = template.content.firstChild;
@@ -523,7 +528,7 @@ var HighlyCustomChat = function HighlyCustomChat(props) {
523
528
  className: "bg-[var(--im-main-backgroundColor)] im-agent-mid ".concat((_props$className = props.className) !== null && _props$className !== void 0 ? _props$className : "", " w-full h-full overflow-hidden flex flex-col")
524
529
  }, loading ? /*#__PURE__*/React.createElement("div", {
525
530
  className: "flex-1 flex items-center justify-center text-gray-500"
526
- }, "Loading...") // 显示加载状态
531
+ }, t('common.loading')) // 显示加载状态
527
532
  : /*#__PURE__*/React.createElement(React.Fragment, null, showHeader === true && customHeader(), showHeader === false && currentConversation && props.renderHeader && props.renderHeader(currentConversation), /*#__PURE__*/React.createElement(agoraChatUikit.MessageList, {
528
533
  className: "w-full flex-1",
529
534
  conversation: {
@@ -543,7 +548,7 @@ var HighlyCustomChat = function HighlyCustomChat(props) {
543
548
  if (!customInputView) {
544
549
  return /*#__PURE__*/React.createElement(agoraChatUikit.MessageInput, _extends({
545
550
  enabledTyping: true,
546
- placeHolder: (currentConversation === null || currentConversation === void 0 ? void 0 : currentConversation.chatType) === 'groupChat' ? "Send a message to group" : "Type a message...",
551
+ placeHolder: (currentConversation === null || currentConversation === void 0 ? void 0 : currentConversation.chatType) === 'groupChat' ? t('conversation.sendMessageToGroup') : t('conversation.typeMessage'),
547
552
  conversation: {
548
553
  conversationId: props.conversationId,
549
554
  chatType: props.chatType
package/cjs/IM/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import { AxiosInstance } from "axios";
3
3
  import { Conversation } from "agora-chat-uikit";
4
4
  import { IUserInfo } from "./context";
5
+ import { Locale } from "../contexts/LocaleContext";
5
6
  import "agora-chat-uikit/style.css";
6
7
  import "./style/index.scss";
7
8
  export type IIMProps = {
@@ -17,6 +18,8 @@ export type IIMProps = {
17
18
  mobile?: boolean;
18
19
  onChatIconClick?: () => void;
19
20
  canSidebarExpand?: boolean;
21
+ locale?: Locale;
22
+ onLocaleChange?: (locale: Locale) => void;
20
23
  additionalConversations?: Conversation[];
21
24
  onAdditionalConversationClick?: (conversation: Conversation) => Promise<boolean>;
22
25
  onRenderConversationItem?: (cvs: Conversation, defaultConversationItemClick: (conversation: Conversation) => void) => React.ReactElement | undefined;
package/cjs/IM/index.js CHANGED
@@ -6,6 +6,7 @@ var classNames = require('classnames');
6
6
  var agoraChatUikit = require('agora-chat-uikit');
7
7
  var context = require('./context.js');
8
8
  var useGetAgoraToken = require('./hooks/useGetAgoraToken.js');
9
+ var LocaleContext = require('../contexts/LocaleContext.js');
9
10
  var index = require('../Exit/index.js');
10
11
  require('agora-chat-uikit/style.css');
11
12
  require('./style/index.scss');
@@ -31,7 +32,9 @@ var IM = function IM(props) {
31
32
  additionalConversations = props.additionalConversations,
32
33
  onAdditionalConversationClick = props.onAdditionalConversationClick,
33
34
  onRenderConversationItem = props.onRenderConversationItem,
34
- canSidebarExpand = props.canSidebarExpand;
35
+ canSidebarExpand = props.canSidebarExpand,
36
+ locale = props.locale,
37
+ onLocaleChange = props.onLocaleChange;
35
38
  window.AGAIN_ENTER_IM_INIT = false;
36
39
  console.log("the useinfo is", userInfo);
37
40
  var agoraToken = useGetAgoraToken.useGetAgoraToken(http, userInfo.uid);
@@ -71,7 +74,10 @@ var IM = function IM(props) {
71
74
  }
72
75
  }));
73
76
  };
74
- return /*#__PURE__*/React.createElement("div", {
77
+ return /*#__PURE__*/React.createElement(LocaleContext.LocaleProvider, {
78
+ locale: locale,
79
+ onLocaleChange: onLocaleChange
80
+ }, /*#__PURE__*/React.createElement("div", {
75
81
  className: classNames("im-".concat(theme), className),
76
82
  style: style
77
83
  }, /*#__PURE__*/React.createElement(context.Context.Provider, {
@@ -135,7 +141,7 @@ var IM = function IM(props) {
135
141
  }
136
142
  }
137
143
  }
138
- }, /*#__PURE__*/React.createElement(index, null), children)));
144
+ }, /*#__PURE__*/React.createElement(index, null), children))));
139
145
  };
140
146
 
141
147
  module.exports = IM;
@@ -4,6 +4,7 @@ var React = require('react');
4
4
  var noData = require('./image/no-data.svg.js');
5
5
  require('./style/index.scss');
6
6
  var classNames = require('classnames');
7
+ var LocaleContext = require('../contexts/LocaleContext.js');
7
8
 
8
9
  /* eslint-disable jsx-a11y/alt-text */
9
10
  /* eslint-disable @next/next/no-img-element */
@@ -11,12 +12,16 @@ var NoData = function NoData(props) {
11
12
  var className = props.className,
12
13
  _props$style = props.style,
13
14
  style = _props$style === void 0 ? {} : _props$style;
15
+ var _useTranslation = LocaleContext.useTranslation(),
16
+ t = _useTranslation.t;
14
17
  return /*#__PURE__*/React.createElement("div", {
15
- className: classNames("yuze-im-noData flex justify-center items-center h-full", className),
18
+ className: classNames("yuze-im-noData flex flex-col justify-center items-center h-full gap-2", className),
16
19
  style: style
17
20
  }, /*#__PURE__*/React.createElement("img", {
18
21
  src: noData
19
- }));
22
+ }), /*#__PURE__*/React.createElement("span", {
23
+ className: "text-sm text-gray-500"
24
+ }, t('common.noData')));
20
25
  };
21
26
 
22
27
  module.exports = NoData;
@@ -20,9 +20,12 @@ require('./style/index.scss');
20
20
  var InfiniteScroll = require('react-infinite-scroll-component');
21
21
  var index$1 = require('../../NoData/index.js');
22
22
  var _ = require('lodash');
23
+ var LocaleContext = require('../../contexts/LocaleContext.js');
23
24
 
24
25
  var CreateGroup = function CreateGroup(props) {
25
26
  var _$uniqBy;
27
+ var _useTranslation = LocaleContext.useTranslation(),
28
+ t = _useTranslation.t;
26
29
  var onClose = props.onClose,
27
30
  _props$open = props.open,
28
31
  open = _props$open === void 0 ? false : _props$open;
@@ -155,7 +158,7 @@ var CreateGroup = function CreateGroup(props) {
155
158
  className: "yuze-createGroup-left-title"
156
159
  }, /*#__PURE__*/React.createElement("span", {
157
160
  className: "text-lg"
158
- }, "New Group")), /*#__PURE__*/React.createElement(agoraChatUikit.Input, {
161
+ }, t('group.newGroup'))), /*#__PURE__*/React.createElement(agoraChatUikit.Input, {
159
162
  className: "my-3",
160
163
  onChange: function onChange(e) {
161
164
  pageRef.current = 0;
@@ -211,7 +214,7 @@ var CreateGroup = function CreateGroup(props) {
211
214
  className: "yuze-createGroup-right-title"
212
215
  }, /*#__PURE__*/React.createElement("span", {
213
216
  className: "text-sm"
214
- }, "Group Member(", member.length, "/2000)")), /*#__PURE__*/React.createElement("div", {
217
+ }, t('group.groupMembers'), "(", member.length, "/2000)")), /*#__PURE__*/React.createElement("div", {
215
218
  className: "yuze-createGroup-right-list overflow-auto"
216
219
  }, /*#__PURE__*/React.createElement("div", {
217
220
  className: "flex flex-row gap-5 py-4 flex-wrap"
@@ -242,7 +245,7 @@ var CreateGroup = function CreateGroup(props) {
242
245
  setMember([]);
243
246
  onClose && onClose();
244
247
  }
245
- }, "Close"), /*#__PURE__*/React.createElement(antd.Button, {
248
+ }, t('common.close')), /*#__PURE__*/React.createElement(antd.Button, {
246
249
  type: "primary",
247
250
  className: "flex-1",
248
251
  size: "large",
@@ -250,7 +253,7 @@ var CreateGroup = function CreateGroup(props) {
250
253
  onClick: function onClick() {
251
254
  handleDebounceCreateGroup();
252
255
  }
253
- }, "Create")))));
256
+ }, t('group.createGroup'))))));
254
257
  };
255
258
 
256
259
  module.exports = CreateGroup;
@@ -15,8 +15,11 @@ var index = require('../../TypeItem/index.js');
15
15
  var index$1 = require('./OperateBtn/index.js');
16
16
  var index$2 = require('../../NoData/index.js');
17
17
  var useDebounce = require('use-debounce');
18
+ var LocaleContext = require('../../contexts/LocaleContext.js');
18
19
 
19
20
  var List = function List(props) {
21
+ var _useTranslation = LocaleContext.useTranslation(),
22
+ t = _useTranslation.t;
20
23
  var _props$activekey = props.activekey,
21
24
  activekey = _props$activekey === void 0 ? "0" : _props$activekey,
22
25
  keyword = props.keyword;
@@ -59,7 +62,9 @@ var List = function List(props) {
59
62
  key: item.id,
60
63
  name: item.name,
61
64
  avatar: item.headimgurl,
62
- description: "".concat(item.members, " members"),
65
+ description: t('group.memberCount', {
66
+ count: item.members
67
+ }),
63
68
  onClick: function onClick() {
64
69
  renderMidComponent && renderMidComponent();
65
70
  setCurrentConversation({
@@ -82,6 +87,8 @@ var List = function List(props) {
82
87
  }), (list === null || list === void 0 ? void 0 : list.length) === 0 && /*#__PURE__*/React.createElement(index$2, null));
83
88
  };
84
89
  var GroupList = function GroupList(props) {
90
+ var _useTranslation2 = LocaleContext.useTranslation(),
91
+ t = _useTranslation2.t;
85
92
  var style = props.style;
86
93
  var _useState3 = React.useState("0"),
87
94
  _useState4 = _slicedToArray(_useState3, 2),
@@ -95,21 +102,21 @@ var GroupList = function GroupList(props) {
95
102
  setKeyword(event.target.value);
96
103
  }, 150);
97
104
  var items = [{
98
- label: "Created",
105
+ label: t('group.created'),
99
106
  key: "0",
100
107
  children: /*#__PURE__*/React.createElement(List, {
101
108
  activekey: activekey,
102
109
  keyword: keyword
103
110
  })
104
111
  }, {
105
- label: "Admin",
112
+ label: t('group.admin'),
106
113
  key: "2",
107
114
  children: /*#__PURE__*/React.createElement(List, {
108
115
  activekey: activekey,
109
116
  keyword: keyword
110
117
  })
111
118
  }, {
112
- label: "Joined",
119
+ label: t('group.joined'),
113
120
  key: "1",
114
121
  children: /*#__PURE__*/React.createElement(List, {
115
122
  activekey: activekey,
@@ -17,8 +17,11 @@ var ic_messages = require('./image/ic_messages.svg.js');
17
17
  require('./style/index.scss');
18
18
  var index$2 = require('../../NoData/index.js');
19
19
  var InfiniteScroll = require('react-infinite-scroll-component');
20
+ var LocaleContext = require('../../contexts/LocaleContext.js');
20
21
 
21
22
  var Searchbox = function Searchbox(props) {
23
+ var _useTranslation = LocaleContext.useTranslation(),
24
+ t = _useTranslation.t;
22
25
  var style = props.style;
23
26
  var _useContext = React.useContext(context.Context),
24
27
  http = _useContext.http,
@@ -125,7 +128,7 @@ var Searchbox = function Searchbox(props) {
125
128
  setLeft("21%");
126
129
  setKeyword("");
127
130
  }
128
- }, /*#__PURE__*/React.createElement("span", null, "Friend")), /*#__PURE__*/React.createElement("div", {
131
+ }, /*#__PURE__*/React.createElement("span", null, t('search.friend'))), /*#__PURE__*/React.createElement("div", {
129
132
  className: classNames("yuze-searchBox-list-tabs-item flex-1 h-full flex items-center justify-center cursor-pointer", {
130
133
  active: current === 1 ? true : false
131
134
  }),
@@ -134,7 +137,7 @@ var Searchbox = function Searchbox(props) {
134
137
  setLeft("72%");
135
138
  setKeyword("");
136
139
  }
137
- }, /*#__PURE__*/React.createElement("span", null, "Group"))), current === 0 && /*#__PURE__*/React.createElement(index, {
140
+ }, /*#__PURE__*/React.createElement("span", null, t('search.group')))), current === 0 && /*#__PURE__*/React.createElement(index, {
138
141
  className: "yuze-searchBox-list-content p-4",
139
142
  keyword: keyword,
140
143
  renderItem: function renderItem(item) {
@@ -174,7 +177,9 @@ var Searchbox = function Searchbox(props) {
174
177
  key: item.id,
175
178
  type: "2",
176
179
  avatar: item.headimgurl,
177
- description: "".concat(item.members, " members"),
180
+ description: t('group.memberCount', {
181
+ count: item.members
182
+ }),
178
183
  onClick: function onClick() {
179
184
  renderMidComponent && renderMidComponent();
180
185
  setCurrentConversation({
@@ -27,9 +27,12 @@ require('./style/index.scss');
27
27
  var context = require('../IM/context.js');
28
28
  var index$2 = require('./CustomConversationItem/index.js');
29
29
  var index = require('../IM/MobileHeader/index.js');
30
+ var LocaleContext = require('../contexts/LocaleContext.js');
30
31
 
31
32
  var Sidebar = function Sidebar(props) {
32
33
  var _props$className;
34
+ var _useTranslation = LocaleContext.useTranslation(),
35
+ t = _useTranslation.t;
33
36
  var _useState = React.useState(false),
34
37
  _useState2 = _slicedToArray(_useState, 2),
35
38
  openCreateGroup = _useState2[0],
@@ -246,7 +249,7 @@ var Sidebar = function Sidebar(props) {
246
249
  }
247
250
  }, _callee);
248
251
  }))
249
- }, "Create");
252
+ }, t('common.confirm'));
250
253
  }
251
254
  return /*#__PURE__*/React.createElement(antd.Tooltip, {
252
255
  placement: "bottomLeft",
@@ -263,7 +266,7 @@ var Sidebar = function Sidebar(props) {
263
266
  alt: ""
264
267
  }), /*#__PURE__*/React.createElement("span", {
265
268
  className: "text-sm"
266
- }, "Groups")), /*#__PURE__*/React.createElement("div", {
269
+ }, t('group.groups'))), /*#__PURE__*/React.createElement("div", {
267
270
  className: "yuze-conversationList-header-right-tooltip-item flex flex-row items-center gap-3 cursor-pointer",
268
271
  onClick: function onClick() {
269
272
  setComponentType("createGroup");
@@ -273,7 +276,7 @@ var Sidebar = function Sidebar(props) {
273
276
  alt: ""
274
277
  }), /*#__PURE__*/React.createElement("span", {
275
278
  className: "text-sm"
276
- }, "Create Group")))
279
+ }, t('group.createGroup'))))
277
280
  }, /*#__PURE__*/React.createElement("img", {
278
281
  src: theme === "light" ? ic_menu_light : ic_menu,
279
282
  className: "cursor-pointer menu",
@@ -284,13 +287,13 @@ var Sidebar = function Sidebar(props) {
284
287
  };
285
288
  var renderTitle = function renderTitle() {
286
289
  if (componentType === "default") {
287
- return "Message";
290
+ return t('conversation.messages');
288
291
  }
289
292
  if (componentType === "group") {
290
- return "Group";
293
+ return t('group.groups');
291
294
  }
292
295
  if (componentType === "createGroup") {
293
- return "New Group";
296
+ return t('group.newGroup');
294
297
  }
295
298
  };
296
299
  return /*#__PURE__*/React.createElement("div", {
@@ -324,7 +327,7 @@ var Sidebar = function Sidebar(props) {
324
327
  alt: ""
325
328
  })), /*#__PURE__*/React.createElement("span", {
326
329
  className: "text-xl"
327
- }, "Messages")), /*#__PURE__*/React.createElement("div", {
330
+ }, t('conversation.messages'))), /*#__PURE__*/React.createElement("div", {
328
331
  className: classNames("yuze-conversationList-header-right flex justify-center items-center gap-6")
329
332
  }, renderIcon())), /*#__PURE__*/React.createElement(index, {
330
333
  className: "sm:hidden",