Skip to content

Latest commit

 

History

History
64 lines (59 loc) · 1.75 KB

File metadata and controls

64 lines (59 loc) · 1.75 KB
title
LocaleProvider
import React, { useState } from 'react';
import { Button, Layout, Typography, Flex } from 'antd';
import { FormattedMessage } from 'react-intl';
import { useLocales, LocaleProvider, SvgEnToZh, SvgZhToEn } from '@graphscope/studio-components';

const { Content } = Layout;
const { Text } = Typography;

const locales = {
    'en-US': {
        'navbar.jobs': 'Jobs',
        'navbar.extension': 'Extensions',
        'navbar.alert': 'Alerts',
        'navbar.setting': 'Settings',
        'navbar.deployment': 'Deployment',
    },
    'zh-CN': {
        'navbar.jobs': '作业管理',
        'navbar.extension': '扩展插件',
        'navbar.alert': '告警监控',
        'navbar.setting': '应用设置',
        'navbar.deployment': '部署状态',
    }
}

/** 修改主题色 */
const ToogleButton = () => {
  const { locale = 'en-US', handleLocales } = useLocales();
  return (
    <Button
      onClick={() => {
        handleLocales();
      }}
      icon={locale === 'en-US' ? <SvgEnToZh /> : <SvgZhToEn />}
    >
      {locale === 'en-US' ? 'Switch to Chinese' : '切换为英文'}
    </Button>
  );
};

export default () => {
  return (
    <LocaleProvider locales={locales}>
      <Layout>
        <Content >
          <Flex justify="center" align="center" vertical style={{ padding: 24 }}>
            <Text><FormattedMessage id="navbar.jobs" /> </Text>
            <Text><FormattedMessage id="navbar.extension" /> </Text>
            <Text><FormattedMessage id="navbar.alert" /> </Text>
            <Text><FormattedMessage id="navbar.setting" /> </Text>
            <Text><FormattedMessage id="navbar.deployment" /> </Text>
            <ToogleButton />
          </Flex>
        </Content>
      </Layout>
    </LocaleProvider>
  );
};