diff --git a/public/locales/en-US/common.json b/public/locales/en-US/common.json index c44ca9d0..22db3735 100644 --- a/public/locales/en-US/common.json +++ b/public/locales/en-US/common.json @@ -15,5 +15,14 @@ "heading": "Battlesuits", "filter-by-features": "Filter by Features", "filter-by-valkyries": "Filter by Valkyries" + }, + "battlesuit-show": { + "leader": "Leader", + "passive": "Passive", + "evasion": "Evasion", + "special-attack": "Special Attack", + "ultimate": "Ultimate", + "basic-attack": "Basic Attack", + "sp-skill": "SP Skill" } } diff --git a/public/locales/ko-KR/common.json b/public/locales/ko-KR/common.json index 795b98b9..5db721d1 100644 --- a/public/locales/ko-KR/common.json +++ b/public/locales/ko-KR/common.json @@ -15,5 +15,14 @@ "heading": "발키리", "filter-by-features": "특성 필터", "filter-by-valkyries": "발키리 필터" + }, + "battlesuit-show": { + "leader": "리더 스킬", + "passive": "패시브 스킬", + "evasion": "회피", + "special-attack": "특수 공격", + "ultimate": "필살기", + "basic-attack": "기본 공격", + "sp-skill": "SP 스킬" } } diff --git a/src/lib/honkai3rd/battlesuits.ts b/src/lib/honkai3rd/battlesuits.ts index c260153d..b6087f38 100644 --- a/src/lib/honkai3rd/battlesuits.ts +++ b/src/lib/honkai3rd/battlesuits.ts @@ -1,8 +1,11 @@ export interface BattlesuitSkill { name: string + krName?: string description: string - requiredRank: string + krDescription: string + requiredRank?: string } + export interface BattlesuitSkillGroup { core: BattlesuitSkill subskills: BattlesuitSkill[] @@ -12,6 +15,7 @@ export interface BattlesuitData { id: string version?: string name: string + krName?: string type: string valkyrie: string features: string[] diff --git a/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx b/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx index 6b5d8ef4..f867310a 100644 --- a/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx +++ b/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx @@ -20,7 +20,8 @@ import { getBattlesuitById, listBattlesuits, } from '../../../server/data/honkai3rd/battlesuits' -import { useTranslation } from '../../../lib/i18n' +import { translate, useTranslation } from '../../../lib/i18n' +import { useRouter } from 'next/router' interface BattlesuitShowPageProps { battlesuit: BattlesuitData @@ -28,6 +29,14 @@ interface BattlesuitShowPageProps { const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => { const { t } = useTranslation() + const { locale } = useRouter() + + const battlesuitName = translate( + locale, + { ['ko-KR']: battlesuit.krName }, + battlesuit.name + ) + return ( @@ -42,12 +51,12 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => { }, { href: `/honkai3rd/battlesuits/${battlesuit.id}`, - label: battlesuit.name, + label: battlesuitName, }, ]} /> - {battlesuit.name} + {battlesuitName} { }} > {battlesuit.name} { {battlesuit.sp != null && ( )} diff --git a/src/pages/honkai3rd/battlesuits/index.tsx b/src/pages/honkai3rd/battlesuits/index.tsx index 369fb8d7..8d679ec8 100644 --- a/src/pages/honkai3rd/battlesuits/index.tsx +++ b/src/pages/honkai3rd/battlesuits/index.tsx @@ -20,7 +20,7 @@ import { translate, useTranslation } from '../../../lib/i18n' type BattlesuitListItemData = Pick< BattlesuitData, - 'id' | 'name' | 'features' | 'type' | 'valkyrie' + 'id' | 'name' | 'krName' | 'features' | 'type' | 'valkyrie' > interface BattlesuitListPageProps { @@ -140,7 +140,10 @@ export async function getStaticProps({ locale }: NextPageContext) { return { props: { battlesuits: listBattlesuits().map((battlesuit) => - pick(['id', 'name', 'features', 'type', 'valkyrie'], battlesuit) + pick( + ['id', 'name', 'krName', 'features', 'type', 'valkyrie'], + battlesuit + ) ), ...(await getI18NProps(locale)), },