@matchain/matchid-sdk-react 0.1.29 → 0.1.31

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.js CHANGED
@@ -729,18 +729,24 @@ function Input({
729
729
  ...props
730
730
  }) {
731
731
  const [inputType, setInputType] = (0, import_react.useState)(type);
732
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: `matchid-input-box ${props.value.length > 0 ? "matchid-input-has-content" : ""} ${className}`, children: [
733
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
734
- props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DeleteRoundIcon, { onClick: (e) => {
735
- if (onChange) {
736
- onChange({ target: { value: "" } });
737
- }
738
- }, className: "matchid-input-delete-icon", color: "var(--matchid-input-delete-icon-color)" }),
739
- type === "password" && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
740
- setInputType(inputType === "password" ? "text" : "password");
741
- }, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CloseEyeIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(OpenEyeIcon, {}) }),
742
- after
743
- ] });
732
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
733
+ "div",
734
+ {
735
+ className: `matchid-input-box ${props.value.length > 0 ? "matchid-input-has-content" : ""} ${className}`,
736
+ children: [
737
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
738
+ props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "matchid-input-delete-icon", onClick: (e) => {
739
+ if (onChange) {
740
+ onChange({ target: { value: "" } });
741
+ }
742
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DeleteRoundIcon, { className: "", color: "var(--matchid-input-delete-icon-color)" }) }),
743
+ type === "password" && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
744
+ setInputType(inputType === "password" ? "text" : "password");
745
+ }, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CloseEyeIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(OpenEyeIcon, {}) }),
746
+ after
747
+ ]
748
+ }
749
+ );
744
750
  }
745
751
 
746
752
  // src/components/Field/index.tsx
@@ -835,7 +841,9 @@ var persistedState = (0, import_middleware.persist)(
835
841
  setTheme: (theme) => set({ theme }),
836
842
  setEndpoints: (endpoints) => set({ endpoints }),
837
843
  address: "",
838
- setAddress: (address) => set({ address })
844
+ setAddress: (address) => set({ address }),
845
+ locale: "en",
846
+ setLocale: (locale) => set({ locale })
839
847
  }),
840
848
  { name: "match-local" }
841
849
  );
@@ -884,6 +892,19 @@ var getAppid = () => {
884
892
  return "";
885
893
  }
886
894
  };
895
+ var getLocale = () => {
896
+ try {
897
+ const store = localStore.getState();
898
+ const locale = store?.locale;
899
+ if (locale) {
900
+ return locale;
901
+ } else {
902
+ return "en";
903
+ }
904
+ } catch (e) {
905
+ return "en";
906
+ }
907
+ };
887
908
  var getToken = () => {
888
909
  try {
889
910
  const store = localStore.getState();
@@ -932,6 +953,7 @@ var request = async (config) => {
932
953
  if (token) {
933
954
  instance.defaults.headers.common["Authorization"] = token;
934
955
  }
956
+ instance.defaults.headers.common["Accept-Language"] = getLocale();
935
957
  const { data } = await instance.request(config);
936
958
  matchlog_default.log("api", data);
937
959
  if (data.code == 401001) {
@@ -1152,9 +1174,6 @@ function truncateAddress(address) {
1152
1174
  const end = address.slice(-2);
1153
1175
  return `${start}...${end}`;
1154
1176
  }
1155
- function firstUpperCase(str) {
1156
- return str.toString()[0].toUpperCase() + str.toString().slice(1);
1157
- }
1158
1177
 
1159
1178
  // src/store/useModalStore.ts
1160
1179
  var import_zustand2 = require("zustand");
@@ -1543,6 +1562,7 @@ function useCopyClipboard(timeout = 500) {
1543
1562
  }
1544
1563
 
1545
1564
  // src/components/PasswordModal/index.tsx
1565
+ var import_react_intl = require("react-intl");
1546
1566
  var import_jsx_runtime40 = require("react/jsx-runtime");
1547
1567
  function PasswordModal({
1548
1568
  title,
@@ -1556,13 +1576,20 @@ function PasswordModal({
1556
1576
  const [rePassword, setRePassword] = (0, import_react5.useState)("");
1557
1577
  const [error, setError] = (0, import_react5.useState)("");
1558
1578
  const { generateWallet } = useWallet();
1579
+ const intl = (0, import_react_intl.useIntl)();
1559
1580
  const passwordError = (0, import_react5.useMemo)(() => {
1560
- if (password.length < 6) return "Password must be at least 6 characters";
1581
+ if (password.length < 6) return intl.formatMessage({
1582
+ id: "passwordMinError"
1583
+ }, {
1584
+ length: 6
1585
+ });
1561
1586
  return "";
1562
1587
  }, [password]);
1563
1588
  const rePasswordError = (0, import_react5.useMemo)(() => {
1564
1589
  if (rePassword != password) {
1565
- return "The password you entered twice do not match";
1590
+ return intl.formatMessage({
1591
+ id: "passwordMatchError"
1592
+ });
1566
1593
  }
1567
1594
  return "";
1568
1595
  }, [rePassword, password]);
@@ -1589,26 +1616,32 @@ function PasswordModal({
1589
1616
  setIsSubmitting(false);
1590
1617
  }
1591
1618
  };
1592
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || "Set Password", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matchid-password-box", children: [
1619
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
1620
+ id: "passwordTitle"
1621
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matchid-password-box", children: [
1593
1622
  /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matchid-password-header", children: [
1594
1623
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PasswordRoundIcon, {}) }),
1595
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "matchid-password-header-content", children: "Please set the wallet password that will be used to recover the wallet" })
1624
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_intl.FormattedMessage, { id: "passwordTips" }) })
1596
1625
  ] }),
1597
1626
  /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matchid-password-content", children: [
1598
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Field, { label: "Password", error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1627
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1599
1628
  Input,
1600
1629
  {
1601
- placeholder: "Enter the Password",
1630
+ placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
1602
1631
  maxLength: 32,
1603
1632
  type: "password",
1604
1633
  onChange: (e) => setPassword(e.target.value),
1605
1634
  value: password
1606
1635
  }
1607
1636
  ) }),
1608
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Field, { label: "Re Password", error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1637
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Field, { label: intl.formatMessage({
1638
+ id: "rePassword"
1639
+ }), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1609
1640
  Input,
1610
1641
  {
1611
- placeholder: "Re Enter the Password",
1642
+ placeholder: intl.formatMessage({
1643
+ id: "rePasswordPlaceholder"
1644
+ }),
1612
1645
  maxLength: 32,
1613
1646
  onChange: (e) => setRePassword(e.target.value),
1614
1647
  value: rePassword,
@@ -1625,7 +1658,7 @@ function PasswordModal({
1625
1658
  size: "lg",
1626
1659
  onClick: onContinue,
1627
1660
  loading: isSubmitting,
1628
- children: "Continue"
1661
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_intl.FormattedMessage, { id: "continue" })
1629
1662
  }
1630
1663
  )
1631
1664
  ] }) });
@@ -1633,6 +1666,7 @@ function PasswordModal({
1633
1666
 
1634
1667
  // src/components/RecoveryModal/index.tsx
1635
1668
  var import_react6 = require("react");
1669
+ var import_react_intl2 = require("react-intl");
1636
1670
  var import_jsx_runtime41 = require("react/jsx-runtime");
1637
1671
  function RecoveryModal({
1638
1672
  title,
@@ -1645,8 +1679,13 @@ function RecoveryModal({
1645
1679
  const [password, setPassword] = (0, import_react6.useState)("");
1646
1680
  const { recoveryWallet } = useWallet();
1647
1681
  const [error, setError] = (0, import_react6.useState)("");
1682
+ const intl = (0, import_react_intl2.useIntl)();
1648
1683
  const passwordError = (0, import_react6.useMemo)(() => {
1649
- if (password.length < 6) return "Password must be at least 6 characters";
1684
+ if (password.length < 6) return intl.formatMessage({
1685
+ id: "passwordMinError"
1686
+ }, {
1687
+ length: 6
1688
+ });
1650
1689
  return "";
1651
1690
  }, [password]);
1652
1691
  (0, import_react6.useEffect)(() => {
@@ -1669,15 +1708,17 @@ function RecoveryModal({
1669
1708
  setIsSubmitting(false);
1670
1709
  }
1671
1710
  };
1672
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || "Recover Wallet", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "matchid-password-box", children: [
1711
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
1712
+ id: "recoverTitle"
1713
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "matchid-password-box", children: [
1673
1714
  /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "matchid-password-header", children: [
1674
1715
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(PasswordRoundIcon, {}) }),
1675
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-header-content", children: "Please enter your password to recover your wallet" })
1716
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_intl2.FormattedMessage, { id: "recoverTips" }) })
1676
1717
  ] }),
1677
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-content", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Field, { label: "Password", error: password.length > 0 ? passwordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1718
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-content", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 ? passwordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1678
1719
  Input,
1679
1720
  {
1680
- placeholder: "Enter the Password",
1721
+ placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
1681
1722
  maxLength: 32,
1682
1723
  type: "password",
1683
1724
  onChange: (e) => setPassword(e.target.value),
@@ -1693,7 +1734,7 @@ function RecoveryModal({
1693
1734
  size: "lg",
1694
1735
  onClick: onContinue,
1695
1736
  loading: isSubmitting,
1696
- children: "Continue"
1737
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
1697
1738
  }
1698
1739
  )
1699
1740
  ] }) });
@@ -1726,8 +1767,10 @@ var import_react9 = require("react");
1726
1767
 
1727
1768
  // src/components/EmailModal/StepEmail.tsx
1728
1769
  var import_react7 = require("react");
1770
+ var import_react_intl3 = require("react-intl");
1729
1771
  var import_jsx_runtime42 = require("react/jsx-runtime");
1730
1772
  function StepEmail(props) {
1773
+ const intl = (0, import_react_intl3.useIntl)();
1731
1774
  const [emailVal, setEmailVal] = (0, import_react7.useState)("");
1732
1775
  (0, import_react7.useEffect)(() => {
1733
1776
  if (props.email) {
@@ -1741,17 +1784,21 @@ function StepEmail(props) {
1741
1784
  props.onContinue(emailVal);
1742
1785
  };
1743
1786
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "matchid-email-email-box", children: [
1744
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Field, { label: "Email Address", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
1787
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Field, { label: intl.formatMessage({
1788
+ id: "emailAddress"
1789
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
1745
1790
  Input,
1746
1791
  {
1747
- placeholder: "Enter Your Email Address",
1792
+ placeholder: intl.formatMessage({
1793
+ id: "emailAddressPlaceholder"
1794
+ }),
1748
1795
  onChange: (e) => setEmailVal(e.target.value),
1749
1796
  value: emailVal
1750
1797
  }
1751
1798
  ) }),
1752
1799
  /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Button, { disabled: !canContinue, style: {
1753
1800
  marginTop: "64px"
1754
- }, onClick: onContinue, size: "lg", block: true, highlight: true, children: "Continue" })
1801
+ }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_intl3.FormattedMessage, { id: "continue" }) })
1755
1802
  ] });
1756
1803
  }
1757
1804
 
@@ -1763,15 +1810,19 @@ var EMAIL_INTERVAL = 60;
1763
1810
  var EMAIL_CODE_LENGTH = 6;
1764
1811
 
1765
1812
  // src/components/EmailModal/StepVerify.tsx
1813
+ var import_react_intl4 = require("react-intl");
1766
1814
  var import_jsx_runtime43 = require("react/jsx-runtime");
1767
1815
  function StepVerify(props) {
1816
+ const intl = (0, import_react_intl4.useIntl)();
1768
1817
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
1769
1818
  const [error, setError] = (0, import_react8.useState)("");
1770
1819
  const [code, setCode] = (0, import_react8.useState)("");
1771
1820
  const [sending, setSending] = (0, import_react8.useState)(false);
1772
1821
  const [submitting, setSubmitting] = (0, import_react8.useState)(false);
1773
1822
  const sendTimeRef = (0, import_react8.useRef)(0);
1774
- const [sendBtnText, setSendBtnText] = (0, import_react8.useState)("Send");
1823
+ const [sendBtnText, setSendBtnText] = (0, import_react8.useState)(intl.formatMessage({
1824
+ id: "send"
1825
+ }));
1775
1826
  const intervalTime = EMAIL_INTERVAL;
1776
1827
  const codeLength = EMAIL_CODE_LENGTH;
1777
1828
  const intervalRef = (0, import_react8.useRef)(null);
@@ -1789,14 +1840,18 @@ function StepVerify(props) {
1789
1840
  sendTimeRef.current--;
1790
1841
  setSendBtnText(`${sendTimeRef.current}s`);
1791
1842
  if (sendTimeRef.current <= 0) {
1792
- setSendBtnText("Resend");
1843
+ setSendBtnText(intl.formatMessage({
1844
+ id: "Resend"
1845
+ }));
1793
1846
  clearInterval(intervalRef.current);
1794
1847
  setSending(false);
1795
1848
  }
1796
1849
  }, 1e3);
1797
1850
  } catch (err) {
1798
1851
  console.error("Send email error", err);
1799
- setError("Failed to send code:" + err.message);
1852
+ setError(intl.formatMessage({
1853
+ id: "sendCodeErrorTip"
1854
+ }, { error: err.message }));
1800
1855
  setSending(false);
1801
1856
  }
1802
1857
  };
@@ -1837,13 +1892,17 @@ function StepVerify(props) {
1837
1892
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(EmailLineIcon, {}) }),
1838
1893
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
1839
1894
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
1840
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-email-verify-header-tips", children: "We have sent a verification code to your email" })
1895
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_intl4.FormattedMessage, { id: "sendEmailTips" }) })
1841
1896
  ] })
1842
1897
  ] }),
1843
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Field, { label: "Verification Code", error, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1898
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Field, { label: intl.formatMessage({
1899
+ id: "verificationCode"
1900
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1844
1901
  Input,
1845
1902
  {
1846
- placeholder: "Enter the code",
1903
+ placeholder: intl.formatMessage({
1904
+ id: "codePlaceholder"
1905
+ }),
1847
1906
  maxLength: codeLength,
1848
1907
  onChange: (e) => setCode(e.target.value),
1849
1908
  value: code,
@@ -1866,11 +1925,12 @@ function StepVerify(props) {
1866
1925
  )
1867
1926
  }
1868
1927
  ) }),
1869
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: "Continue" })
1928
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_intl4.FormattedMessage, { id: "continue" }) })
1870
1929
  ] });
1871
1930
  }
1872
1931
 
1873
1932
  // src/components/EmailModal/index.tsx
1933
+ var import_react_intl5 = require("react-intl");
1874
1934
  var import_jsx_runtime44 = require("react/jsx-runtime");
1875
1935
  function EmailModal({
1876
1936
  isOpen = false,
@@ -1881,6 +1941,7 @@ function EmailModal({
1881
1941
  }) {
1882
1942
  const [step, setStep] = (0, import_react9.useState)("input");
1883
1943
  const [emailVal, setEmailVal] = (0, import_react9.useState)("");
1944
+ const intl = (0, import_react_intl5.useIntl)();
1884
1945
  (0, import_react9.useEffect)(() => {
1885
1946
  if (!isOpen) {
1886
1947
  setStep("input");
@@ -1893,7 +1954,9 @@ function EmailModal({
1893
1954
  isOpen,
1894
1955
  width,
1895
1956
  onClose,
1896
- title: "Email",
1957
+ title: intl.formatMessage({
1958
+ id: "email"
1959
+ }),
1897
1960
  onBack: step == "verify" ? () => setStep("input") : onBack,
1898
1961
  children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
1899
1962
  setEmailVal(email);
@@ -1936,6 +1999,7 @@ function Popover({
1936
1999
 
1937
2000
  // src/components/LoginBox/index.tsx
1938
2001
  var import_react11 = require("react");
2002
+ var import_react_intl6 = require("react-intl");
1939
2003
  var import_jsx_runtime46 = require("react/jsx-runtime");
1940
2004
  var RecommendItem = ({
1941
2005
  icon,
@@ -1990,16 +2054,17 @@ function LoginBox({
1990
2054
  const [emailOpen, setEmailOpen] = (0, import_react11.useState)(false);
1991
2055
  const { login } = useUserInfo();
1992
2056
  const [showWallet, setShowWallet] = (0, import_react11.useState)(false);
2057
+ const intl = (0, import_react_intl6.useIntl)();
1993
2058
  const methodMap = {
1994
2059
  wallet: {
1995
2060
  icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(WalletIcon, {}),
1996
- name: "Wallet",
2061
+ name: intl.formatMessage({ id: "wallet" }),
1997
2062
  onClick: () => setShowWallet(!showWallet),
1998
2063
  type: "wallet"
1999
2064
  },
2000
2065
  email: {
2001
2066
  icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(EmailIcon, {}),
2002
- name: "Email",
2067
+ name: intl.formatMessage({ id: "email" }),
2003
2068
  onClick: () => {
2004
2069
  setEmailOpen(true);
2005
2070
  }
@@ -2109,7 +2174,7 @@ function LoginBox({
2109
2174
  );
2110
2175
  }) }),
2111
2176
  methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-login-other", children: [
2112
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-other-text", children: "Other login methods" }),
2177
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_intl6.FormattedMessage, { id: "otherLoginMethods" }) }),
2113
2178
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-method-box", children: methods.map((m) => {
2114
2179
  return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2115
2180
  "div",
@@ -2143,6 +2208,7 @@ function LoginBox({
2143
2208
  var import_react13 = require("react");
2144
2209
 
2145
2210
  // src/components/LoginPanel/index.tsx
2211
+ var import_react_intl7 = require("react-intl");
2146
2212
  var import_jsx_runtime47 = require("react/jsx-runtime");
2147
2213
  function LoginPanel({
2148
2214
  header,
@@ -2152,8 +2218,8 @@ function LoginPanel({
2152
2218
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "matchid-login-panel", children: [
2153
2219
  header ? header : /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "matchid-login-panel-header", children: [
2154
2220
  /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2155
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-title", children: "Log in / Sign up" }),
2156
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: "You can use the following methods" })
2221
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_intl7.FormattedMessage, { id: "loginTitle" }) }),
2222
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_intl7.FormattedMessage, { id: "loginTips" }) })
2157
2223
  ] }),
2158
2224
  onClose && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(CloseRoundIcon, {}) })
2159
2225
  ] }),
@@ -2209,6 +2275,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2209
2275
  }
2210
2276
 
2211
2277
  // src/components/UserPopover/index.tsx
2278
+ var import_react_intl8 = require("react-intl");
2212
2279
  var import_jsx_runtime50 = require("react/jsx-runtime");
2213
2280
  function UserContent() {
2214
2281
  const { logout, address, username } = useUserInfo();
@@ -2243,6 +2310,7 @@ function UserContent() {
2243
2310
  };
2244
2311
  const [usernameOpen, setUsernameOpen] = (0, import_react12.useState)(false);
2245
2312
  const [copied, setCopied] = useCopyClipboard();
2313
+ const intl = (0, import_react_intl8.useIntl)();
2246
2314
  return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-user-popover-content", children: [
2247
2315
  /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-user-popover-list", children: [
2248
2316
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserItem, { onClick: () => {
@@ -2251,9 +2319,11 @@ function UserContent() {
2251
2319
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserDivider, {}),
2252
2320
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserItem, { onClick: () => {
2253
2321
  setUsernameOpen(true);
2254
- }, icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || "Set a username" })
2322
+ }, icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
2323
+ id: "setUsername"
2324
+ }) })
2255
2325
  ] }),
2256
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: onLogout, loading: logouting, children: "Disconnect" }),
2326
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl8.FormattedMessage, { id: "disconnect" }) }),
2257
2327
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
2258
2328
  setUsernameOpen(false);
2259
2329
  }, onSuccess: () => {
@@ -2269,6 +2339,7 @@ function UserPopover({
2269
2339
  }
2270
2340
 
2271
2341
  // src/components/LoginButton/index.tsx
2342
+ var import_react_intl9 = require("react-intl");
2272
2343
  var import_jsx_runtime51 = require("react/jsx-runtime");
2273
2344
  function LoginButton({
2274
2345
  loginRender,
@@ -2280,6 +2351,7 @@ function LoginButton({
2280
2351
  popoverGap = 20,
2281
2352
  ...props
2282
2353
  }) {
2354
+ const intl = (0, import_react_intl9.useIntl)();
2283
2355
  const { isLogin, username } = useUserInfo();
2284
2356
  const [loginOpen, setLoginOpen] = (0, import_react13.useState)(false);
2285
2357
  if (!isLogin) {
@@ -2287,13 +2359,15 @@ function LoginButton({
2287
2359
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(LoginModal, { methods, recommendMethods, isOpen: loginOpen, onClose: () => setLoginOpen(false) }),
2288
2360
  /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
2289
2361
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UnLoginIcon_default, {}),
2290
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Login" })
2362
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl9.FormattedMessage, { id: "login" }) })
2291
2363
  ] })
2292
2364
  ] });
2293
2365
  }
2294
2366
  return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
2295
2367
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(LoginIcon_default, {}),
2296
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: username ? truncateAddress(username) : "MatchID User" })
2368
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
2369
+ id: "user"
2370
+ }) })
2297
2371
  ] }) });
2298
2372
  }
2299
2373
 
@@ -2322,6 +2396,7 @@ function InfoRoundIcon({
2322
2396
  }
2323
2397
 
2324
2398
  // src/components/UsernameModal/index.tsx
2399
+ var import_react_intl10 = require("react-intl");
2325
2400
  var import_jsx_runtime53 = require("react/jsx-runtime");
2326
2401
  var ValidItem = ({
2327
2402
  success = false,
@@ -2375,11 +2450,18 @@ function UsernameModal({
2375
2450
  setIsSubmitting(false);
2376
2451
  }
2377
2452
  };
2378
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || (username ? "Edit User Name" : "Set User Name"), children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "matchid-username-box", children: [
2379
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Field, { label: "User Name", error, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2453
+ const intl = (0, import_react_intl10.useIntl)();
2454
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2455
+ id: username ? "editUsernameTitle" : "setUsernameTitle"
2456
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "matchid-username-box", children: [
2457
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Field, { label: intl.formatMessage({
2458
+ id: "username"
2459
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2380
2460
  Input,
2381
2461
  {
2382
- placeholder: "Enter Your User Name",
2462
+ placeholder: intl.formatMessage({
2463
+ id: "usernamePlaceholder"
2464
+ }),
2383
2465
  onChange: (e) => {
2384
2466
  setVal(e.target.value);
2385
2467
  setError("");
@@ -2392,17 +2474,21 @@ function UsernameModal({
2392
2474
  ValidItem,
2393
2475
  {
2394
2476
  success: isValid,
2395
- text: "Name can be composed of numbers and letters as well as characters"
2477
+ text: intl.formatMessage({
2478
+ id: "usernameValidError"
2479
+ })
2396
2480
  }
2397
2481
  ),
2398
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ValidItem, { success: isLength, text: "No less than 2 characters" })
2482
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
2483
+ id: "usernameLengthError"
2484
+ }) })
2399
2485
  ] }),
2400
2486
  /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
2401
2487
  marginTop: "64px"
2402
- }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: "Confirm" }),
2488
+ }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_intl10.FormattedMessage, { id: "confirm" }) }),
2403
2489
  /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { style: {
2404
2490
  marginTop: "24px"
2405
- }, onClick: props.onClose, size: "lg", block: true, children: "Next Time" })
2491
+ }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_intl10.FormattedMessage, { id: "nextTime" }) })
2406
2492
  ] }) });
2407
2493
  }
2408
2494
 
@@ -2431,6 +2517,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
2431
2517
  var walletSigningImage = "data:image/png;base64,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";
2432
2518
 
2433
2519
  // src/components/SOLModal/index.tsx
2520
+ var import_react_intl11 = require("react-intl");
2434
2521
  var import_jsx_runtime54 = require("react/jsx-runtime");
2435
2522
  function WalletContent({
2436
2523
  onSuccess,
@@ -2628,7 +2715,12 @@ function SOLModal({
2628
2715
  onSuccess,
2629
2716
  ...props
2630
2717
  }) {
2631
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ModalWithHeader, { ...props, title: props.title || firstUpperCase(type + " SOL Wallet"), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
2718
+ const intl = (0, import_react_intl11.useIntl)();
2719
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
2720
+ id: type == "bind" ? "bindWith" : "loginWith"
2721
+ }, {
2722
+ name: "SOL"
2723
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
2632
2724
  }
2633
2725
 
2634
2726
  // src/context/BusinessProvider.tsx
@@ -2811,7 +2903,8 @@ function useInit({
2811
2903
  theme,
2812
2904
  appid,
2813
2905
  events,
2814
- endpoints
2906
+ endpoints,
2907
+ locale
2815
2908
  }) {
2816
2909
  const {
2817
2910
  setAppid,
@@ -2820,7 +2913,9 @@ function useInit({
2820
2913
  setMid,
2821
2914
  token,
2822
2915
  setOverview,
2823
- setTheme
2916
+ setTheme,
2917
+ setLocale,
2918
+ locale: realLocale
2824
2919
  } = useLocalStore_default();
2825
2920
  const overviewLoadingRef = (0, import_react17.useRef)(false);
2826
2921
  const searchParams = new URLSearchParams(window.location.search);
@@ -2835,6 +2930,9 @@ function useInit({
2835
2930
  (0, import_react17.useEffect)(() => {
2836
2931
  setEndpoints(realEndpoints);
2837
2932
  }, [realEndpoints]);
2933
+ (0, import_react17.useEffect)(() => {
2934
+ setLocale(locale || "en");
2935
+ }, [locale]);
2838
2936
  (0, import_react17.useEffect)(() => {
2839
2937
  if (matchToken) {
2840
2938
  const tokenData = JSON.parse(atob(matchToken));
@@ -2907,26 +3005,429 @@ function useInit({
2907
3005
  return {
2908
3006
  loadOverview,
2909
3007
  login,
2910
- endpoints: realEndpoints
3008
+ endpoints: realEndpoints,
3009
+ locale: realLocale
2911
3010
  };
2912
3011
  }
2913
3012
 
2914
3013
  // src/MatchContext.tsx
2915
3014
  var import_react_query = require("@tanstack/react-query");
3015
+ var import_react_intl12 = require("react-intl");
3016
+
3017
+ // src/i18n/en.json
3018
+ var en_default = {
3019
+ email: "Email",
3020
+ emailAddress: "Email Address",
3021
+ emailAddressPlaceholder: "Enter Your Email Address",
3022
+ continue: "Continue",
3023
+ send: "Send",
3024
+ resend: "Resend",
3025
+ sendCodeErrorTip: "Failed to send code: {error}",
3026
+ sendEmailTips: "We have sent a verification code to your email",
3027
+ verificationCode: "Verification Code",
3028
+ codePlaceholder: "Enter the code",
3029
+ wallet: "Wallet",
3030
+ otherLoginMethods: "Other login methods",
3031
+ login: "Login",
3032
+ user: "User",
3033
+ loginTitle: "Log in / Sign up",
3034
+ loginTips: "You can use the following methods",
3035
+ passwordMinError: "Password must be at least {length} characters",
3036
+ passwordMatchError: "The password you entered twice do not match",
3037
+ passwordTitle: "Set Password",
3038
+ passwordTips: "Please set the wallet password that will be used to recover the wallet",
3039
+ password: "Password",
3040
+ passwordPlaceholder: "Enter Your Password",
3041
+ rePassword: "Re Password",
3042
+ rePasswordPlaceholder: "Re Enter the Password",
3043
+ recoverTitle: "Recover Wallet",
3044
+ recoverTips: "Please enter your password to recover your wallet",
3045
+ bindWith: "Bind with {name} Wallet",
3046
+ loginWith: "Login with {name} Wallet",
3047
+ editUsernameTitle: "Edit User Name",
3048
+ setUsernameTitle: "Set User Name",
3049
+ username: "User Name",
3050
+ usernamePlaceholder: "Enter Your User Name",
3051
+ usernameValidError: "Name can be composed of numbers and letters as well as characters",
3052
+ usernameLengthError: "No less than 2 characters",
3053
+ confirm: "Confirm",
3054
+ nextTime: "Next time",
3055
+ setUsername: "Set a User Name",
3056
+ disconnect: "Disconnect"
3057
+ };
3058
+
3059
+ // src/i18n/zh.json
3060
+ var zh_default = {
3061
+ email: "\u90AE\u7BB1",
3062
+ emailAddress: "\u90AE\u7BB1\u5730\u5740",
3063
+ emailAddressPlaceholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u90AE\u7BB1\u5730\u5740",
3064
+ continue: "\u7EE7\u7EED",
3065
+ send: "\u53D1\u9001",
3066
+ resend: "\u91CD\u65B0\u53D1\u9001",
3067
+ sendCodeErrorTip: "\u53D1\u9001\u9A8C\u8BC1\u7801\u5931\u8D25\uFF1A{error}",
3068
+ sendEmailTips: "\u6211\u4EEC\u5DF2\u5411\u60A8\u7684\u90AE\u7BB1\u53D1\u9001\u9A8C\u8BC1\u7801",
3069
+ verificationCode: "\u9A8C\u8BC1\u7801",
3070
+ codePlaceholder: "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801",
3071
+ wallet: "\u94B1\u5305",
3072
+ otherLoginMethods: "\u5176\u4ED6\u767B\u5F55\u65B9\u5F0F",
3073
+ login: "\u767B\u5F55",
3074
+ user: "\u7528\u6237",
3075
+ loginTitle: "\u767B\u5F55 / \u6CE8\u518C",
3076
+ loginTips: "\u60A8\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u65B9\u5F0F\u767B\u5F55",
3077
+ passwordMinError: "\u5BC6\u7801\u5FC5\u987B\u81F3\u5C11\u5305\u542B {length} \u4E2A\u5B57\u7B26",
3078
+ passwordMatchError: "\u4E24\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4",
3079
+ passwordTitle: "\u8BBE\u7F6E\u5BC6\u7801",
3080
+ passwordTips: "\u8BF7\u8BBE\u7F6E\u7528\u4E8E\u6062\u590D\u94B1\u5305\u7684\u94B1\u5305\u5BC6\u7801",
3081
+ password: "\u5BC6\u7801",
3082
+ passwordPlaceholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u5BC6\u7801",
3083
+ rePassword: "\u786E\u8BA4\u5BC6\u7801",
3084
+ rePasswordPlaceholder: "\u8BF7\u518D\u6B21\u8F93\u5165\u5BC6\u7801",
3085
+ recoverTitle: "\u6062\u590D\u94B1\u5305",
3086
+ recoverTips: "\u8BF7\u8F93\u5165\u60A8\u7684\u5BC6\u7801\u4EE5\u6062\u590D\u94B1\u5305",
3087
+ bindWith: "\u7ED1\u5B9A {name} \u94B1\u5305",
3088
+ loginWith: "\u4F7F\u7528 {name} \u94B1\u5305\u767B\u5F55",
3089
+ editUsernameTitle: "\u4FEE\u6539\u7528\u6237\u540D",
3090
+ setUsernameTitle: "\u8BBE\u7F6E\u7528\u6237\u540D",
3091
+ username: "\u7528\u6237\u540D",
3092
+ usernamePlaceholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u7528\u6237\u540D",
3093
+ usernameValidError: "\u7528\u6237\u540D\u53EF\u4EE5\u7531\u6570\u5B57\u3001\u5B57\u6BCD\u548C\u5B57\u7B26\u7EC4\u6210",
3094
+ usernameLengthError: "\u7528\u6237\u540D\u4E0D\u5F97\u5C11\u4E8E 2 \u4E2A\u5B57\u7B26",
3095
+ confirm: "\u786E\u8BA4",
3096
+ nextTime: "\u4E0B\u6B21\u518D\u8BF4",
3097
+ setUsername: "\u8BBE\u7F6E\u7528\u6237\u540D",
3098
+ disconnect: "\u65AD\u5F00\u8FDE\u63A5"
3099
+ };
3100
+
3101
+ // src/i18n/tw.json
3102
+ var tw_default = {
3103
+ email: "\u90F5\u7BB1",
3104
+ emailAddress: "\u90F5\u7BB1\u5730\u5740",
3105
+ emailAddressPlaceholder: "\u8ACB\u8F38\u5165\u60A8\u7684\u90F5\u7BB1\u5730\u5740",
3106
+ continue: "\u7E7C\u7E8C",
3107
+ send: "\u767C\u9001",
3108
+ resend: "\u91CD\u65B0\u767C\u9001",
3109
+ sendCodeErrorTip: "\u767C\u9001\u9A57\u8B49\u78BC\u5931\u6557\uFF1A{error}",
3110
+ sendEmailTips: "\u6211\u5011\u5DF2\u5411\u60A8\u7684\u90F5\u7BB1\u767C\u9001\u9A57\u8B49\u78BC",
3111
+ verificationCode: "\u9A57\u8B49\u78BC",
3112
+ codePlaceholder: "\u8ACB\u8F38\u5165\u9A57\u8B49\u78BC",
3113
+ wallet: "\u9322\u5305",
3114
+ otherLoginMethods: "\u5176\u4ED6\u767B\u5165\u65B9\u5F0F",
3115
+ login: "\u767B\u5165",
3116
+ user: "\u7528\u6236",
3117
+ loginTitle: "\u767B\u5165 / \u8A3B\u518A",
3118
+ loginTips: "\u60A8\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u65B9\u5F0F\u767B\u5165",
3119
+ passwordMinError: "\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u5305\u542B {length} \u500B\u5B57\u7B26",
3120
+ passwordMatchError: "\u5169\u6B21\u8F38\u5165\u7684\u5BC6\u78BC\u4E0D\u4E00\u81F4",
3121
+ passwordTitle: "\u8A2D\u7F6E\u5BC6\u78BC",
3122
+ passwordTips: "\u8ACB\u8A2D\u7F6E\u7528\u65BC\u6062\u5FA9\u9322\u5305\u7684\u5BC6\u78BC",
3123
+ password: "\u5BC6\u78BC",
3124
+ passwordPlaceholder: "\u8ACB\u8F38\u5165\u60A8\u7684\u5BC6\u78BC",
3125
+ rePassword: "\u78BA\u8A8D\u5BC6\u78BC",
3126
+ rePasswordPlaceholder: "\u8ACB\u518D\u6B21\u8F38\u5165\u5BC6\u78BC",
3127
+ recoverTitle: "\u6062\u5FA9\u9322\u5305",
3128
+ recoverTips: "\u8ACB\u8F38\u5165\u60A8\u7684\u5BC6\u78BC\u4EE5\u6062\u5FA9\u9322\u5305",
3129
+ bindWith: "\u7D81\u5B9A {name} \u9322\u5305",
3130
+ loginWith: "\u4F7F\u7528 {name} \u9322\u5305\u767B\u5165",
3131
+ editUsernameTitle: "\u4FEE\u6539\u7528\u6236\u540D",
3132
+ setUsernameTitle: "\u8A2D\u7F6E\u7528\u6236\u540D",
3133
+ username: "\u7528\u6236\u540D",
3134
+ usernamePlaceholder: "\u8ACB\u8F38\u5165\u60A8\u7684\u7528\u6236\u540D",
3135
+ usernameValidError: "\u7528\u6236\u540D\u53EF\u4EE5\u7531\u6578\u5B57\u3001\u5B57\u6BCD\u548C\u5B57\u7B26\u7D44\u6210",
3136
+ usernameLengthError: "\u7528\u6236\u540D\u4E0D\u5F97\u5C11\u65BC 2 \u500B\u5B57\u7B26",
3137
+ confirm: "\u78BA\u8A8D",
3138
+ nextTime: "\u4E0B\u6B21\u518D\u8AAA",
3139
+ setUsername: "\u8A2D\u7F6E\u7528\u6236\u540D",
3140
+ disconnect: "\u65B7\u958B\u9023\u63A5"
3141
+ };
3142
+
3143
+ // src/i18n/fr.json
3144
+ var fr_default = {
3145
+ email: "Email",
3146
+ emailAddress: "Adresse Email",
3147
+ emailAddressPlaceholder: "Entrez votre adresse email",
3148
+ continue: "Continuer",
3149
+ send: "Envoyer",
3150
+ resend: "Renvoyer",
3151
+ sendCodeErrorTip: "\xC9chec de l'envoi du code : {error}",
3152
+ sendEmailTips: "Un code de v\xE9rification a \xE9t\xE9 envoy\xE9 \xE0 votre email",
3153
+ verificationCode: "Code de v\xE9rification",
3154
+ codePlaceholder: "Entrez le code",
3155
+ wallet: "Portefeuille",
3156
+ otherLoginMethods: "Autres m\xE9thodes de connexion",
3157
+ login: "Connexion",
3158
+ user: "Utilisateur",
3159
+ loginTitle: "Connexion / Inscription",
3160
+ loginTips: "Vous pouvez utiliser les m\xE9thodes suivantes",
3161
+ passwordMinError: "Le mot de passe doit contenir au moins {length} caract\xE8res",
3162
+ passwordMatchError: "Les mots de passe ne correspondent pas",
3163
+ passwordTitle: "D\xE9finir un mot de passe",
3164
+ passwordTips: "Veuillez d\xE9finir le mot de passe pour restaurer le portefeuille",
3165
+ password: "Mot de passe",
3166
+ passwordPlaceholder: "Entrez votre mot de passe",
3167
+ rePassword: "Confirmer le mot de passe",
3168
+ rePasswordPlaceholder: "Ressaisissez le mot de passe",
3169
+ recoverTitle: "Restaurer le portefeuille",
3170
+ recoverTips: "Entrez votre mot de passe pour restaurer le portefeuille",
3171
+ bindWith: "Lier avec le portefeuille {name}",
3172
+ loginWith: "Connexion avec le portefeuille {name}",
3173
+ editUsernameTitle: "Modifier le nom d'utilisateur",
3174
+ setUsernameTitle: "D\xE9finir un nom d'utilisateur",
3175
+ username: "Nom d'utilisateur",
3176
+ usernamePlaceholder: "Entrez votre nom d'utilisateur",
3177
+ usernameValidError: "Le nom peut contenir des lettres, chiffres et caract\xE8res",
3178
+ usernameLengthError: "Le nom doit comporter au moins 2 caract\xE8res",
3179
+ confirm: "Confirmer",
3180
+ nextTime: "La prochaine fois",
3181
+ setUsername: "D\xE9finir un nom d'utilisateur",
3182
+ disconnect: "D\xE9connecter"
3183
+ };
3184
+
3185
+ // src/i18n/ja.json
3186
+ var ja_default = {
3187
+ email: "\u30E1\u30FC\u30EB",
3188
+ emailAddress: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",
3189
+ emailAddressPlaceholder: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
3190
+ continue: "\u7D9A\u3051\u308B",
3191
+ send: "\u9001\u4FE1",
3192
+ resend: "\u518D\u9001\u4FE1",
3193
+ sendCodeErrorTip: "\u30B3\u30FC\u30C9\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {error}",
3194
+ sendEmailTips: "\u78BA\u8A8D\u30B3\u30FC\u30C9\u3092\u30E1\u30FC\u30EB\u306B\u9001\u4FE1\u3057\u307E\u3057\u305F",
3195
+ verificationCode: "\u78BA\u8A8D\u30B3\u30FC\u30C9",
3196
+ codePlaceholder: "\u30B3\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
3197
+ wallet: "\u30A6\u30A9\u30EC\u30C3\u30C8",
3198
+ otherLoginMethods: "\u305D\u306E\u4ED6\u306E\u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5",
3199
+ login: "\u30ED\u30B0\u30A4\u30F3",
3200
+ user: "\u30E6\u30FC\u30B6\u30FC",
3201
+ loginTitle: "\u30ED\u30B0\u30A4\u30F3 / \u767B\u9332",
3202
+ loginTips: "\u4EE5\u4E0B\u306E\u65B9\u6CD5\u3067\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u307E\u3059",
3203
+ passwordMinError: "\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u6700\u4F4E {length} \u6587\u5B57\u5FC5\u8981\u3067\u3059",
3204
+ passwordMatchError: "\u5165\u529B\u3055\u308C\u305F\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",
3205
+ passwordTitle: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8A2D\u5B9A",
3206
+ passwordTips: "\u30A6\u30A9\u30EC\u30C3\u30C8\u5FA9\u5143\u7528\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
3207
+ password: "\u30D1\u30B9\u30EF\u30FC\u30C9",
3208
+ passwordPlaceholder: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
3209
+ rePassword: "\u30D1\u30B9\u30EF\u30FC\u30C9\u78BA\u8A8D",
3210
+ rePasswordPlaceholder: "\u518D\u5EA6\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
3211
+ recoverTitle: "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u5FA9\u5143",
3212
+ recoverTips: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u5FA9\u5143\u3057\u3066\u304F\u3060\u3055\u3044",
3213
+ bindWith: "{name}\u30A6\u30A9\u30EC\u30C3\u30C8\u3068\u9023\u643A",
3214
+ loginWith: "{name}\u30A6\u30A9\u30EC\u30C3\u30C8\u3067\u30ED\u30B0\u30A4\u30F3",
3215
+ editUsernameTitle: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u7DE8\u96C6",
3216
+ setUsernameTitle: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u8A2D\u5B9A",
3217
+ username: "\u30E6\u30FC\u30B6\u30FC\u540D",
3218
+ usernamePlaceholder: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
3219
+ usernameValidError: "\u540D\u524D\u306F\u6587\u5B57\u3001\u6570\u5B57\u3001\u8A18\u53F7\u3067\u69CB\u6210\u3067\u304D\u307E\u3059",
3220
+ usernameLengthError: "2\u6587\u5B57\u4EE5\u4E0A\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
3221
+ confirm: "\u78BA\u8A8D",
3222
+ nextTime: "\u6B21\u56DE",
3223
+ setUsername: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u8A2D\u5B9A",
3224
+ disconnect: "\u5207\u65AD"
3225
+ };
3226
+
3227
+ // src/i18n/ko.json
3228
+ var ko_default = {
3229
+ email: "\uC774\uBA54\uC77C",
3230
+ emailAddress: "\uC774\uBA54\uC77C \uC8FC\uC18C",
3231
+ emailAddressPlaceholder: "\uC774\uBA54\uC77C \uC8FC\uC18C\uB97C \uC785\uB825\uD558\uC138\uC694",
3232
+ continue: "\uACC4\uC18D\uD558\uAE30",
3233
+ send: "\uBCF4\uB0B4\uAE30",
3234
+ resend: "\uC7AC\uC804\uC1A1",
3235
+ sendCodeErrorTip: "\uCF54\uB4DC \uC804\uC1A1 \uC2E4\uD328: {error}",
3236
+ sendEmailTips: "\uC778\uC99D \uCF54\uB4DC\uB97C \uC774\uBA54\uC77C\uB85C \uBCF4\uB0C8\uC2B5\uB2C8\uB2E4",
3237
+ verificationCode: "\uC778\uC99D \uCF54\uB4DC",
3238
+ codePlaceholder: "\uCF54\uB4DC\uB97C \uC785\uB825\uD558\uC138\uC694",
3239
+ wallet: "\uC9C0\uAC11",
3240
+ otherLoginMethods: "\uB2E4\uB978 \uB85C\uADF8\uC778 \uBC29\uBC95",
3241
+ login: "\uB85C\uADF8\uC778",
3242
+ user: "\uC0AC\uC6A9\uC790",
3243
+ loginTitle: "\uB85C\uADF8\uC778 / \uD68C\uC6D0\uAC00\uC785",
3244
+ loginTips: "\uB2E4\uC74C \uBC29\uBC95\uC73C\uB85C \uB85C\uADF8\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4",
3245
+ passwordMinError: "\uBE44\uBC00\uBC88\uD638\uB294 \uCD5C\uC18C {length}\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4",
3246
+ passwordMatchError: "\uB450 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
3247
+ passwordTitle: "\uBE44\uBC00\uBC88\uD638 \uC124\uC815",
3248
+ passwordTips: "\uC9C0\uAC11 \uBCF5\uAD6C\uC5D0 \uC0AC\uC6A9\uD560 \uBE44\uBC00\uBC88\uD638\uB97C \uC124\uC815\uD558\uC138\uC694",
3249
+ password: "\uBE44\uBC00\uBC88\uD638",
3250
+ passwordPlaceholder: "\uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694",
3251
+ rePassword: "\uBE44\uBC00\uBC88\uD638 \uD655\uC778",
3252
+ rePasswordPlaceholder: "\uBE44\uBC00\uBC88\uD638\uB97C \uB2E4\uC2DC \uC785\uB825\uD558\uC138\uC694",
3253
+ recoverTitle: "\uC9C0\uAC11 \uBCF5\uAD6C",
3254
+ recoverTips: "\uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD574 \uC9C0\uAC11\uC744 \uBCF5\uAD6C\uD558\uC138\uC694",
3255
+ bindWith: "{name} \uC9C0\uAC11\uACFC \uC5F0\uACB0",
3256
+ loginWith: "{name} \uC9C0\uAC11\uC73C\uB85C \uB85C\uADF8\uC778",
3257
+ editUsernameTitle: "\uC0AC\uC6A9\uC790 \uC774\uB984 \uC218\uC815",
3258
+ setUsernameTitle: "\uC0AC\uC6A9\uC790 \uC774\uB984 \uC124\uC815",
3259
+ username: "\uC0AC\uC6A9\uC790 \uC774\uB984",
3260
+ usernamePlaceholder: "\uC0AC\uC6A9\uC790 \uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694",
3261
+ usernameValidError: "\uC774\uB984\uC740 \uBB38\uC790, \uC22B\uC790 \uBC0F \uD2B9\uC218\uBB38\uC790\uB85C \uAD6C\uC131\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4",
3262
+ usernameLengthError: "\uC774\uB984\uC740 \uCD5C\uC18C 2\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4",
3263
+ confirm: "\uD655\uC778",
3264
+ nextTime: "\uB2E4\uC74C\uC5D0",
3265
+ setUsername: "\uC0AC\uC6A9\uC790 \uC774\uB984 \uC124\uC815",
3266
+ disconnect: "\uC5F0\uACB0 \uB04A\uAE30"
3267
+ };
3268
+
3269
+ // src/i18n/vi.json
3270
+ var vi_default = {
3271
+ email: "Email",
3272
+ emailAddress: "\u0110\u1ECBa ch\u1EC9 Email",
3273
+ emailAddressPlaceholder: "Nh\u1EADp \u0111\u1ECBa ch\u1EC9 Email c\u1EE7a b\u1EA1n",
3274
+ continue: "Ti\u1EBFp t\u1EE5c",
3275
+ send: "G\u1EEDi",
3276
+ resend: "G\u1EEDi l\u1EA1i",
3277
+ sendCodeErrorTip: "G\u1EEDi m\xE3 th\u1EA5t b\u1EA1i: {error}",
3278
+ sendEmailTips: "Ch\xFAng t\xF4i \u0111\xE3 g\u1EEDi m\xE3 x\xE1c minh \u0111\u1EBFn email c\u1EE7a b\u1EA1n",
3279
+ verificationCode: "M\xE3 x\xE1c minh",
3280
+ codePlaceholder: "Nh\u1EADp m\xE3",
3281
+ wallet: "V\xED",
3282
+ otherLoginMethods: "Ph\u01B0\u01A1ng th\u1EE9c \u0111\u0103ng nh\u1EADp kh\xE1c",
3283
+ login: "\u0110\u0103ng nh\u1EADp",
3284
+ user: "Ng\u01B0\u1EDDi d\xF9ng",
3285
+ loginTitle: "\u0110\u0103ng nh\u1EADp / \u0110\u0103ng k\xFD",
3286
+ loginTips: "B\u1EA1n c\xF3 th\u1EC3 s\u1EED d\u1EE5ng c\xE1c ph\u01B0\u01A1ng th\u1EE9c sau",
3287
+ passwordMinError: "M\u1EADt kh\u1EA9u ph\u1EA3i c\xF3 \xEDt nh\u1EA5t {length} k\xFD t\u1EF1",
3288
+ passwordMatchError: "Hai m\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp",
3289
+ passwordTitle: "T\u1EA1o m\u1EADt kh\u1EA9u",
3290
+ passwordTips: "Vui l\xF2ng \u0111\u1EB7t m\u1EADt kh\u1EA9u \u0111\u1EC3 kh\xF4i ph\u1EE5c v\xED",
3291
+ password: "M\u1EADt kh\u1EA9u",
3292
+ passwordPlaceholder: "Nh\u1EADp m\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n",
3293
+ rePassword: "X\xE1c nh\u1EADn m\u1EADt kh\u1EA9u",
3294
+ rePasswordPlaceholder: "Nh\u1EADp l\u1EA1i m\u1EADt kh\u1EA9u",
3295
+ recoverTitle: "Kh\xF4i ph\u1EE5c v\xED",
3296
+ recoverTips: "Nh\u1EADp m\u1EADt kh\u1EA9u \u0111\u1EC3 kh\xF4i ph\u1EE5c v\xED",
3297
+ bindWith: "Li\xEAn k\u1EBFt v\u1EDBi v\xED {name}",
3298
+ loginWith: "\u0110\u0103ng nh\u1EADp b\u1EB1ng v\xED {name}",
3299
+ editUsernameTitle: "Ch\u1EC9nh s\u1EEDa t\xEAn ng\u01B0\u1EDDi d\xF9ng",
3300
+ setUsernameTitle: "\u0110\u1EB7t t\xEAn ng\u01B0\u1EDDi d\xF9ng",
3301
+ username: "T\xEAn ng\u01B0\u1EDDi d\xF9ng",
3302
+ usernamePlaceholder: "Nh\u1EADp t\xEAn ng\u01B0\u1EDDi d\xF9ng c\u1EE7a b\u1EA1n",
3303
+ usernameValidError: "T\xEAn ch\u1EC9 \u0111\u01B0\u1EE3c ch\u1EE9a ch\u1EEF, s\u1ED1 v\xE0 k\xFD t\u1EF1",
3304
+ usernameLengthError: "T\xEAn ph\u1EA3i d\xE0i \xEDt nh\u1EA5t 2 k\xFD t\u1EF1",
3305
+ confirm: "X\xE1c nh\u1EADn",
3306
+ nextTime: "L\u1EA7n sau",
3307
+ setUsername: "\u0110\u1EB7t t\xEAn ng\u01B0\u1EDDi d\xF9ng",
3308
+ disconnect: "Ng\u1EAFt k\u1EBFt n\u1ED1i"
3309
+ };
3310
+
3311
+ // src/i18n/es.json
3312
+ var es_default = {
3313
+ email: "Correo",
3314
+ emailAddress: "Direcci\xF3n de correo",
3315
+ emailAddressPlaceholder: "Introduce tu direcci\xF3n de correo",
3316
+ continue: "Continuar",
3317
+ send: "Enviar",
3318
+ resend: "Reenviar",
3319
+ sendCodeErrorTip: "Error al enviar el c\xF3digo: {error}",
3320
+ sendEmailTips: "Hemos enviado un c\xF3digo de verificaci\xF3n a tu correo",
3321
+ verificationCode: "C\xF3digo de verificaci\xF3n",
3322
+ codePlaceholder: "Introduce el c\xF3digo",
3323
+ wallet: "Cartera",
3324
+ otherLoginMethods: "Otros m\xE9todos de inicio de sesi\xF3n",
3325
+ login: "Iniciar sesi\xF3n",
3326
+ user: "Usuario",
3327
+ loginTitle: "Iniciar sesi\xF3n / Registrarse",
3328
+ loginTips: "Puedes usar los siguientes m\xE9todos",
3329
+ passwordMinError: "La contrase\xF1a debe tener al menos {length} caracteres",
3330
+ passwordMatchError: "Las contrase\xF1as no coinciden",
3331
+ passwordTitle: "Establecer contrase\xF1a",
3332
+ passwordTips: "Configura la contrase\xF1a para recuperar tu cartera",
3333
+ password: "Contrase\xF1a",
3334
+ passwordPlaceholder: "Introduce tu contrase\xF1a",
3335
+ rePassword: "Confirmar contrase\xF1a",
3336
+ rePasswordPlaceholder: "Repite la contrase\xF1a",
3337
+ recoverTitle: "Recuperar cartera",
3338
+ recoverTips: "Introduce tu contrase\xF1a para recuperar la cartera",
3339
+ bindWith: "Vincular con la cartera {name}",
3340
+ loginWith: "Iniciar sesi\xF3n con la cartera {name}",
3341
+ editUsernameTitle: "Editar nombre de usuario",
3342
+ setUsernameTitle: "Establecer nombre de usuario",
3343
+ username: "Nombre de usuario",
3344
+ usernamePlaceholder: "Introduce tu nombre de usuario",
3345
+ usernameValidError: "El nombre puede contener letras, n\xFAmeros y caracteres",
3346
+ usernameLengthError: "El nombre debe tener al menos 2 caracteres",
3347
+ confirm: "Confirmar",
3348
+ nextTime: "La pr\xF3xima vez",
3349
+ setUsername: "Establecer nombre de usuario",
3350
+ disconnect: "Desconectar"
3351
+ };
3352
+
3353
+ // src/i18n/pt.json
3354
+ var pt_default = {
3355
+ email: "Email",
3356
+ emailAddress: "Endere\xE7o de Email",
3357
+ emailAddressPlaceholder: "Digite seu endere\xE7o de email",
3358
+ continue: "Continuar",
3359
+ send: "Enviar",
3360
+ resend: "Reenviar",
3361
+ sendCodeErrorTip: "Falha ao enviar c\xF3digo: {error}",
3362
+ sendEmailTips: "Enviamos um c\xF3digo de verifica\xE7\xE3o para seu email",
3363
+ verificationCode: "C\xF3digo de Verifica\xE7\xE3o",
3364
+ codePlaceholder: "Digite o c\xF3digo",
3365
+ wallet: "Carteira",
3366
+ otherLoginMethods: "Outros m\xE9todos de login",
3367
+ login: "Entrar",
3368
+ user: "Usu\xE1rio",
3369
+ loginTitle: "Entrar / Registrar",
3370
+ loginTips: "Voc\xEA pode usar os m\xE9todos abaixo",
3371
+ passwordMinError: "A senha deve ter pelo menos {length} caracteres",
3372
+ passwordMatchError: "As senhas digitadas n\xE3o coincidem",
3373
+ passwordTitle: "Definir Senha",
3374
+ passwordTips: "Configure uma senha para recuperar sua carteira",
3375
+ password: "Senha",
3376
+ passwordPlaceholder: "Digite sua senha",
3377
+ rePassword: "Confirmar Senha",
3378
+ rePasswordPlaceholder: "Digite a senha novamente",
3379
+ recoverTitle: "Recuperar Carteira",
3380
+ recoverTips: "Digite sua senha para recuperar a carteira",
3381
+ bindWith: "Vincular com Carteira {name}",
3382
+ loginWith: "Entrar com Carteira {name}",
3383
+ editUsernameTitle: "Editar Nome de Usu\xE1rio",
3384
+ setUsernameTitle: "Definir Nome de Usu\xE1rio",
3385
+ username: "Nome de Usu\xE1rio",
3386
+ usernamePlaceholder: "Digite seu nome de usu\xE1rio",
3387
+ usernameValidError: "O nome pode conter letras, n\xFAmeros e caracteres",
3388
+ usernameLengthError: "Deve ter no m\xEDnimo 2 caracteres",
3389
+ confirm: "Confirmar",
3390
+ nextTime: "Pr\xF3xima vez",
3391
+ setUsername: "Definir Nome de Usu\xE1rio",
3392
+ disconnect: "Desconectar"
3393
+ };
3394
+
3395
+ // src/i18n/index.ts
3396
+ var messages = {
3397
+ en: en_default,
3398
+ zh: zh_default,
3399
+ tw: tw_default,
3400
+ fr: fr_default,
3401
+ ja: ja_default,
3402
+ ko: ko_default,
3403
+ vi: vi_default,
3404
+ es: es_default,
3405
+ pt: pt_default
3406
+ };
3407
+
3408
+ // src/MatchContext.tsx
2916
3409
  var import_jsx_runtime57 = require("react/jsx-runtime");
2917
3410
  var queryClient = new import_react_query.QueryClient();
2918
3411
  var MatchContext = (0, import_react18.createContext)(void 0);
2919
- var MatchProvider = ({ children, appid, events, theme = "light", endpoints }) => {
2920
- const { loadOverview, login, endpoints: realEndPoints } = useInit({
3412
+ var MatchProvider = ({ children, appid, events, theme = "light", endpoints, locale }) => {
3413
+ const { loadOverview, login, endpoints: realEndPoints, locale: realLocale } = useInit({
2921
3414
  theme,
2922
3415
  appid,
2923
3416
  events,
2924
- endpoints
3417
+ endpoints,
3418
+ locale
3419
+ });
3420
+ matchlog_default.log("config", {
3421
+ appid,
3422
+ theme,
3423
+ endpoints,
3424
+ locale,
3425
+ realLocale
2925
3426
  });
2926
3427
  useWalletInit({
2927
3428
  refreshOverview: loadOverview
2928
3429
  });
2929
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_query.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3430
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_intl12.IntlProvider, { locale: realLocale, messages: messages[realLocale], children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_query.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2930
3431
  MatchContext.Provider,
2931
3432
  {
2932
3433
  value: {
@@ -2934,11 +3435,12 @@ var MatchProvider = ({ children, appid, events, theme = "light", endpoints }) =>
2934
3435
  endpoints: realEndPoints,
2935
3436
  events,
2936
3437
  login,
2937
- theme
3438
+ theme,
3439
+ locale: realLocale
2938
3440
  },
2939
3441
  children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(context_default, { children })
2940
3442
  }
2941
- ) });
3443
+ ) }) });
2942
3444
  };
2943
3445
  var useMatch = () => {
2944
3446
  const context = (0, import_react18.useContext)(MatchContext);