@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.css +16 -6
- package/dist/index.d.mts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +570 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +570 -68
- package/dist/index.mjs.map +1 -1
- package/example/src/App.tsx +33 -18
- package/example/src/components/Login/index.tsx +1 -1
- package/example/src/config/index.ts +3 -0
- package/example/src/pages/User.tsx +2 -2
- package/package.json +2 -1
- package/readme.md +29 -3
package/dist/index.mjs
CHANGED
|
@@ -694,18 +694,24 @@ function Input({
|
|
|
694
694
|
...props
|
|
695
695
|
}) {
|
|
696
696
|
const [inputType, setInputType] = useState(type);
|
|
697
|
-
return /* @__PURE__ */ jsxs24(
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
697
|
+
return /* @__PURE__ */ jsxs24(
|
|
698
|
+
"div",
|
|
699
|
+
{
|
|
700
|
+
className: `matchid-input-box ${props.value.length > 0 ? "matchid-input-has-content" : ""} ${className}`,
|
|
701
|
+
children: [
|
|
702
|
+
/* @__PURE__ */ jsx37("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
|
|
703
|
+
props.value.length > 0 && /* @__PURE__ */ jsx37("div", { className: "matchid-input-delete-icon", onClick: (e) => {
|
|
704
|
+
if (onChange) {
|
|
705
|
+
onChange({ target: { value: "" } });
|
|
706
|
+
}
|
|
707
|
+
}, children: /* @__PURE__ */ jsx37(DeleteRoundIcon, { className: "", color: "var(--matchid-input-delete-icon-color)" }) }),
|
|
708
|
+
type === "password" && /* @__PURE__ */ jsx37("div", { className: "matchid-input-eye-icon", onClick: () => {
|
|
709
|
+
setInputType(inputType === "password" ? "text" : "password");
|
|
710
|
+
}, children: inputType === "password" ? /* @__PURE__ */ jsx37(CloseEyeIcon, {}) : /* @__PURE__ */ jsx37(OpenEyeIcon, {}) }),
|
|
711
|
+
after
|
|
712
|
+
]
|
|
713
|
+
}
|
|
714
|
+
);
|
|
709
715
|
}
|
|
710
716
|
|
|
711
717
|
// src/components/Field/index.tsx
|
|
@@ -800,7 +806,9 @@ var persistedState = persist(
|
|
|
800
806
|
setTheme: (theme) => set({ theme }),
|
|
801
807
|
setEndpoints: (endpoints) => set({ endpoints }),
|
|
802
808
|
address: "",
|
|
803
|
-
setAddress: (address) => set({ address })
|
|
809
|
+
setAddress: (address) => set({ address }),
|
|
810
|
+
locale: "en",
|
|
811
|
+
setLocale: (locale) => set({ locale })
|
|
804
812
|
}),
|
|
805
813
|
{ name: "match-local" }
|
|
806
814
|
);
|
|
@@ -849,6 +857,19 @@ var getAppid = () => {
|
|
|
849
857
|
return "";
|
|
850
858
|
}
|
|
851
859
|
};
|
|
860
|
+
var getLocale = () => {
|
|
861
|
+
try {
|
|
862
|
+
const store = localStore.getState();
|
|
863
|
+
const locale = store?.locale;
|
|
864
|
+
if (locale) {
|
|
865
|
+
return locale;
|
|
866
|
+
} else {
|
|
867
|
+
return "en";
|
|
868
|
+
}
|
|
869
|
+
} catch (e) {
|
|
870
|
+
return "en";
|
|
871
|
+
}
|
|
872
|
+
};
|
|
852
873
|
var getToken = () => {
|
|
853
874
|
try {
|
|
854
875
|
const store = localStore.getState();
|
|
@@ -897,6 +918,7 @@ var request = async (config) => {
|
|
|
897
918
|
if (token) {
|
|
898
919
|
instance.defaults.headers.common["Authorization"] = token;
|
|
899
920
|
}
|
|
921
|
+
instance.defaults.headers.common["Accept-Language"] = getLocale();
|
|
900
922
|
const { data } = await instance.request(config);
|
|
901
923
|
matchlog_default.log("api", data);
|
|
902
924
|
if (data.code == 401001) {
|
|
@@ -1117,9 +1139,6 @@ function truncateAddress(address) {
|
|
|
1117
1139
|
const end = address.slice(-2);
|
|
1118
1140
|
return `${start}...${end}`;
|
|
1119
1141
|
}
|
|
1120
|
-
function firstUpperCase(str) {
|
|
1121
|
-
return str.toString()[0].toUpperCase() + str.toString().slice(1);
|
|
1122
|
-
}
|
|
1123
1142
|
|
|
1124
1143
|
// src/store/useModalStore.ts
|
|
1125
1144
|
import { create as create2 } from "zustand";
|
|
@@ -1508,6 +1527,7 @@ function useCopyClipboard(timeout = 500) {
|
|
|
1508
1527
|
}
|
|
1509
1528
|
|
|
1510
1529
|
// src/components/PasswordModal/index.tsx
|
|
1530
|
+
import { FormattedMessage, useIntl } from "react-intl";
|
|
1511
1531
|
import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1512
1532
|
function PasswordModal({
|
|
1513
1533
|
title,
|
|
@@ -1521,13 +1541,20 @@ function PasswordModal({
|
|
|
1521
1541
|
const [rePassword, setRePassword] = useState3("");
|
|
1522
1542
|
const [error, setError] = useState3("");
|
|
1523
1543
|
const { generateWallet } = useWallet();
|
|
1544
|
+
const intl = useIntl();
|
|
1524
1545
|
const passwordError = useMemo2(() => {
|
|
1525
|
-
if (password.length < 6) return
|
|
1546
|
+
if (password.length < 6) return intl.formatMessage({
|
|
1547
|
+
id: "passwordMinError"
|
|
1548
|
+
}, {
|
|
1549
|
+
length: 6
|
|
1550
|
+
});
|
|
1526
1551
|
return "";
|
|
1527
1552
|
}, [password]);
|
|
1528
1553
|
const rePasswordError = useMemo2(() => {
|
|
1529
1554
|
if (rePassword != password) {
|
|
1530
|
-
return
|
|
1555
|
+
return intl.formatMessage({
|
|
1556
|
+
id: "passwordMatchError"
|
|
1557
|
+
});
|
|
1531
1558
|
}
|
|
1532
1559
|
return "";
|
|
1533
1560
|
}, [rePassword, password]);
|
|
@@ -1554,26 +1581,32 @@ function PasswordModal({
|
|
|
1554
1581
|
setIsSubmitting(false);
|
|
1555
1582
|
}
|
|
1556
1583
|
};
|
|
1557
|
-
return /* @__PURE__ */ jsx40(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title ||
|
|
1584
|
+
return /* @__PURE__ */ jsx40(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
1585
|
+
id: "passwordTitle"
|
|
1586
|
+
}), children: /* @__PURE__ */ jsxs26("div", { className: "matchid-password-box", children: [
|
|
1558
1587
|
/* @__PURE__ */ jsxs26("div", { className: "matchid-password-header", children: [
|
|
1559
1588
|
/* @__PURE__ */ jsx40("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ jsx40(PasswordRoundIcon, {}) }),
|
|
1560
|
-
/* @__PURE__ */ jsx40("div", { className: "matchid-password-header-content", children:
|
|
1589
|
+
/* @__PURE__ */ jsx40("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ jsx40(FormattedMessage, { id: "passwordTips" }) })
|
|
1561
1590
|
] }),
|
|
1562
1591
|
/* @__PURE__ */ jsxs26("div", { className: "matchid-password-content", children: [
|
|
1563
|
-
/* @__PURE__ */ jsx40(Field, { label: "
|
|
1592
|
+
/* @__PURE__ */ jsx40(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ jsx40(
|
|
1564
1593
|
Input,
|
|
1565
1594
|
{
|
|
1566
|
-
placeholder:
|
|
1595
|
+
placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
|
|
1567
1596
|
maxLength: 32,
|
|
1568
1597
|
type: "password",
|
|
1569
1598
|
onChange: (e) => setPassword(e.target.value),
|
|
1570
1599
|
value: password
|
|
1571
1600
|
}
|
|
1572
1601
|
) }),
|
|
1573
|
-
/* @__PURE__ */ jsx40(Field, { label:
|
|
1602
|
+
/* @__PURE__ */ jsx40(Field, { label: intl.formatMessage({
|
|
1603
|
+
id: "rePassword"
|
|
1604
|
+
}), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ jsx40(
|
|
1574
1605
|
Input,
|
|
1575
1606
|
{
|
|
1576
|
-
placeholder:
|
|
1607
|
+
placeholder: intl.formatMessage({
|
|
1608
|
+
id: "rePasswordPlaceholder"
|
|
1609
|
+
}),
|
|
1577
1610
|
maxLength: 32,
|
|
1578
1611
|
onChange: (e) => setRePassword(e.target.value),
|
|
1579
1612
|
value: rePassword,
|
|
@@ -1590,7 +1623,7 @@ function PasswordModal({
|
|
|
1590
1623
|
size: "lg",
|
|
1591
1624
|
onClick: onContinue,
|
|
1592
1625
|
loading: isSubmitting,
|
|
1593
|
-
children: "
|
|
1626
|
+
children: /* @__PURE__ */ jsx40(FormattedMessage, { id: "continue" })
|
|
1594
1627
|
}
|
|
1595
1628
|
)
|
|
1596
1629
|
] }) });
|
|
@@ -1598,6 +1631,7 @@ function PasswordModal({
|
|
|
1598
1631
|
|
|
1599
1632
|
// src/components/RecoveryModal/index.tsx
|
|
1600
1633
|
import { useEffect as useEffect4, useMemo as useMemo3, useState as useState4 } from "react";
|
|
1634
|
+
import { FormattedMessage as FormattedMessage2, useIntl as useIntl2 } from "react-intl";
|
|
1601
1635
|
import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1602
1636
|
function RecoveryModal({
|
|
1603
1637
|
title,
|
|
@@ -1610,8 +1644,13 @@ function RecoveryModal({
|
|
|
1610
1644
|
const [password, setPassword] = useState4("");
|
|
1611
1645
|
const { recoveryWallet } = useWallet();
|
|
1612
1646
|
const [error, setError] = useState4("");
|
|
1647
|
+
const intl = useIntl2();
|
|
1613
1648
|
const passwordError = useMemo3(() => {
|
|
1614
|
-
if (password.length < 6) return
|
|
1649
|
+
if (password.length < 6) return intl.formatMessage({
|
|
1650
|
+
id: "passwordMinError"
|
|
1651
|
+
}, {
|
|
1652
|
+
length: 6
|
|
1653
|
+
});
|
|
1615
1654
|
return "";
|
|
1616
1655
|
}, [password]);
|
|
1617
1656
|
useEffect4(() => {
|
|
@@ -1634,15 +1673,17 @@ function RecoveryModal({
|
|
|
1634
1673
|
setIsSubmitting(false);
|
|
1635
1674
|
}
|
|
1636
1675
|
};
|
|
1637
|
-
return /* @__PURE__ */ jsx41(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title ||
|
|
1676
|
+
return /* @__PURE__ */ jsx41(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
1677
|
+
id: "recoverTitle"
|
|
1678
|
+
}), children: /* @__PURE__ */ jsxs27("div", { className: "matchid-password-box", children: [
|
|
1638
1679
|
/* @__PURE__ */ jsxs27("div", { className: "matchid-password-header", children: [
|
|
1639
1680
|
/* @__PURE__ */ jsx41("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ jsx41(PasswordRoundIcon, {}) }),
|
|
1640
|
-
/* @__PURE__ */ jsx41("div", { className: "matchid-password-header-content", children:
|
|
1681
|
+
/* @__PURE__ */ jsx41("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ jsx41(FormattedMessage2, { id: "recoverTips" }) })
|
|
1641
1682
|
] }),
|
|
1642
|
-
/* @__PURE__ */ jsx41("div", { className: "matchid-password-content", children: /* @__PURE__ */ jsx41(Field, { label: "
|
|
1683
|
+
/* @__PURE__ */ jsx41("div", { className: "matchid-password-content", children: /* @__PURE__ */ jsx41(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 ? passwordError || error : error, children: /* @__PURE__ */ jsx41(
|
|
1643
1684
|
Input,
|
|
1644
1685
|
{
|
|
1645
|
-
placeholder:
|
|
1686
|
+
placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
|
|
1646
1687
|
maxLength: 32,
|
|
1647
1688
|
type: "password",
|
|
1648
1689
|
onChange: (e) => setPassword(e.target.value),
|
|
@@ -1658,7 +1699,7 @@ function RecoveryModal({
|
|
|
1658
1699
|
size: "lg",
|
|
1659
1700
|
onClick: onContinue,
|
|
1660
1701
|
loading: isSubmitting,
|
|
1661
|
-
children: "
|
|
1702
|
+
children: /* @__PURE__ */ jsx41(FormattedMessage2, { id: "continue" })
|
|
1662
1703
|
}
|
|
1663
1704
|
)
|
|
1664
1705
|
] }) });
|
|
@@ -1691,8 +1732,10 @@ import { useEffect as useEffect7, useState as useState7 } from "react";
|
|
|
1691
1732
|
|
|
1692
1733
|
// src/components/EmailModal/StepEmail.tsx
|
|
1693
1734
|
import { useEffect as useEffect5, useMemo as useMemo4, useState as useState5 } from "react";
|
|
1735
|
+
import { FormattedMessage as FormattedMessage3, useIntl as useIntl3 } from "react-intl";
|
|
1694
1736
|
import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1695
1737
|
function StepEmail(props) {
|
|
1738
|
+
const intl = useIntl3();
|
|
1696
1739
|
const [emailVal, setEmailVal] = useState5("");
|
|
1697
1740
|
useEffect5(() => {
|
|
1698
1741
|
if (props.email) {
|
|
@@ -1706,17 +1749,21 @@ function StepEmail(props) {
|
|
|
1706
1749
|
props.onContinue(emailVal);
|
|
1707
1750
|
};
|
|
1708
1751
|
return /* @__PURE__ */ jsxs28("div", { className: "matchid-email-email-box", children: [
|
|
1709
|
-
/* @__PURE__ */ jsx42(Field, { label:
|
|
1752
|
+
/* @__PURE__ */ jsx42(Field, { label: intl.formatMessage({
|
|
1753
|
+
id: "emailAddress"
|
|
1754
|
+
}), children: /* @__PURE__ */ jsx42(
|
|
1710
1755
|
Input,
|
|
1711
1756
|
{
|
|
1712
|
-
placeholder:
|
|
1757
|
+
placeholder: intl.formatMessage({
|
|
1758
|
+
id: "emailAddressPlaceholder"
|
|
1759
|
+
}),
|
|
1713
1760
|
onChange: (e) => setEmailVal(e.target.value),
|
|
1714
1761
|
value: emailVal
|
|
1715
1762
|
}
|
|
1716
1763
|
) }),
|
|
1717
1764
|
/* @__PURE__ */ jsx42(Button, { disabled: !canContinue, style: {
|
|
1718
1765
|
marginTop: "64px"
|
|
1719
|
-
}, onClick: onContinue, size: "lg", block: true, highlight: true, children: "
|
|
1766
|
+
}, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ jsx42(FormattedMessage3, { id: "continue" }) })
|
|
1720
1767
|
] });
|
|
1721
1768
|
}
|
|
1722
1769
|
|
|
@@ -1728,15 +1775,19 @@ var EMAIL_INTERVAL = 60;
|
|
|
1728
1775
|
var EMAIL_CODE_LENGTH = 6;
|
|
1729
1776
|
|
|
1730
1777
|
// src/components/EmailModal/StepVerify.tsx
|
|
1778
|
+
import { FormattedMessage as FormattedMessage4, useIntl as useIntl4 } from "react-intl";
|
|
1731
1779
|
import { jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
1732
1780
|
function StepVerify(props) {
|
|
1781
|
+
const intl = useIntl4();
|
|
1733
1782
|
const { getLoginEmailCode, loginByEmail } = useUserInfo();
|
|
1734
1783
|
const [error, setError] = useState6("");
|
|
1735
1784
|
const [code, setCode] = useState6("");
|
|
1736
1785
|
const [sending, setSending] = useState6(false);
|
|
1737
1786
|
const [submitting, setSubmitting] = useState6(false);
|
|
1738
1787
|
const sendTimeRef = useRef(0);
|
|
1739
|
-
const [sendBtnText, setSendBtnText] = useState6(
|
|
1788
|
+
const [sendBtnText, setSendBtnText] = useState6(intl.formatMessage({
|
|
1789
|
+
id: "send"
|
|
1790
|
+
}));
|
|
1740
1791
|
const intervalTime = EMAIL_INTERVAL;
|
|
1741
1792
|
const codeLength = EMAIL_CODE_LENGTH;
|
|
1742
1793
|
const intervalRef = useRef(null);
|
|
@@ -1754,14 +1805,18 @@ function StepVerify(props) {
|
|
|
1754
1805
|
sendTimeRef.current--;
|
|
1755
1806
|
setSendBtnText(`${sendTimeRef.current}s`);
|
|
1756
1807
|
if (sendTimeRef.current <= 0) {
|
|
1757
|
-
setSendBtnText(
|
|
1808
|
+
setSendBtnText(intl.formatMessage({
|
|
1809
|
+
id: "Resend"
|
|
1810
|
+
}));
|
|
1758
1811
|
clearInterval(intervalRef.current);
|
|
1759
1812
|
setSending(false);
|
|
1760
1813
|
}
|
|
1761
1814
|
}, 1e3);
|
|
1762
1815
|
} catch (err) {
|
|
1763
1816
|
console.error("Send email error", err);
|
|
1764
|
-
setError(
|
|
1817
|
+
setError(intl.formatMessage({
|
|
1818
|
+
id: "sendCodeErrorTip"
|
|
1819
|
+
}, { error: err.message }));
|
|
1765
1820
|
setSending(false);
|
|
1766
1821
|
}
|
|
1767
1822
|
};
|
|
@@ -1802,13 +1857,17 @@ function StepVerify(props) {
|
|
|
1802
1857
|
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ jsx43(EmailLineIcon, {}) }),
|
|
1803
1858
|
/* @__PURE__ */ jsxs29("div", { className: "matchid-email-verify-header-content", children: [
|
|
1804
1859
|
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-value", children: props.email }),
|
|
1805
|
-
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-tips", children:
|
|
1860
|
+
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ jsx43(FormattedMessage4, { id: "sendEmailTips" }) })
|
|
1806
1861
|
] })
|
|
1807
1862
|
] }),
|
|
1808
|
-
/* @__PURE__ */ jsx43(Field, { label:
|
|
1863
|
+
/* @__PURE__ */ jsx43(Field, { label: intl.formatMessage({
|
|
1864
|
+
id: "verificationCode"
|
|
1865
|
+
}), error, children: /* @__PURE__ */ jsx43(
|
|
1809
1866
|
Input,
|
|
1810
1867
|
{
|
|
1811
|
-
placeholder:
|
|
1868
|
+
placeholder: intl.formatMessage({
|
|
1869
|
+
id: "codePlaceholder"
|
|
1870
|
+
}),
|
|
1812
1871
|
maxLength: codeLength,
|
|
1813
1872
|
onChange: (e) => setCode(e.target.value),
|
|
1814
1873
|
value: code,
|
|
@@ -1831,11 +1890,12 @@ function StepVerify(props) {
|
|
|
1831
1890
|
)
|
|
1832
1891
|
}
|
|
1833
1892
|
) }),
|
|
1834
|
-
/* @__PURE__ */ jsx43(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: "
|
|
1893
|
+
/* @__PURE__ */ jsx43(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ jsx43(FormattedMessage4, { id: "continue" }) })
|
|
1835
1894
|
] });
|
|
1836
1895
|
}
|
|
1837
1896
|
|
|
1838
1897
|
// src/components/EmailModal/index.tsx
|
|
1898
|
+
import { useIntl as useIntl5 } from "react-intl";
|
|
1839
1899
|
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
1840
1900
|
function EmailModal({
|
|
1841
1901
|
isOpen = false,
|
|
@@ -1846,6 +1906,7 @@ function EmailModal({
|
|
|
1846
1906
|
}) {
|
|
1847
1907
|
const [step, setStep] = useState7("input");
|
|
1848
1908
|
const [emailVal, setEmailVal] = useState7("");
|
|
1909
|
+
const intl = useIntl5();
|
|
1849
1910
|
useEffect7(() => {
|
|
1850
1911
|
if (!isOpen) {
|
|
1851
1912
|
setStep("input");
|
|
@@ -1858,7 +1919,9 @@ function EmailModal({
|
|
|
1858
1919
|
isOpen,
|
|
1859
1920
|
width,
|
|
1860
1921
|
onClose,
|
|
1861
|
-
title:
|
|
1922
|
+
title: intl.formatMessage({
|
|
1923
|
+
id: "email"
|
|
1924
|
+
}),
|
|
1862
1925
|
onBack: step == "verify" ? () => setStep("input") : onBack,
|
|
1863
1926
|
children: step === "input" ? /* @__PURE__ */ jsx44(StepEmail, { email: emailVal, onContinue: (email) => {
|
|
1864
1927
|
setEmailVal(email);
|
|
@@ -1901,6 +1964,7 @@ function Popover({
|
|
|
1901
1964
|
|
|
1902
1965
|
// src/components/LoginBox/index.tsx
|
|
1903
1966
|
import { useState as useState9 } from "react";
|
|
1967
|
+
import { FormattedMessage as FormattedMessage5, useIntl as useIntl6 } from "react-intl";
|
|
1904
1968
|
import { Fragment as Fragment2, jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
1905
1969
|
var RecommendItem = ({
|
|
1906
1970
|
icon,
|
|
@@ -1955,16 +2019,17 @@ function LoginBox({
|
|
|
1955
2019
|
const [emailOpen, setEmailOpen] = useState9(false);
|
|
1956
2020
|
const { login } = useUserInfo();
|
|
1957
2021
|
const [showWallet, setShowWallet] = useState9(false);
|
|
2022
|
+
const intl = useIntl6();
|
|
1958
2023
|
const methodMap = {
|
|
1959
2024
|
wallet: {
|
|
1960
2025
|
icon: /* @__PURE__ */ jsx46(WalletIcon, {}),
|
|
1961
|
-
name: "
|
|
2026
|
+
name: intl.formatMessage({ id: "wallet" }),
|
|
1962
2027
|
onClick: () => setShowWallet(!showWallet),
|
|
1963
2028
|
type: "wallet"
|
|
1964
2029
|
},
|
|
1965
2030
|
email: {
|
|
1966
2031
|
icon: /* @__PURE__ */ jsx46(EmailIcon, {}),
|
|
1967
|
-
name: "
|
|
2032
|
+
name: intl.formatMessage({ id: "email" }),
|
|
1968
2033
|
onClick: () => {
|
|
1969
2034
|
setEmailOpen(true);
|
|
1970
2035
|
}
|
|
@@ -2074,7 +2139,7 @@ function LoginBox({
|
|
|
2074
2139
|
);
|
|
2075
2140
|
}) }),
|
|
2076
2141
|
methods.length > 0 && /* @__PURE__ */ jsxs31("div", { className: "matchid-login-other", children: [
|
|
2077
|
-
/* @__PURE__ */ jsx46("div", { className: "matchid-login-other-text", children:
|
|
2142
|
+
/* @__PURE__ */ jsx46("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ jsx46(FormattedMessage5, { id: "otherLoginMethods" }) }),
|
|
2078
2143
|
/* @__PURE__ */ jsx46("div", { className: "matchid-login-method-box", children: methods.map((m) => {
|
|
2079
2144
|
return /* @__PURE__ */ jsx46(
|
|
2080
2145
|
"div",
|
|
@@ -2108,6 +2173,7 @@ function LoginBox({
|
|
|
2108
2173
|
import { useState as useState11 } from "react";
|
|
2109
2174
|
|
|
2110
2175
|
// src/components/LoginPanel/index.tsx
|
|
2176
|
+
import { FormattedMessage as FormattedMessage6 } from "react-intl";
|
|
2111
2177
|
import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2112
2178
|
function LoginPanel({
|
|
2113
2179
|
header,
|
|
@@ -2117,8 +2183,8 @@ function LoginPanel({
|
|
|
2117
2183
|
return /* @__PURE__ */ jsxs32("div", { className: "matchid-login-panel", children: [
|
|
2118
2184
|
header ? header : /* @__PURE__ */ jsxs32("div", { className: "matchid-login-panel-header", children: [
|
|
2119
2185
|
/* @__PURE__ */ jsxs32("div", { className: "matchid-login-panel-header-content", children: [
|
|
2120
|
-
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-title", children:
|
|
2121
|
-
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-subtilte", children:
|
|
2186
|
+
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ jsx47(FormattedMessage6, { id: "loginTitle" }) }),
|
|
2187
|
+
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ jsx47(FormattedMessage6, { id: "loginTips" }) })
|
|
2122
2188
|
] }),
|
|
2123
2189
|
onClose && /* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ jsx47(CloseRoundIcon, {}) })
|
|
2124
2190
|
] }),
|
|
@@ -2174,6 +2240,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
2174
2240
|
}
|
|
2175
2241
|
|
|
2176
2242
|
// src/components/UserPopover/index.tsx
|
|
2243
|
+
import { FormattedMessage as FormattedMessage7, useIntl as useIntl7 } from "react-intl";
|
|
2177
2244
|
import { jsx as jsx50, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2178
2245
|
function UserContent() {
|
|
2179
2246
|
const { logout, address, username } = useUserInfo();
|
|
@@ -2208,6 +2275,7 @@ function UserContent() {
|
|
|
2208
2275
|
};
|
|
2209
2276
|
const [usernameOpen, setUsernameOpen] = useState10(false);
|
|
2210
2277
|
const [copied, setCopied] = useCopyClipboard();
|
|
2278
|
+
const intl = useIntl7();
|
|
2211
2279
|
return /* @__PURE__ */ jsxs34("div", { className: "matchid-user-popover-content", children: [
|
|
2212
2280
|
/* @__PURE__ */ jsxs34("div", { className: "matchid-user-popover-list", children: [
|
|
2213
2281
|
/* @__PURE__ */ jsx50(UserItem, { onClick: () => {
|
|
@@ -2216,9 +2284,11 @@ function UserContent() {
|
|
|
2216
2284
|
/* @__PURE__ */ jsx50(UserDivider, {}),
|
|
2217
2285
|
/* @__PURE__ */ jsx50(UserItem, { onClick: () => {
|
|
2218
2286
|
setUsernameOpen(true);
|
|
2219
|
-
}, icon: /* @__PURE__ */ jsx50(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx50(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username ||
|
|
2287
|
+
}, icon: /* @__PURE__ */ jsx50(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx50(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
|
|
2288
|
+
id: "setUsername"
|
|
2289
|
+
}) })
|
|
2220
2290
|
] }),
|
|
2221
|
-
/* @__PURE__ */ jsx50(Button, { onClick: onLogout, loading: logouting, children: "
|
|
2291
|
+
/* @__PURE__ */ jsx50(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ jsx50(FormattedMessage7, { id: "disconnect" }) }),
|
|
2222
2292
|
/* @__PURE__ */ jsx50(UsernameModal, { isOpen: usernameOpen, onClose: () => {
|
|
2223
2293
|
setUsernameOpen(false);
|
|
2224
2294
|
}, onSuccess: () => {
|
|
@@ -2234,6 +2304,7 @@ function UserPopover({
|
|
|
2234
2304
|
}
|
|
2235
2305
|
|
|
2236
2306
|
// src/components/LoginButton/index.tsx
|
|
2307
|
+
import { FormattedMessage as FormattedMessage8, useIntl as useIntl8 } from "react-intl";
|
|
2237
2308
|
import { Fragment as Fragment3, jsx as jsx51, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
2238
2309
|
function LoginButton({
|
|
2239
2310
|
loginRender,
|
|
@@ -2245,6 +2316,7 @@ function LoginButton({
|
|
|
2245
2316
|
popoverGap = 20,
|
|
2246
2317
|
...props
|
|
2247
2318
|
}) {
|
|
2319
|
+
const intl = useIntl8();
|
|
2248
2320
|
const { isLogin, username } = useUserInfo();
|
|
2249
2321
|
const [loginOpen, setLoginOpen] = useState11(false);
|
|
2250
2322
|
if (!isLogin) {
|
|
@@ -2252,13 +2324,15 @@ function LoginButton({
|
|
|
2252
2324
|
/* @__PURE__ */ jsx51(LoginModal, { methods, recommendMethods, isOpen: loginOpen, onClose: () => setLoginOpen(false) }),
|
|
2253
2325
|
/* @__PURE__ */ jsxs35(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
|
|
2254
2326
|
/* @__PURE__ */ jsx51(UnLoginIcon_default, {}),
|
|
2255
|
-
/* @__PURE__ */ jsx51("span", { children: "
|
|
2327
|
+
/* @__PURE__ */ jsx51("span", { children: /* @__PURE__ */ jsx51(FormattedMessage8, { id: "login" }) })
|
|
2256
2328
|
] })
|
|
2257
2329
|
] });
|
|
2258
2330
|
}
|
|
2259
2331
|
return loginRender ? /* @__PURE__ */ jsx51(Fragment3, { children: loginRender }) : /* @__PURE__ */ jsx51(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ jsxs35(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
|
|
2260
2332
|
/* @__PURE__ */ jsx51(LoginIcon_default, {}),
|
|
2261
|
-
/* @__PURE__ */ jsx51("span", { children: username ? truncateAddress(username) : "MatchID
|
|
2333
|
+
/* @__PURE__ */ jsx51("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
|
|
2334
|
+
id: "user"
|
|
2335
|
+
}) })
|
|
2262
2336
|
] }) });
|
|
2263
2337
|
}
|
|
2264
2338
|
|
|
@@ -2287,6 +2361,7 @@ function InfoRoundIcon({
|
|
|
2287
2361
|
}
|
|
2288
2362
|
|
|
2289
2363
|
// src/components/UsernameModal/index.tsx
|
|
2364
|
+
import { FormattedMessage as FormattedMessage9, useIntl as useIntl9 } from "react-intl";
|
|
2290
2365
|
import { jsx as jsx53, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
2291
2366
|
var ValidItem = ({
|
|
2292
2367
|
success = false,
|
|
@@ -2340,11 +2415,18 @@ function UsernameModal({
|
|
|
2340
2415
|
setIsSubmitting(false);
|
|
2341
2416
|
}
|
|
2342
2417
|
};
|
|
2343
|
-
|
|
2344
|
-
|
|
2418
|
+
const intl = useIntl9();
|
|
2419
|
+
return /* @__PURE__ */ jsx53(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
2420
|
+
id: username ? "editUsernameTitle" : "setUsernameTitle"
|
|
2421
|
+
}), children: /* @__PURE__ */ jsxs37("div", { className: "matchid-username-box", children: [
|
|
2422
|
+
/* @__PURE__ */ jsx53(Field, { label: intl.formatMessage({
|
|
2423
|
+
id: "username"
|
|
2424
|
+
}), error, children: /* @__PURE__ */ jsx53(
|
|
2345
2425
|
Input,
|
|
2346
2426
|
{
|
|
2347
|
-
placeholder:
|
|
2427
|
+
placeholder: intl.formatMessage({
|
|
2428
|
+
id: "usernamePlaceholder"
|
|
2429
|
+
}),
|
|
2348
2430
|
onChange: (e) => {
|
|
2349
2431
|
setVal(e.target.value);
|
|
2350
2432
|
setError("");
|
|
@@ -2357,17 +2439,21 @@ function UsernameModal({
|
|
|
2357
2439
|
ValidItem,
|
|
2358
2440
|
{
|
|
2359
2441
|
success: isValid,
|
|
2360
|
-
text:
|
|
2442
|
+
text: intl.formatMessage({
|
|
2443
|
+
id: "usernameValidError"
|
|
2444
|
+
})
|
|
2361
2445
|
}
|
|
2362
2446
|
),
|
|
2363
|
-
/* @__PURE__ */ jsx53(ValidItem, { success: isLength, text:
|
|
2447
|
+
/* @__PURE__ */ jsx53(ValidItem, { success: isLength, text: intl.formatMessage({
|
|
2448
|
+
id: "usernameLengthError"
|
|
2449
|
+
}) })
|
|
2364
2450
|
] }),
|
|
2365
2451
|
/* @__PURE__ */ jsx53(Button, { disabled: !isSafe, loading: isSubmitting, style: {
|
|
2366
2452
|
marginTop: "64px"
|
|
2367
|
-
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: "
|
|
2453
|
+
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ jsx53(FormattedMessage9, { id: "confirm" }) }),
|
|
2368
2454
|
/* @__PURE__ */ jsx53(Button, { style: {
|
|
2369
2455
|
marginTop: "24px"
|
|
2370
|
-
}, onClick: props.onClose, size: "lg", block: true, children:
|
|
2456
|
+
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ jsx53(FormattedMessage9, { id: "nextTime" }) })
|
|
2371
2457
|
] }) });
|
|
2372
2458
|
}
|
|
2373
2459
|
|
|
@@ -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
|
+
import { useIntl as useIntl10 } from "react-intl";
|
|
2434
2521
|
import { jsx as jsx54, jsxs as jsxs38 } from "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
|
-
|
|
2718
|
+
const intl = useIntl10();
|
|
2719
|
+
return /* @__PURE__ */ jsx54(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
2720
|
+
id: type == "bind" ? "bindWith" : "loginWith"
|
|
2721
|
+
}, {
|
|
2722
|
+
name: "SOL"
|
|
2723
|
+
}), children: /* @__PURE__ */ jsx54(ConnectionProvider, { endpoint: clusterApiUrl("devnet"), children: /* @__PURE__ */ jsx54(WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ jsx54(WalletModalProvider, { children: /* @__PURE__ */ jsx54(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 = useRef2(false);
|
|
2826
2921
|
const searchParams = new URLSearchParams(window.location.search);
|
|
@@ -2835,6 +2930,9 @@ function useInit({
|
|
|
2835
2930
|
useEffect11(() => {
|
|
2836
2931
|
setEndpoints(realEndpoints);
|
|
2837
2932
|
}, [realEndpoints]);
|
|
2933
|
+
useEffect11(() => {
|
|
2934
|
+
setLocale(locale || "en");
|
|
2935
|
+
}, [locale]);
|
|
2838
2936
|
useEffect11(() => {
|
|
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
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
3015
|
+
import { IntlProvider } from "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
|
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
2917
3410
|
var queryClient = new QueryClient();
|
|
2918
3411
|
var MatchContext = 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__ */ jsx57(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx57(
|
|
3430
|
+
return /* @__PURE__ */ jsx57(IntlProvider, { locale: realLocale, messages: messages[realLocale], children: /* @__PURE__ */ jsx57(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx57(
|
|
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__ */ jsx57(context_default, { children })
|
|
2940
3442
|
}
|
|
2941
|
-
) });
|
|
3443
|
+
) }) });
|
|
2942
3444
|
};
|
|
2943
3445
|
var useMatch = () => {
|
|
2944
3446
|
const context = useContext(MatchContext);
|