From 7bcd69b40e38df0a60b8a42d50e2dda6dcee3322 Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Sun, 20 Dec 2020 19:57:06 +0100 Subject: [PATCH] make MapPage translatable, translate MapPage into Polish and English --- src/config/app.ts | 2 +- src/config/namespaces.ts | 1 + .../ServerPage/features/MapPage/MapPage.tsx | 44 +++++++++++-------- .../features/MapPage/components/Map/Map.tsx | 10 ++++- .../components/MarkerField/MarkerField.tsx | 3 ++ src/libs/i18n/en/server-page/index.ts | 2 + src/libs/i18n/en/server-page/map-page.ts | 29 ++++++++++++ src/libs/i18n/pl/server-page/index.ts | 2 + src/libs/i18n/pl/server-page/map-page.ts | 29 ++++++++++++ 9 files changed, 101 insertions(+), 21 deletions(-) create mode 100644 src/libs/i18n/en/server-page/map-page.ts create mode 100644 src/libs/i18n/pl/server-page/map-page.ts diff --git a/src/config/app.ts b/src/config/app.ts index 85b42f7..c19eb90 100644 --- a/src/config/app.ts +++ b/src/config/app.ts @@ -1,4 +1,4 @@ -export const DEFAULT_LANGUAGE = process.env.REACT_APP_DEFAULT_LANGUAGE ?? 'en'; +export const DEFAULT_LANGUAGE = process.env.REACT_APP_DEFAULT_LANGUAGE ?? 'pl'; export const NAME = 'TWHelp'; diff --git a/src/config/namespaces.ts b/src/config/namespaces.ts index 73f74ca..47e83d5 100644 --- a/src/config/namespaces.ts +++ b/src/config/namespaces.ts @@ -6,6 +6,7 @@ export const NOT_FOUND_PAGE = 'not-found-page'; export const SERVER_PAGE = { COMMON: 'server-page/common', INDEX_PAGE: 'server-page/index-page', + MAP_PAGE: 'server-page/map-page', PLAYER_PAGE: { COMMON: 'server-page/player-page/common', INDEX_PAGE: 'server-page/player-page/index-page', diff --git a/src/features/ServerPage/features/MapPage/MapPage.tsx b/src/features/ServerPage/features/MapPage/MapPage.tsx index 3e19ebd..d81df63 100644 --- a/src/features/ServerPage/features/MapPage/MapPage.tsx +++ b/src/features/ServerPage/features/MapPage/MapPage.tsx @@ -1,9 +1,12 @@ import React, { useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { useApolloClient } from '@apollo/client'; import { useDebouncedCallback } from 'use-debounce'; +import useTitle from '@libs/useTitle'; import useServer from '../../libs/ServerContext/useServer'; import useMarkers from './useMarkers'; import { MAP_SERVICE } from '@config/app'; +import { SERVER_PAGE } from '@config/namespaces'; import { PLAYERS, TRIBES } from './queries'; import { makeStyles } from '@material-ui/core/styles'; @@ -66,6 +69,8 @@ function MapPage() { const { key } = useServer(); const classes = useStyles(); const client = useApolloClient(); + const { t } = useTranslation(SERVER_PAGE.MAP_PAGE); + useTitle(t('title', { key })); const handleSettingsChange = ( e: React.ChangeEvent @@ -178,11 +183,11 @@ function MapPage() { align="center" gutterBottom > - Settings + {t('sections.settings')}
- Tribe markers + {t('sections.tribeMarkers')}
{tribeMarkers.map(marker => { @@ -320,6 +325,7 @@ function MapPage() { onChangeColor={createUpdateTribeMarkerColorHandler( marker.id )} + loadingText={t('loading')} loadSuggestions={searchTribes} getOptionLabel={tribeGetOptionLabel} getOptionSelected={tribeGetOptionSelected} @@ -333,7 +339,7 @@ function MapPage() { onClick={handleAddTribeMarker} disabled={tribeMarkers.length >= 100} > - Add marker + {t('buttons.addMarker')}
@@ -344,7 +350,7 @@ function MapPage() { align="center" gutterBottom > - Player markers + {t('sections.playerMarkers')}
{playerMarkers.map(marker => { @@ -369,7 +375,7 @@ function MapPage() { onClick={handleAddPlayerMarker} disabled={playerMarkers.length >= 100} > - Add marker + {t('buttons.addMarker')}
@@ -381,13 +387,15 @@ function MapPage() { color="secondary" variant="contained" > - Generate new map + {t('buttons.generateNewMap')} - {mapURL && } + {mapURL && ( + + )} ); diff --git a/src/features/ServerPage/features/MapPage/components/Map/Map.tsx b/src/features/ServerPage/features/MapPage/components/Map/Map.tsx index 248f098..ad3ebab 100644 --- a/src/features/ServerPage/features/MapPage/components/Map/Map.tsx +++ b/src/features/ServerPage/features/MapPage/components/Map/Map.tsx @@ -9,9 +9,15 @@ export interface Props { src: string; alt: string; maxWidth?: number; + loadingInfo?: string; } -function Map({ src = '', alt = 'Map', maxWidth = 1000 }: Props) { +function Map({ + src = '', + alt = 'Map', + maxWidth = 1000, + loadingInfo = 'It may take a while to generate a map!', +}: Props) { const [loading, setLoading] = useState(true); const classes = useStyles(); @@ -22,7 +28,7 @@ function Map({ src = '', alt = 'Map', maxWidth = 1000 }: Props) { return (
{loading ? ( - It may take a while to generate a map! + {loadingInfo} ) : ( URL:{' '} diff --git a/src/features/ServerPage/features/MapPage/components/MarkerField/MarkerField.tsx b/src/features/ServerPage/features/MapPage/components/MarkerField/MarkerField.tsx index 2f18364..e9fd503 100644 --- a/src/features/ServerPage/features/MapPage/components/MarkerField/MarkerField.tsx +++ b/src/features/ServerPage/features/MapPage/components/MarkerField/MarkerField.tsx @@ -15,6 +15,7 @@ export interface Props { getOptionLabel: (opt: T) => string; getOptionSelected: (opt: T, value: T) => boolean; loadSuggestions: (value: string) => Promise; + loadingText?: string; } function MarkerField({ @@ -24,6 +25,7 @@ function MarkerField({ onChangeColor, getOptionSelected, getOptionLabel, + loadingText, }: Props) { const [searchValue, setSearchValue] = useState(''); const [suggestions, setSuggestions] = useState([]); @@ -59,6 +61,7 @@ function MarkerField({ loading={loading} getOptionSelected={getOptionSelected} onChange={onChange} + loadingText={loadingText} renderInput={params => { return (