Added internationalization of factory names

This commit is contained in:
Sebastian Seedorf
2022-08-19 19:33:38 +02:00
parent 33a5b10fe3
commit f826537aec
11 changed files with 91 additions and 29 deletions

View File

@@ -1,30 +0,0 @@
import { EnrichedEntity, Entity } from '../types'
import details from '../../res/details.json'
import manual from '../../res/manual.json'
import exclude from '../../res/exclude.json'
const manualEntities = manual as Entity[]
const manualKeys = new Set(manualEntities.map(entity => entity.href))
const detailEntities = (details as Entity[]).filter(detail => !manualKeys.has(detail.href))
const joined = [...detailEntities, ...manualEntities]
const factories = joined
.map((detail: EnrichedEntity) => {
detail.usedBy = joined.filter(f =>
Object.keys(f.recipe?.prerequisites ?? {}).includes(detail.href)
)
return detail
})
.filter(detail => !(exclude as string[]).includes(detail.href))
const detailsMap = Object.fromEntries(
factories.map((detail: EnrichedEntity) => [detail.href, detail])
)
export const useFactories = () => ({
factories,
findFactory: (uid: string): EnrichedEntity | undefined => {
return detailsMap[uid]
}
})

8
src/hooks/useLocale.ts Normal file
View File

@@ -0,0 +1,8 @@
import { useRouter } from 'next/router'
import { useMessages } from '../i18n'
export const useLocale = () => {
const { locale: _locale } = useRouter()
const messages = useMessages()
return _locale ?? '' in messages ? (_locale as keyof typeof messages) : 'en'
}