diff --git a/packages/app-settings/src/General.tsx b/packages/app-settings/src/General.tsx index 7d4e6a1fde..ea671a9de8 100644 --- a/packages/app-settings/src/General.tsx +++ b/packages/app-settings/src/General.tsx @@ -3,9 +3,9 @@ // of the Apache-2.0 license. See the LICENSE file for details. import { I18nProps } from '@polkadot/react-components/types'; -import { Option } from './types'; +import { Option, SetOption } from './types'; -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useMemo } from 'react'; import { isLedgerCapable } from '@polkadot/react-api'; import { Button, Dropdown } from '@polkadot/react-components'; import uiSettings, { SettingsStruct } from '@polkadot/ui-settings'; @@ -22,6 +22,20 @@ interface Props extends I18nProps{ const prefixOptions = uiSettings.availablePrefixes.map((o): Option => createOption(o, ['default'])); const iconOptions = uiSettings.availableIcons.map((o): Option => createIdenticon(o, ['default'])); const ledgerConnOptions = uiSettings.availableLedgerConn; +const availableLanguages: SetOption[] = [ + { + text: 'Default browser language (auto-detect)', + value: 'default' + }, + { + text: 'English', + value: 'en' + }, + { + text: '日本語', + value: 'ja' + } +]; function General ({ className, isModalContent, onClose, t }: Props): React.ReactElement { // tri-state: null = nothing changed, false = no reload, true = reload required @@ -49,6 +63,13 @@ function General ({ className, isModalContent, onClose, t }: Props): React.React setChanged(null); }; + const translatedAvailableLanguages = useMemo(() => + availableLanguages.map(option => ({ + ...option, + text: t(option.text) + })) + , [t]); + const { icon, i18nLang, ledgerConn, prefix, uiMode } = settings; return ( @@ -99,7 +120,7 @@ function General ({ className, isModalContent, onClose, t }: Props): React.React defaultValue={i18nLang} label={t('default interface language')} onChange={_handleChange('i18nLang')} - options={uiSettings.availableLanguages} + options={translatedAvailableLanguages} /> diff --git a/packages/app-settings/src/types.ts b/packages/app-settings/src/types.ts index 897cf11ffb..41702bc5f4 100644 --- a/packages/app-settings/src/types.ts +++ b/packages/app-settings/src/types.ts @@ -8,7 +8,7 @@ export interface Option { } export interface SetOption { - info: string; + info?: string; text: string; value: string | number; } diff --git a/packages/app-settings/src/util.tsx b/packages/app-settings/src/util.tsx index 32372a9cbb..cb4147d82d 100644 --- a/packages/app-settings/src/util.tsx +++ b/packages/app-settings/src/util.tsx @@ -19,7 +19,7 @@ export function createOption ({ info, text, value }: SetOption, overrides: strin