Add translation for battlesuit list page

This commit is contained in:
Sakura Knoll
2022-01-03 15:18:47 +09:00 Unverified
parent d5610fc964
commit ac143a81c0
20 changed files with 331 additions and 87 deletions
@@ -15,12 +15,12 @@ import {
BattlesuitData,
BattlesuitSkillGroup,
} from '../../../lib/honkai3rd/battlesuits'
import { generateI18NPaths, getI18NProps } from '../../../lib/i18n'
import { generateI18NPaths, getI18NProps } from '../../../server/i18n'
import {
getBattlesuitById,
listBattlesuits,
} from '../../../server/data/honkai3rd/battlesuits'
import { useTranslation } from 'next-i18next'
import { useTranslation } from '../../../lib/i18n'
interface BattlesuitShowPageProps {
battlesuit: BattlesuitData
+32 -15
View File
@@ -15,7 +15,8 @@ import {
import BattlesuitCard from '../../../components/molecules/BattlesuitCard'
import { useRouter } from 'next/router'
import { NextPageContext } from 'next'
import { getI18NProps } from '../../../lib/i18n'
import { getI18NProps } from '../../../server/i18n'
import { translate, useTranslation } from '../../../lib/i18n'
type BattlesuitListItemData = Pick<
BattlesuitData,
@@ -26,14 +27,27 @@ interface BattlesuitListPageProps {
battlesuits: BattlesuitListItemData[]
}
const featureFilterOptions: { value: string; label: string; icon?: string }[] =
[{ value: 'all', label: 'All' }, ...battlesuitFeatures]
const featureFilterOptions: {
value: string
label: string
icon?: string
krLabel?: string
}[] = [{ value: 'all', label: 'All', krLabel: '전체' }, ...battlesuitFeatures]
const valkyrieFilterOptions: { value: string; label: string; icon?: string }[] =
[{ value: 'all', label: 'All' }, ...battlesuitTypes, ...valkyries]
const valkyrieFilterOptions: {
value: string
label: string
icon?: string
krLabel?: string
}[] = [
{ value: 'all', label: 'All', krLabel: '전체' },
...battlesuitTypes,
...valkyries,
]
const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => {
const { query } = useRouter()
const { query, locale } = useRouter()
const { t } = useTranslation()
const filter = useMemo(() => {
if (query.filter == null) {
@@ -63,23 +77,26 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => {
<Box p={3}>
<Breadcrumb
items={[
{ href: '/honkai3rd', label: 'Honkai 3rd' },
{ href: '/honkai3rd/battlesuits', label: 'Battlesuits' },
{ href: '/honkai3rd', label: t('breadcrumb.honkai-3rd') },
{
href: '/honkai3rd/battlesuits',
label: t('breadcrumb.battlesuits'),
},
]}
/>
<Heading as='h1'>Battlesuits</Heading>
<Heading as='h1'>{t('battlesuits-list.heading')}</Heading>
<Box>
<Heading as='h3'>Filter by Features</Heading>
<Heading as='h3'>{t('battlesuits-list.filter-by-features')}</Heading>
<Flex mb={2} sx={{ flexWrap: 'wrap' }}>
{featureFilterOptions.map(({ value, label, icon }) => {
{featureFilterOptions.map(({ value, label, icon, krLabel }) => {
return (
<FilterButton
key={value}
active={value === filter}
value={value}
label={label}
label={translate(locale, { 'ko-KR': krLabel }, label)}
icon={icon}
m={1}
/>
@@ -87,15 +104,15 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => {
})}
</Flex>
<Heading as='h3'>Filter by Valkyries</Heading>
<Heading as='h3'>{t('battlesuits-list.filter-by-valkyries')}</Heading>
<Flex mb={2} sx={{ flexWrap: 'wrap' }}>
{valkyrieFilterOptions.map(({ value, label, icon }) => {
{valkyrieFilterOptions.map(({ value, label, icon, krLabel }) => {
return (
<FilterButton
key={value}
active={value === filter}
value={value}
label={label}
label={translate(locale, { 'ko-KR': krLabel }, label)}
icon={icon}
m={1}
/>
+1 -1
View File
@@ -8,9 +8,9 @@ import SecondaryLabel from '../../../components/atoms/SecondaryLabel'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
import { ElfData } from '../../../lib/honkai3rd/elfs'
import { generateI18NPaths, getI18NProps } from '../../../lib/i18n'
import { capitalize } from '../../../lib/string'
import { getElfById, listElfs } from '../../../server/data/honkai3rd/elfs'
import { generateI18NPaths, getI18NProps } from '../../../server/i18n'
interface ElfShowPageProps {
elf: ElfData
+1 -1
View File
@@ -6,7 +6,7 @@ import ElfCard from '../../../components/molecules/ElfCard'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
import { ElfData } from '../../../lib/honkai3rd/elfs'
import { getI18NProps } from '../../../lib/i18n'
import { getI18NProps } from '../../../server/i18n'
import { listElfs } from '../../../server/data/honkai3rd/elfs'
interface ElfListPageProps {
+1 -1
View File
@@ -5,7 +5,7 @@ import NextLink from 'next/link'
import Breadcrumb from '../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../components/organisms/Honkai3rdNavigator'
import { NextPageContext } from 'next'
import { getI18NProps } from '../../lib/i18n'
import { getI18NProps } from '../../server/i18n'
const updateNotes = [
['v5.3', 'https://honkaiimpact3.mihoyo.com/global/en-us/news/17390'],
@@ -6,7 +6,7 @@ import SingleStigmataPage, {
import StigmataSetPage, {
StigmataSetProps,
} from '../../../components/pages/StigmataSetPage'
import { generateI18NPaths, getI18NProps } from '../../../lib/i18n'
import { generateI18NPaths, getI18NProps } from '../../../server/i18n'
import {
listStigmata,
getStigmataById,
+1 -1
View File
@@ -10,7 +10,7 @@ import StigmataSetCard from '../../../components/molecules/StigmataSetCard'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
import { StigmataData, StigmataSet } from '../../../lib/honkai3rd/stigmata'
import { getI18NProps } from '../../../lib/i18n'
import { getI18NProps } from '../../../server/i18n'
import {
listStigmata,
listStigmataSet,
+1 -1
View File
@@ -20,7 +20,7 @@ import { BattlesuitData } from '../../../lib/honkai3rd/battlesuits'
import { WeaponData } from '../../../lib/honkai3rd/weapons'
import { SupplyEventData } from '../../../lib/honkai3rd/supplyEvents'
import { VersionData } from '../../../lib/honkai3rd/versions'
import { generateI18NPaths, getI18NProps } from '../../../lib/i18n'
import { generateI18NPaths, getI18NProps } from '../../../server/i18n'
interface VersionShowPageProps {
versionData: VersionData
+1 -1
View File
@@ -19,7 +19,7 @@ import { BattlesuitData } from '../../../lib/honkai3rd/battlesuits'
import { WeaponData } from '../../../lib/honkai3rd/weapons'
import { VersionData } from '../../../lib/honkai3rd/versions'
import { SupplyEventData } from '../../../lib/honkai3rd/supplyEvents'
import { getI18NProps } from '../../../lib/i18n'
import { getI18NProps } from '../../../server/i18n'
import { NextPageContext } from 'next'
interface VersionIndexPageProps {
+1 -1
View File
@@ -5,7 +5,7 @@ import SquareImageBox from '../../../components/atoms/SquareImageBox'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
import { WeaponData } from '../../../lib/honkai3rd/weapons'
import { generateI18NPaths, getI18NProps } from '../../../lib/i18n'
import { generateI18NPaths, getI18NProps } from '../../../server/i18n'
import { capitalize } from '../../../lib/string'
import {
getWeaponById,
+1 -1
View File
@@ -9,7 +9,7 @@ import FilterButton from '../../../components/atoms/FilterButton'
import { useRouter } from 'next/router'
import { WeaponData } from '../../../lib/honkai3rd/weapons'
import WeaponCard from '../../../components/molecules/WeaponCard'
import { getI18NProps } from '../../../lib/i18n'
import { getI18NProps } from '../../../server/i18n'
import { NextPageContext } from 'next'
type WeaponListItemData = Pick<