{"componentChunkName":"component---src-templates-post-template-js","path":"/en-US/other/locale","result":{"data":{"current":{"frontmatter":{"title":"LocaleProvider","order":96,"brief":"Internationalized components to provide multilingual support for Semi components","icon":"doc-i18n"},"fields":{"type":"other"},"tableOfContents":{"items":[{"url":"#languages-supported","title":"Languages supported"},{"url":"#components-supported","title":"Components supported"},{"url":"#how-to-use","title":"How to use"},{"url":"#code-example","title":"Code example","items":[{"url":"#internationalization","title":"Internationalization"},{"url":"#custom-internationalization-component","title":"Custom Internationalization Component"},{"url":"#components-that-support-multilingualism","title":"Components that support multilingualism"}]}]},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"localeCode\": \"en-US\",\n  \"order\": 96,\n  \"category\": \"Other\",\n  \"title\": \"LocaleProvider\",\n  \"subTitle\": \"LocaleProvider\",\n  \"icon\": \"doc-i18n\",\n  \"dir\": \"column\",\n  \"brief\": \"Internationalized components to provide multilingual support for Semi components\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"section\", null, mdx(\"h2\", {\n    parentName: \"section\"\n  }, \"Languages supported\"), mdx(\"table\", {\n    parentName: \"section\"\n  }, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Minimum supported version\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Language\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v0.0.1\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Simplified Chinese: zh_CN\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v0.7.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"English: en_GB, Japanese: ja_JP, Korean: ko_KR\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v1.8.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Arabic: ar\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v1.11.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Vietnamese: vi_VN\\u3001Russian: ru_RU\\u3001Indonesian: id_ID\\u3001Malay: ms_MY\\u3001Thai: th_TH\\u3001Turkish: tr_TR\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v1.17.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Portuguese: pt_BR\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v1.28.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Traditional Chinese: zh_TW\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v2.2.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Spanish: es\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v2.15.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Italian: it\\u3001French\\uFF1Afr\\u3001German\\uFF1Ade\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v2.21.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Romanian: ro\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v2.29.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Swedish: sv_SE\\u3001 Polish: pl_PL\\u3001Dutch: nl_NL\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"v2.88.0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Azerbaijani: az, Bulgarian: bg, Catalan: ca, Czech: cs_CZ, Cebu: ceb_PH, Danish: da, Greek: el_GR, Spanish (Latin America): es_419, Estonian: et, Persian: fa_IR, Filipino: fil_PH, Finnish: fi_FI, French (Canada): fr_CA, Irish: ga, Hebrew: he_IL, Hindi: hi_IN, Croatian: hr, Hungarian: hu_HU, Icelandic: is, Javanese: jv_ID, Kazakh: kk, Khmer: km_KH, Lithuanian: lt, Latvian: lv, Burmese: my_MM, Norwegian: nb, Portuguese: pt, Slovak: sk, Slovenian: sl, Albanian: sq, Swahili: sw, Ukrainian: uk_UA, Urdu: ur, Uzbek: uz\"))))), mdx(\"section\", null, mdx(\"h2\", {\n    parentName: \"section\"\n  }, \"Components supported\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Calendar\\u3001Cascader\\u3001Chat\\u3001DatePicker\\u3001Form\\u3001Image\\u3001List\\u3001List\\u3001Modal\\u3001Navigation\\u3001Nav\\u3001Pagination\\u3001Popconfirm\\u3001Select\\u3001Table\\u3001TimePicker\\u3001Transfer\\u3001Tree\\u3001TreeSelect\\u3001Typography\\u3001Upload\")), mdx(\"section\", null, mdx(\"h2\", {\n    parentName: \"section\"\n  }, \"How to use\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"LocaleProvider\"), \" uses the context feature of React, and you only need to wrap the periphery of the application once to take effect globally.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"When you need to switch the language, you can directly switch the locale passed in by the props.\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-jsx\"\n  }, \"import React, { useCallback, useMemo, useState } from 'react';\\nimport zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';\\nimport en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';\\nimport en_US from '@douyinfe/semi-ui/lib/es/locale/source/en_US';\\nimport ko_KR from '@douyinfe/semi-ui/lib/es/locale/source/ko_KR';\\nimport ja_JP from '@douyinfe/semi-ui/lib/es/locale/source/ja_JP';\\nimport vi_VN from '@douyinfe/semi-ui/lib/es/locale/source/vi_VN';\\nimport ru_RU from '@douyinfe/semi-ui/lib/es/locale/source/ru_RU';\\nimport id_ID from '@douyinfe/semi-ui/lib/es/locale/source/id_ID';\\nimport ms_MY from '@douyinfe/semi-ui/lib/es/locale/source/ms_MY';\\nimport th_TH from '@douyinfe/semi-ui/lib/es/locale/source/th_TH';\\nimport tr_TR from '@douyinfe/semi-ui/lib/es/locale/source/tr_TR';\\nimport pt_BR from '@douyinfe/semi-ui/lib/es/locale/source/pt_BR';\\nimport zh_TW from '@douyinfe/semi-ui/lib/es/locale/source/zh_TW';\\nimport sv_SE from '@douyinfe/semi-ui/lib/es/locale/source/sv_SE';\\nimport pl_PL from '@douyinfe/semi-ui/lib/es/locale/source/pl_PL';\\nimport nl_NL from '@douyinfe/semi-ui/lib/es/locale/source/nl_NL';\\nimport ar from '@douyinfe/semi-ui/lib/es/locale/source/ar';\\nimport es from '@douyinfe/semi-ui/lib/es/locale/source/es';\\nimport it from '@douyinfe/semi-ui/lib/es/locale/source/it';\\nimport de from '@douyinfe/semi-ui/lib/es/locale/source/de';\\nimport fr from '@douyinfe/semi-ui/lib/es/locale/source/fr';\\nimport ro from '@douyinfe/semi-ui/lib/es/locale/source/fr';\\n\\nimport { LocaleProvider } from '@douyinfe/semi-ui';\\n\\n() => {\\n    return (\\n        <LocaleProvider locale={en_GB}>\\n            {/* eslint-disable-next-line react/jsx-no-undef */}\\n            <App />\\n        </LocaleProvider>\\n    );\\n};\\n\"))), mdx(\"section\", null, mdx(\"h2\", {\n    parentName: \"section\"\n  }, \"Code example\"), mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Internationalization\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-jsx\",\n    \"metastring\": \"live=true dir=\\\"column\\\"\",\n    \"live\": \"true\",\n    \"dir\": \"\\\"column\\\"\"\n  }, \"import React from 'react';\\nimport en_GB from '@douyinfe/semi-ui/locale/source/en_GB';\\nimport ja_JP from '@douyinfe/semi-ui/locale/source/ja_JP';\\nimport { LocaleProvider, Pagination } from '@douyinfe/semi-ui';\\n\\nfunction I18nDemo() {\\n    return (\\n        <>\\n            <LocaleProvider locale={en_GB}>\\n                <Pagination total={100} showTotal showSizeChanger style={{ margin: 20 }} />\\n            </LocaleProvider>\\n            <LocaleProvider locale={ja_JP}>\\n                <Pagination total={100} showTotal showSizeChanger style={{ margin: 20 }} />\\n            </LocaleProvider>\\n        </>\\n    );\\n}\\n\")), mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Custom Internationalization Component\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"When your custom component also wants to consume the localeCode in the Semi LocaleProvider Context or read the i18n text localeData of a specific component, you can use LocaleConsumer to get it\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-jsx\",\n    \"metastring\": \"live=true dir=\\\"column\\\" noInline=true\",\n    \"live\": \"true\",\n    \"dir\": \"\\\"column\\\"\",\n    \"noInline\": \"true\"\n  }, \"import React from 'react';\\nimport zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';\\nimport en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';\\nimport ko_KR from '@douyinfe/semi-ui/lib/es/locale/source/ko_KR';\\nimport { LocaleProvider, LocaleConsumer } from '@douyinfe/semi-ui';\\n\\n\\nfunction GetLocaleFromSemi() {\\n    return (\\n        <LocaleConsumer componentName=\\\"TimePicker\\\">\\n            {(localeData, localeCode, dateFnsLocale) => (\\n                <div>{localeCode} : {localeData.begin}</div>\\n            )}\\n        </LocaleConsumer>\\n    );\\n}\\n\\nfunction ExtractComponent() {\\n    return (\\n        <LocaleConsumer componentName=\\\"ComponentA\\\">\\n            {(localeData, localeCode, dateFnsLocale) => (\\n                <div>{localeData.customKey}</div>\\n            )}\\n        </LocaleConsumer>\\n    );\\n}\\n\\n\\nfunction I18nCustomDemo() {\\n    const new_zh_CN = { ...zh_CN, ComponentA: { customKey: 'semi' } };\\n    const new_ko_KR = { ...ko_KR, ComponentA: { customKey: 'design' } };\\n    const new_en_GB = { ...en_GB, ComponentA: { customKey: 'dsm' } };\\n\\n    return (\\n        <>\\n            <LocaleProvider locale={new_zh_CN}>\\n                <GetLocaleFromSemi />\\n            </LocaleProvider>\\n            <LocaleProvider locale={new_ko_KR}>\\n                <GetLocaleFromSemi />\\n            </LocaleProvider>\\n            <LocaleProvider locale={new_en_GB}>\\n                <GetLocaleFromSemi />\\n            </LocaleProvider>\\n            <LocaleProvider locale={new_zh_CN}>\\n                <ExtractComponent />\\n            </LocaleProvider>\\n            <LocaleProvider locale={new_ko_KR}>\\n                <ExtractComponent />\\n            </LocaleProvider>\\n            <LocaleProvider locale={new_en_GB}>\\n                <ExtractComponent />\\n            </LocaleProvider>\\n        </>\\n    );\\n}\\n\\nrender(I18nCustomDemo);\\n\")), mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Components that support multilingualism\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"The example gives all the current multilingual components\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-jsx\",\n    \"metastring\": \"live=true dir=\\\"column\\\"\",\n    \"live\": \"true\",\n    \"dir\": \"\\\"column\\\"\"\n  }, \"import React from 'react';\\nimport zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';\\nimport en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';\\nimport en_US from '@douyinfe/semi-ui/lib/es/locale/source/en_US';\\nimport ko_KR from '@douyinfe/semi-ui/lib/es/locale/source/ko_KR';\\nimport ja_JP from '@douyinfe/semi-ui/lib/es/locale/source/ja_JP';\\nimport vi_VN from '@douyinfe/semi-ui/lib/es/locale/source/vi_VN';\\nimport ru_RU from '@douyinfe/semi-ui/lib/es/locale/source/ru_RU';\\nimport id_ID from '@douyinfe/semi-ui/lib/es/locale/source/id_ID';\\nimport ms_MY from '@douyinfe/semi-ui/lib/es/locale/source/ms_MY';\\nimport th_TH from '@douyinfe/semi-ui/lib/es/locale/source/th_TH';\\nimport tr_TR from '@douyinfe/semi-ui/lib/es/locale/source/tr_TR';\\nimport pt_BR from '@douyinfe/semi-ui/lib/es/locale/source/pt_BR';\\nimport zh_TW from '@douyinfe/semi-ui/lib/es/locale/source/zh_TW';\\nimport sv_SE from '@douyinfe/semi-ui/lib/es/locale/source/sv_SE';\\nimport pl_PL from '@douyinfe/semi-ui/lib/es/locale/source/pl_PL';\\nimport nl_NL from '@douyinfe/semi-ui/lib/es/locale/source/nl_NL';\\nimport ar from '@douyinfe/semi-ui/lib/es/locale/source/ar';\\nimport es from '@douyinfe/semi-ui/lib/es/locale/source/es';\\nimport it from '@douyinfe/semi-ui/lib/es/locale/source/it';\\nimport de from '@douyinfe/semi-ui/lib/es/locale/source/de';\\nimport fr from '@douyinfe/semi-ui/lib/es/locale/source/fr';\\nimport ro from '@douyinfe/semi-ui/lib/es/locale/source/ro';\\nimport az from '@douyinfe/semi-ui/locale/source/az';\\nimport bg from '@douyinfe/semi-ui/locale/source/bg';\\nimport bn_IN from '@douyinfe/semi-ui/locale/source/bn_IN';  \\nimport ca from '@douyinfe/semi-ui/locale/source/ca';\\nimport cs_CZ from '@douyinfe/semi-ui/locale/source/cs_CZ';\\nimport ceb_PH from '@douyinfe/semi-ui/locale/source/ceb_PH';\\nimport da from '@douyinfe/semi-ui/locale/source/da';\\nimport el_GR from '@douyinfe/semi-ui/locale/source/el_GR';\\nimport es_419 from '@douyinfe/semi-ui/locale/source/es_419';\\nimport et from '@douyinfe/semi-ui/locale/source/et';\\nimport fa_IR from '@douyinfe/semi-ui/locale/source/fa_IR';\\nimport fil_PH from '@douyinfe/semi-ui/locale/source/fil_PH';\\nimport fi_FI from '@douyinfe/semi-ui/locale/source/fi_FI';\\nimport fr_CA from '@douyinfe/semi-ui/locale/source/fr_CA';\\nimport ga from '@douyinfe/semi-ui/locale/source/ga';\\nimport he_IL from '@douyinfe/semi-ui/locale/source/he_IL';\\nimport hi_IN from '@douyinfe/semi-ui/locale/source/hi_IN';\\nimport hr from '@douyinfe/semi-ui/locale/source/hr';\\nimport hu_HU from '@douyinfe/semi-ui/locale/source/hu_HU';\\nimport is from '@douyinfe/semi-ui/locale/source/is';\\nimport jv_ID from '@douyinfe/semi-ui/locale/source/jv_ID';\\nimport kk from '@douyinfe/semi-ui/locale/source/kk';\\nimport km_KH from '@douyinfe/semi-ui/locale/source/km_KH';\\nimport lt from '@douyinfe/semi-ui/locale/source/lt';\\nimport lv from '@douyinfe/semi-ui/locale/source/lv';\\nimport my_MM from '@douyinfe/semi-ui/locale/source/my_MM';\\nimport nb from '@douyinfe/semi-ui/locale/source/nb';\\nimport pt from '@douyinfe/semi-ui/locale/source/pt';\\nimport sk from '@douyinfe/semi-ui/locale/source/sk';\\nimport sl from '@douyinfe/semi-ui/locale/source/sl';\\nimport sq from '@douyinfe/semi-ui/locale/source/sq';\\nimport sw from '@douyinfe/semi-ui/locale/source/sw';\\nimport uk_UA from '@douyinfe/semi-ui/locale/source/uk_UA';\\nimport ur from '@douyinfe/semi-ui/locale/source/ur';\\nimport uz from '@douyinfe/semi-ui/locale/source/uz';\\nimport { LocaleProvider, ConfigProvider, Pagination, Modal, Button, Select, Cascader, DatePicker, TreeSelect, Table, TimePicker, List, Calendar, Typography, Transfer, ImagePreview, Image, Form, Nav } from '@douyinfe/semi-ui';\\nimport { IconUser, IconSemiLogo, IconStar } from '@douyinfe/semi-icons';\\n\\nfunction I18nDemo() {\\n    const [locale, setLocale] = useState(en_GB);\\n    const [localeCode, setLocaleCode] = useState('en_GB');\\n\\n    const language = useMemo(() => ({\\n        'zh_CN': zh_CN,\\n        'en_GB': en_GB,\\n        'ko_KR': ko_KR,\\n        'ja_JP': ja_JP,\\n        'ar': ar,\\n        'vi_VN': vi_VN,\\n        'ru_RU': ru_RU,\\n        'id_ID': id_ID,\\n        'ms_MY': ms_MY,\\n        'th_TH': th_TH,\\n        'tr_TR': tr_TR,\\n        'sv_SE': sv_SE,\\n        'pl_PL': pl_PL,\\n        'nl_NL': nl_NL,\\n        es,\\n        de,\\n        it,\\n        fr,\\n        ro,\\n        'bn_IN': bn_IN,\\n        az,\\n        bg,\\n        ca,\\n        'cs_CZ': cs_CZ,\\n        'ceb_PH': ceb_PH,\\n        da,\\n        'el_GR': el_GR,\\n        'es_419': es_419,\\n        et,\\n        'fa_IR': fa_IR,\\n        'fil_PH': fil_PH,\\n        'fi_FI': fi_FI,\\n        'fr_CA': fr_CA,\\n        ga,\\n        'he_IL': he_IL,\\n        'hi_IN': hi_IN,\\n        hr,\\n        'hu_HU': hu_HU,\\n        is,\\n        'jv_ID': jv_ID,\\n        kk,\\n        'km_KH': km_KH,\\n        lt,\\n        lv,\\n        'my_MM': my_MM,\\n        nb,\\n        pt,\\n        sk,\\n        sl,\\n        sq,\\n        sw,\\n        'uk_UA': uk_UA,\\n        ur,\\n        uz,\\n    }), []);\\n\\n    const onLanguageChange = useCallback((code) => {\\n        setLocale(language[code]);\\n        setLocaleCode(code);\\n    }, [language]);\\n\\n        const treeData = [\\n            {\\n                label: 'Asia',\\n                value: 'asia',\\n                key: '1',\\n                children: [\\n                    {\\n                        label: 'China',\\n                        value: 'china',\\n                        key: '1-0',\\n                        children: [\\n                            { label: 'Beijing', value: 'beijing', key: '1-0-0' },\\n                            { label: 'Shanghai', value: 'shanghai', key: '1-0-1' },\\n                        ],\\n                    },\\n                    {\\n                        label: 'Japan',\\n                        value: 'japan',\\n                        key: '1-1',\\n                        children: [ { label: 'Osaka', value: 'osaka', key: '1-1-0' } ]\\n                    },\\n                ]\\n            }\\n        ];\\n        const I18nComponent = () => {\\n            const [modalVisible, setModalVisible] = useState(false);\\n            const columns = useMemo(() => [\\n                {\\n                    title: 'Name',\\n                    width: 250,\\n                    dataIndex: 'name',\\n                },\\n                {\\n                    title: 'Age',\\n                    width: 150,\\n                    dataIndex: 'age',\\n                },\\n                {\\n                    title: 'Address',\\n                    dataIndex: 'address',\\n                },\\n            ]);\\n            const dataSource = useMemo(() => {\\n                const data = [];\\n                for (let i = 0; i < 46; i++) {\\n                    data.push({\\n                        key: '' + i,\\n                        name: `Bytedance ${i}`,\\n                        age: 32,\\n                        address: `Beijing, Haidian. Zhichun Road ${i}`,\\n                    });\\n                }\\n                return data;\\n            });\\n            const transferData = useMemo(() => {\\n                return Array.from({ length: 100 }, (v, i) => {\\n                    return {\\n                        label: `Option Name ${i}`,\\n                        value: i,\\n                        disabled: false,\\n                        key: i,\\n                    };\\n                });\\n            });\\n            const srcList = useMemo(() => ([\\n                \\\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/abstract.jpg\\\",\\n                \\\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/sky.jpg\\\",\\n                \\\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/greenleaf.jpg\\\",\\n                \\\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/colorful.jpg\\\",\\n            ]), []);\\n            const style = { margin: 10 };\\n            return (\\n                <>\\n                    <h5>Pagination</h5>\\n                    <Pagination total={100} showTotal showSizeChanger style={style} showQuickJumper/>\\n                    <h5>Modal</h5>\\n\\n                    <div style={style}>\\n                        <Button onClick={() => setModalVisible(true)}>\\n                            Show Modal\\n                        </Button>\\n                        <Modal\\n                            title=\\\"Modal\\\"\\n                            visible={modalVisible}\\n                            onOk={() => setModalVisible(false)}\\n                            onCancel={() => setModalVisible(false)}\\n                        >\\n                            <p>This is the content of a basic modal.</p>\\n                            <p>More content...</p>\\n                        </Modal>\\n                    </div>\\n                    <h5>Select & Cascader</h5>\\n                    <div style={style}>\\n                        <Select filter style={{ width: '180px' }}>\\n                            <Select.Option value='abc'>abc</Select.Option>\\n                            <Select.Option value='vigo' disabled>vigo</Select.Option>\\n                            <Select.Option value='hotsoon'>hotsoon</Select.Option>\\n                        </Select>\\n                        <Cascader\\n                            style={{ width: 300, margin: 10 }}\\n                            treeData={treeData}\\n                            filterTreeNode\\n                            prefix='Cascader'\\n                        />\\n                    </div>\\n                    <h5>DatePicker</h5>\\n                    <DatePicker style={{ ...style, width: 250 }} />\\n                    <DatePicker style={{ ...style, width: 300 }} type='dateTime' />\\n                    <DatePicker style={{ ...style, width: 300 }} type='dateRange' />\\n                    <DatePicker style={{ ...style, width: 450 }} type='dateTimeRange' />\\n                    <h5>TimePicker</h5>\\n                    <TimePicker style={style} />\\n                    <TimePicker use12Hours style={style} /><br/><br/>\\n                    <h5>TreeSelect</h5>\\n                    <TreeSelect\\n                        style={{ ...style, width: 300 }}\\n                        dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}\\n                        treeData={treeData}\\n                        filterTreeNode\\n                    />\\n                    <h5>Table</h5>\\n                    <Table columns={columns} dataSource={dataSource} scroll={{ y: 320 }} />\\n                    <h5>Table - Empty</h5>\\n                    <Table columns={columns} dataSource={[]} scroll={{ y: 320 }} />\\n                    <h5>List - Empty</h5>\\n                    <List header={<div>List</div>} dataSource={[]}/>\\n                    <h5>Calendar</h5>\\n                    <Calendar mode='month' />\\n                    <h5>Typography - Copyable</h5>\\n                    <Typography.Paragraph copyable>Click to copy text.</Typography.Paragraph>\\n                    <h5>Typography - Collapsible</h5>\\n                    <Typography.Paragraph ellipsis={{ rows: 3, expandable: true, collapsible: true }} style={{ width: 300 }}>\\n                        {`Expandable and collapsible: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}\\n                    </Typography.Paragraph>\\n                    <h5>Transfer</h5>\\n                    <Transfer\\n                        style={{ width: 568, height: 416 }}\\n                        dataSource={transferData}\\n                    />\\n                    <h5>Image</h5>\\n                    <ImagePreview showTooltip>\\n                        {srcList.map((src, index) => {\\n                            return (\\n                                <Image \\n                                    key={index} \\n                                    src={src} \\n                                    width={200} \\n                                    alt={`lamp${index + 1}`} \\n                                    style={{ marginRight: 5 }}\\n                                />\\n                            );\\n                        })}\\n                    </ImagePreview>\\n                    <h5>Form</h5>\\n                    <Form layout='horizontal' onValueChange={values=>console.log(values)}>\\n                        <Form.Input field='UserName' label={{ text: 'Role', optional: true }} style={{ width: 200 }} />\\n                    </Form>\\n                    <h5>Navigation</h5>\\n                    <Nav\\n                        bodyStyle={{ height: 320 }}\\n                        items={[\\n                            { itemKey: 'user', text: 'Users', icon: <IconUser /> },\\n                            { itemKey: 'union', text: 'Activity', icon: <IconStar /> },\\n                        ]}\\n                        header={{\\n                            logo: <IconSemiLogo style={{ height: '36px', fontSize: 36 }} />,\\n                            text: 'Semi Platform'\\n                        }}\\n                        footer={{\\n                            collapseButton: true,\\n                        }}\\n                    />\\n                </>\\n            );\\n        };\\n    return (\\n            <>\\n                <div style={{ borderBottom: '1px solid var(--semi-color-border)', paddingBottom: 20 }}>\\n                    <Select onChange={onLanguageChange} prefix='Switch Language' style={{ width: 250 }} defaultValue='en_GB'>\\n                        <Select.Option value='zh_CN'>Chinese</Select.Option>\\n                        <Select.Option value='en_GB'>English</Select.Option>\\n                        <Select.Option value='ja_JP'>Japanese</Select.Option>\\n                        <Select.Option value='ko_KR'>Korean</Select.Option>\\n                        <Select.Option value='ar'>Arabic</Select.Option>\\n                        <Select.Option value='vi_VN'>Vietnamese</Select.Option>\\n                        <Select.Option value='ru_RU'>Russian</Select.Option>\\n                        <Select.Option value='id_ID'>Indonesian</Select.Option>\\n                        <Select.Option value='ms_MY'>Malay</Select.Option>\\n                        <Select.Option value='th_TH'>Thai</Select.Option>\\n                        <Select.Option value='tr_TR'>Turkish</Select.Option>\\n                        <Select.Option value='es'>Spanish</Select.Option>\\n                        <Select.Option value='de'>German</Select.Option>\\n                        <Select.Option value='it'>Italian</Select.Option>\\n                        <Select.Option value='fr'>French</Select.Option>\\n                        <Select.Option value='ro'>Romanian</Select.Option>\\n                        <Select.Option value='sv_SE'>Swedish</Select.Option>\\n                        <Select.Option value='pl_PL'>Polish</Select.Option>\\n                        <Select.Option value='nl_NL'>Dutch</Select.Option>\\n                        <Select.Option value=\\\"az\\\">Azerbaijani</Select.Option>\\n                        <Select.Option value=\\\"bn_IN\\\">Bengali</Select.Option>\\n                        <Select.Option value=\\\"bg\\\">Bulgarian</Select.Option>\\n                        <Select.Option value=\\\"ca\\\">Catalan</Select.Option>\\n                        <Select.Option value=\\\"cs_CZ\\\">Czech</Select.Option>\\n                        <Select.Option value=\\\"ceb_PH\\\">Cebuano</Select.Option>\\n                        <Select.Option value=\\\"da\\\">Danish</Select.Option>\\n                        <Select.Option value=\\\"el_GR\\\">Greek</Select.Option>\\n                        <Select.Option value=\\\"es_419\\\">Spanish (Latin America)</Select.Option>\\n                        <Select.Option value=\\\"et\\\">Estonian</Select.Option>\\n                        <Select.Option value=\\\"fa_IR\\\">Persian</Select.Option>\\n                        <Select.Option value=\\\"fil_PH\\\">Filipino</Select.Option>\\n                        <Select.Option value=\\\"fi_FI\\\">Finnish</Select.Option>\\n                        <Select.Option value=\\\"fr_CA\\\">French (Canada)</Select.Option>\\n                        <Select.Option value=\\\"ga\\\">Irish</Select.Option>\\n                        <Select.Option value=\\\"he_IL\\\">Hebrew</Select.Option>\\n                        <Select.Option value=\\\"hi_IN\\\">Hindi</Select.Option>\\n                        <Select.Option value=\\\"hr\\\">Croatian</Select.Option>\\n                        <Select.Option value=\\\"hu_HU\\\">Hungarian</Select.Option>\\n                        <Select.Option value=\\\"is\\\">Icelandic</Select.Option>\\n                        <Select.Option value=\\\"jv_ID\\\">Javanese</Select.Option>\\n                        <Select.Option value=\\\"kk\\\">Kazakh</Select.Option>\\n                        <Select.Option value=\\\"km_KH\\\">Khmer</Select.Option>\\n                        <Select.Option value=\\\"lt\\\">Lithuanian</Select.Option>\\n                        <Select.Option value=\\\"lv\\\">Latvian</Select.Option>\\n                        <Select.Option value=\\\"my_MM\\\">Burmese</Select.Option>\\n                        <Select.Option value=\\\"nb\\\">Norwegian</Select.Option>\\n                        <Select.Option value=\\\"pt\\\">Portuguese</Select.Option>\\n                        <Select.Option value=\\\"sk\\\">Slovak</Select.Option>\\n                        <Select.Option value=\\\"sl\\\">Slovenian</Select.Option>\\n                        <Select.Option value=\\\"sq\\\">Albanian</Select.Option>\\n                        <Select.Option value=\\\"sw\\\">Swahili</Select.Option>\\n                        <Select.Option value=\\\"uk_UA\\\">Ukrainian</Select.Option>\\n                        <Select.Option value=\\\"ur\\\">Urdu</Select.Option>\\n                        <Select.Option value=\\\"uz\\\">Uzbek</Select.Option>\\n                    </Select>\\n                </div>\\n                <LocaleProvider locale={locale}>\\n                    <ConfigProvider direction={localeCode === 'ar' ? 'rtl' : 'ltr'} locale={locale}>\\n                        <I18nComponent />\\n                    </ConfigProvider>\\n                </LocaleProvider>\\n            </>\\n    );\\n}\\n\"))));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"slug":"en-US/other/locale","next":{"fields":{"slug":"zh-CN/other/locale"},"id":"9b9aec90-2768-533d-8981-886ce020b9f1","frontmatter":{"title":"LocaleProvider 多语言","localeCode":"zh-CN","icon":"doc-i18n","showNew":null}},"previous":{"fields":{"slug":"zh-CN/other/configprovider"},"id":"8282a31e-6364-5dcc-b294-8c71c1d077ca","frontmatter":{"title":"ConfigProvider 全局配置","localeCode":"zh-CN","icon":"doc-configprovider","showNew":null}}}},"staticQueryHashes":["1348983216108720","1477422646108720","3245198693108720","417590761108720","63159454108720"]}