diff --git a/src/App.tsx b/src/App.tsx index 81af0e6..bb0b845 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -41,14 +41,14 @@ const AppToolbar = () => { buttonType="ghost" onPress={() => dispatch(previousDay())} > - {t('calendar:previousDay')} + {t('calendar:previous_day')} dispatch(nextDay())} > - {t('calendar:nextDay')} + {t('calendar:next_day')} @@ -107,12 +107,12 @@ const AppMenu = () => { {!isLg ? ( - {t('core:menu.Menu')} + {t('core:menu.menu')} ) : null} {isOpen || isLg ? ( -
+
@@ -124,7 +124,7 @@ const AppMenu = () => { className="mb-4 mt-auto text-center hover:text-red-700 hover:underline" href="https://github.com/syradar/yxans-klagan/issues/new/choose" > - {t('core:GiveFeedback')} + {t('core:give_feedback')}
diff --git a/src/Menu.tsx b/src/Menu.tsx index 8af3718..4aff40d 100644 --- a/src/Menu.tsx +++ b/src/Menu.tsx @@ -36,48 +36,48 @@ type MenuRoute = { export const menuRoutes: MenuRoute[] = [ { path: '', - label: 'core:menu.Menu', + label: 'core:menu.menu', id: nanoid(), element: , }, { path: 'session', id: nanoid(), - label: 'core:menu.Session', + label: 'core:menu.session', element: , }, { path: 'encounter', id: nanoid(), - label: 'core:menu.Encounters', + label: 'core:menu.encounters', element: , }, { path: 'monsters', showInMenu: true, id: nanoid(), - label: 'core:menu.Monsters', + label: 'core:menu.monsters', element: , children: [ { path: '', showInMenu: false, id: nanoid(), - label: 'core:menu.Session', + label: 'core:menu.session', element: , }, { path: ':section', showInMenu: false, id: nanoid(), - label: 'core:menu.Session', + label: 'core:menu.session', element: , children: [ { path: ':monster', showInMenu: false, id: nanoid(), - label: 'core:menu.npcs.NPCs', + label: 'core:menu.npcs.npcs', element: , }, ], @@ -87,7 +87,7 @@ export const menuRoutes: MenuRoute[] = [ { path: 'calendar', id: nanoid(), - label: 'core:menu.Calendar', + label: 'core:menu.calendar', element: , }, // { @@ -98,18 +98,18 @@ export const menuRoutes: MenuRoute[] = [ { path: 'places', id: nanoid(), - label: 'core:menu.places.Places', + label: 'core:menu.places.places', children: [ { path: 'village', id: nanoid(), - label: 'core:menu.places.Village', + label: 'core:menu.places.village', element: , }, { path: 'map', id: nanoid(), - label: 'core:menu.places.Map', + label: 'core:menu.places.map', element: , }, ], @@ -117,18 +117,18 @@ export const menuRoutes: MenuRoute[] = [ { path: 'gear', id: nanoid(), - label: 'core:menu.gear.Gear', + label: 'core:menu.gear.gear', children: [ { path: 'tables', id: nanoid(), - label: 'core:menu.gear.Tables', + label: 'core:menu.gear.tables', element: , }, { path: 'finds', id: nanoid(), - label: 'core:menu.gear.Finds', + label: 'core:menu.gear.finds', element: , }, ], @@ -136,28 +136,35 @@ export const menuRoutes: MenuRoute[] = [ { path: 'npcs', id: nanoid(), - label: 'core:menu.npcs.NPCs', + label: 'core:menu.npcs.npcs', children: [ { path: 'names', id: nanoid(), - label: 'core:menu.npcs.Names', + label: 'core:menu.npcs.names', element: , }, { path: 'typical', id: nanoid(), - label: 'core:menu.npcs.Typical', + label: 'core:menu.npcs.typical', element: , }, { path: 'npc', id: nanoid(), - label: 'core:menu.npcs.Npc', + label: 'core:menu.npcs.npc', element: , }, ], }, + { + path: '*', + label: 'core:menu.monsters', + id: nanoid(), + element: , + showInMenu: false, + }, ] const createAppRouteRecurisvely = (menuRoutes: MenuRoute[]): RouteObject[] => { @@ -198,7 +205,7 @@ export const Menu = ({ menuRoutes, close }: MenuProps) => { return ( <> {menuRoutes - .filter((mr) => mr.path !== '' || mr.showInMenu !== false) + .filter((mr) => mr.path !== '' && mr.showInMenu !== false) .map((route) => { if ( route.children && diff --git a/src/components/Name.tsx b/src/components/Name.tsx index 17d0b52..f11778f 100644 --- a/src/components/Name.tsx +++ b/src/components/Name.tsx @@ -17,9 +17,9 @@ export const Name = ({ name }: NameProps) => { {name[currentLang].firstName} {name[currentLang]?.familyName && ` ${name[currentLang].familyName}`} {name[currentLang]?.homeName && - ` ${t('names:OF')} ${name[currentLang].homeName}`} + ` ${t('names:of')} ${name[currentLang].homeName}`} {name[currentLang]?.nickName && - ` ${t('names:THE')} ${name[currentLang].nickName}`} + ` ${t('names:the')} ${name[currentLang].nickName}`} ) } diff --git a/src/components/ParchmentButton.tsx b/src/components/ParchmentButton.tsx index 90662d0..52c1a7d 100644 --- a/src/components/ParchmentButton.tsx +++ b/src/components/ParchmentButton.tsx @@ -40,6 +40,7 @@ export const ParchmentButton = (props: ParchmentButtonProps) => { group min-w-fit ${isDisabled ? 'cursor-not-allowed' : 'cursor-pointer'} ${props.fullWidth ? 'w-full' : 'w-fit'} + focus:outline-none `} > diff --git a/src/components/calendar-day-names.tsx b/src/components/calendar-day-names.tsx index 273cbb0..2f6181a 100755 --- a/src/components/calendar-day-names.tsx +++ b/src/components/calendar-day-names.tsx @@ -22,25 +22,25 @@ export const CalendarDayNames = () => { return ( <> - {t('calendar:SunDay')} + {t('calendar:sun_day')} - {t('calendar:MoonDay')} + {t('calendar:moon_day')} - {t('calendar:BloodDay')} + {t('calendar:blood_day')} - {t('calendar:EarthDay')} + {t('calendar:earth_day')} - {t('calendar:GrowthDay')} + {t('calendar:growth_day')} - {t('calendar:HarvestDay')} + {t('calendar:harvest_day')} - {t('calendar:StillDay')} + {t('calendar:still_day')} ) diff --git a/src/components/calendar-day.tsx b/src/components/calendar-day.tsx index f59824e..41b0158 100755 --- a/src/components/calendar-day.tsx +++ b/src/components/calendar-day.tsx @@ -47,8 +47,8 @@ export const CalendarDayDisplay = ({ day }: CalendarDayProps) => {
{getMoonEmoji(day.moon)}
- {day.moon === 'new' && t('calendar:NewMoon')} - {day.moon === 'full' && t('calendar:FullMoon')} + {day.moon === 'new' && t('calendar:new_moon')} + {day.moon === 'full' && t('calendar:fullMoon')}
)} diff --git a/src/components/encounter.tsx b/src/components/encounter.tsx index 670c414..32b8261 100644 --- a/src/components/encounter.tsx +++ b/src/components/encounter.tsx @@ -1,5 +1,6 @@ import { allEncounters } from '../data/encounter.data' import { EncounterViewModel } from '../models/encounter.model' +import { terrainTranslationDict } from '../models/terrain.model' import { useAppSelector } from '../store/store.hooks' import { selectCurrentLanguage, @@ -31,14 +32,12 @@ export const Encounter = ({ encounter }: EncounterProps) => {
<> - {t('common:Page')}. {encounter.page} + {t('common:page')}. {encounter.page}
{encounter.possibleTerrains.map((pt) => ( - - <>{t(`common:Terrain.${pt}`)} - + {t(terrainTranslationDict[pt])} ))} diff --git a/src/components/month-collapse-button.tsx b/src/components/month-collapse-button.tsx index 98123d5..a12e201 100644 --- a/src/components/month-collapse-button.tsx +++ b/src/components/month-collapse-button.tsx @@ -21,7 +21,7 @@ export const MonthCollapseButton = ({ return (

- {t('finds:Find.Location.Lair')} + {t('finds:find.location.lair')}

@@ -118,11 +121,11 @@ export const FindsPage = () => {

- {t(`finds:Find.${find.title}`)} + {t(findLabelsDict[find.title])}

- + {find.value.length > 0 ? find.value .map((v) => `${v.coins} ${t(v.label)}`) @@ -130,14 +133,14 @@ export const FindsPage = () => { : '–'} - + {t(find.weight)} - - {t(`finds:Find.Type.${find.type}`)} + + {t(findTypeTranslactionDict[find.type])} - - {t(`finds:Find.Location.${find.location}`)} + + {t(findLocationTranslactionDict[find.location])} diff --git a/src/pages/gear.page.tsx b/src/pages/gear.page.tsx index 7a1dcf2..71c0057 100755 --- a/src/pages/gear.page.tsx +++ b/src/pages/gear.page.tsx @@ -24,15 +24,16 @@ import { TradeGoods, TradeGoodsViewModel, gearCategoryLabelDict, + gearCategoryTranslationDict, + marketTypeTranslationDict, } from '../features/gear/gear.data' import { ServiceViewModel } from '../features/gear/services.data' -import { capitalize, notNullish } from '../functions/utils.functions' +import { notNullish } from '../functions/utils.functions' import { materialLabelDict } from '../models/material.model' import { talentLabelDict } from '../models/talent.model' import { toolLabelDict } from '../models/tool.model' import { weightLabelDict } from '../models/weight.model' import { useAppDispatch, useAppSelector } from '../store/store.hooks' -import { TranslationKey } from '../store/translations/translation.model' import { selectTranslateFunction } from '../store/translations/translation.slice' export const GearPage = () => { @@ -41,7 +42,7 @@ export const GearPage = () => { return (
- {t('gear:Title')} + {t('gear:title')}
@@ -60,7 +61,7 @@ export const GearPage = () => {
{gear.tradeGoods.length > 0 ? (

- {t('gear:Gear.tradeGoods')} + {t('gear:gear.trade_goods')}

) : null} {gear.tradeGoods.map((g) => ( @@ -105,21 +106,17 @@ const GearCard = ({ gear }: { gear: TradeGoodsViewModel }) => {
{t(gear.effects.label)}
- + {t(gear.supply.label)} {notNullish(gear.supply.amount) ? ( ({gear.supply.amount}) ) : null} - + {t(weightLabelDict[gear.weight])} - - {t( - `gear:MarketType.${capitalize( - gear.marketType, - )}` as TranslationKey<'gear'>, - )} + + {t(marketTypeTranslationDict[gear.marketType])} @@ -172,18 +169,14 @@ const ServiceCard = ({ service }: { service: ServiceViewModel }) => {
{t(service.effects.label)}
- + {t(service.supply.label)} {notNullish(service.supply.amount) ? ( ({service.supply.amount}) ) : null} - - {t( - `gear:MarketType.${capitalize( - service.marketType, - )}` as TranslationKey<'gear'>, - )} + + {t(marketTypeTranslationDict[service.marketType])} @@ -208,7 +201,7 @@ const GearFilterPanel = () => { @@ -223,14 +216,14 @@ const GearFilterPanel = () => { key={c.category} onPress={() => dispatch(toggleCategory(c.category))} > - {t(`gear:category.${c.category}`)} + {t(gearCategoryTranslationDict[c.category])} ))}
{ buttonType="danger" > - {t('gear:Supply.Reroll')} + {t('gear:supply.reroll')}
@@ -283,7 +276,7 @@ const GearPrice = ({ price }: { price: TradeGoods['price'] }) => { return (
- {t('common:Coin.day')} + {t('common:coin.day')}
) } @@ -292,7 +285,7 @@ const GearPrice = ({ price }: { price: TradeGoods['price'] }) => { return (
- {t('common:Coin.hex')} + {t('common:coin.hex')}
) } @@ -316,9 +309,9 @@ const Coin = ({ children, denomination }: CoinProps) => {
{children}{' '} - {denomination === 'copper' ? t('common:Coin.Copper') : ''} - {denomination === 'silver' ? t('common:Coin.Silver') : ''} - {denomination === 'gold' ? t('common:Coin.Gold') : ''} + {denomination === 'copper' ? t('common:coin.copper') : ''} + {denomination === 'silver' ? t('common:coin.silver') : ''} + {denomination === 'gold' ? t('common:coin.gold') : ''}
{ return (
- {t('home:Page')} + {t('home:page')} -

{t('home:Description')}

+

{t('home:description')}

- {t('home:GameTitle')} + {t('home:game_title')} -

{t('home:GameDescription')}

+

{t('home:game_description')}

- {t('home:ThanksTo')}{' '} + {t('home:thanks_to')}{' '} - {t('home:FreeLeague')} + {t('home:free_league')} {' '} - {t('home:ForAFantasticGame')} + {t('home:for_afantastic_game')}

- {t('home:CommunityTitle')} + {t('home:community_title')} -

{t('home:ThanksCommunity')}

+

{t('home:thanks_community')}

diff --git a/src/pages/npc/KinNameList.tsx b/src/pages/npc/KinNameList.tsx index 6446fb2..bd9efd8 100644 --- a/src/pages/npc/KinNameList.tsx +++ b/src/pages/npc/KinNameList.tsx @@ -10,7 +10,7 @@ import { selectTranslateFunction, } from '../../store/translations/translation.slice' import { NameList } from './NameList' -import { HumanKin } from './name' +import { HumanKin, humanKinTranslationDict } from './name' import { ValidLanguage } from '../../hooks/useValidLanguage' interface KinNameListProps { @@ -41,27 +41,23 @@ export const KinNameList = ({ title, nameFunc }: KinNameListProps) => {
- {t(`common:Kin.Human.${title}`)} + {t(humanKinTranslationDict[title])} getNames()}> <> - {t('names:CreateNewNames')} + {t('names:create_new_names')}
-

- {t('common:Gender.Women')} -

+ {t('common:gender.women')}
-

- {t('common:Gender.Men')} -

+ {t('common:gender.men')}
diff --git a/src/pages/npc/NameGeneratorPage.tsx b/src/pages/npc/NameGeneratorPage.tsx index b59b5c0..cc072b4 100755 --- a/src/pages/npc/NameGeneratorPage.tsx +++ b/src/pages/npc/NameGeneratorPage.tsx @@ -14,13 +14,13 @@ export const NameGeneratorPage = () => { return (
- {t('names:Title')} + {t('names:title')}
@@ -29,7 +29,7 @@ export const NameGeneratorPage = () => {
@@ -38,7 +38,7 @@ export const NameGeneratorPage = () => {
diff --git a/src/pages/npc/NameList.test.tsx b/src/pages/npc/NameList.test.tsx index 730ff3d..c758e43 100644 --- a/src/pages/npc/NameList.test.tsx +++ b/src/pages/npc/NameList.test.tsx @@ -14,8 +14,8 @@ describe('NameList', () => { }) it('should render names', async () => { - const names: string[][] = [['Aedwulf', 'names:OF', 'Duvemåla']] - const expected = 'Aedwulf names:OF Duvemåla' + const names: string[][] = [['Aedwulf', 'names:of', 'Duvemåla']] + const expected = 'Aedwulf names:of Duvemåla' const { getByTestId } = render( diff --git a/src/pages/npc/NpcPage.tsx b/src/pages/npc/NpcPage.tsx index 213785e..0f1253b 100755 --- a/src/pages/npc/NpcPage.tsx +++ b/src/pages/npc/NpcPage.tsx @@ -2,9 +2,10 @@ import { useState } from 'react' import { PageHeader } from '../../components/page-header' import { Parchment } from '../../components/parchment' import { ParchmentButton } from '../../components/ParchmentButton' -import { Pancake } from '../../components/Stack' +import { withId } from '../../functions/utils.functions' import { useAppSelector } from '../../store/store.hooks' import { selectTranslateFunction } from '../../store/translations/translation.slice' +import { chacteristicTranslationDict } from './characteristics' import { getRandomCharacteristic, getRandomKinType, @@ -12,6 +13,8 @@ import { getRandomQuirk, NPC, } from './npc' +import { occupationTranslationDict } from './occupation' +import { quirkTranslationDict } from './quirk' export const NpcPage = () => { const t = useAppSelector(selectTranslateFunction(['npc', 'common'])) @@ -32,20 +35,24 @@ export const NpcPage = () => { return (
- {t('npc:Title')} + {t('npc:title')} generateOccupation()}> - {t('npc:NpcButton')} + {t('npc:npc_button')} - -
- {t(`npc:Occupation.${npc.occupation}`)} -
-
- {t(`npc:Characteristic.${npc.characteristic}`)} -
-
{t(`npc:Quirk.${npc.quirk}`)}
-
+
+ {[ + t(occupationTranslationDict[npc.occupation]), + t(chacteristicTranslationDict[npc.characteristic]), + t(quirkTranslationDict[npc.quirk]), + ] + .map(withId) + .map(({ id, value }) => ( +

+ {value} +

+ ))} +
) diff --git a/src/pages/npc/TypicalKinDisplay.tsx b/src/pages/npc/TypicalKinDisplay.tsx index f3d868c..95851fa 100755 --- a/src/pages/npc/TypicalKinDisplay.tsx +++ b/src/pages/npc/TypicalKinDisplay.tsx @@ -1,17 +1,27 @@ import { useState } from 'react' +import Stack, { Grid, Pancake, Train } from '../../components/Stack' +import { Stat } from '../../components/Stat' +import { Tag } from '../../components/Tag' import { ParchmentCard } from '../../components/card' import { Field } from '../../components/field' import { Group } from '../../components/group' import { Parchment } from '../../components/parchment' -import Stack, { Grid, Pancake, Train } from '../../components/Stack' -import { Stat } from '../../components/Stat' -import { Tag } from '../../components/Tag' -import { AllSkillsValuesViewModel } from '../../models/skills.model' +import { rangeTranslationDict } from '../../models/attack-range' +import { + AllSkillsValuesViewModel, + skillsTranslationDict, +} from '../../models/skills.model' import { ID } from '../../models/utils.model' -import { TypicalKinViewModel } from './typical-kin' import { useAppSelector } from '../../store/store.hooks' -import { TranslationKey } from '../../store/translations/translation.model' import { selectTranslateFunction } from '../../store/translations/translation.slice' +import { + armorFeaturesTranslationDict, + armorTypeTranslationDict, + helmetTypeTranslationDict, +} from './armor' +import { TypicalKinViewModel } from './typical-kin' +import { weaponFeatureTranslationDict, weaponName } from './weapon' +import { shieldTypesTranslationDict } from './shield' export interface TypicalKinProps { tkvm: TypicalKinViewModel @@ -24,11 +34,7 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => { const formatSkills = (asvm: AllSkillsValuesViewModel): string => asvm - .map(([skill, value]) => { - const skillName = t(`common:Skills.${skill}`) - - return `${skillName} ${value}` - }) + .map(([skill, value]) => `${t(skillsTranslationDict[skill])} ${value}`) .join(', ') const toggleKin = () => { @@ -70,38 +76,43 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => { - + {tkvm.attributes.strength?.value} - + {tkvm.attributes.agility?.value} - + {tkvm.attributes.wits?.value} - + {tkvm.attributes.empathy?.value} - {tkvm.description && ( - + + {tkvm.description ? ( + <>{t(tkvm.description)} - )} - + ) : null} + + {formatSkills(tkvm.skills)} + {tkvm.talents.length > 0 ? tkvm.talents.map((talent) => t(talent)).join(', ') : '–'} - {tkvm.gear.length > 0 && ( - + + {tkvm.gear.length > 0 ? ( + {tkvm.gear.map((g) => t(g)).join(', ')} - )} + ) : null} + {tkvm.weapons.map((w) => ( {

- <> - {t( - `common:Weapon.${w.category}.${w.name}` as TranslationKey<'common'>, - )} - + {t(weaponName(w.category, w.name))}

- {w.collapse && w.bonus && ( + {w.collapse && w.bonus ? (

{formatBonus(w.bonus)}

- )} - {w.collapse && ( + ) : null} + {w.collapse ? (

{w.damage}{' '} - {t('common:Weapon.Damage').toString().toLowerCase()} + {t('common:weapon.damage').toString().toLowerCase()}

- )} + ) : null}
} @@ -136,26 +143,22 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => { > - {w.grip} - + {w.grip} + {w.bonus ?? '–'} - {w.damage} - - <> - {t( - `common:Range.${w.range}` as TranslationKey<'common'>, - )} - + {w.damage} + + <>{t(rangeTranslationDict[w.range])} - {w.features.length > 0 && ( + {w.features.length > 0 ? ( {w.features.map((f) => ( - {t(`common:Weapon.Feature.${f}`)} + {t(weaponFeatureTranslationDict[f])} ))} - )} + ) : null}
))} @@ -169,13 +172,13 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => {

- {t(`common:Shield.${s.type}`)} + {t(shieldTypesTranslationDict[s.type])}

- {s.collapse && ( + {s.collapse ? (

{formatBonus(s.bonus)}

- )} + ) : null}
} @@ -184,21 +187,23 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => { > - {s.bonus} + {s.bonus} - {s.features.length > 0 && ( + {s.features.length > 0 ? ( {s.features.map((s) => ( - {t(`common:ArmorFeature.${s}`)} + {t(weaponFeatureTranslationDict[s])} ))} - )} + ) : null} ))}
{tkvm.armors.map((a) => ( + // helmetTypeTranslationDict + {

- {t(`common:Armor.${a.type}`)} + {t(armorTypeTranslationDict[a.type])}

- {a.collapse && ( + {a.collapse ? (

{a.rating}

- )} + ) : null}
} @@ -219,20 +224,20 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => { > - {a.rating} - - {t(`common:Armor.Body`)} + {a.rating} + + {t(`common:armor.body`)} - {a.features.length > 0 && ( + {a.features.length > 0 ? ( {a.features.map((feature) => ( - {t(`common:ArmorFeature.${feature}`)} + {t(armorFeaturesTranslationDict[feature])} ))} - )} + ) : null}
))} @@ -246,11 +251,11 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => {

- {t(`common:Helmet.${h.type}`)} + {t(helmetTypeTranslationDict[h.type])}

- {h.collapse && ( + {h.collapse ? (

{h.rating}

- )} + ) : null}
} @@ -259,20 +264,20 @@ export const TypicalKinDisplay = (typicalKinViewModel: TypicalKinProps) => { > - {h.rating} - - {t(`common:Helmet.Body`)} + {h.rating} + + {t(`common:helmet.body`)} - {h.features.length > 0 && ( + {h.features.length > 0 ? ( {h.features.map((feature) => ( - {t(`common:ArmorFeature.${feature}`)} + {t(armorFeaturesTranslationDict[feature])} ))} - )} + ) : null} ))} diff --git a/src/pages/npc/TypicalKinPage.tsx b/src/pages/npc/TypicalKinPage.tsx index 710e5b5..0668247 100755 --- a/src/pages/npc/TypicalKinPage.tsx +++ b/src/pages/npc/TypicalKinPage.tsx @@ -57,9 +57,9 @@ export const TypicalKinPage = () => { return (
- {t('typical:Title')} + {t('typical:title')}

- {t('common:Kin.Human.Humans')} + {t('common:kin.human.humans')}

{humanKinViewModels.map((tkvm) => ( @@ -67,7 +67,7 @@ export const TypicalKinPage = () => { ))}

- {t('common:Kin.Elf.Elves')} + {t('common:kin.elf.elves')}

{elfKinViewModels.map((tkvm) => ( @@ -75,7 +75,7 @@ export const TypicalKinPage = () => { ))}

- {t('common:Kin.Dwarf.Dwarves')} + {t('common:kin.dwarf.dwarves')}

{dwarfKinViewModels.map((tkvm) => ( @@ -83,7 +83,7 @@ export const TypicalKinPage = () => { ))}

- {t('common:Kin.Orc.Orcs')} + {t('common:kin.orc.orcs')}

{orcKinViewModels.map((tkvm) => ( @@ -94,7 +94,7 @@ export const TypicalKinPage = () => {

- {t('common:Kin.Ogre.Ogres')} + {t('common:kin.ogre.ogres')}

{ogreKinViewModels.map((tkvm) => ( @@ -102,7 +102,7 @@ export const TypicalKinPage = () => {

- {t('common:Kin.Wolfkin.Wolfkins')} + {t('common:kin.wolfkin.wolfkins')}

{wolfkinKinViewModels.map((tkvm) => ( @@ -113,7 +113,7 @@ export const TypicalKinPage = () => {

- {t('common:Kin.Saurian.Saurians')} + {t('common:kin.saurian.saurians')}

{saurianKinViewModels.map((tkvm) => ( @@ -121,7 +121,7 @@ export const TypicalKinPage = () => {

- {t('common:Kin.Whiner.Whiners')} + {t('common:kin.whiner.whiners')}

{whinerKinViewModels.map((tkvm) => ( @@ -129,7 +129,7 @@ export const TypicalKinPage = () => {

- {t('common:Kin.HalflingAndGoblin.HalflingAndGoblins')} + {t('common:kin.halfling_and_goblin.halfling_and_goblins')}

{halflingAndGoblinKinViewModels.map((tkvm) => ( @@ -138,7 +138,7 @@ export const TypicalKinPage = () => {

- {t('common:Kin.Believers.Believers')} + {t('common:kin.believers.believers')}

{believerKinViewModels.map((tkvm) => ( diff --git a/src/pages/npc/armor.test.ts b/src/pages/npc/armor.test.ts index 4cf524d..f916153 100644 --- a/src/pages/npc/armor.test.ts +++ b/src/pages/npc/armor.test.ts @@ -6,21 +6,21 @@ import { describe, it, expect } from 'vitest' describe('createProtectionViewModel', () => { it('should add collapse property', () => { const expected = true - const result = 'collapse' in createProtectionViewModel(armors.Leather) + const result = 'collapse' in createProtectionViewModel(armors.leather) expect(result).toEqual(expected) }) it('should add id property', () => { const expected = true - const result = 'id' in createProtectionViewModel(armors.Leather) + const result = 'id' in createProtectionViewModel(armors.leather) expect(result).toEqual(expected) }) it('should use 21 character string as id', () => { const expected = true - const vm = createProtectionViewModel(armors.Leather) + const vm = createProtectionViewModel(armors.leather) const result = isString(vm.id) && vm.id.length === 21 expect(result).toEqual(expected) @@ -30,21 +30,21 @@ describe('createProtectionViewModel', () => { describe('createHelmetViewModel', () => { it('should add collapse property', () => { const expected = true - const result = 'collapse' in createProtectionViewModel(helmets.GreatHelm) + const result = 'collapse' in createProtectionViewModel(helmets.greatHelm) expect(result).toEqual(expected) }) it('should add id property', () => { const expected = true - const result = 'id' in createProtectionViewModel(helmets.GreatHelm) + const result = 'id' in createProtectionViewModel(helmets.greatHelm) expect(result).toEqual(expected) }) it('should use 21 character string as id', () => { const expected = true - const vm = createProtectionViewModel(helmets.GreatHelm) + const vm = createProtectionViewModel(helmets.greatHelm) const result = isString(vm.id) && vm.id.length === 21 expect(result).toEqual(expected) diff --git a/src/pages/npc/armor.ts b/src/pages/npc/armor.ts index f3c75b6..e0c372e 100644 --- a/src/pages/npc/armor.ts +++ b/src/pages/npc/armor.ts @@ -1,25 +1,54 @@ +import { translationDict } from '../../functions/translation-dict' import { CollapseAble, getId, Unique } from '../../models/utils.model' +import { TranslationKey } from '../../store/translations/translation.model' export type ArmorType = - | 'Leather' - | 'StuddedLeather' - | 'Chainmail' - | 'Plate' - | 'Natural' + | 'leather' + | 'studdedLeather' + | 'chainmail' + | 'plate' + | 'natural' export type HelmetType = - | 'StuddedLeather' - | 'OpenHelmet' - | 'ClosedHelmet' - | 'GreatHelm' - -type ArmorFeature = - | 'PenetrationProtection' - | 'HardToMove' - | 'HardToSee' - | 'Normal' - | 'Light' - | 'Heavy' + | 'studdedLeather' + | 'openHelmet' + | 'closedHelmet' + | 'greatHelm' + +export const armorTypeTranslationDict: Record< + ArmorType, + TranslationKey<'common'> +> = { + leather: 'common:armor.leather', + studdedLeather: 'common:armor.studded_leather', + chainmail: 'common:armor.chainmail', + plate: 'common:armor.plate', + natural: 'common:armor.natural', +} + +export const helmetTypeTranslationDict: Record< + HelmetType, + TranslationKey<'common'> +> = { + studdedLeather: 'common:armor.studded_leather', + openHelmet: 'common:helmet.open_helmet', + closedHelmet: 'common:helmet.closed_helmet', + greatHelm: 'common:helmet.great_helm', +} +const armorFeatures = [ + 'penetrationProtection', + 'hardToMove', + 'hardToSee', + 'normal', + 'light', + 'heavy', +] as const +export type ArmorFeature = (typeof armorFeatures)[number] +export const armorFeaturesTranslationDict = translationDict( + armorFeatures, + 'common', + 'armor_feature.', +) export interface ProtectionBase { type: A diff --git a/src/pages/npc/characteristics.ts b/src/pages/npc/characteristics.ts index 381fd39..b127e0d 100644 --- a/src/pages/npc/characteristics.ts +++ b/src/pages/npc/characteristics.ts @@ -1,42 +1,50 @@ +import { translationDict } from '../../functions/translation-dict' + const chacteristics = [ - 'IceBlueEyes', - 'FluffyHair', - 'ScarredFace', - 'SeveredEar', - 'EyePatch', - 'MissingTeeth', - 'Graceful', - 'Towering', - 'ImpressiveBeardOrHair', - 'RoundCheeks', - 'DistinctBirthmark', - 'StrangeFacialPaint', - 'SadEyes', - 'SmellsBad', - 'Perfumed', - 'Cocky', - 'ConstantlySmiling', - 'Sullen', - 'ConstantlyJoking', - 'Lovesick', - 'Elegant', - 'Tattooed', - 'ConstantlyEating', - 'Desperate', - 'Hateful', - 'Sweaty', - 'Drunk', - 'Suspicious', - 'VeryBeautiful', - 'Foppish', - 'Fat', - 'Seducing', - 'Lazy', - 'VeryTired', - 'Wiry', - 'UnkemptEyeBrows', + 'iceBlueEyes', + 'fluffyHair', + 'scarredFace', + 'severedEar', + 'eyePatch', + 'missingTeeth', + 'graceful', + 'towering', + 'impressiveBeardOrHair', + 'roundCheeks', + 'distinctBirthmark', + 'strangeFacialPaint', + 'sadEyes', + 'smellsBad', + 'perfumed', + 'cocky', + 'constantlySmiling', + 'sullen', + 'constantlyJoking', + 'lovesick', + 'elegant', + 'tattooed', + 'constantlyEating', + 'desperate', + 'hateful', + 'sweaty', + 'drunk', + 'suspicious', + 'veryBeautiful', + 'foppish', + 'fat', + 'seducing', + 'lazy', + 'veryTired', + 'wiry', + 'unkemptEyeBrows', ] as const -export type Chacteristics = (typeof chacteristics)[number] +export type Chacteristic = (typeof chacteristics)[number] + +export const getChacteristics = (): Chacteristic[] => [...chacteristics] -export const getChacteristics = (): Chacteristics[] => [...chacteristics] +export const chacteristicTranslationDict = translationDict( + chacteristics, + 'npc', + 'characteristic.', +) diff --git a/src/pages/npc/data/armor.data.ts b/src/pages/npc/data/armor.data.ts index c697c27..ae9b648 100644 --- a/src/pages/npc/data/armor.data.ts +++ b/src/pages/npc/data/armor.data.ts @@ -1,55 +1,55 @@ import { ArmorType, Armor, HelmetType, Helmet } from '../armor' -export const armors: { [A in Exclude]: Armor } = { - Leather: { - type: 'Leather', +export const armors: { [A in Exclude]: Armor } = { + leather: { + type: 'leather', rating: 2, bodyPart: 'Body', - features: ['Light'], + features: ['light'], }, - StuddedLeather: { - type: 'StuddedLeather', + studdedLeather: { + type: 'studdedLeather', rating: 3, bodyPart: 'Body', features: [], }, - Chainmail: { - type: 'Chainmail', + chainmail: { + type: 'chainmail', rating: 6, bodyPart: 'Body', - features: ['Heavy', 'PenetrationProtection'], + features: ['heavy', 'penetrationProtection'], }, - Plate: { - type: 'Plate', + plate: { + type: 'plate', rating: 8, bodyPart: 'Body', - features: ['Heavy', 'HardToMove'], + features: ['heavy', 'hardToMove'], }, } export const helmets: { [H in HelmetType]: Helmet } = { - StuddedLeather: { - type: 'StuddedLeather', + studdedLeather: { + type: 'studdedLeather', rating: 1, bodyPart: 'Head', - features: ['Light'], + features: ['light'], }, - OpenHelmet: { - type: 'OpenHelmet', + openHelmet: { + type: 'openHelmet', rating: 2, bodyPart: 'Head', - features: ['Light'], + features: ['light'], }, - ClosedHelmet: { - type: 'ClosedHelmet', + closedHelmet: { + type: 'closedHelmet', rating: 3, bodyPart: 'Head', features: [], }, - GreatHelm: { - type: 'GreatHelm', + greatHelm: { + type: 'greatHelm', rating: 4, bodyPart: 'Head', - features: ['Heavy', 'HardToSee'], + features: ['heavy', 'hardToSee'], }, } diff --git a/src/pages/npc/data/name.data.ts b/src/pages/npc/data/name.data.ts index 3e0d52a..6b276fb 100644 --- a/src/pages/npc/data/name.data.ts +++ b/src/pages/npc/data/name.data.ts @@ -1,7 +1,7 @@ import { HumanNames } from '../name' export const humanNames: HumanNames = { - Alderlander: { + alderlander: { Male: { probabilites: [ { @@ -184,7 +184,7 @@ export const humanNames: HumanNames = { 'Zumi', ], }, - Aslene: { + aslene: { Male: { probabilites: [ { @@ -364,7 +364,7 @@ export const humanNames: HumanNames = { 'NickNames.Young', ], }, - Ailander: { + ailander: { Male: { probabilites: [ { diff --git a/src/pages/npc/data/shield.data.ts b/src/pages/npc/data/shield.data.ts index 68371eb..ceaa33f 100644 --- a/src/pages/npc/data/shield.data.ts +++ b/src/pages/npc/data/shield.data.ts @@ -1,13 +1,13 @@ import { Shield, ShieldType } from '../shield' export const shields: { [S in ShieldType]: Shield } = { - Small: { - type: 'Small', + small: { + type: 'small', bonus: 1, - features: ['Light'], + features: ['light'], }, - Large: { - type: 'Large', + large: { + type: 'large', bonus: 2, features: [], }, diff --git a/src/pages/npc/data/typical-kin.data.ts b/src/pages/npc/data/typical-kin.data.ts index 1338076..c0df314 100644 --- a/src/pages/npc/data/typical-kin.data.ts +++ b/src/pages/npc/data/typical-kin.data.ts @@ -16,10 +16,10 @@ import { armors, helmets } from './armor.data' import { shields } from './shield.data' import { meleeWeapons, rangedWeapons } from './weapon.data' -export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { - Ailander: { - kin: 'Ailander', - kinType: 'Human', +export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { + ailander: { + kin: 'ailander', + kinType: 'human', attributes: { strength: 3, agility: 3, @@ -28,21 +28,21 @@ export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Move: 2, - Markmanship: 2, - Healing: 1, + melee: 2, + move: 2, + markmanship: 2, + healing: 1, }, talents: [], - gear: ['common:Gear.D6Silver'], - weapons: [meleeWeapons.ShortSword, rangedWeapons.ShortBow], + gear: ['common:gear.d6silver'], + weapons: [meleeWeapons.shortSword, rangedWeapons.shortBow], armors: [], shields: [], helmets: [], }, - Frailer: { - kin: 'Frailer', - kinType: 'Human', + frailer: { + kin: 'frailer', + kinType: 'human', attributes: { strength: 2, agility: 3, @@ -51,20 +51,20 @@ export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Lore: 2, - Insight: 2, - Manipulation: 2, + lore: 2, + insight: 2, + manipulation: 2, }, talents: [], - gear: ['common:Gear.InkAndQuill'], - weapons: [meleeWeapons.Dagger], + gear: ['common:gear.ink_and_quill'], + weapons: [meleeWeapons.dagger], armors: [], shields: [], helmets: [], }, - SilentGuard: { - kin: 'SilentGuard', - kinType: 'Human', + silentGuard: { + kin: 'silentGuard', + kinType: 'human', attributes: { strength: 4, agility: 3, @@ -73,21 +73,21 @@ export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 2, - Melee: 3, - Markmanship: 2, - Insight: 4, + might: 2, + melee: 3, + markmanship: 2, + insight: 4, }, talents: [], gear: [], - weapons: [meleeWeapons.ShortSpear, rangedWeapons.HeavyCrossbow], - armors: [armors.Chainmail], - shields: [shields.Large], - helmets: [helmets.GreatHelm], + weapons: [meleeWeapons.shortSpear, rangedWeapons.heavyCrossbow], + armors: [armors.chainmail], + shields: [shields.large], + helmets: [helmets.greatHelm], }, - Alderlander: { - kin: 'Alderlander', - kinType: 'Human', + alderlander: { + kin: 'alderlander', + kinType: 'human', attributes: { strength: 3, agility: 3, @@ -96,20 +96,20 @@ export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Move: 1, - Insight: 2, + melee: 2, + move: 1, + insight: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.BroadSword], - armors: [armors.Leather], + weapons: [meleeWeapons.broadSword], + armors: [armors.leather], shields: [], helmets: [], }, - Aslene: { - kin: 'Aslene', - kinType: 'Human', + aslene: { + kin: 'aslene', + kinType: 'human', attributes: { strength: 3, agility: 4, @@ -118,21 +118,21 @@ export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Markmanship: 2, - Move: 2, - AnimalHandling: 2, + melee: 2, + markmanship: 2, + move: 2, + animal_handling: 2, }, talents: ['horseMaster'], - gear: ['common:Gear.RidingHorse'], - weapons: [meleeWeapons.ShortSpear, rangedWeapons.ShortBow], - armors: [armors.Leather], + gear: ['common:gear.riding_horse'], + weapons: [meleeWeapons.shortSpear, rangedWeapons.shortBow], + armors: [armors.leather], shields: [], helmets: [], }, - MaidenDruid: { - kin: 'MaidenDruid', - kinType: 'Human', + maidenDruid: { + kin: 'maidenDruid', + kinType: 'human', attributes: { strength: 2, agility: 3, @@ -141,25 +141,25 @@ export const humanTypicalKins: { [K in HumanKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Markmanship: 2, - Lore: 2, - Manipulation: 2, - Move: 1, + melee: 2, + markmanship: 2, + lore: 2, + manipulation: 2, + move: 1, }, talents: ['shiftingShapes2'], gear: [], - weapons: [meleeWeapons.Dagger, rangedWeapons.ShortBow], - armors: [armors.Leather], + weapons: [meleeWeapons.dagger, rangedWeapons.shortBow], + armors: [armors.leather], shields: [], helmets: [], }, } -export const elfTypicalKins: { [K in ElfKin]: TypicalKin } = { - StillElf: { - kin: 'StillElf', - kinType: 'Elf', +export const elfTypicalKins: { [K in ElfKin]: TypicalKin } = { + stillElf: { + kin: 'stillElf', + kinType: 'elf', attributes: { strength: 3, agility: 3, @@ -168,21 +168,21 @@ export const elfTypicalKins: { [K in ElfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Crafting: 4, - Lore: 5, - Insight: 4, + melee: 2, + crafting: 4, + lore: 5, + insight: 4, }, talents: ['shiftingShapes3'], gear: [], - weapons: [meleeWeapons.Staff], + weapons: [meleeWeapons.staff], armors: [], shields: [], helmets: [], }, - UnrulyElf: { - kin: 'UnrulyElf', - kinType: 'Elf', + unrulyElf: { + kin: 'unrulyElf', + kinType: 'elf', attributes: { strength: 3, agility: 4, @@ -191,27 +191,27 @@ export const elfTypicalKins: { [K in ElfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Endurance: 2, - Stealth: 3, - Markmanship: 2, - Scouting: 2, - Survival: 2, + melee: 2, + endurance: 2, + stealth: 3, + markmanship: 2, + scouting: 2, + survival: 2, }, talents: ['pathOfTheArrow2'], gear: [], weapons: [ - meleeWeapons.ShortSpear, - meleeWeapons.Knife, - rangedWeapons.LongBow, + meleeWeapons.shortSpear, + meleeWeapons.knife, + rangedWeapons.longBow, ], armors: [], shields: [], helmets: [], }, - GoldenBough: { - kin: 'GoldenBough', - kinType: 'Elf', + goldenBough: { + kin: 'goldenBough', + kinType: 'elf', attributes: { strength: 3, agility: 3, @@ -220,23 +220,23 @@ export const elfTypicalKins: { [K in ElfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Scouting: 2, - Lore: 3, - Markmanship: 2, - Survival: 3, - AnimalHandling: 3, + melee: 2, + scouting: 2, + lore: 3, + markmanship: 2, + survival: 3, + animal_handling: 3, }, talents: ['pathOfHealing2'], gear: [], - weapons: [meleeWeapons.Falchion, rangedWeapons.ThrowingSpear], - armors: [armors.Leather], + weapons: [meleeWeapons.falchion, rangedWeapons.throwingSpear], + armors: [armors.leather], shields: [], helmets: [], }, - Melder: { - kin: 'Melder', - kinType: 'Elf', + melder: { + kin: 'melder', + kinType: 'elf', attributes: { strength: 3, agility: 4, @@ -245,22 +245,22 @@ export const elfTypicalKins: { [K in ElfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Crafting: 4, - Stealth: 5, - Lore: 4, - Survival: 3, + melee: 2, + crafting: 4, + stealth: 5, + lore: 4, + survival: 3, }, talents: ['pathOfSight2'], gear: [], - weapons: [meleeWeapons.Knife], + weapons: [meleeWeapons.knife], armors: [], shields: [], helmets: [], }, - RedRunner: { - kin: 'RedRunner', - kinType: 'Elf', + redRunner: { + kin: 'redRunner', + kinType: 'elf', attributes: { strength: 4, agility: 5, @@ -269,31 +269,31 @@ export const elfTypicalKins: { [K in ElfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Endurance: 3, - Melee: 4, - Stealth: 2, - Move: 3, - Markmanship: 4, - Insight: 3, - Survival: 2, + endurance: 3, + melee: 4, + stealth: 2, + move: 3, + markmanship: 4, + insight: 3, + survival: 2, }, talents: ['pathOfTheEnemy2'], gear: [], weapons: [ - meleeWeapons.BroadSword, - meleeWeapons.Dagger, - rangedWeapons.LongBow, + meleeWeapons.broadSword, + meleeWeapons.dagger, + rangedWeapons.longBow, ], - armors: [armors.Leather], + armors: [armors.leather], shields: [], helmets: [], }, } -export const dwarfTypicalKins: { [K in DwarfKin]: TypicalKin } = { - Belderranian: { - kin: 'Belderranian', - kinType: 'Dwarf', +export const dwarfTypicalKins: { [K in DwarfKin]: TypicalKin } = { + belderranian: { + kin: 'belderranian', + kinType: 'dwarf', attributes: { strength: 4, agility: 2, @@ -302,20 +302,20 @@ export const dwarfTypicalKins: { [K in DwarfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 3, - Melee: 3, - Crafting: 2, + might: 3, + melee: 3, + crafting: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.Battleaxe], - armors: [armors.Chainmail], - shields: [shields.Large], - helmets: [helmets.ClosedHelmet], + weapons: [meleeWeapons.battleaxe], + armors: [armors.chainmail], + shields: [shields.large], + helmets: [helmets.closedHelmet], }, - Meromannian: { - kin: 'Meromannian', - kinType: 'Dwarf', + meromannian: { + kin: 'meromannian', + kinType: 'dwarf', attributes: { strength: 4, agility: 3, @@ -324,21 +324,21 @@ export const dwarfTypicalKins: { [K in DwarfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 2, - Melee: 2, - Insight: 2, - Markmanship: 2, + might: 2, + melee: 2, + insight: 2, + markmanship: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.Warhammer, rangedWeapons.LightCrossbow], - armors: [armors.Leather], + weapons: [meleeWeapons.warhammer, rangedWeapons.lightCrossbow], + armors: [armors.leather], shields: [], helmets: [], }, - Canide: { - kin: 'Canide', - kinType: 'Dwarf', + canide: { + kin: 'canide', + kinType: 'dwarf', attributes: { strength: 5, agility: 3, @@ -347,22 +347,22 @@ export const dwarfTypicalKins: { [K in DwarfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 4, - Endurance: 2, - Melee: 3, - Scouting: 2, - Survival: 2, + might: 4, + endurance: 2, + melee: 3, + scouting: 2, + survival: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.TwoHandedAxe], - armors: [armors.Plate], + weapons: [meleeWeapons.twoHandedAxe], + armors: [armors.plate], shields: [], - helmets: [helmets.ClosedHelmet], + helmets: [helmets.closedHelmet], }, - Crombe: { - kin: 'Crombe', - kinType: 'Dwarf', + crombe: { + kin: 'crombe', + kinType: 'dwarf', attributes: { strength: 3, agility: 3, @@ -371,26 +371,26 @@ export const dwarfTypicalKins: { [K in DwarfKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Crafting: 3, - Lore: 2, - Performance: 3, - Healing: 2, + melee: 2, + crafting: 3, + lore: 2, + performance: 3, + healing: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.Mace], - armors: [armors.Leather], + weapons: [meleeWeapons.mace, rangedWeapons.shortBow], + armors: [armors.leather], shields: [], helmets: [], }, } -export const ogreTypicalKins: { [K in OgreKin]: TypicalKin } = { - Ogre: { - kin: 'Ogre', - kinType: 'Ogre', - description: 'common:Description.Ogre', +export const ogreTypicalKins: { [K in OgreKin]: TypicalKin } = { + ogre: { + kin: 'ogre', + kinType: 'ogre', + description: 'common:description.ogre', attributes: { strength: 6, agility: 2, @@ -399,23 +399,23 @@ export const ogreTypicalKins: { [K in OgreKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 4, - Endurance: 2, - Melee: 2, + might: 4, + endurance: 2, + melee: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.LargeClub], + weapons: [meleeWeapons.largeClub], armors: [], shields: [], helmets: [], }, } -export const orcTypicalKins: { [K in OrcKin]: TypicalKin } = { - Urhur: { - kin: 'Urhur', - kinType: 'Orc', +export const orcTypicalKins: { [K in OrcKin]: TypicalKin } = { + urhur: { + kin: 'urhur', + kinType: 'orc', attributes: { strength: 4, agility: 3, @@ -424,20 +424,20 @@ export const orcTypicalKins: { [K in OrcKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 2, - Melee: 2, - Lore: 1, + might: 2, + melee: 2, + lore: 1, }, talents: [], gear: [], - weapons: [meleeWeapons.Scimitar], - armors: [armors.StuddedLeather], - shields: [shields.Large], + weapons: [meleeWeapons.scimitar], + armors: [armors.studdedLeather], + shields: [shields.large], helmets: [], }, - Roka: { - kin: 'Roka', - kinType: 'Orc', + roka: { + kin: 'roka', + kinType: 'orc', attributes: { strength: 5, agility: 2, @@ -446,22 +446,22 @@ export const orcTypicalKins: { [K in OrcKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 2, - Melee: 2, - Scouting: 1, - Survival: 1, + might: 2, + melee: 2, + scouting: 1, + survival: 1, }, talents: [], gear: [], - weapons: [meleeWeapons.Flail], - armors: [armors.StuddedLeather], + weapons: [meleeWeapons.flail], + armors: [armors.studdedLeather], shields: [], helmets: [], }, - Isir: { - kin: 'Isir', - kinType: 'Orc', - description: 'common:Description.Isir', + isir: { + kin: 'isir', + kinType: 'orc', + description: 'common:description.isir', attributes: { strength: 4, agility: 3, @@ -470,21 +470,21 @@ export const orcTypicalKins: { [K in OrcKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 2, - Melee: 3, - Markmanship: 2, - Survival: 2, + might: 2, + melee: 3, + markmanship: 2, + survival: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.TwoHandedSword], - armors: [armors.StuddedLeather], + weapons: [meleeWeapons.twoHandedSword], + armors: [armors.studdedLeather], shields: [], - helmets: [helmets.ClosedHelmet], + helmets: [helmets.closedHelmet], }, - Viraga: { - kin: 'Viraga', - kinType: 'Orc', + viraga: { + kin: 'viraga', + kinType: 'orc', attributes: { strength: 3, agility: 4, @@ -493,30 +493,30 @@ export const orcTypicalKins: { [K in OrcKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Stealth: 2, - Move: 2, - Markmanship: 2, - Lore: 2, - Insight: 3, - Manipulation: 2, + melee: 2, + stealth: 2, + move: 2, + markmanship: 2, + lore: 2, + insight: 3, + manipulation: 2, }, talents: ['pathOfKiller2'], gear: [], weapons: [ - meleeWeapons.ShortSword, - rangedWeapons.ThrowingKnife, - rangedWeapons.ThrowingKnife, - rangedWeapons.ThrowingKnife, - rangedWeapons.ThrowingKnife, + meleeWeapons.shortSword, + rangedWeapons.throwingKnife, + rangedWeapons.throwingKnife, + rangedWeapons.throwingKnife, + rangedWeapons.throwingKnife, ], - armors: [armors.Leather], + armors: [armors.leather], shields: [], helmets: [], }, - Drifter: { - kin: 'Drifter', - kinType: 'Orc', + drifter: { + kin: 'drifter', + kinType: 'orc', attributes: { strength: 4, agility: 3, @@ -525,24 +525,24 @@ export const orcTypicalKins: { [K in OrcKin]: TypicalKin } = { }, skills: { ...defaultSkillsValues(), - Might: 1, - Melee: 2, - Insight: 2, + might: 1, + melee: 2, + insight: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.Scimitar], - armors: [armors.StuddedLeather], + weapons: [meleeWeapons.scimitar], + armors: [armors.studdedLeather], shields: [], - helmets: [helmets.StuddedLeather], + helmets: [helmets.studdedLeather], }, } -export const wolfkinTypicalKins: { [K in WolfKin]: TypicalKin } = +export const wolfkinTypicalKins: { [K in WolfKin]: TypicalKin } = { - Wolfkin: { - kin: 'Wolfkin', - kinType: 'Wolfkin', + wolfkin: { + kin: 'wolfkin', + kinType: 'wolfkin', attributes: { strength: 4, agility: 4, @@ -551,27 +551,27 @@ export const wolfkinTypicalKins: { [K in WolfKin]: TypicalKin } = }, skills: { ...defaultSkillsValues(), - Might: 1, - Endurance: 3, - Melee: 3, - Scouting: 3, - Survival: 2, + might: 1, + endurance: 3, + melee: 3, + scouting: 3, + survival: 2, }, talents: ['pathOfForest2'], gear: [], - weapons: [meleeWeapons.ShortSpear, meleeWeapons.Knife], - armors: [armors.Leather], + weapons: [meleeWeapons.shortSpear, meleeWeapons.knife], + armors: [armors.leather], shields: [], helmets: [], }, } export const saurianTypicalKins: { - [K in SaurianKin]: TypicalKin + [K in SaurianKin]: TypicalKin } = { - Saurian: { - kin: 'Saurian', - kinType: 'Saurian', + saurian: { + kin: 'saurian', + kinType: 'saurian', attributes: { strength: 4, agility: 3, @@ -580,10 +580,10 @@ export const saurianTypicalKins: { }, skills: { ...defaultSkillsValues(), - Endurance: 1, - Melee: 2, - Scouting: 2, - Survival: 3, + endurance: 1, + melee: 2, + scouting: 2, + survival: 3, }, talents: [], gear: [], @@ -591,7 +591,7 @@ export const saurianTypicalKins: { armors: [ { bodyPart: 'Body', - type: 'Natural', + type: 'natural', rating: 3, features: [], }, @@ -602,11 +602,11 @@ export const saurianTypicalKins: { } export const whinerTypicalKins: { - [K in WhinerKin]: TypicalKin + [K in WhinerKin]: TypicalKin } = { - Whiner: { - kin: 'Whiner', - kinType: 'Whiner', + whiner: { + kin: 'whiner', + kinType: 'whiner', attributes: { strength: 1, agility: 3, @@ -615,13 +615,13 @@ export const whinerTypicalKins: { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Stealth: 3, - Move: 3, + melee: 2, + stealth: 3, + move: 3, }, talents: [], gear: [], - weapons: [meleeWeapons.ShortSpear], + weapons: [meleeWeapons.shortSpear], armors: [], shields: [], helmets: [], @@ -629,11 +629,11 @@ export const whinerTypicalKins: { } export const halflingAndGoblinTypicalKins: { - [K in HalflingAndGoblinKin]: TypicalKin + [K in HalflingAndGoblinKin]: TypicalKin } = { - Halfling: { - kin: 'Halfling', - kinType: 'HalflingAndGoblin', + halfling: { + kin: 'halfling', + kinType: 'halflingAndGoblin', attributes: { strength: 2, agility: 4, @@ -642,24 +642,24 @@ export const halflingAndGoblinTypicalKins: { }, skills: { ...defaultSkillsValues(), - Melee: 1, - Crafting: 2, - Stealth: 2, - SleightOfHand: 1, - Insight: 2, - Manipulation: 2, + melee: 1, + crafting: 2, + stealth: 2, + sleight_of_hand: 1, + insight: 2, + manipulation: 2, }, talents: [], gear: [], - weapons: [meleeWeapons.ShortSword, rangedWeapons.Sling], - armors: [armors.Leather], + weapons: [meleeWeapons.shortSword, rangedWeapons.sling], + armors: [armors.leather], shields: [], helmets: [], }, - Goblin: { - kin: 'Goblin', - kinType: 'HalflingAndGoblin', - description: 'common:Description.Goblin', + goblin: { + kin: 'goblin', + kinType: 'halflingAndGoblin', + description: 'common:description.goblin', attributes: { strength: 2, agility: 4, @@ -668,32 +668,32 @@ export const halflingAndGoblinTypicalKins: { }, skills: { ...defaultSkillsValues(), - Melee: 1, - Move: 1, - Stealth: 2, - Markmanship: 1, - Insight: 2, - Manipulation: 2, + melee: 1, + move: 1, + stealth: 2, + markmanship: 1, + insight: 2, + manipulation: 2, }, talents: [], - gear: ['common:Gear.D6Copper'], + gear: ['common:gear.d6copper'], weapons: [ - meleeWeapons.ShortSword, - meleeWeapons.ShortSpear, - rangedWeapons.Sling, + meleeWeapons.shortSword, + meleeWeapons.shortSpear, + rangedWeapons.sling, ], - armors: [armors.Leather], + armors: [armors.leather], shields: [], helmets: [], }, } export const believerTypicalKins: { - [K in BelieversKin]: TypicalKin + [K in BelieversKin]: TypicalKin } = { - RavenSister: { - kin: 'RavenSister', - kinType: 'Believers', + ravenSister: { + kin: 'ravenSister', + kinType: 'believers', attributes: { strength: 3, agility: 3, @@ -702,25 +702,25 @@ export const believerTypicalKins: { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Move: 1, - Markmanship: 2, - Lore: 3, - Survival: 1, - Insight: 2, - Manipulation: 1, - Healing: 2, + melee: 2, + move: 1, + markmanship: 2, + lore: 3, + survival: 1, + insight: 2, + manipulation: 1, + healing: 2, }, talents: ['pathOfHealing2OrShiftingShapes2OrPathOfSight2'], - gear: ['common:Gear.D6Copper'], - weapons: [meleeWeapons.Staff, meleeWeapons.Dagger], + gear: ['common:gear.d6copper'], + weapons: [meleeWeapons.staff, meleeWeapons.dagger, rangedWeapons.shortBow], armors: [], shields: [], helmets: [], }, - BlackWing: { - kin: 'BlackWing', - kinType: 'Believers', + blackWing: { + kin: 'blackWing', + kinType: 'believers', attributes: { strength: 4, agility: 5, @@ -729,30 +729,30 @@ export const believerTypicalKins: { }, skills: { ...defaultSkillsValues(), - Melee: 4, - Move: 3, - Stealth: 4, - Markmanship: 4, - Lore: 1, - Survival: 2, - Insight: 3, - Manipulation: 2, + melee: 4, + move: 3, + stealth: 4, + markmanship: 4, + lore: 1, + survival: 2, + insight: 3, + manipulation: 2, }, talents: ['pathOfKiller2', 'executioner2', 'fastFootwork'], - gear: ['common:Gear.VialOfPoison', 'common:Gear.ValuableFind'], + gear: ['common:gear.vial_of_poison', 'common:gear.valuable_find'], weapons: [ - meleeWeapons.BroadSword, - meleeWeapons.Scimitar, - meleeWeapons.Dagger, - rangedWeapons.LightCrossbow, + meleeWeapons.broadSword, + meleeWeapons.scimitar, + meleeWeapons.dagger, + rangedWeapons.lightCrossbow, ], - armors: [armors.Leather], + armors: [armors.leather], shields: [], helmets: [], }, - RustBrother: { - kin: 'RustBrother', - kinType: 'Believers', + rustBrother: { + kin: 'rustBrother', + kinType: 'believers', attributes: { strength: 3, agility: 3, @@ -761,25 +761,25 @@ export const believerTypicalKins: { }, skills: { ...defaultSkillsValues(), - Melee: 2, - Move: 1, - Markmanship: 2, - Lore: 3, - Survival: 1, - Insight: 2, - Manipulation: 1, - Healing: 2, + melee: 2, + move: 1, + markmanship: 2, + lore: 3, + survival: 1, + insight: 2, + manipulation: 1, + healing: 2, }, talents: ['pathOfBlood2OrPathOfDeath2'], - gear: ['common:Gear.D6Copper'], - weapons: [meleeWeapons.Staff, meleeWeapons.Dagger], + gear: ['common:gear.d6copper'], + weapons: [meleeWeapons.staff, meleeWeapons.dagger, rangedWeapons.shortBow], armors: [], shields: [], helmets: [], }, - IronGuard: { - kin: 'IronGuard', - kinType: 'Believers', + ironGuard: { + kin: 'ironGuard', + kinType: 'believers', attributes: { strength: 5, agility: 4, @@ -788,27 +788,27 @@ export const believerTypicalKins: { }, skills: { ...defaultSkillsValues(), - Melee: 4, - Move: 2, - Might: 2, - Endurance: 2, - Markmanship: 3, - Scouting: 2, + melee: 4, + move: 2, + might: 2, + endurance: 2, + markmanship: 3, + scouting: 2, }, talents: ['pathOfTheBlade2OrPathOfTheEnemy2', 'threatening', 'coldBlooded'], - gear: ['common:Gear.CombatTrainedHorse', 'common:Gear.ValuableFind'], + gear: ['common:gear.combat_trained_horse', 'common:gear.valuable_find'], weapons: [ - meleeWeapons.LongSword, - meleeWeapons.Flail, - rangedWeapons.HeavyCrossbow, + meleeWeapons.longSword, + meleeWeapons.flail, + rangedWeapons.heavyCrossbow, ], - armors: [armors.Chainmail, armors.Plate], - shields: [shields.Large], - helmets: [helmets.GreatHelm], + armors: [armors.chainmail, armors.plate], + shields: [shields.large], + helmets: [helmets.greatHelm], }, - HemeSister: { - kin: 'HemeSister', - kinType: 'Believers', + hemeSister: { + kin: 'hemeSister', + kinType: 'believers', attributes: { strength: 3, agility: 3, @@ -817,13 +817,13 @@ export const believerTypicalKins: { }, skills: { ...defaultSkillsValues(), - Lore: 2, - Insight: 2, - Healing: 2, + lore: 2, + insight: 2, + healing: 2, }, talents: ['pathOfBlood2OrPathOfDeath2'], - gear: ['common:Gear.SimpleFind'], - weapons: [meleeWeapons.Staff, meleeWeapons.Dagger], + gear: ['common:gear.simple_find'], + weapons: [meleeWeapons.staff, meleeWeapons.dagger, rangedWeapons.shortBow], armors: [], shields: [], helmets: [], diff --git a/src/pages/npc/data/weapon.data.ts b/src/pages/npc/data/weapon.data.ts index 833fa35..43795d3 100644 --- a/src/pages/npc/data/weapon.data.ts +++ b/src/pages/npc/data/weapon.data.ts @@ -1,295 +1,295 @@ import { MeleeWeaponType, RangedWeaponType, Weapon } from '../weapon' -export const meleeWeapons: { [W in MeleeWeaponType]: Weapon } = { - Knife: { - name: 'Knife', - category: 'Melee', - grip: '1H', +export const meleeWeapons: { [W in MeleeWeaponType]: Weapon } = { + knife: { + name: 'knife', + category: 'melee', + grip: '1h', bonus: 1, damage: 1, - range: 'ArmsLength', - features: ['Light', 'Pointed'], + range: 'armsLength', + features: ['light', 'pointed'], }, - Dagger: { - name: 'Dagger', - category: 'Melee', - grip: '1H', + dagger: { + name: 'dagger', + category: 'melee', + grip: '1h', bonus: 1, damage: 1, - range: 'ArmsLength', - features: ['Light', 'Edged', 'Pointed'], + range: 'armsLength', + features: ['light', 'edged', 'pointed'], }, - Falchion: { - name: 'Falchion', - category: 'Melee', - grip: '1H', + falchion: { + name: 'falchion', + category: 'melee', + grip: '1h', bonus: 1, damage: 2, - range: 'ArmsLength', - features: ['Edged', 'Pointed'], + range: 'armsLength', + features: ['edged', 'pointed'], }, - ShortSword: { - name: 'ShortSword', - category: 'Melee', - grip: '1H', + shortSword: { + name: 'shortSword', + category: 'melee', + grip: '1h', bonus: 2, damage: 1, - range: 'ArmsLength', - features: ['Edged', 'Parrying', 'Pointed'], + range: 'armsLength', + features: ['edged', 'parrying', 'pointed'], }, - BroadSword: { - name: 'BroadSword', - category: 'Melee', - grip: '1H', + broadSword: { + name: 'broadSword', + category: 'melee', + grip: '1h', bonus: 2, damage: 2, - range: 'ArmsLength', - features: ['Edged', 'Parrying', 'Pointed'], + range: 'armsLength', + features: ['edged', 'parrying', 'pointed'], }, - LongSword: { - name: 'LongSword', - category: 'Melee', - grip: '1H', + longSword: { + name: 'longSword', + category: 'melee', + grip: '1h', bonus: 2, damage: 2, - range: 'ArmsLength', - features: ['Heavy', 'Edged', 'Pointed', 'Parrying'], + range: 'armsLength', + features: ['heavy', 'edged', 'pointed', 'parrying'], }, - TwoHandedSword: { - name: 'TwoHandedSword', - category: 'Melee', - grip: '2H', + twoHandedSword: { + name: 'twoHandedSword', + category: 'melee', + grip: '2h', bonus: 2, damage: 3, - range: 'ArmsLength', - features: ['Heavy', 'Edged', 'Pointed', 'Parrying'], + range: 'armsLength', + features: ['heavy', 'edged', 'pointed', 'parrying'], }, - Scimitar: { - name: 'Scimitar', - category: 'Melee', - grip: '1H', + scimitar: { + name: 'scimitar', + category: 'melee', + grip: '1h', bonus: 1, damage: 2, - range: 'ArmsLength', - features: ['Edged', 'Pointed', 'Hook', 'Parrying'], + range: 'armsLength', + features: ['edged', 'pointed', 'hook', 'parrying'], }, - Handaxe: { - name: 'Handaxe', - category: 'Melee', - grip: '1H', + handaxe: { + name: 'handaxe', + category: 'melee', + grip: '1h', bonus: 2, damage: 2, - range: 'ArmsLength', - features: ['Edged', 'Hook'], + range: 'armsLength', + features: ['edged', 'hook'], }, - Battleaxe: { - name: 'Battleaxe', - category: 'Melee', - grip: '1H', + battleaxe: { + name: 'battleaxe', + category: 'melee', + grip: '1h', bonus: 2, damage: 2, - range: 'ArmsLength', - features: ['Heavy', 'Edged', 'Hook'], + range: 'armsLength', + features: ['heavy', 'edged', 'hook'], }, - TwoHandedAxe: { - name: 'TwoHandedAxe', - category: 'Melee', - grip: '2H', + twoHandedAxe: { + name: 'twoHandedAxe', + category: 'melee', + grip: '2h', bonus: 2, damage: 3, - range: 'ArmsLength', - features: ['Heavy', 'Edged', 'Hook'], + range: 'armsLength', + features: ['heavy', 'edged', 'hook'], }, - Mace: { - name: 'Mace', - category: 'Melee', - grip: '1H', + mace: { + name: 'mace', + category: 'melee', + grip: '1h', bonus: 2, damage: 1, - range: 'ArmsLength', - features: ['Blunt'], + range: 'armsLength', + features: ['blunt'], }, - Morningstar: { - name: 'Morningstar', - category: 'Melee', - grip: '1H', + morningstar: { + name: 'morningstar', + category: 'melee', + grip: '1h', bonus: 2, damage: 2, - range: 'ArmsLength', - features: ['Blunt'], + range: 'armsLength', + features: ['blunt'], }, - Warhammer: { - name: 'Warhammer', - category: 'Melee', - grip: '1H', + warhammer: { + name: 'warhammer', + category: 'melee', + grip: '1h', bonus: 2, damage: 2, - range: 'ArmsLength', - features: ['Blunt', 'Hook'], + range: 'armsLength', + features: ['blunt', 'hook'], }, - Flail: { - name: 'Flail', - category: 'Melee', - grip: '1H', + flail: { + name: 'flail', + category: 'melee', + grip: '1h', bonus: 1, damage: 2, - range: 'Near', - features: ['Blunt'], + range: 'near', + features: ['blunt'], }, - Club: { - name: 'Club', - category: 'Melee', - grip: '1H', + club: { + name: 'club', + category: 'melee', + grip: '1h', bonus: 1, damage: 1, - range: 'ArmsLength', - features: ['Blunt'], + range: 'armsLength', + features: ['blunt'], }, - LargeClub: { - name: 'LargeClub', - category: 'Melee', - grip: '2H', + largeClub: { + name: 'largeClub', + category: 'melee', + grip: '2h', bonus: 1, damage: 2, - range: 'ArmsLength', - features: ['Heavy', 'Blunt'], + range: 'armsLength', + features: ['heavy', 'blunt'], }, - HeavyWarhammer: { - name: 'HeavyWarhammer', - category: 'Melee', - grip: '2H', + heavyWarhammer: { + name: 'heavyWarhammer', + category: 'melee', + grip: '2h', bonus: 2, damage: 3, - range: 'ArmsLength', - features: ['Heavy', 'Blunt', 'Hook'], + range: 'armsLength', + features: ['heavy', 'blunt', 'hook'], }, - Staff: { - name: 'Staff', - category: 'Melee', - grip: '2H', + staff: { + name: 'staff', + category: 'melee', + grip: '2h', bonus: 1, damage: 1, - range: 'Near', - features: ['Blunt', 'Hook', 'Parrying'], + range: 'near', + features: ['blunt', 'hook', 'parrying'], }, - ShortSpear: { - name: 'ShortSpear', - category: 'Melee', - grip: '1H', + shortSpear: { + name: 'shortSpear', + category: 'melee', + grip: '1h', bonus: 1, damage: 1, - range: 'Near', - features: ['Pointed'], + range: 'near', + features: ['pointed'], }, - LongSpear: { - name: 'LongSpear', - category: 'Melee', - grip: '2H', + longSpear: { + name: 'longSpear', + category: 'melee', + grip: '2h', bonus: 2, damage: 1, - range: 'Near', - features: ['Pointed'], + range: 'near', + features: ['pointed'], }, - Pike: { - name: 'Pike', - category: 'Melee', - grip: '2H', + pike: { + name: 'pike', + category: 'melee', + grip: '2h', bonus: 2, damage: 2, - range: 'Near', - features: ['Heavy', 'Pointed'], + range: 'near', + features: ['heavy', 'pointed'], }, - Halberd: { - name: 'Halberd', - category: 'Melee', - grip: '2H', + halberd: { + name: 'halberd', + category: 'melee', + grip: '2h', bonus: 2, damage: 2, - range: 'Near', - features: ['Heavy', 'Pointed', 'Edged', 'Hook'], + range: 'near', + features: ['heavy', 'pointed', 'edged', 'hook'], }, - Trident: { - name: 'Trident', - category: 'Melee', - grip: '2H', + trident: { + name: 'trident', + category: 'melee', + grip: '2h', bonus: 1, damage: 2, - range: 'Near', - features: ['Pointed', 'Hook'], + range: 'near', + features: ['pointed', 'hook'], }, } -export const rangedWeapons: { [W in RangedWeaponType]: Weapon } = { - ThrowingKnife: { - name: 'ThrowingKnife', - category: 'Ranged', - grip: '1H', +export const rangedWeapons: { [W in RangedWeaponType]: Weapon } = { + throwingKnife: { + name: 'throwingKnife', + category: 'ranged', + grip: '1h', bonus: 1, damage: 1, - range: 'Near', - features: ['Light'], + range: 'near', + features: ['light'], }, - ThrowingAxe: { - name: 'ThrowingAxe', - category: 'Ranged', - grip: '1H', + throwingAxe: { + name: 'throwingAxe', + category: 'ranged', + grip: '1h', bonus: 1, damage: 2, - range: 'Near', + range: 'near', features: [], }, - ThrowingSpear: { - name: 'ThrowingSpear', - category: 'Ranged', - grip: '1H', + throwingSpear: { + name: 'throwingSpear', + category: 'ranged', + grip: '1h', bonus: 2, damage: 1, - range: 'Short', + range: 'short', features: [], }, - Sling: { - name: 'Sling', - category: 'Ranged', - grip: '1H', + sling: { + name: 'sling', + category: 'ranged', + grip: '1h', bonus: 1, damage: 1, - range: 'Short', - features: ['Light'], + range: 'short', + features: ['light'], }, - ShortBow: { - name: 'ShortBow', - category: 'Ranged', - grip: '2H', + shortBow: { + name: 'shortBow', + category: 'ranged', + grip: '2h', bonus: 2, damage: 1, - range: 'Short', - features: ['Light'], + range: 'short', + features: ['light'], }, - LongBow: { - name: 'LongBow', - category: 'Ranged', - grip: '2H', + longBow: { + name: 'longBow', + category: 'ranged', + grip: '2h', bonus: 2, damage: 1, - range: 'Long', - features: ['Light'], + range: 'long', + features: ['light'], }, - LightCrossbow: { - name: 'LightCrossbow', - category: 'Ranged', - grip: '2H', + lightCrossbow: { + name: 'lightCrossbow', + category: 'ranged', + grip: '2h', bonus: 2, damage: 2, - range: 'Long', - features: ['LoadingIsLongAction'], + range: 'long', + features: ['loadingIsLongAction'], }, - HeavyCrossbow: { - name: 'HeavyCrossbow', - category: 'Ranged', - grip: '2H', + heavyCrossbow: { + name: 'heavyCrossbow', + category: 'ranged', + grip: '2h', bonus: 1, damage: 3, - range: 'Long', - features: ['Heavy', 'LoadingIsLongAction'], + range: 'long', + features: ['heavy', 'loadingIsLongAction'], }, } diff --git a/src/pages/npc/name.test.ts b/src/pages/npc/name.test.ts index 7f91b3e..426892a 100644 --- a/src/pages/npc/name.test.ts +++ b/src/pages/npc/name.test.ts @@ -52,7 +52,7 @@ describe('name functions', () => { const femaleName = 'FEMALE_NAME' const maleName = 'MALE_NAME' const familyName = 'FAMILY' - const of = 'names:OF' + const of = 'names:of' const nl: NameList = { Female: { @@ -121,7 +121,7 @@ describe('name functions', () => { const femaleName = 'FEMALE_NAME' const maleName = 'MALE_NAME' const familyName = 'FAMILY' - const of = 'names:OF' + const of = 'names:of' const nl: NameList = { Female: { @@ -222,7 +222,7 @@ describe('name functions', () => { const femaleName = 'FEMALE_NAME' const maleName = 'MALE_NAME' const nickName = 'NICKNAME' - const the = 'names:THE' + const the = 'names:the' const nl: NameList = { Female: { diff --git a/src/pages/npc/name.ts b/src/pages/npc/name.ts index 547258f..9a25aae 100644 --- a/src/pages/npc/name.ts +++ b/src/pages/npc/name.ts @@ -3,6 +3,7 @@ import { WeightedChoice, weightedRandom, } from '../../functions/dice.functions' +import { translationDict } from '../../functions/translation-dict' import { getFormattedVillageName } from '../../functions/village-name.functions' import { ValidLanguage } from '../../hooks/useValidLanguage' import { Gender } from '../../models/gender.model' @@ -27,55 +28,81 @@ export interface NameList { } export const kinTypes = [ - 'Human', - 'Elf', - 'Dwarf', - 'Ogre', - 'Orc', - 'Wolfkin', - 'Saurian', - 'Whiner', - 'HalflingAndGoblin', - 'Believers', + 'human', + 'elf', + 'dwarf', + 'ogre', + 'orc', + 'wolfkin', + 'saurian', + 'whiner', + 'halflingAndGoblin', + 'believers', ] as const export type KinType = (typeof kinTypes)[number] export const getKinTypes = () => [...kinTypes] +type CamelToSnakeCase = S extends `${infer T}${infer U}` + ? `${T extends Capitalize ? '_' : ''}${Lowercase}${CamelToSnakeCase}` + : S + +export const kinTypeTranslationDict: Record< + KinType, + CamelToSnakeCase +> = { + human: 'human', + elf: 'elf', + dwarf: 'dwarf', + ogre: 'ogre', + orc: 'orc', + wolfkin: 'wolfkin', + saurian: 'saurian', + whiner: 'whiner', + halflingAndGoblin: 'halfling_and_goblin', + believers: 'believers', +} -export type HumanKin = - | 'Alderlander' - | 'Ailander' - | 'Aslene' - | 'Frailer' - | 'SilentGuard' - | 'MaidenDruid' +const humanKins = [ + 'alderlander', + 'ailander', + 'aslene', + 'frailer', + 'silentGuard', + 'maidenDruid', +] as const +export type HumanKin = (typeof humanKins)[number] +export const humanKinTranslationDict = translationDict( + humanKins, + 'common', + 'kin.human.', +) export type BelieversKin = - | 'RavenSister' - | 'BlackWing' - | 'RustBrother' - | 'IronGuard' - | 'HemeSister' + | 'ravenSister' + | 'blackWing' + | 'rustBrother' + | 'ironGuard' + | 'hemeSister' export type ElfKin = - | 'StillElf' - | 'UnrulyElf' - | 'GoldenBough' - | 'Melder' - | 'RedRunner' + | 'stillElf' + | 'unrulyElf' + | 'goldenBough' + | 'melder' + | 'redRunner' -export type DwarfKin = 'Belderranian' | 'Meromannian' | 'Canide' | 'Crombe' +export type DwarfKin = 'belderranian' | 'meromannian' | 'canide' | 'crombe' -export type OgreKin = 'Ogre' +export type OgreKin = 'ogre' -export type OrcKin = 'Urhur' | 'Roka' | 'Isir' | 'Viraga' | 'Drifter' +export type OrcKin = 'urhur' | 'roka' | 'isir' | 'viraga' | 'drifter' -export type WolfKin = 'Wolfkin' +export type WolfKin = 'wolfkin' -export type SaurianKin = 'Saurian' +export type SaurianKin = 'saurian' -export type WhinerKin = 'Whiner' +export type WhinerKin = 'whiner' -export type HalflingAndGoblinKin = 'Halfling' | 'Goblin' +export type HalflingAndGoblinKin = 'halfling' | 'goblin' export type TypicalKins = | HumanKin @@ -89,9 +116,31 @@ export type TypicalKins = | HalflingAndGoblinKin | BelieversKin +export type SubKin = K extends 'human' + ? HumanKin + : K extends 'elf' + ? ElfKin + : K extends 'dwarf' + ? DwarfKin + : K extends 'ogre' + ? OgreKin + : K extends 'orc' + ? OrcKin + : K extends 'wolfkin' + ? WolfKin + : K extends 'saurian' + ? SaurianKin + : K extends 'whiner' + ? WhinerKin + : K extends 'halflingAndGoblin' + ? HalflingAndGoblinKin + : K extends 'believers' + ? BelieversKin + : never + export type Kins = HumanKin | ElfKin export type HumanNames = { - [H in Extract]: NameList + [H in Extract]: NameList } const getRandomName = ( @@ -115,10 +164,10 @@ const getRandomName = ( return [firstName] } - return [firstName, 'names:THE', chooseFunc(nameList.nickName)] + return [firstName, 'names:the', chooseFunc(nameList.nickName)] } case 'HomeName': - return [firstName, 'names:OF', getFormattedVillageName(lang, chooseFunc)] + return [firstName, 'names:of', getFormattedVillageName(lang, chooseFunc)] case 'FirstName': default: return [firstName] @@ -128,7 +177,7 @@ const getRandomName = ( export const getRandomAilanderName = ( g: Gender, lang: ValidLanguage, - nameList = humanNames.Ailander, + nameList = humanNames.ailander, chooseFunc = choose, ): string[] => { return getRandomName(g, lang, nameList, chooseFunc) @@ -137,7 +186,7 @@ export const getRandomAilanderName = ( export const getRandomAlderlanderName = ( g: Gender, lang: ValidLanguage, - nameList = humanNames.Ailander, + nameList = humanNames.ailander, chooseFunc = choose, ): string[] => { return getRandomName(g, lang, nameList, chooseFunc) @@ -146,7 +195,7 @@ export const getRandomAlderlanderName = ( export const getRandomAsleneName = ( g: Gender, lang: ValidLanguage, - nameList = humanNames.Aslene, + nameList = humanNames.aslene, chooseFunc = choose, ): string[] => { return getRandomName(g, lang, nameList, chooseFunc) diff --git a/src/pages/npc/npc.ts b/src/pages/npc/npc.ts index 8784b38..93c9293 100644 --- a/src/pages/npc/npc.ts +++ b/src/pages/npc/npc.ts @@ -1,6 +1,6 @@ import { compose } from 'ramda' import { choose } from '../../functions/dice.functions' -import { Chacteristics, getChacteristics } from './characteristics' +import { Chacteristic, getChacteristics } from './characteristics' import { getKinTypes, KinType } from './name' import { Name } from './name2' import { getOccupations, Occupation } from './occupation' @@ -10,7 +10,7 @@ export type NPC = { kin: KinType name?: Name | string occupation: Occupation - characteristic: Chacteristics + characteristic: Chacteristic quirk: Quirk } diff --git a/src/pages/npc/occupation.ts b/src/pages/npc/occupation.ts index 958ce91..f5ce6a5 100644 --- a/src/pages/npc/occupation.ts +++ b/src/pages/npc/occupation.ts @@ -1,42 +1,50 @@ +import { translationDict } from '../../functions/translation-dict' + const occupation = [ - 'Soldier', - 'FortuneSeeker', - 'Bandit', - 'SlaveTrader', - 'TreasureHunter', - 'Beggar', - 'Actor', - 'Lumberjack', - 'Hunter', - 'Farmer', - 'Laborer', - 'Jester', - 'Wanderer', - 'Fisher', - 'Noble', - 'Child', - 'Trader', - 'Brewer', - 'Carpenter', - 'Apprentice', - 'Thief', - 'Druid', - 'Baker', - 'Refugee', - 'Assassin', - 'Smith', - 'Gravedigger', - 'RustBrother', - 'Shepherd', - 'Braggart', - 'Cook', - 'Cultist', - 'Guard', - 'Messenger', - 'Miner', - 'Academic', + 'soldier', + 'fortuneSeeker', + 'bandit', + 'slaveTrader', + 'treasureHunter', + 'beggar', + 'actor', + 'lumberjack', + 'hunter', + 'farmer', + 'laborer', + 'jester', + 'wanderer', + 'fisher', + 'noble', + 'child', + 'trader', + 'brewer', + 'carpenter', + 'apprentice', + 'thief', + 'druid', + 'baker', + 'refugee', + 'assassin', + 'smith', + 'gravedigger', + 'rustBrother', + 'shepherd', + 'braggart', + 'cook', + 'cultist', + 'guard', + 'messenger', + 'miner', + 'academic', ] as const export type Occupation = (typeof occupation)[number] export const getOccupations = (): Occupation[] => [...occupation] + +export const occupationTranslationDict = translationDict( + occupation, + 'npc', + 'occupation.', +) diff --git a/src/pages/npc/quirk.ts b/src/pages/npc/quirk.ts index 3776697..da22ec5 100644 --- a/src/pages/npc/quirk.ts +++ b/src/pages/npc/quirk.ts @@ -1,41 +1,45 @@ +import { translationDict } from '../../functions/translation-dict' + const quirks = [ - 'FamilyDream', - 'SkillGambler', - 'HauntedByDream', - 'ChewingNarcotics', - 'HasTreasureMap', - 'AlderSpy', - 'TooSensitive', - 'Squeamish', - 'ObsessedWithMonster', - 'Cultist', - 'SleepsBad', - 'LegendaryPickpocket', - 'OnlySurvivor', - 'WorshipsGodInTheDeep', - 'PossessedByDemon', - 'AvengeParent', - 'Bankrupt', - 'HatesCompetitor', - 'HidesSecret', - 'WillDoAnything', - 'ExpensiveHabits', - 'LikesToScare', - 'BelievesToBeRoyal', - 'WantsRevenge', - 'InterestedPoetry', - 'Cheater', - 'Gossips', - 'Doubter', - 'DreamsOfKilling', - 'Touchy', - 'Storyteller', - 'WillTakeOver', - 'CravingBeer', - 'BelievesToBeFolllowed', - 'Swears', - 'TheoryOfWorld', + 'family_dream', + 'skill_gambler', + 'haunted_by_dream', + 'chewing_narcotics', + 'has_treasure_map', + 'alder_spy', + 'too_sensitive', + 'squeamish', + 'obsessed_with_monster', + 'cultist', + 'sleeps_bad', + 'legendary_pickpocket', + 'only_survivor', + 'worships_god_in_the_deep', + 'possessed_by_demon', + 'avenge_parent', + 'bankrupt', + 'hates_competitor', + 'hides_secret', + 'will_do_anything', + 'expensive_habits', + 'likes_to_scare', + 'believes_to_be_royal', + 'wants_revenge', + 'interested_poetry', + 'cheater', + 'gossips', + 'doubter', + 'dreams_of_killing', + 'touchy', + 'storyteller', + 'will_take_over', + 'craving_beer', + 'believes_to_be_folllowed', + 'swears', + 'theory_of_world', ] as const export type Quirk = (typeof quirks)[number] export const getQuirks = () => [...quirks] + +export const quirkTranslationDict = translationDict(quirks, 'npc', 'quirk.') diff --git a/src/pages/npc/shield.test.ts b/src/pages/npc/shield.test.ts index d159bd9..b4b60c3 100644 --- a/src/pages/npc/shield.test.ts +++ b/src/pages/npc/shield.test.ts @@ -6,21 +6,21 @@ import { describe, it, expect } from 'vitest' describe('createShieldViewModel', () => { it('should add collapse property', () => { const expected = true - const result = 'collapse' in createShieldViewModel(shields.Small) + const result = 'collapse' in createShieldViewModel(shields.small) expect(result).toEqual(expected) }) it('should add id property', () => { const expected = true - const result = 'id' in createShieldViewModel(shields.Small) + const result = 'id' in createShieldViewModel(shields.small) expect(result).toEqual(expected) }) it('should use 21 character string as id', () => { const expected = true - const vm = createShieldViewModel(shields.Small) + const vm = createShieldViewModel(shields.small) const result = isString(vm.id) && vm.id.length === 21 expect(result).toEqual(expected) diff --git a/src/pages/npc/shield.ts b/src/pages/npc/shield.ts index 0770f5d..facf3d2 100644 --- a/src/pages/npc/shield.ts +++ b/src/pages/npc/shield.ts @@ -1,9 +1,16 @@ +import { translationDict } from '../../functions/translation-dict' import { CollapseAble, getId, Unique } from '../../models/utils.model' import { WeaponFeature } from './weapon' -export type ShieldType = 'Small' | 'Large' +const shieldTypes = ['small', 'large'] as const +export type ShieldType = (typeof shieldTypes)[number] +export const shieldTypesTranslationDict = translationDict( + shieldTypes, + 'common', + 'shield.', +) -type ShieldFeature = Extract +type ShieldFeature = Extract export type Shield = { type: S diff --git a/src/pages/npc/typical-kin.test.ts b/src/pages/npc/typical-kin.test.ts index b8352af..514f3ec 100755 --- a/src/pages/npc/typical-kin.test.ts +++ b/src/pages/npc/typical-kin.test.ts @@ -7,30 +7,30 @@ import { TypicalKin } from './typical-kin' import { describe, it, expect } from 'vitest' describe('createTypicalKinViewModel', () => { - const tk: TypicalKin = { - kin: 'Ailander', - kinType: 'Human', + const tk: TypicalKin = { + kin: 'ailander', + kinType: 'human', attributes: { strength: 3, agility: 3, empathy: 3, wits: 3, }, - skills: { ...defaultSkillsValues(), Melee: 2, Healing: 3 }, + skills: { ...defaultSkillsValues(), melee: 2, healing: 3 }, talents: ['fastFootwork'], - gear: ['common:Gear.D6Silver'], + gear: ['common:gear.d6silver'], weapons: [ - meleeWeapons['Knife'], - meleeWeapons['Halberd'], - rangedWeapons['HeavyCrossbow'], + meleeWeapons['knife'], + meleeWeapons['halberd'], + rangedWeapons['heavyCrossbow'], ], - armors: [armors['Chainmail']], - helmets: [helmets['GreatHelm']], + armors: [armors['chainmail']], + helmets: [helmets['greatHelm']], shields: [ { - type: 'Small', + type: 'small', bonus: 1, - features: ['Light'], + features: ['light'], }, ], } diff --git a/src/pages/npc/typical-kin.ts b/src/pages/npc/typical-kin.ts index a323fa1..1e6bebc 100755 --- a/src/pages/npc/typical-kin.ts +++ b/src/pages/npc/typical-kin.ts @@ -1,4 +1,5 @@ import { createAttributesViewModel } from '../../functions/attributes.functions' +import { camelCaseToSnakeCase } from '../../functions/casing' import { createAllSkillsValuesViewModel } from '../../functions/skills.functions' import { Attributes, AttributesViewModel } from '../../models/attributes.model' import { @@ -17,7 +18,7 @@ import { HelmetViewModel, createProtectionViewModel, } from './armor' -import { KinType, TypicalKins } from './name' +import { KinType, SubKin, TypicalKins, kinTypeTranslationDict } from './name' import { Shield, ShieldType, @@ -62,14 +63,16 @@ export type TypicalKinViewModel = CollapseAble & { } export const createTypicalKinViewModel = < - K extends TypicalKins, T extends KinType, + K extends SubKin, >( tk: TypicalKin, ): TypicalKinViewModel => { return { ...tk, - title: `common:Kin.${tk.kinType}.${tk.kin}` as TranslationKey<'common'>, + title: `common:kin.${ + kinTypeTranslationDict[tk.kinType] + }.${camelCaseToSnakeCase(tk.kin)}` as TranslationKey<'common'>, description: tk.description, collapse: true, attributes: createAttributesViewModel(tk.attributes), diff --git a/src/pages/npc/weapon.test.ts b/src/pages/npc/weapon.test.ts index 2b94828..4fe5e61 100644 --- a/src/pages/npc/weapon.test.ts +++ b/src/pages/npc/weapon.test.ts @@ -6,21 +6,21 @@ import { describe, it, expect } from 'vitest' describe('createWeaponViewModel', () => { it('should add collapse property', () => { const expected = true - const result = 'collapse' in createWeaponViewModel(meleeWeapons.Dagger) + const result = 'collapse' in createWeaponViewModel(meleeWeapons.dagger) expect(result).toEqual(expected) }) it('should add id property', () => { const expected = true - const result = 'id' in createWeaponViewModel(meleeWeapons.Dagger) + const result = 'id' in createWeaponViewModel(meleeWeapons.dagger) expect(result).toEqual(expected) }) it('should use 21 character string as id', () => { const expected = true - const vm = createWeaponViewModel(meleeWeapons.Dagger) + const vm = createWeaponViewModel(meleeWeapons.dagger) const result = isString(vm.id) && vm.id.length === 21 expect(result).toEqual(expected) diff --git a/src/pages/npc/weapon.ts b/src/pages/npc/weapon.ts index d6b41c9..c80a21b 100644 --- a/src/pages/npc/weapon.ts +++ b/src/pages/npc/weapon.ts @@ -1,5 +1,11 @@ +import { + CamelCaseToSnakeCase, + camelCaseToSnakeCase, +} from '../../functions/casing' +import { translationDict } from '../../functions/translation-dict' import { WeaponRange } from '../../models/attack-range' -import { CollapseAble, getId, Unique } from '../../models/utils.model' +import { CollapseAble, Unique, getId } from '../../models/utils.model' +import { TranslationKey } from '../../store/translations/translation.model' export const createWeaponViewModel = ( w: Weapon, @@ -9,60 +15,67 @@ export const createWeaponViewModel = ( id: getId(), }) -export type WeaponCategory = 'Melee' | 'Ranged' +export type WeaponCategory = 'melee' | 'ranged' -export type WeaponFeature = - | 'Light' - | 'Heavy' - | 'Edged' - | 'Pointed' - | 'Blunt' - | 'Parrying' - | 'Hook' - | 'LoadingIsLongAction' +const weaponFeatures = [ + 'light', + 'heavy', + 'edged', + 'pointed', + 'blunt', + 'parrying', + 'hook', + 'loadingIsLongAction', +] as const +export type WeaponFeature = (typeof weaponFeatures)[number] +export const weaponFeatureTranslationDict = translationDict( + weaponFeatures, + 'common', + 'weapon.feature.', +) export type MeleeWeaponType = - | 'Knife' - | 'Dagger' - | 'Falchion' - | 'ShortSword' - | 'BroadSword' - | 'LongSword' - | 'TwoHandedSword' - | 'Scimitar' - | 'Handaxe' - | 'Battleaxe' - | 'TwoHandedAxe' - | 'Mace' - | 'Morningstar' - | 'Warhammer' - | 'Flail' - | 'Club' - | 'LargeClub' - | 'HeavyWarhammer' - | 'Staff' - | 'ShortSpear' - | 'LongSpear' - | 'Pike' - | 'Halberd' - | 'Trident' + | 'knife' + | 'dagger' + | 'falchion' + | 'shortSword' + | 'broadSword' + | 'longSword' + | 'twoHandedSword' + | 'scimitar' + | 'handaxe' + | 'battleaxe' + | 'twoHandedAxe' + | 'mace' + | 'morningstar' + | 'warhammer' + | 'flail' + | 'club' + | 'largeClub' + | 'heavyWarhammer' + | 'staff' + | 'shortSpear' + | 'longSpear' + | 'pike' + | 'halberd' + | 'trident' export type RangedWeaponType = - | 'ThrowingKnife' - | 'ThrowingAxe' - | 'ThrowingSpear' - | 'Sling' - | 'ShortBow' - | 'LongBow' - | 'LightCrossbow' - | 'HeavyCrossbow' + | 'throwingKnife' + | 'throwingAxe' + | 'throwingSpear' + | 'sling' + | 'shortBow' + | 'longBow' + | 'lightCrossbow' + | 'heavyCrossbow' export type WeaponType = MeleeWeaponType | RangedWeaponType export type Weapon = { name: W category: C - grip?: '1H' | '2H' + grip?: '1h' | '2h' bonus?: number damage: number range: WeaponRange @@ -72,3 +85,22 @@ export type Weapon = { export type WeaponViewModel = Weapon & CollapseAble & Unique + +type MeleeWeaponPath = + `common:weapon.melee.${CamelCaseToSnakeCase}` & TranslationKey<'common'> +type RangedWeaponPath = + `common:weapon.ranged.${CamelCaseToSnakeCase}` & TranslationKey<'common'> +export const weaponName = ( + category: C, + name: W, +): MeleeWeaponPath | RangedWeaponPath => { + if (category === 'melee') { + return `common:weapon.melee.${camelCaseToSnakeCase( + name, + )}` as MeleeWeaponPath + } + + return `common:weapon.ranged.${camelCaseToSnakeCase( + name, + )}` as RangedWeaponPath +} diff --git a/src/pages/places/MapPage.tsx b/src/pages/places/MapPage.tsx index 648b4e5..298cb9c 100755 --- a/src/pages/places/MapPage.tsx +++ b/src/pages/places/MapPage.tsx @@ -195,7 +195,7 @@ export const MapPage = () => { return (
- {t('map:Title')} + {t('map:title')} { } > {source === 'ravland' - ? t('common:gameSource.bitterReach') - : t('common:gameSource.ravland')} + ? t('common:game_source.bitter_reach') + : t('common:game_source.ravland')} { ) : ( )} - {t(fogOfWar ? 'map:FogOfWar_On' : 'map:FogOfWar_Off')} + {t(fogOfWar ? 'map:fog_of_war_on' : 'map:fog_of_war_off')} { onPress={() => handleFileDownload()} > - {t('map:DownloadMapData')} + {t('map:download_map_data')} setPasteError(undefined)} - label={t('map:PasteMapData')} + label={t('map:paste_map_data')} onData={handlePasteMapData} > @@ -290,9 +290,9 @@ export default MapPage type PasteError = 'invalidJson' | 'invalidHexData' | 'general' const pasteErrorLabel: { [PE in PasteError]: TranslationKey<'map'> } = { - invalidJson: 'map:InvalidJson', - invalidHexData: 'map:InvalidHexData', - general: 'map:GeneralPasteError', + invalidJson: 'map:invalid_json', + invalidHexData: 'map:invalid_hex_data', + general: 'map:general_paste_error', } const errorToPasteError = (e: Error): PasteError => { diff --git a/src/pages/places/map-popover.tsx b/src/pages/places/map-popover.tsx index 347254f..629626f 100755 --- a/src/pages/places/map-popover.tsx +++ b/src/pages/places/map-popover.tsx @@ -102,8 +102,8 @@ export const MapPopover = ({
{options.hex.hexKey}:{' '} {options.hex.explored - ? t('map:Popover-Explored') - : t('map:Popover-Unexplored')} + ? t('map:popover_explored') + : t('map:popover_unexplored')}
- {t('map:Popover-Hide')} + {t('map:popover_hide')} {options.hex.explored ? ( @@ -126,7 +126,7 @@ export const MapPopover = ({ }} > - {t('map:Popover-Forget')} + {t('map:popover_forget')} ) : ( - {t('map:Popover-Explore')} + {t('map:popover_explore')} )}
diff --git a/src/pages/session.page.tsx b/src/pages/session.page.tsx index 4c12f92..5f156fd 100755 --- a/src/pages/session.page.tsx +++ b/src/pages/session.page.tsx @@ -21,7 +21,7 @@ export const SessionPage = () => { adjective: LegendTableItem, t: TFunction<'common' | 'session'>, ): string => { - if (adversary.text() !== 'session:Adversary.DemonWithCount') { + if (adversary.text() !== 'session:adversary.demon_with_count') { return `${t(adjective.text())} ${t(adversary.text())}` } @@ -32,47 +32,47 @@ export const SessionPage = () => { const text = [ [ - t('session:ALongTimeAgo'), + t('session:along_time_ago'), t(legend.description), - t(`session:YearsAgo`, { context: { years: legend.age.toString() } }), - t('session:ThereWas'), + t(`session:years_ago`, { context: { years: legend.age.toString() } }), + t('session:there_was'), t(legend.adjective.text()), t(legend.who_or_what.text()), - t('session:WhoSearched'), + t('session:who_searched'), t(legend.who_searched_for.text()), - t('session:BecauseOf'), + t('session:because_of'), t(legend.because.text()), - t('session:AndTraveledTo'), + t('session:and_traveled_to'), t(legend.location.text()), - t('session:Located'), + t('session:located'), t(legend.distance.text()), t(legend.terrain.text()), - t('session:InTheDirectionOf'), + t('session:in_the_direction_of'), t(legend.direction.text()), ].join(' '), [ legend.who_or_what.pronoun === 'Third' - ? t(`session:AsTheLegendGoesItIsSaidThat_Third`) - : t(`session:AsTheLegendGoesItIsSaidThat`), + ? t(`session:as_the_legend_goes_it_is_said_that_third`) + : t(`session:as_the_legend_goes_it_is_said_that`), t( `${legend.what_happened.text()}${ legend.what_happened.pronoun === 'Third' ? '_Third' : '' }` as TranslationKey<'session' | 'common'>, ), - t(`session:AndThatAtTheLocationThere`), + t(`session:and_that_at_the_location_there`), t(legend.its_told_that.text()), - t(`session:ButAlso`), + t(`session:but_also`), getAdversary(legend.adversary, legend.adjective_adversary, t), ].join(' '), ].join('. ') return (
- {t('session:Title')} + {t('session:title')} setLegend(generateLegend())}> -
{t('session:Legend')}
+
{t('session:legend')}
diff --git a/src/pages/village/InnView.tsx b/src/pages/village/InnView.tsx index 4e1fb6d..26129e1 100644 --- a/src/pages/village/InnView.tsx +++ b/src/pages/village/InnView.tsx @@ -8,7 +8,12 @@ import { selectCurrentLanguage, selectTranslateFunction, } from '../../store/translations/translation.slice' -import { Inn } from './inn-generator' +import { + Inn, + innGuestTranslationDict, + innOddityTranslationDict, + innSpecialtyTranslationDict, +} from './inn-generator' export const InnView = ({ inn }: { inn: Inn }) => { const t = useAppSelector(selectTranslateFunction(['village'])) @@ -18,23 +23,23 @@ export const InnView = ({ inn }: { inn: Inn }) => {
-
{t('village:Inns.Inn')}
+
{t('village:inns.inn')}
{inn.name[currentLang]}
- - {t(`village:Inns.Oddities.${inn.oddity}`)} + + {t(innOddityTranslationDict[inn.oddity])} - - {t(`village:Inns.Specialities.${inn.speciality}`)} + + {t(innSpecialtyTranslationDict[inn.speciality])} - - {t(`village:Inns.Guests.${inn.guest}`)} + + {t(innGuestTranslationDict[inn.guest])} - +
diff --git a/src/pages/village/inn-generator.ts b/src/pages/village/inn-generator.ts index 4277eb6..643df90 100644 --- a/src/pages/village/inn-generator.ts +++ b/src/pages/village/inn-generator.ts @@ -7,6 +7,7 @@ import { import { Character } from './character' import { VillageInstitution } from './village-generator' import { ValidLanguage } from '../../hooks/useValidLanguage' +import { TranslationKey } from '../../store/translations/translation.model' export type Inn = { name: { [L in ValidLanguage]: string } @@ -52,6 +53,26 @@ const innOddity = [ 'drunkAdventurers', ] as const export type InnOddity = (typeof innOddity)[number] +export const innOddityTranslationDict: Record< + InnOddity, + TranslationKey<'village'> +> = { + violenceIsInTheAir: 'village:inns.oddities.violence_is_in_the_air', + barrelsInsteadOfChairsAndPlanksInsteadOfTables: + 'village:inns.oddities.barrels_instead_of_chairs_and_planks_instead_of_tables', + bigFireplace: 'village:inns.oddities.big_fireplace', + peltsOnWalls: 'village:inns.oddities.pelts_on_walls', + longCommunalTable: 'village:inns.oddities.long_communal_table', + gamblingDen: 'village:inns.oddities.gambling_den', + mediocreBard: 'village:inns.oddities.mediocre_bard', + niceDog: 'village:inns.oddities.nice_dog', + grumpyOwner: 'village:inns.oddities.grumpy_owner', + monsterHeadOnWall: 'village:inns.oddities.monster_head_on_wall', + singingWaiter: 'village:inns.oddities.singing_waiter', + stompedFloor: 'village:inns.oddities.stomped_floor', + birthdayParty: 'village:inns.oddities.birthday_party', + drunkAdventurers: 'village:inns.oddities.drunk_adventurers', +} const innSpecialty = [ 'cheapDilutedBeer', @@ -70,6 +91,25 @@ const innSpecialty = [ 'dwarvenStrongAle', ] as const export type InnSpecialty = (typeof innSpecialty)[number] +export const innSpecialtyTranslationDict: Record< + InnSpecialty, + TranslationKey<'village'> +> = { + cheapDilutedBeer: 'village:inns.specialities.cheap_diluted_beer', + meatStew: 'village:inns.specialities.meat_stew', + grilledRodent: 'village:inns.specialities.grilled_rodent', + stewedTurnips: 'village:inns.specialities.stewed_turnips', + saltBird: 'village:inns.specialities.salt_bird', + bloodSoup: 'village:inns.specialities.blood_soup', + fierySpiceWine: 'village:inns.specialities.fiery_spice_wine', + roastedPiglet: 'village:inns.specialities.roasted_piglet', + swampStew: 'village:inns.specialities.swamp_stew', + vegetableMush: 'village:inns.specialities.vegetable_mush', + saltedFish: 'village:inns.specialities.salted_fish', + cookedCrow: 'village:inns.specialities.cooked_crow', + bearStew: 'village:inns.specialities.bear_stew', + dwarvenStrongAle: 'village:inns.specialities.dwarven_strong_ale', +} const innGuest = [ 'escapedCriminal', @@ -88,6 +128,25 @@ const innGuest = [ 'scoutingThief', ] as const export type InnGuest = (typeof innGuest)[number] +export const innGuestTranslationDict: Record< + InnGuest, + TranslationKey<'village'> +> = { + escapedCriminal: 'village:inns.guests.escaped_criminal', + unhappyFarmer: 'village:inns.guests.unhappy_farmer', + scarredTreasureHunter: 'village:inns.guests.scarred_treasure_hunter', + dirtyAndSullenHunter: 'village:inns.guests.dirty_and_sullen_hunter', + silentRavenSister: 'village:inns.guests.silent_raven_sister', + noisyBandit: 'village:inns.guests.noisy_bandit', + oldWarVeteran: 'village:inns.guests.old_war_veteran', + nobleInDisguise: 'village:inns.guests.noble_in_disguise', + secretiveSpellbinder: 'village:inns.guests.secretive_spellbinder', + annoyingJester: 'village:inns.guests.annoying_jester', + dustyTraveller: 'village:inns.guests.dusty_traveller', + hungryDwarf: 'village:inns.guests.hungry_dwarf', + frostyElf: 'village:inns.guests.frosty_elf', + scoutingThief: 'village:inns.guests.scouting_thief', +} type InnQuirk = { oddity: InnOddity diff --git a/src/pages/village/village-generator.ts b/src/pages/village/village-generator.ts index 2e3fc2d..5c3842f 100644 --- a/src/pages/village/village-generator.ts +++ b/src/pages/village/village-generator.ts @@ -14,6 +14,8 @@ import { getHumanName, randomGender } from '../npc/name2' import { Character } from './character' import { createRandomInn, Inn } from './inn-generator' import { createRandomVillageName, LanguageStringMap } from './village-name' +import { TranslationKey } from '../../store/translations/translation.model' +import { translationDict } from '../../functions/translation-dict' export interface Village { name: LanguageStringMap @@ -68,6 +70,15 @@ export const createRandomVillage = (): Village => { } type VillageSize = 'outpost' | 'hamlet' | 'village' +export const villageSizeTranslationDict: Record< + VillageSize, + TranslationKey<'village'> +> = { + outpost: 'village:size.outpost', + hamlet: 'village:size.hamlet', + village: 'village:size.village', +} + type VillageInhabitants = [5, 20] | [20, 100] | [100, 400] type SizeOfVillage = { size: VillageSize; inhabitantMinMax: VillageInhabitants } @@ -87,6 +98,16 @@ type Ages = | 'afterBloodMist' type AgeOfVillage = { age: number; builtWhen: Ages } +export const ageOfVillageTranslationDict: Record< + Ages, + TranslationKey<'village'> +> = { + beforeBloodMist: 'village:ages.before_blood_mist', + duringAlderWars: 'village:ages.during_alder_wars', + duringBloodMist: 'village:ages.during_blood_mist', + afterBloodMist: 'village:ages.after_blood_mist', +} + const d66ToAgeOfVillage = (roll: D66): AgeOfVillage => { if (roll <= 16) { return { @@ -130,6 +151,11 @@ const leaderOddities = [ 'drunkard', ] as const type LeaderOddity = (typeof leaderOddities)[number] +export const leaderOddityTranslationDict = translationDict( + leaderOddities, + 'village', + 'leader.oddities.', +) const leaderTypes = [ 'council', @@ -138,14 +164,19 @@ const leaderTypes = [ 'mayor', 'druid', 'sorcerer', - 'noOne', + 'no_one', 'commander', 'trader', - 'rustBrother', + 'rust_brother', 'artisan', - 'banditChief', + 'bandit_chief', ] as const type LeaderType = (typeof leaderTypes)[number] +export const leaderTypeTranslationDict = translationDict( + leaderTypes, + 'village', + 'leader.type.', +) type Leader = Character & { oddity: LeaderOddity @@ -166,19 +197,36 @@ const createRandomLeader = (): Leader | undefined => { const villageProblems = [ 'nightwargs', - 'widespreadDrunkenness', - 'powerStruggle', - 'secretCult', + 'widespread_drunkenness', + 'power_struggle', + 'secret_cult', 'schism', 'undead', 'disease', 'sinkhole', 'bandits', - 'terrorizingMonster', - 'slaveTrade', - 'hauntedByGhoulOrGhost', + 'terrorizing_monster', + 'slavetrade', + 'haunted_by_ghoul_or_ghost', ] as const type VillageProblem = (typeof villageProblems)[number] +export const villageProblemTranslationDict: Record< + VillageProblem, + TranslationKey<'village'> +> = { + nightwargs: 'village:problems.nightwargs', + widespread_drunkenness: 'village:problems.widespread_drunkenness', + power_struggle: 'village:problems.power_struggle', + secret_cult: 'village:problems.secret_cult', + schism: 'village:problems.schism', + undead: 'village:problems.undead', + disease: 'village:problems.disease', + sinkhole: 'village:problems.sinkhole', + bandits: 'village:problems.bandits', + terrorizing_monster: 'village:problems.terrorizing_monster', + slavetrade: 'village:problems.slave_trade', + haunted_by_ghoul_or_ghost: 'village:problems.haunted_by_ghoul_or_ghost', +} const villageFames = [ 'excellentWine', @@ -194,6 +242,24 @@ const villageFames = [ 'suspicionOfStrangers', 'hospitality', ] as const +export const villageFameTranslationDict: Record< + VillageFame, + TranslationKey<'village'> +> = { + excellentWine: 'village:fames.excellent_wine', + deliciousBread: 'village:fames.delicious_bread', + craftsmanship: 'village:fames.craftsmanship', + beautifulLocation: 'village:fames.beautiful_location', + aHorribleMassacre: 'village:fames.a_horrible_massacre', + decadence: 'village:fames.decadence', + wellBrewedBeer: 'village:fames.well_brewed_beer', + hiddenRiches: 'village:fames.hidden_riches', + strangeDisappearances: 'village:fames.strange_disappearances', + worshippingDemons: 'village:fames.worshipping_demons', + suspicionOfStrangers: 'village:fames.suspicion_of_strangers', + hospitality: 'village:fames.hospitality', +} + type VillageFame = (typeof villageFames)[number] const villageOddities = [ @@ -220,6 +286,32 @@ const villageOddities = [ ] as const type VillageOddity = (typeof villageOddities)[number] +export const villageOddityTranslationDict: Record< + VillageOddity, + TranslationKey<'village'> +> = { + eccentricClothing: 'village:oddities.eccentric_clothing', + incomprehensibleAccent: 'village:oddities.incomprehensible_accent', + smellsBad: 'village:oddities.smells_bad', + fullOfFlowers: 'village:oddities.full_of_flowers', + muddy: 'village:oddities.muddy', + oddBuildingMaterials: 'village:oddities.odd_building_materials', + tentVillage: 'village:oddities.tent_village', + builtOnSteepHill: 'village:oddities.built_on_steep_hill', + oldTowerIntheMiddle: 'village:oddities.old_tower_inthe_middle', + grandBuilding: 'village:oddities.grand_building', + windy: 'village:oddities.windy', + inbreeding: 'village:oddities.inbreeding', + strangeEatingHabits: 'village:oddities.strange_eating_habits', + builtOnMarshland: 'village:oddities.built_on_marshland', + cutOutOfACliff: 'village:oddities.cut_out_of_acliff', + oldBurialSite: 'village:oddities.old_burial_site', + wanderingCattle: 'village:oddities.wandering_cattle', + mostlyInhabitedByWomen: 'village:oddities.mostly_inhabited_by_women', + alliedWithMonster: 'village:oddities.allied_with_monster', + preparingWedding: 'village:oddities.preparing_wedding', +} + const villageOdditiesWithWeights: WeightedChoice[] = [ { weight: 3, value: 'eccentricClothing' }, { weight: 2, value: 'incomprehensibleAccent' }, @@ -256,6 +348,21 @@ const villageInstitutions = [ 'stable', ] as const type VillageInstitutionType = (typeof villageInstitutions)[number] +export const villageInstitutionTranslationDict: Record< + VillageInstitutionType, + TranslationKey<'village'> +> = { + nothing: 'village:institutions.nothing', + inn: 'village:institutions.inn', + mill: 'village:institutions.mill', + smith: 'village:institutions.smith', + forester: 'village:institutions.forester', + tradingPost: 'village:institutions.trading_post', + temple: 'village:institutions.temple', + militia: 'village:institutions.militia', + tavern: 'village:institutions.tavern', + stable: 'village:institutions.stable', +} export type VillageInstitution = { id: string diff --git a/src/pages/village/village.page.tsx b/src/pages/village/village.page.tsx index 399814a..e8c3916 100644 --- a/src/pages/village/village.page.tsx +++ b/src/pages/village/village.page.tsx @@ -14,7 +14,18 @@ import { selectTranslateFunction, } from '../../store/translations/translation.slice' import { InnView } from './InnView' -import { Village, createRandomVillage } from './village-generator' +import { + Village, + ageOfVillageTranslationDict, + createRandomVillage, + leaderOddityTranslationDict, + leaderTypeTranslationDict, + villageFameTranslationDict, + villageInstitutionTranslationDict, + villageOddityTranslationDict, + villageProblemTranslationDict, + villageSizeTranslationDict, +} from './village-generator' export const VillagePage = () => { const [village, setVillage] = useState(createRandomVillage()) @@ -27,46 +38,46 @@ export const VillagePage = () => { return (
- {t('village:PageTitle')} + {t('village:page_title')} -
{t('village:PageDescription')}
+
{t('village:page_description')}
- {t('village:CreateNewVillage')} + {t('village:create_new_village')} -
{t(`village:Size.${village.size}`)}
+
{t(villageSizeTranslationDict[village.size])}
{village.name[currentLang]}
- + {village.inhabitants} st - - {village.age} {t('village:Years')} + + {village.age} {t('village:years')} - - {t(`village:Ages.${village.builtWhen}`)} + + {t(ageOfVillageTranslationDict[village.builtWhen])}
{village.leader ? (
- {t('village:Leader.Leader')} + {t('village:leader.leader')}
- - {t(`village:Leader.Type.${village.leader.type}`)} + + {t(leaderTypeTranslationDict[village.leader.type])} - - {t(`village:Leader.Oddities.${village.leader.oddity}`)} + + {t(leaderOddityTranslationDict[village.leader.oddity])}
@@ -74,17 +85,17 @@ export const VillagePage = () => { ) : null}
- {t('village:Quirks')} + {t('village:quirks')}
- - {t(`village:Problems.${village.problem}`)} + + {t(villageProblemTranslationDict[village.problem])} - - {t(`village:Fames.${village.fame}`)} + + {t(villageFameTranslationDict[village.fame])} - - {t(`village:Oddities.${village.oddity}`)} + + {t(villageOddityTranslationDict[village.oddity])}
@@ -93,7 +104,7 @@ export const VillagePage = () => { {village.inns.length > 0 || village.institutions.length > 0 ? (
- {t('village:Institutions.Institutions')} + {t('village:institutions.institutions')} @@ -112,9 +123,13 @@ export const VillagePage = () => { >
- {t(`village:Institutions.${institution.type}`)} + {t( + villageInstitutionTranslationDict[ + institution.type + ], + )}
- +
diff --git a/src/store/translations/translation.data.en.ts b/src/store/translations/translation.data.en.ts index e0cd28f..5f8e0ad 100644 --- a/src/store/translations/translation.data.en.ts +++ b/src/store/translations/translation.data.en.ts @@ -5,324 +5,328 @@ export const translationsEn = { swedish: 'Svenska', }, menu: { - Menu: 'Menu', - Session: 'Session', - Encounters: 'Encounters', + menu: 'Menu', + session: 'Session', + encounters: 'Encounters', places: { - Places: 'Places', - Map: 'Map', - Village: 'Village', + places: 'Places', + map: 'Map', + village: 'Village', }, - Calendar: 'Calendar', + calendar: 'Calendar', gear: { - Gear: 'Gear', - Tables: 'Gear Tables', - Finds: 'Finds', + gear: 'Gear', + tables: 'Gear Tables', + finds: 'Finds', }, npcs: { - NPCs: 'NPCs', - Typical: 'Typical person', - Names: 'Human Names', - Npc: 'Random NPC', + npcs: 'NPCs', + typical: 'Typical person', + names: 'Human Names', + npc: 'Random NPC', }, - Dice: 'Tärningar', - Monsters: 'Monsters', + dice: 'Tärningar', + monsters: 'Monsters', }, - GiveFeedback: 'Feedback', + give_feedback: 'Feedback', }, encounter: { - Title: 'Encounters', - TerrainType: 'Terrain type', + title: 'Encounters', + terrain_type: 'Terrain type', }, calendar: { - 'Weather-Hide': 'Hide weather', - 'Weather-Show': 'Show weather', - 'Weather-High': 'High', - 'Weather-Low': 'Low', - Title: 'Calendar', + weather_hide: 'Hide weather', + weather_show: 'Show weather', + weather_high: 'High', + weather_low: 'Low', + title: 'Calendar', date: 'Date', - Year: 'Year', - Month: 'Month', - AS: 'A.S. (After the shift)', - C: 'Celsius', - F: 'Fahrenheit', - Use: 'Use', - WinterWane: 'Winterwane', - SpringRise: 'Springrise', - SpringWane: 'Springwane', - SummerRise: 'Summerrise', - SummerWane: 'Summerwane', - AutumnRise: 'Autumnrise', - AutumnWane: 'Autumnwane', - WinterRise: 'Winterrise', - SunDay: 'Sunday', - MoonDay: 'Moonday', - BloodDay: 'Blood day', - EarthDay: 'Earth day', - GrowthDay: 'Growth day', - HarvestDay: 'Harvest day', - StillDay: 'Stillday', - FullMoon: 'Full moon', - NewMoon: 'New moon', - StormNone: '', - StormWind: 'Wind storm', - StormSnow: 'Snow storm', - StormRain: 'Rain storm', - DownPourNone: '', - DownPourDrizzle: 'Drizzle', - DownPourShowers: 'Showers', - DownPourLightRain: 'Light rain', - DownPourRaining: 'Raining', - DownPourLightSnow: 'Lätt snowfall', - DownPourSnowShowers: 'Snow showers', - DownPourSnowing: 'Snowing', - ShowMonth: 'Show month', - HideMonth: 'Hide month', - ShowAll: 'Expand months', - HideAll: 'Collapse months', - previousMonth: 'Previous month', - nextMonth: 'Next month', - previousDay: 'Previous day', - nextDay: 'Next day', - 'Options-StartingYear': 'Choose starting year', - 'Options-StartingYearWarning': + year: 'Year', + month: 'Month', + as: 'A.S. (After the shift)', + c: 'Celsius', + f: 'Fahrenheit', + use: 'Use', + winter_wane: 'Winterwane', + spring_rise: 'Springrise', + spring_wane: 'Springwane', + summer_rise: 'Summerrise', + summer_wane: 'Summerwane', + autumn_rise: 'Autumnrise', + autumn_wane: 'Autumnwane', + winter_rise: 'Winterrise', + sun_day: 'Sunday', + moon_day: 'Moonday', + blood_day: 'Blood day', + earth_day: 'Earth day', + growth_day: 'Growth day', + harvest_day: 'Harvest day', + still_day: 'Stillday', + full_moon: 'Full moon', + new_moon: 'New moon', + storm_none: '', + storm_wind: 'Wind storm', + storm_snow: 'Snow storm', + storm_rain: 'Rain storm', + down_pour_none: '', + down_pour_drizzle: 'Drizzle', + down_pour_showers: 'Showers', + down_pour_light_rain: 'Light rain', + down_pour_raining: 'Raining', + down_pour_light_snow: 'Lätt snowfall', + down_pour_snow_showers: 'Snow showers', + down_pour_snowing: 'Snowing', + show_month: 'Show month', + hide_month: 'Hide month', + show_all: 'Expand months', + hide_all: 'Collapse months', + previous_month: 'Previous month', + next_month: 'Next month', + previous_day: 'Previous day', + next_day: 'Next day', + options_starting_year: 'Choose starting year', + options_starting_year_warning: 'Warning: By changing the starting year the calender will reset!', - 'Options-StartingYearNag': + options_starting_year_nag: 'Yes, I want to change the starting year and reset the calendar', - 'Options-StartingDay': 'Choose starting day', + options_starting_day: 'Choose starting day', }, common: { - Page: 'Page', - GMBook: 'GM', - gameSource: { - gameSource: 'Source', + page: 'Page', + gmbook: 'GM', + game_source: { + game_source: 'Source', ravland: 'Ravland', - bitterReach: 'Bitter Reach', - }, - Empty: '', - Kin: { - Human: { - Human: 'Human', - Humans: 'Humans', - Alderlander: 'Alderlander', - Ailander: 'Ailander', - Aslene: 'Aslene', - Frailer: 'Frailer', - SilentGuard: 'Silent Guard', - MaidenDruid: 'Maiden Druid', - }, - Elf: { - Elf: 'Elf', - Elves: 'Elves', - StillElf: 'Still elf', - UnrulyElf: 'Unruly elf', - GoldenBough: 'Golden Bough', - Melder: 'Melder', - RedRunner: 'Red Runner', - }, - Dwarf: { - Dwarf: 'Dwarf', - Dwarves: 'Dwarves', - Belderranian: 'Belderranian', - Meromannian: 'Meromannian', - Canide: 'Canide', - Crombe: 'Crombe', - }, - Ogre: { - Ogre: 'Ogre', - Ogres: 'Ogres', - }, - Orc: { - Orc: 'Orc', - Orcs: 'Orcs', - Urhur: 'Urhur', - Roka: 'Roka', - Isir: 'Isir', - Viraga: 'Viraga', - Drifter: 'Drifter', - }, - Wolfkin: { - Wolfkin: 'Wolfkin', - Wolfkins: 'Wolfkins', - }, - Saurian: { - Saurian: 'Saurian', - Saurians: 'Saurians', - }, - Whiner: { - Whiner: 'Whiner', - Whiners: 'Whiners', - }, - HalflingAndGoblin: { - Halfling: 'Halfling', - Goblin: 'Goblin', - HalflingAndGoblins: 'Halflings & Goblins', - }, - Believers: { - Believers: 'Believers', - RavenSister: 'Raven Sister', - BlackWing: 'Black Wing', - RustBrother: 'Rust Brother', - IronGuard: 'Iron Guard', - HemeSister: 'Heme Sister', - }, - }, - Gender: { - Man: 'Man', - Men: 'Men', - Woman: 'Woman', - Women: 'Women', - }, - ATerrain: { - Plains: 'in a plains', - Forest: 'in a forest', - DarkForest: 'in a dark forest', - Hills: 'in the hills', - Mountain: 'in a mountain', - Lake: 'on a lake', - Swamp: 'in a marshland', - Mire: 'in a quagmire', - RuinCity: 'in the ruins', - }, - Terrain: { - All: 'All', - Plains: 'Plains', - Forest: 'Forest', - DarkForest: 'Dark forest', - Hills: 'Hills', - Mountain: 'Mountains', - Lake: 'Lake', - Swamp: 'Marshlands', - Mire: 'Quagmire', - RuinCity: 'Ruins', - }, - Monster: { - Giant: 'Giant', - AbyssWorm: 'Abyss Worm', - Bloodling: 'Bloodling', - DragonSmall: 'Dragon, small', - DragonLarge: 'Dragon, large', - Drakewyrm: 'Drakewyrm', - DeathKnight: 'Death Knight', - Ent: 'Ent', - Wyvern: 'Wyvern', - Ghost: 'Ghost', - Gryphon: 'Gryphon', - GrayBear: 'Gray Bear', - Harpies: 'Harpies', - Hydra: 'Hydra', - Insectoid: 'Insectoid', - GiantSquid: 'Giant Squid', - Manticore: 'Manticore', - Minotaur: 'Minotaur', - NightWarg: 'Nightwarg', - RestlessDead: 'Restless Dead', - Skeleton: 'Skeleton', - Ghoul: 'Ghoul', - SeaSerpent: 'Sea Serpent', - StranglingVine: 'Strangling Vine', - Troll: 'Troll', - Dragon: 'Dragon', - Demon: 'Demon', - }, - communityMonster: { - giantSpider: { + bitter_reach: 'Bitter Reach', + }, + empty: '', + kin: { + human: { + human: 'Human', + humans: 'Humans', + alderlander: 'Alderlander', + ailander: 'Ailander', + aslene: 'Aslene', + frailer: 'Frailer', + silent_guard: 'Silent Guard', + maiden_druid: 'Maiden Druid', + }, + elf: { + elf: 'Elf', + elves: 'Elves', + still_elf: 'Still elf', + unruly_elf: 'Unruly elf', + golden_bough: 'Golden Bough', + melder: 'Melder', + red_runner: 'Red Runner', + }, + dwarf: { + dwarf: 'Dwarf', + dwarves: 'Dwarves', + belderranian: 'Belderranian', + meromannian: 'Meromannian', + canide: 'Canide', + crombe: 'Crombe', + }, + ogre: { + ogre: 'Ogre', + ogres: 'Ogres', + }, + orc: { + orc: 'Orc', + orcs: 'Orcs', + urhur: 'Urhur', + roka: 'Roka', + isir: 'Isir', + viraga: 'Viraga', + drifter: 'Drifter', + }, + wolfkin: { + wolfkin: 'Wolfkin', + wolfkins: 'Wolfkins', + }, + saurian: { + saurian: 'Saurian', + saurians: 'Saurians', + }, + whiner: { + whiner: 'Whiner', + whiners: 'Whiners', + }, + halfling_and_goblin: { + halfling: 'Halfling', + goblin: 'Goblin', + halfling_and_goblins: 'Halflings & Goblins', + }, + believers: { + believers: 'Believers', + raven_sister: 'Raven Sister', + black_wing: 'Black Wing', + rust_brother: 'Rust Brother', + iron_guard: 'Iron Guard', + heme_sister: 'Heme Sister', + }, + }, + gender: { + man: 'Man', + men: 'Men', + woman: 'Woman', + women: 'Women', + }, + aterrain: { + plains: 'in a plains', + forest: 'in a forest', + dark_forest: 'in a dark forest', + hills: 'in the hills', + mountain: 'in a mountain', + lake: 'on a lake', + swamp: 'in a marshland', + mire: 'in a quagmire', + ruin_city: 'in the ruins', + }, + terrain: { + all: 'All', + plains: 'Plains', + forest: 'Forest', + dark_forest: 'Dark forest', + hills: 'Hills', + mountain: 'Mountains', + lake: 'Lake', + swamp: 'Marshlands', + mire: 'Quagmire', + ruin_city: 'Ruins', + }, + monster: { + giant: 'Giant', + abyss_worm: 'Abyss Worm', + bloodling: 'Bloodling', + dragon_small: 'Dragon, small', + dragon_large: 'Dragon, large', + drakewyrm: 'Drakewyrm', + death_knight: 'Death Knight', + ent: 'Ent', + wyvern: 'Wyvern', + ghost: 'Ghost', + gryphon: 'Gryphon', + gray_bear: 'Gray Bear', + harpies: 'Harpies', + hydra: 'Hydra', + insectoid: 'Insectoid', + giant_squid: 'Giant Squid', + manticore: 'Manticore', + minotaur: 'Minotaur', + night_warg: 'Nightwarg', + restless_dead: 'Restless Dead', + skeleton: 'Skeleton', + ghoul: 'Ghoul', + sea_serpent: 'Sea Serpent', + strangling_vine: 'Strangling Vine', + troll: 'Troll', + dragon: 'Dragon', + demon: 'Demon', + }, + community_monster: { + giant_spider: { name: 'Giant Spider', description: 'Very territorial, guarding its nest so will not follow. When possible will start the fight with an ambush attack towards the tallest enemy', }, - giantSpiderling: { name: 'Giant Spiderling', description: '' }, - }, - Direction: { - North: 'north', - NorthEast: 'north east', - East: 'east', - SouthEast: 'south east', - South: 'south', - SouthWest: 'south west', - West: 'west', - NorthWest: 'north west', - }, - Range: { - Range: 'Range', - ArmsLength: "Arm's length", - Near: 'Near', - Short: 'Short', - Long: 'Long', - }, - Attribute: 'Attributes', - Attributes: { - Strength: 'Strength', - Agility: 'Agility', - Wits: 'Wits', - Empathy: 'Empathy', - }, - Description: { - Description: 'Description', - Isir: 'Isir warriors have a poisonous bite (hallucinogenic poison with Potency D3+2). The bite itself is an unarmed attack with Weapon Damage 1 (slash wound). Isir warrior also get a +3 bonus to ENDURANCE rolls to resist poison.', - Ogre: "The Power Level of any spell cast against an ogre is automatically decreased by D6, due to the ogres' natural resilience to magic.", - Goblin: + giant_spiderling: { + name: 'Giant Spiderling', + description: '', + }, + }, + direction: { + north: 'north', + north_east: 'north east', + east: 'east', + south_east: 'south east', + south: 'south', + south_west: 'south west', + west: 'west', + north_west: 'north west', + }, + range: { + range: 'Range', + arms_length: "Arm's length", + near: 'Near', + short: 'Short', + long: 'Long', + }, + attribute: 'Attributes', + attributes: { + strength: 'Strength', + agility: 'Agility', + wits: 'Wits', + empathy: 'Empathy', + }, + description: { + description: 'Description', + isir: 'Isir warriors have a poisonous bite (hallucinogenic poison with Potency D3+2). The bite itself is an unarmed attack with Weapon Damage 1 (slash wound). Isir warrior also get a +3 bonus to ENDURANCE rolls to resist poison.', + ogre: "The Power Level of any spell cast against an ogre is automatically decreased by D6, due to the ogres' natural resilience to magic.", + goblin: 'Goblins can see in the dark and are thus not affected by darkness at all. In direct daylight, they suffer 1 point of damage to Agility every Quarter Day.', }, - Skills: { - Skills: 'Skills', - Might: 'Might', - Endurance: 'Endurance', - Melee: 'Melee', - Crafting: 'Crafting', - Stealth: 'Stealth', - SleightOfHand: 'SleightOfHand', - Move: 'Move', - Markmanship: 'Markmanship', - Scouting: 'Scouting', - Lore: 'Lore', - Survival: 'Survival', - Insight: 'Insight', - Manipulation: 'Manipulation', - Performance: 'Performance', - Healing: 'Healing', - AnimalHandling: 'AnimalHandling', + skills: { + skills: 'Skills', + might: 'Might', + endurance: 'Endurance', + melee: 'Melee', + crafting: 'Crafting', + stealth: 'Stealth', + sleight_of_hand: 'SleightOfHand', + move: 'Move', + markmanship: 'Markmanship', + scouting: 'Scouting', + lore: 'Lore', + survival: 'Survival', + insight: 'Insight', + manipulation: 'Manipulation', + performance: 'Performance', + healing: 'Healing', + animal_handling: 'AnimalHandling', }, talents: { talents: 'Talents', - horseMaster: 'Horseback Fighter', - shiftingShapes2: 'Path of Shifting Shapes 2', - shiftingShapes3: 'Path of Shifting Shapes 3', - pathOfHealing2: 'Path of Healing 2', - pathOfTheArrow2: 'Path of the Arrow 2', - pathOfSight2: 'Path of Sight 2', - pathOfTheEnemy2: 'Path of the Enemy 2', - pathOfKiller2: 'Path of the Killer 2', - pathOfForest2: 'Path of the Forest 2', + horse_master: 'Horseback Fighter', + shifting_shapes2: 'Path of Shifting Shapes 2', + shifting_shapes3: 'Path of Shifting Shapes 3', + path_of_healing2: 'Path of Healing 2', + path_of_the_arrow2: 'Path of the Arrow 2', + path_of_sight2: 'Path of Sight 2', + path_of_the_enemy2: 'Path of the Enemy 2', + path_of_killer2: 'Path of the Killer 2', + path_of_forest2: 'Path of the Forest 2', executioner2: 'Executioner 2', - fastFootwork: 'Fast Footwork', + fast_footwork: 'Fast Footwork', threatening: 'Threatening', - coldBlooded: 'Cold Blooded', - pathOfBlood2: 'Path of Blood 2', - pathOfDeath2: 'Path of Death 2', - pathOfTheBlade2: 'Path of Blade 2', - pathOfBlood2OrPathOfDeath2: - '$t(common:talents.pathOfBlood2) or $t(common:talents.pathOfDeath2)', - pathOfTheBlade2OrPathOfTheEnemy2: - '$t(common:talents.pathOfTheBlade2) or $t(common:talents.pathOfTheEnemy2)', - pathOfHealing2OrShiftingShapes2OrPathOfSight2: - '$t(common:talents.pathOfHealing2) or $t(common:talents.shiftingShapes2) or $t(common:talents.pathOfSight2)', + cold_blooded: 'Cold Blooded', + path_of_blood2: 'Path of Blood 2', + path_of_death2: 'Path of Death 2', + path_of_the_blade2: 'Path of Blade 2', + path_of_blood2or_path_of_death2: + '$t(common:talents.path_of_blood2) or $t(common:talents.path_of_death2)', + path_of_the_blade2or_path_of_the_enemy2: + '$t(common:talents.path_of_the_blade2) or $t(common:talents.path_of_the_enemy2)', + path_of_healing2or_shifting_shapes2or_path_of_sight2: + '$t(common:talents.path_of_healing2) or $t(common:talents.shifting_shapes2) or $t(common:talents.path_of_sight2)', bowyer: 'Bowyer', builder: 'Builder', chef: 'Chef', lockpicker: 'Lockpicker', - masterOfTheHunt: 'Master of the Hunt', + master_of_the_hunt: 'Master of the Hunt', pathfinder: 'Pathfinder', poisoner: 'Poisoner', smith: 'Smith', tailor: 'Tailor', - tailorOrTanner: '$t(common:talents.tailor) or $t(common:talents.tanner)', + tailor_or_tanner: + '$t(common:talents.tailor) or $t(common:talents.tanner)', tanner: 'Tanner', - pathOfTheSong: 'Path of the Song', + path_of_the_song: 'Path of the Song', }, material: { material: 'Material', - animalHorn: 'Animal horn', + animal_horn: 'Animal horn', bread: 'Bread', cloth: 'Cloth', feather: 'Feather', @@ -333,14 +337,15 @@ export const translationsEn = { meat: 'Meat', fish: 'Fish', vegetables: 'Vegetables', - meatOrFishOrVegetables: + meat_or_fish_or_vegetables: '$t(common:material.meat) or $t(common:material.fish) or $t(common:material.vegetables)', parchment: 'Parchment', pelt: 'Pelt', stone: 'Stone', tallow: 'Tallow', wood: 'Wood', - woodOrLeather: '$t(common:material.wood) or $t(common:material.leather)', + wood_or_leather: + '$t(common:material.wood) or $t(common:material.leather)', }, tool: { tool: 'Tool', @@ -350,506 +355,557 @@ export const translationsEn = { fire: 'Fire', forge: 'Forge', hammer: 'Hammer', - inkAndQuill: 'Ink and quill', + ink_and_quill: 'Ink and quill', knife: 'Knife', - knifeOrAxe: '$t(common:tool.knife) or $t(common:tool.axe)', - needleAndThread: 'Needle and thread', + knife_or_axe: '$t(common:tool.knife) or $t(common:tool.axe)', + needle_and_thread: 'Needle and thread', saw: 'Saw', }, - Gear: { - Gear: 'Gear', - D6Silver: 'D6 silver coins', - D6Copper: 'D6 copper coins', - RidingHorse: 'Riding Horse', - InkAndQuill: 'Ink and Quill', - VialOfPoison: 'Vial of poison', - SimpleFind: 'SIMPLE find', - ValuableFind: 'VALUABLE find', - CombatTrainedHorse: 'Combat Trained Horse', - }, - Weapon: { - Melee: { - Knife: 'Knife', - Dagger: 'Dagger', - Falchion: 'Falchion', - ShortSword: 'Shortsword', - BroadSword: 'Broadssword', - LongSword: 'Longssword', - TwoHandedSword: 'Two-Handed Sword', - Scimitar: 'Scimitar', - Handaxe: 'Handaxe', - Battleaxe: 'Battleaxe', - TwoHandedAxe: 'Two-Handed Axe', - Mace: 'Mace', - Morningstar: 'Morningstar', - Warhammer: 'Warhammer', - Flail: 'Flail', - Club: 'Wooden Club', - LargeClub: 'Large Wooden Club', - HeavyWarhammer: 'Heavy Warhammer', - Staff: 'Staff', - ShortSpear: 'Short Spear', - LongSpear: 'Long Spear', - Pike: 'Pike', - Halberd: 'Halberd', - Trident: 'Trident', - }, - Ranged: { - ThrowingKnife: 'Throwing Knife', - ThrowingAxe: 'Throwing Axe', - ThrowingSpear: 'Throwing Spear', - Sling: 'Sling', - ShortBow: 'Short Bow', - LongBow: 'Longbow', - LightCrossbow: 'Light Crossbow', - HeavyCrossbow: 'Heavy Crossbow', - }, - Feature: { - Light: 'Light', - Heavy: 'Heavy', - Edged: 'Edged', - Pointed: 'Pointed', - Blunt: 'Blunt', - Parrying: 'Parrying', - Hook: 'Hook', - LoadingIsLongAction: 'Loading is a slow action', - }, - Grip: 'Grip', - Bonus: 'Bonus', - Damage: 'Damage', - }, - Armor: { - Leather: 'Leather', - StuddedLeather: 'Studded Leather', - Chainmail: 'Chainmail', - Plate: 'Plate Armor', - Natural: 'Natural', - Rating: 'Armor Rating', - BodyPart: 'Body Part', - Body: 'Body', - }, - Helmet: { - StuddedLeather: 'Studded Leather Cap', - OpenHelmet: 'Open Helmet', - ClosedHelmet: 'Closed Helmet', - GreatHelm: 'Great Helm', - Rating: 'Armor Rating', - BodyPart: 'Body Part', - Body: 'Head', - }, - ArmorFeature: { - PenetrationProtection: 'Armor Rating 3 against arrows and Stabs.', - HardToMove: 'Modifies Move by -2', - HardToSee: 'Modifies Scout by -2', - Normal: '', - Light: 'Light', - Heavy: 'Heavy', - }, - Shield: { - Small: 'Small shield', - Large: 'Large shield', - }, - Coin: { - Coin_one: 'Coin', - Coin_other: 'coins', - Copper: 'copper', - Silver: 'silver', - Gold: 'gold', + gear: { + gear: 'Gear', + d6silver: 'D6 silver coins', + d6copper: 'D6 copper coins', + riding_horse: 'Riding Horse', + ink_and_quill: 'Ink and Quill', + vial_of_poison: 'Vial of poison', + simple_find: 'SIMPLE find', + valuable_find: 'VALUABLE find', + combat_trained_horse: 'Combat Trained Horse', + }, + weapon: { + melee: { + knife: 'Knife', + dagger: 'Dagger', + falchion: 'Falchion', + short_sword: 'Shortsword', + broad_sword: 'Broadssword', + long_sword: 'Longssword', + two_handed_sword: 'Two-Handed Sword', + scimitar: 'Scimitar', + handaxe: 'Handaxe', + battleaxe: 'Battleaxe', + two_handed_axe: 'Two-Handed Axe', + mace: 'Mace', + morningstar: 'Morningstar', + warhammer: 'Warhammer', + flail: 'Flail', + club: 'Wooden Club', + large_club: 'Large Wooden Club', + heavy_warhammer: 'Heavy Warhammer', + staff: 'Staff', + short_spear: 'Short Spear', + long_spear: 'Long Spear', + pike: 'Pike', + halberd: 'Halberd', + trident: 'Trident', + }, + ranged: { + throwing_knife: 'Throwing Knife', + throwing_axe: 'Throwing Axe', + throwing_spear: 'Throwing Spear', + sling: 'Sling', + short_bow: 'Short Bow', + long_bow: 'Longbow', + light_crossbow: 'Light Crossbow', + heavy_crossbow: 'Heavy Crossbow', + }, + feature: { + light: 'Light', + heavy: 'Heavy', + edged: 'Edged', + pointed: 'Pointed', + blunt: 'Blunt', + parrying: 'Parrying', + hook: 'Hook', + loading_is_long_action: 'Loading is a slow action', + }, + grip: 'Grip', + bonus: 'Bonus', + damage: 'Damage', + }, + armor: { + leather: 'Leather', + studded_leather: 'Studded Leather', + chainmail: 'Chainmail', + plate: 'Plate Armor', + natural: 'Natural', + rating: 'Armor Rating', + body_part: 'Body Part', + body: 'Body', + }, + helmet: { + studded_leather: 'Studded Leather Cap', + open_helmet: 'Open Helmet', + closed_helmet: 'Closed Helmet', + great_helm: 'Great Helm', + rating: 'Armor Rating', + body_part: 'Body Part', + body: 'Head', + }, + armor_feature: { + penetration_protection: 'Armor Rating 3 against arrows and Stabs.', + hard_to_move: 'Modifies Move by -2', + hard_to_see: 'Modifies Scout by -2', + normal: '', + light: 'Light', + heavy: 'Heavy', + }, + shield: { + small: 'Small shield', + large: 'Large shield', + }, + coin: { + coin_one: 'Coin', + coin_other: 'coins', + copper: 'copper', + silver: 'silver', + gold: 'gold', day: 'per day', hex: 'per hexagon', }, - Weight: { - Weight: 'Weight', - None: '–', - Tiny: 'Tiny', - Light: 'Light', - Normal: 'Normal', - Heavy: 'Heavy', + weight: { '3': '3', '4': '4', '5': '5', '6': '6', '7': '7', '8': '8', + weight: 'Weight', + none: '–', + tiny: 'Tiny', + light: 'Light', + normal: 'Normal', + heavy: 'Heavy', }, time: { time: 'Time', - quarterDay: 'Quarter Day', + quarter_day: 'Quarter Day', day: 'One Day', week: 'One Week', - twoWeeks: 'Two Weeks', - bookTime: '7 Quarter Days for an original. 2 Quarter Days for a copy', + two_weeks: 'Two Weeks', + book_time: '7 Quarter Days for an original. 2 Quarter Days for a copy', }, }, finds: { - Title: 'Finds', - Value: 'Value', - Type: 'Type', - Location: 'Location', - Find: { - Type: { - Simple: 'Simple', - Valuable: 'Valuable', - Precious: 'Precious', - }, - Location: { - Carried: 'Carried', - Lair: 'Lair', - }, - Armchair: 'Armchair', - Artifact: 'Artifact', - Axe: 'Axe', - BeautifulDesk: 'Beautiful Desk', - BeautifulTapestry: 'Beautiful Tapestry', - BeautifulVase: 'Beautiful Vase', - BeltBuckle: 'Belt Buckle', - BoneDice: 'Bone Dice', - BoneStatuette: 'Bone Statuette', - BoneWhistle: 'Bone Whistle', - Book: 'Book', - BottleOfExpensiveWine: 'Bottle Of Expensive Wine', - BronzeAltar: 'Bronze Altar', - BronzeArmor: 'Bronze Armor', - BronzeBeltBuckle: 'Bronze Belt Buckle', - BronzeBracelet: 'Bronze Bracelet', - BronzeDagger: 'Bronze Dagger', - BronzeDrinkingHorn: 'Bronze Drinking Horn', - BronzeEarring: 'Bronze Earring', - BronzeHelmet: 'Bronze Helmet', - BronzeLantern: 'Bronze Lantern', - BronzeMedallion: 'Bronze Medallion', - BronzeMirror: 'Bronze Mirror', - BronzeNecklace: 'Bronze Necklace', - BronzePot: 'Bronze Pot', - BronzeSarcophagus: 'Bronze Sarcophagus', - BronzeShield: 'Bronze Shield', - BronzeStatue: 'Bronze Statue', - BronzeStatuette: 'Bronze Statuette', - Cabinet: 'Cabinet', - CalfSkinGloves: 'Calf Skin Gloves', - Candelabrum: 'Candelabrum', - Carpet: 'Carpet', - CeilingCandelabrum: 'Ceiling Candelabrum', - Chest: 'Chest', - CopperBowl: 'Copper Bowl', - CopperCoins: 'Copper Coins', - CopperCrown: 'Copper Crown', - CopperHeadband: 'Copper Headband', - CopperMug: 'Copper Mug', - CopperPlate: 'Copper Plate', - CopperRing: 'Copper Ring', - CrownWithGemstones: 'Crown with Gemstones', - DragonscaleBoots: 'Dragonscale Boots', - DrinkingHornWithGoldDetails: 'Drinking Horn with Gold Details', - DrinkingHornWithSilverDetails: 'Drinking Horn with Silver Details', - ElegantBoots: 'Elegant Boots', - ElegantHelmet: 'Elegant Helmet', - ElegantLargeShield: 'Elegant Large Shield', - ElegantOneHandedWeapon: 'Elegant One-handed Weapon', - EmbroidedCarpet: 'Embroided Carpet', - Embroidery: 'Embroidery', - FineHat: 'Fine Hat', - FurCloakWithExpensiveEmbroideryAndGoldenBuckle: + title: 'Finds', + value: 'Value', + type: 'Type', + location: 'Location', + find: { + type: { + simple: 'Simple', + valuable: 'Valuable', + precious: 'Precious', + }, + location: { + carried: 'Carried', + lair: 'Lair', + }, + armchair: 'Armchair', + artifact: 'Artifact', + axe: 'Axe', + beautiful_desk: 'Beautiful Desk', + beautiful_tapestry: 'Beautiful Tapestry', + beautiful_vase: 'Beautiful Vase', + belt_buckle: 'Belt Buckle', + bone_dice: 'Bone Dice', + bone_statuette: 'Bone Statuette', + bone_whistle: 'Bone Whistle', + book: 'Book', + bottle_of_expensive_wine: 'Bottle Of Expensive Wine', + bronze_altar: 'Bronze Altar', + bronze_armor: 'Bronze Armor', + bronze_belt_buckle: 'Bronze Belt Buckle', + bronze_bracelet: 'Bronze Bracelet', + bronze_dagger: 'Bronze Dagger', + bronze_drinking_horn: 'Bronze Drinking Horn', + bronze_earring: 'Bronze Earring', + bronze_helmet: 'Bronze Helmet', + bronze_lantern: 'Bronze Lantern', + bronze_medallion: 'Bronze Medallion', + bronze_mirror: 'Bronze Mirror', + bronze_necklace: 'Bronze Necklace', + bronze_pot: 'Bronze Pot', + bronze_sarcophagus: 'Bronze Sarcophagus', + bronze_shield: 'Bronze Shield', + bronze_statue: 'Bronze Statue', + bronze_statuette: 'Bronze Statuette', + cabinet: 'Cabinet', + calf_skin_gloves: 'Calf Skin Gloves', + candelabrum: 'Candelabrum', + carpet: 'Carpet', + ceiling_candelabrum: 'Ceiling Candelabrum', + chest: 'Chest', + copper_bowl: 'Copper Bowl', + copper_coins: 'Copper Coins', + copper_crown: 'Copper Crown', + copper_headband: 'Copper Headband', + copper_mug: 'Copper Mug', + copper_plate: 'Copper Plate', + copper_ring: 'Copper Ring', + crown_with_gemstones: 'Crown with Gemstones', + dragonscale_boots: 'Dragonscale Boots', + drinking_horn_with_gold_details: 'Drinking Horn with Gold Details', + drinking_horn_with_silver_details: 'Drinking Horn with Silver Details', + elegant_boots: 'Elegant Boots', + elegant_helmet: 'Elegant Helmet', + elegant_large_shield: 'Elegant Large Shield', + elegant_one_handed_weapon: 'Elegant One-handed Weapon', + embroided_carpet: 'Embroided Carpet', + embroidery: 'Embroidery', + fine_hat: 'Fine Hat', + fur_cloak_with_expensive_embroidery_and_golden_buckle: 'Fur Cloak with Expensive Embroidery and Golden Buckle', - GamingBoard: 'Gaming Board', - Gemstone: 'Gemstone', - GlassBowl: 'Glass Bowl', - GoldAmulet: 'Gold Amulet', - GoldBracelet: 'Gold Bracelet', - GoldCoins: 'Gold Coins', - GoldenArmchair: 'Golden Armchair', - GoldenArmor: 'Golden Armor', - GoldenBowl: 'Golden Bowl', - GoldenCradle: 'Golden Cradle', - GoldenCrown: 'Golden Crown', - GoldenDiadem: 'Golden Diadem', - GoldenEmbroidery: 'Golden Embroidery', - GoldenHelmet: 'Golden Helmet', - GoldenLargeShield: 'Golden Large Shield', - GoldenMirror: 'Golden Mirror', - GoldenNecklace: 'Golden Necklace', - GoldenPalanquin: 'Golden Palanquin', - GoldenSarcophagus: 'Golden Sarcophagus', - GoldenStatue: 'Golden Statue', - GoldenStatueOfAChild: 'Golden Statue of a Child', - GoldenTable: 'Golden Table', - GoldenTray: 'Golden Tray', - GoldenWeapon: 'Golden Weapon', - GoldGoblet: 'Gold Goblet', - GoldMug: 'Gold Mug', - GoldNecklace: 'Gold Necklace', - GoldRing: 'Gold Ring', - GoldStatuette: 'Gold Statuette', - GoodBoots: 'Good Boots', - GoodGloves: 'Good Gloves', - Hammer: 'Hammer', - Knapsack: 'Knapsack', - Lantern: 'Lantern', - LargeRareGemstone: 'Large Rare Gemstone', - Lute: 'Lute', - Mask: 'Mask', - NecklaceWithGemstones: 'Necklace with Gemstones', - OneHandedBronzeWeapon: 'One-handed Bronze Weapon', - Painting: 'Painting', - PaintingWithGoldenFrame: 'Painting with Golden Frame', - PalanquinWithCopperDetails: 'Palanquin with Copper Details', - PalanquinWithSilverDetails: 'Palanquin with Silver Details', - Pearl: 'Pearl', - Pearls: 'Pearls', - PieceOfAmber: 'Piece of Amber', - PileOfCoins: 'Pile of Coins', - Pulpit: 'Pulpit', - RareBook: 'Rare Book', - RareGemstone: 'Rare Gemstone', - RingWithGemstone: 'Ring with Gemstone', - Saw: 'Saw', - Scepter: 'Scepter', - ScepterWithGemstones: 'Scepter with Gemstones', - ShortSpear: 'Short Spear', - ShortSword: 'Shortsword', - SilverAltar: 'Silver Altar', - SilverAmulet: 'Silver Amulet', - SilverBowl: 'Silver Bowl', - SilverBox: 'Silver Box', - SilverBracelet: 'Silver Bracelet', - SilverBrooch: 'Silver Brooch', - SilverCoins: 'Silver Coins', - SilverComb: 'Silver Comb', - SilverCrown: 'Silver Crown', - SilverEarring: 'Silver Earring', - SilverGoblet: 'Silver Goblet', - SilverHeadband: 'Silver Headband', - SilverHelmet: 'Silver Helmet', - SilverMedallion: 'Silver Medallion', - SilverMirror: 'Silver Mirror', - SilverMug: 'Silver Mug', - SilverNecklace: 'Silver Necklace', - SilverRing: 'Silver Ring', - SilverSarcophagus: 'Silver Sarcophagus', - SilverStatue: 'Silver Statue', - SilverStatuette: 'Silver Statuette', - SimpleGemstone: 'Simple Gemstone', - SmallShield: 'Small Shield', - SmallSilverChest: 'Small Silver Chest', - Tapestry: 'Tapestry', - UniqueBook: 'Unique Book', - VelvetGloves: 'Velvet Gloves', - Waterskin: 'Waterskin', - WellTailoredCloakWithSilverBuckle: + gaming_board: 'Gaming Board', + gemstone: 'Gemstone', + glass_bowl: 'Glass Bowl', + gold_amulet: 'Gold Amulet', + gold_bracelet: 'Gold Bracelet', + gold_coins: 'Gold Coins', + golden_armchair: 'Golden Armchair', + golden_armor: 'Golden Armor', + golden_bowl: 'Golden Bowl', + golden_cradle: 'Golden Cradle', + golden_crown: 'Golden Crown', + golden_diadem: 'Golden Diadem', + golden_embroidery: 'Golden Embroidery', + golden_helmet: 'Golden Helmet', + golden_large_shield: 'Golden Large Shield', + golden_mirror: 'Golden Mirror', + golden_necklace: 'Golden Necklace', + golden_palanquin: 'Golden Palanquin', + golden_sarcophagus: 'Golden Sarcophagus', + golden_statue: 'Golden Statue', + golden_statue_of_achild: 'Golden Statue of a Child', + golden_table: 'Golden Table', + golden_tray: 'Golden Tray', + golden_weapon: 'Golden Weapon', + gold_goblet: 'Gold Goblet', + gold_mug: 'Gold Mug', + gold_necklace: 'Gold Necklace', + gold_ring: 'Gold Ring', + gold_statuette: 'Gold Statuette', + good_boots: 'Good Boots', + good_gloves: 'Good Gloves', + hammer: 'Hammer', + knapsack: 'Knapsack', + lantern: 'Lantern', + large_rare_gemstone: 'Large Rare Gemstone', + lute: 'Lute', + mask: 'Mask', + necklace_with_gemstones: 'Necklace with Gemstones', + one_handed_bronze_weapon: 'One-handed Bronze Weapon', + painting: 'Painting', + painting_with_golden_frame: 'Painting with Golden Frame', + palanquin_with_copper_details: 'Palanquin with Copper Details', + palanquin_with_silver_details: 'Palanquin with Silver Details', + pearl: 'Pearl', + pearls: 'Pearls', + piece_of_amber: 'Piece of Amber', + pile_of_coins: 'Pile of Coins', + pulpit: 'Pulpit', + rare_book: 'Rare Book', + rare_gemstone: 'Rare Gemstone', + ring_with_gemstone: 'Ring with Gemstone', + saw: 'Saw', + scepter: 'Scepter', + scepter_with_gemstones: 'Scepter with Gemstones', + short_spear: 'Short Spear', + short_sword: 'Shortsword', + silver_altar: 'Silver Altar', + silver_amulet: 'Silver Amulet', + silver_bowl: 'Silver Bowl', + silver_box: 'Silver Box', + silver_bracelet: 'Silver Bracelet', + silver_brooch: 'Silver Brooch', + silver_coins: 'Silver Coins', + silver_comb: 'Silver Comb', + silver_crown: 'Silver Crown', + silver_earring: 'Silver Earring', + silver_goblet: 'Silver Goblet', + silver_headband: 'Silver Headband', + silver_helmet: 'Silver Helmet', + silver_medallion: 'Silver Medallion', + silver_mirror: 'Silver Mirror', + silver_mug: 'Silver Mug', + silver_necklace: 'Silver Necklace', + silver_ring: 'Silver Ring', + silver_sarcophagus: 'Silver Sarcophagus', + silver_statue: 'Silver Statue', + silver_statuette: 'Silver Statuette', + simple_gemstone: 'Simple Gemstone', + small_shield: 'Small Shield', + small_silver_chest: 'Small Silver Chest', + tapestry: 'Tapestry', + unique_book: 'Unique Book', + velvet_gloves: 'Velvet Gloves', + waterskin: 'Waterskin', + well_tailored_cloak_with_silver_buckle: 'Well Tailored Cloak with Silver Buckle', }, }, gear: { - Title: 'Gear', + title: 'Gear', craft: 'Craft', - Filters: { - Search: 'Search', - MaxPrice: 'Max Price', - }, - Supply: { - Supply: 'Supply', - Reroll: 'Reroll supply', - Common: 'Common', - Uncommon: 'Uncommon', - Rare: 'Rare', - }, - MarketType: { - MarketType: 'Market Type', - DailyLiving: 'Daily Living', - TradeGoods: 'Trade Goods', - LuxuryGoods: 'Luxury Goods', - War: 'War', - Food: 'Food', + filters: { + search: 'Search', + max_price: 'Max Price', + }, + supply: { + supply: 'Supply', + reroll: 'Reroll supply', + common: 'Common', + uncommon: 'Uncommon', + rare: 'Rare', + }, + market_type: { + market_type: 'Market Type', + daily_living: 'Daily Living', + trade_goods: 'Trade Goods', + luxury_goods: 'Luxury Goods', + war: 'War', + food: 'Food', }, category: { cateogory: 'Category', - tradeGoods: 'Trade Goods', + trade_goods: 'Trade Goods', services: 'Services', }, - Gear: { - tradeGoods: 'Trade Goods', - Backpack: { + gear: { + trade_goods: 'Trade Goods', + backpack: { name: 'Backpack', effect: '-1 Weight. i.e. adds 1 to carrying capacity', }, - Bandages: { name: 'Bandages', effect: 'Gear Bonus +1 to Healing.' }, - Barrel: { + bandages: { + name: 'Bandages', + effect: 'Gear Bonus +1 to Healing.', + }, + barrel: { name: 'Barrel', effect: 'Contains 33 units (100 servings) of Water or other liquid', }, - BearTrap: { + bear_trap: { name: 'Bear Trap', effect: 'Gear Bonus +2 to Hunting during journeys.', }, - Blanket: { name: 'Blanket', effect: 'Gear Bonus +1 against cold.' }, - Book: { + blanket: { + name: 'Blanket', + effect: 'Gear Bonus +1 against cold.', + }, + book: { name: 'Book', effect: 'If writing, +1 to final Manipulation/Performance per 7QD spent writing. If read, +1 Lore to whatever subject the book describe', }, - Cauldron: { + cauldron: { name: 'Cauldron', effect: 'Lets Chef cook 1 Food unit (3 meal) per Quarter Day.', }, - Chalk: { name: 'Chalk', effect: 'Can be used by Symbolists.' }, - Chest: { name: 'Chest', effect: 'Can store 100 units.' }, - ClayJug: { + chalk: { + name: 'Chalk', + effect: 'Can be used by Symbolists.', + }, + chest: { + name: 'Chest', + effect: 'Can store 100 units.', + }, + clay_jug: { name: 'Clay Jug', effect: 'Contains one unit of Water or other liquid.', }, - ClayPot: { name: 'Clay Pot', effect: '.5 weight when filled' }, - CrystalBall: { + clay_pot: { + name: 'Clay Pot', + effect: '.5 weight when filled', + }, + crystal_ball: { name: 'Crystal Ball', effect: 'Can be used as ingredient in spells.', }, - Drum: { name: 'Drum', effect: 'Gear Bonus +1 to Performance.' }, - FieldKitchen: { + drum: { + name: 'Drum', + effect: 'Gear Bonus +1 to Performance.', + }, + field_kitchen: { name: 'Field Kitchen', effect: 'Makes it possible to cook 2D6 units of Food in a Quarter Day.', }, - FieldRation: { + field_ration: { name: 'Field Ration', effect: 'One unit of Food. Increases the Food Resource Die one step', }, - FishingHookAndLine: { + fishing_hook_and_line: { name: 'Fishing Hook and Line', effect: 'Gear Bonus +1 to Fishing during journeys.', }, - FishingNet: { + fishing_net: { name: 'Fishing Net', effect: 'Gear Bonus +2 to Fishing during journeys.', }, - FlintAndSteel: { + flint_and_steel: { name: 'Flint and Steel', effect: 'Gear Bonus +1 to Making Camp during journeys.', }, - Flute: { name: 'Flute', effect: 'Gear Bonus +1 to Performance.' }, - FoodKnife: { name: 'Food Knife', effect: '–' }, - GrapplingHook: { + flute: { + name: 'Flute', + effect: 'Gear Bonus +1 to Performance.', + }, + food_knife: { + name: 'Food Knife', + effect: '–', + }, + grappling_hook: { name: 'Grappling Hook', effect: 'Gear Bonus +1 when climbing.', }, - HallucinogenicPoisonOrAntidote: { + hallucinogenic_poison_or_antidote: { name: 'Hallucinogenic Poison (dosage)', effect: 'Potency 3. Each increase in Potency doubles the price.', }, - Harp: { name: 'Harp', effect: 'Gear Bonus +2 to Performance.' }, - HolySymbol: { + harp: { + name: 'Harp', + effect: 'Gear Bonus +2 to Performance.', + }, + holy_symbol: { name: 'Holy Symbol', effect: 'Can be used as ingredient in spells.', }, - Horn: { name: 'Horn', effect: 'Gear Bonus +1 to Performance.' }, - Hourglass: { + horn: { + name: 'Horn', + effect: 'Gear Bonus +1 to Performance.', + }, + hourglass: { name: 'Hourglass', effect: 'Can be used as ingredient in spells.', }, - InkAndQuill: { + ink_and_quill: { name: 'Ink and Quill', effect: 'Can be used to write down spells.', }, - LampOil: { name: 'Lamp Oil', effect: 'Lasts a Quarter Day.' }, - Lantern: { + lamp_oil: { + name: 'Lamp Oil', + effect: 'Lasts a Quarter Day.', + }, + lantern: { name: 'Lantern', effect: 'Illuminates within Near range for a Quarter Day. Requires Lamp Oil', }, - LargeTent: { + large_tent: { name: 'Large Tent', effect: 'Room for six Gear Bonus +2 to Making Camp', }, - LethalPoisonOrAntidote: { + lethal_poison_or_antidote: { name: 'Lethal Poison (dosage)', effect: 'Potency 3. Each increase in Potency doubles the price.', }, - Lockpicks: { + lockpicks: { name: 'Lockpicks', effect: 'Gear Bonus +1 to Sleight of Hand when picking locks.', }, - Lyre: { name: 'Lyre', effect: 'Gear Bonus +1 to Performance.' }, - MagnifyingGlass: { + lyre: { + name: 'Lyre', + effect: 'Gear Bonus +1 to Performance.', + }, + magnifying_glass: { name: 'Magnifying Glass', effect: 'Can be used as ingredient in spells.', }, - Map: { name: 'Map', effect: 'Can be used as ingredient in spells.' }, - MetalChalice: { name: 'Metal Chalice', effect: '–' }, - MetalPlate: { name: 'Metal Plate', effect: '–' }, - OilLamp: { + map: { + name: 'Map', + effect: 'Can be used as ingredient in spells.', + }, + metal_chalice: { + name: 'Metal Chalice', + effect: '–', + }, + metal_plate: { + name: 'Metal Plate', + effect: '–', + }, + oil_lamp: { name: 'Oil Lamp', effect: 'Illuminates within Near range for a Quarter Day. Can only be used indoors. Requires Lamp Oil', }, - ParalyzingPoisonOrAntidote: { + paralyzing_poison_or_antidote: { name: 'Paralyzing Poison (dosage)', effect: 'Potency 3. Each increase in Potency doubles the price.', }, - Parchment: { + parchment: { name: 'Parchment', effect: 'Can be used to write down spells.', }, - Perfume: { + perfume: { name: 'Perfume', effect: 'Gear Bonus +1 to Manipulation. Lasts a Quarter Day.', }, - Quiver: { + quiver: { name: 'Quiver', effect: 'Does not encumber the wearer.', }, - RopeTenMeters: { + rope_ten_meters: { name: 'Rope, 10 Meters', effect: 'Gear Bonus +1 when climbing.', }, - Scales: { + scales: { name: 'Scales', effect: 'Can be used as ingredient in spells.', }, - SleepingFur: { + sleeping_fur: { name: 'Sleeping Fur', effect: 'Gear Bonus +2 against cold.', }, - SleepingPoisonOrAntidote: { + sleeping_poison_or_antidote: { name: 'Sleeping Poison', effect: 'Potency 3. Each increase in Potency doubles the price.', }, - SmallTent: { + small_tent: { name: 'Small Tent', effect: 'Room for two. Gear Bonus +2 to Making Camp', }, - Snares: { + snares: { name: 'Snares', effect: 'Gear Bonus +1 to Hunting during journeys.', }, - Spoon: { name: 'Spoon', effect: '–' }, - Spyglass: { + spoon: { + name: 'Spoon', + effect: '–', + }, + spyglass: { name: 'Spyglass', effect: 'Gear Bonus +2 to Scouting at Long range.', }, - TallowCandle: { + tallow_candle: { name: 'Tallow Candle', - effect: `Illuminates within Arm's Length for a Quarter Day`, + effect: "Illuminates within Arm's Length for a Quarter Day", }, - Tankard: { name: 'Tankard', effect: '–' }, - ThreeArrowsIronHead: { + tankard: { + name: 'Tankard', + effect: '–', + }, + three_arrows_iron_head: { name: 'Arrows, Iron Head', effect: 'Increases the Arrows Resource Die by one step.', }, - ThreeArrowsWoodenHead: { + three_arrows_wooden_head: { name: 'Arrows, Wooden Head', effect: 'Increases the Arrows Resource Die by one step. Armor counts double.', }, - Torches: { + torches: { name: 'Torches', effect: 'Increases the Torches Resource Die one step. Illuminates within Near range. Roll the Resource Die each Turn (15 minutes).', }, - Waterskin: { + waterskin: { name: 'Waterskin', effect: 'Needed to carry Water. Does not encumber.', }, }, service: { service: 'Common services', - bathAtInn: { + bath_at_inn: { name: 'Bath at Inn', effect: '', }, @@ -866,7 +922,7 @@ export const translationsEn = { name: 'Bodyguard', effect: '', }, - clothesWashed: { + clothes_washed: { name: 'Clothes Washed', effect: '', }, @@ -874,27 +930,27 @@ export const translationsEn = { name: 'Courier', effect: '', }, - roadToll: { + road_toll: { name: 'Road Toll', effect: '', }, - lodgingAtInnDormitory: { + lodging_at_inn_dormitory: { name: 'Lodging at Inn, Dormitory', effect: '', }, - lodgingAtInnSeparateRoom: { + lodging_at_inn_separate_room: { name: 'Lodging at Inn, Separate Room', effect: '', }, - fineDwelling: { + fine_dwelling: { name: 'Fine Dwelling', effect: '', }, - bowlOfStew: { + bowl_of_stew: { name: 'Bowl of Stew', effect: 'Cover the daily need of Food', }, - heartyMeal: { + hearty_meal: { name: 'Hearty Meal', effect: 'Cover the daily need of Food and Water', }, @@ -902,77 +958,62 @@ export const translationsEn = { name: 'Feast', effect: 'Cover the daily need of Food and Water', }, - flagonOfAle: { + flagon_of_ale: { name: 'Flagon of Ale', effect: 'Cover the daily need of Water', }, - chaliceOfWine: { + chalice_of_wine: { name: 'Chalice of Wine', effect: 'Cover the daily need of Water', }, teacher: { name: 'Teacher', - effect: `Read more about teachers on page 40 in the Player's Handbook.`, + effect: "Read more about teachers on page 40 in the Player's Handbook.", }, }, }, home: { - Page: 'Yxans klagan', - Description: + page: 'Yxans klagan', + description: 'Yxans klagan is my way of giving back to the community and a way for me to play with new web technology.', - GameTitle: 'Forbidden Lands', - GameDescription: + game_title: 'Forbidden Lands', + game_description: 'Welcome to Forbidden Lands. In this tabletop roleplaying game, you are not heroes sent on missions dictated by others – instead, you are raiders and rogues bent on making your own mark on a cursed world. You will wander the wild lands, discover lost tombs, fight monsters, and, if you live long enough, build your own stronghold to defend. During your ad- ventures, you will uncover the secrets of dark powers lurking in the shadows and, in the end, you can be the ones to decide the fate of the Forbidden Lands.', - FreeLeague: 'Free League Publishing', - ThanksTo: 'Thanks to', - ForAFantasticGame: 'for a fantastic game!', - CommunityTitle: 'Community', - ThanksCommunity: + free_league: 'Free League Publishing', + thanks_to: 'Thanks to', + for_afantastic_game: 'for a fantastic game!', + community_title: 'Community', + thanks_community: 'Thanks to the Forbidden Lands community for inspiration, help and material that I could use.', - moreTools: { + more_tools: { title: 'More tools', - dragonTools: { + dragon_tools: { name: 'DragonTools', description: 'A web tool for GMs of Dragonbane', }, }, }, map: { - Title: 'Map', - DownloadMapData: 'Download map data', - PasteMapData: 'Paste map data JSON', - 'Popover-Hide': 'Hide', - 'Popover-Explore': 'Explore', - 'Popover-Forget': 'Forget', - 'Popover-Explored': 'Explored', - 'Popover-Unexplored': 'Unexplored', - InvalidJson: 'Invalid JSON', - InvalidHexData: `Hex Data did not look like: { - version: 2, - source: 'ravland' | 'bitterReach', - fogOfWar: boolean, - maps: { - ravland: { - hasExploredHexes: boolean, - hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[], - selectedHex: boolean | undefined, - }, - bitterReach: { - hasExploredHexes: boolean, - hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[], - selectedHex: boolean | undefined, - }, - }, - }`, - GeneralPasteError: 'Unknown Paste Error', - FogOfWar_On: 'Turn off Fog of War', - FogOfWar_Off: 'Turn on Fog of War', + title: 'Map', + download_map_data: 'Download map data', + paste_map_data: 'Paste map data JSON', + popover_hide: 'Hide', + popover_explore: 'Explore', + popover_forget: 'Forget', + popover_explored: 'Explored', + popover_unexplored: 'Unexplored', + invalid_json: 'Invalid JSON', + invalid_hex_data: + "Hex Data did not look like: {\n version: 2,\n source: 'ravland' | 'bitterReach',\n fogOfWar: boolean,\n maps: {\n ravland: {\n hasExploredHexes: boolean,\n hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[],\n selectedHex: boolean | undefined,\n },\n bitterReach: {\n hasExploredHexes: boolean,\n hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[],\n selectedHex: boolean | undefined,\n },\n },\n }", + general_paste_error: 'Unknown Paste Error', + fog_of_war_on: 'Turn off Fog of War', + fog_of_war_off: 'Turn on Fog of War', }, monster: { - Title: 'Monsters', - bookOfMonsters: 'Book of Monsters', - backToAllMonsters: 'Table of contents', - randomMonster: { + title: 'Monsters', + book_of_monsters: 'Book of Monsters', + back_to_all_monsters: 'Table of contents', + random_monster: { title: 'Random Monster', description: 'The world is filled with terrible monsters. The most common ones have been written down but most of them can only be described by their random features.', @@ -983,1042 +1024,1044 @@ export const translationsEn = { description: 'Each monster has the page reference in the GM book to the right.', }, - communityMonster: { + community_monster: { title: 'Community Monsters', description: 'Monsters that have been created by passionate people from the community.', - createdBy: 'Created by:', - }, - TheMonster: 'The monster', - TheMonsterHas: 'The monster has', - TheMonsterHave: 'The monster have', - Size: { - Puny: 'Puny', - Puny_def: 'Puny', - Small: 'Small', - Small_def: 'Small', - Average: 'Average', - Average_def: 'Average', - Large: 'Large', - Large_def: 'Large', - Big: 'Big', - Big_def: 'Big', - Huge: 'Huge', - Huge_def: 'Huge', - Gigantic: 'Gigantic', - Gigantic_def: 'Gigantic', - }, - Type: { - Grazing: 'Grazing', - Herbivore: 'Herbivore', - Gatherer: 'Gatherer', - Scavenger: 'Scavenger', - Predator: 'Predator', - AggressivePredator: 'Aggressive Predator', - }, - Head: { - Missing: 'a missing head', - Beak: 'a beak', - HornWithCount: '{{count}} horns on its head', - ElkHorns: 'elkhorns', - TentaclesWithCount: '{{count}} tentacles on its head', - InsectoidEyes: 'insectoid eyes', - SideEyesWithCount: '{{count}} eyes on each side of its head', - ManyEyes: 'many eyes', - BigMane: 'a big mane', - LongTongue: 'a long tongue', - BigEars: 'big ears', - Fin: 'a fin on top of its head', - }, - Tail: { - Tail: 'a tail', - SpikedTail: 'a spiked tail', - }, - Limbs: { - Arms: '{{count}} arms', - Legs: '{{count}} legs', - Tentacles: '{{count}} tentacles', - Wings: '{{count}} wings', - None: 'no limbs', - }, - ArmorLabel: 'Armor', - Armor: { - Skin: 'Skin', - SoftFur: 'Soft fur', - ThickFur: 'Thick fur', - Feathers: 'Feathers', - Scales: 'Scales', - Shell: 'Shell', - BonePlates: 'Bone plates', - ArmoredHide: 'Armored hide', - }, - LivesIn: 'The monster lives in a {{home}}', - Homes: { - Burrow: 'burrow', - Ruin: 'ruin', - WateringHole: 'watering hole', - TreeOrHighPoint: 'tree or on a high point', - Cave: 'cave', - Ravine: 'ravine', - Den: 'den', - }, - Skill: 'Skills', - Skills: { - None: 'No skills', - Melee: 'Melee', - Move: 'Move', - Scouting: 'Scouting', - Stealth: 'Stealth', - }, - Movement: { - Movement: 'Movement', - Zones_one: 'zone', - Zones_other: 'zones', - Slithering: 'Slithering', - Digging: 'Digging', - Swimming: 'Swimming', - Running: 'Running', - Flying: 'Flying', - Climbing: 'Climbing', - }, - Poisons: { - Lethal: 'Lethal', - Paralyzing: 'Paralyzing', - Sleeping: 'Sleeping', - Hallucinogenic: 'Hallucinogenic', - Lethal_count: 'Lethal ({{count}})', - Paralyzing_count: 'Paralyzing ({{count}})', - Sleeping_count: 'Sleeping ({{count}})', - }, - Trait: { - Traits: 'Traits', - Undead: { - Name: 'Undead', - Description: '+2 STR', - }, - Hurt: { - Name: 'Hurt', - Description: 'Half STR', - }, - Colorful: { - Name: 'Colorful', - Description: 'Skin, horn or the like is worth {{count}} silver', - }, - Poisonous: { - Name: 'Poisonous', - }, - Regeneration: { - Name: 'Regeneration', - Description: 'Regenerates D3 STR each round', - }, - ResistanceMagic: { - Name: 'Resistance to Magic', - Description: 'Equivalent to the spell Anti Magic with D6 Power Levels', - }, - Camouflage: { - Name: 'Camouflage', - Description: 'Insanely hard (-3) to detect with Scouting', - }, - Fast: { - Name: 'Fast', - Description: + created_by: 'Created by:', + }, + the_monster: 'The monster', + the_monster_has: 'The monster has', + the_monster_have: 'The monster have', + size: { + puny: 'Puny', + puny_def: 'Puny', + small: 'Small', + small_def: 'Small', + average: 'Average', + average_def: 'Average', + large: 'Large', + large_def: 'Large', + big: 'Big', + big_def: 'Big', + huge: 'Huge', + huge_def: 'Huge', + gigantic: 'Gigantic', + gigantic_def: 'Gigantic', + }, + type: { + grazing: 'Grazing', + herbivore: 'Herbivore', + gatherer: 'Gatherer', + scavenger: 'Scavenger', + predator: 'Predator', + aggressive_predator: 'Aggressive Predator', + }, + head: { + missing: 'a missing head', + beak: 'a beak', + horn_with_count: '{{count}} horns on its head', + elk_horns: 'elkhorns', + tentacles_with_count: '{{count}} tentacles on its head', + insectoid_eyes: 'insectoid eyes', + side_eyes_with_count: '{{count}} eyes on each side of its head', + many_eyes: 'many eyes', + big_mane: 'a big mane', + long_tongue: 'a long tongue', + big_ears: 'big ears', + fin: 'a fin on top of its head', + }, + tail: { + tail: 'a tail', + spiked_tail: 'a spiked tail', + }, + limbs: { + arms: '{{count}} arms', + legs: '{{count}} legs', + tentacles: '{{count}} tentacles', + wings: '{{count}} wings', + none: 'no limbs', + }, + armor_label: 'Armor', + armor: { + skin: 'Skin', + soft_fur: 'Soft fur', + thick_fur: 'Thick fur', + feathers: 'Feathers', + scales: 'Scales', + shell: 'Shell', + bone_plates: 'Bone plates', + armored_hide: 'Armored hide', + }, + lives_in: 'The monster lives in a {{home}}', + homes: { + burrow: 'burrow', + ruin: 'ruin', + watering_hole: 'watering hole', + tree_or_high_point: 'tree or on a high point', + cave: 'cave', + ravine: 'ravine', + den: 'den', + }, + skill: 'Skills', + skills: { + none: 'No skills', + melee: 'Melee', + move: 'Move', + scouting: 'Scouting', + stealth: 'Stealth', + }, + movement: { + movement: 'Movement', + zones_one: 'zone', + zones_other: 'zones', + slithering: 'Slithering', + digging: 'Digging', + swimming: 'Swimming', + running: 'Running', + flying: 'Flying', + climbing: 'Climbing', + }, + poisons: { + lethal: 'Lethal', + paralyzing: 'Paralyzing', + sleeping: 'Sleeping', + hallucinogenic: 'Hallucinogenic', + lethal_count: 'Lethal ({{count}})', + paralyzing_count: 'Paralyzing ({{count}})', + sleeping_count: 'Sleeping ({{count}})', + }, + trait: { + traits: 'Traits', + undead: { + name: 'Undead', + description: '+2 STR', + }, + hurt: { + name: 'Hurt', + description: 'Half STR', + }, + colorful: { + name: 'Colorful', + description: 'Skin, horn or the like is worth {{count}} silver', + }, + poisonous: { + name: 'Poisonous', + }, + regeneration: { + name: 'Regeneration', + description: 'Regenerates D3 STR each round', + }, + resistance_magic: { + name: 'Resistance to Magic', + description: 'Equivalent to the spell Anti Magic with D6 Power Levels', + }, + camouflage: { + name: 'Camouflage', + description: 'Insanely hard (-3) to detect with Scouting', + }, + fast: { + name: 'Fast', + description: 'Draw two initiative cards at the start of battle and may act on both turns', }, - SensitiveHearing: { - Name: 'Sensitive Hearing', - Description: '+2 SV to Scouting', + sensitive_hearing: { + name: 'Sensitive Hearing', + description: '+2 SV to Scouting', }, - SensitiveSmell: { - Name: 'Sensitive Smell', - Description: '+2 SV to Scouting', + sensitive_smell: { + name: 'Sensitive Smell', + description: '+2 SV to Scouting', }, - DarkVision: { - Name: 'Dark Vision', - Description: 'Sees unhindered in darkness', + dark_vision: { + name: 'Dark Vision', + description: 'Sees unhindered in darkness', }, - AcidGlands: { - Name: 'Acid Glands', - Description: 'Can use Acid Attacks', + acid_glands: { + name: 'Acid Glands', + description: 'Can use Acid Attacks', }, - FireGlands: { - Name: 'Fire Glands', - Description: 'Can use Fire Attacks', + fire_glands: { + name: 'Fire Glands', + description: 'Can use Fire Attacks', }, - Intelligent: { - Name: 'Intelligent', - SkillValues: 'Can have SV in Insight and Manipulation', - Telepathy: 'Can speak using telepathy', + intelligent: { + name: 'Intelligent', + skill_values: 'Can have SV in Insight and Manipulation', + telepathy: 'Can speak using telepathy', }, - CanSpeak: { - Name: 'Can Speak', - Description: 'Can speak or mimic language', + can_speak: { + name: 'Can Speak', + description: 'Can speak or mimic language', }, - PossessedByDemon: { - Name: 'Possessed by Demon', - Description: + possessed_by_demon: { + name: 'Possessed by Demon', + description: "Is actually a demon. (See page 80 in the Gamemaster's Guide)", }, }, - Weakness: { - Weakness: 'Weakness', - None: { - Name: 'None', - Description: '–', + weakness: { + weakness: 'Weakness', + none: { + name: 'None', + description: '–', }, - VulnerableToFire: { - Name: 'Vulnerable to Fire', - Description: 'Takes double damage from Fire.', + vulnerable_to_fire: { + name: 'Vulnerable to Fire', + description: 'Takes double damage from Fire.', }, - VulnerableToLight: { - Name: 'Vulnerable to Light', - Description: + vulnerable_to_light: { + name: 'Vulnerable to Light', + description: "Can't tolerate light, must move away from bright lights. If that is not possible the monster takes D3 damage per light source, D6 damage from large light source (like the sun), each round.", }, - AfraidOfLoudNoises: { - Name: 'Afraid of loud noises', - Description: + afraid_of_loud_noises: { + name: 'Afraid of loud noises', + description: 'Loud noises scares the beast. Bangs and loud noises make it flee, clattering shield or the like make it hesitate and avoid the source.', }, - ProtectsOffspring: { - Name: 'Protecting offspring', - Description: + protects_offspring: { + name: 'Protecting offspring', + description: 'Has offspring nearby and will not leave the places where they are.', }, - SensitiveEyes: { - Name: 'Sensitive eyes', - Description: + sensitive_eyes: { + name: 'Sensitive eyes', + description: 'Attacks against the eyes (Insanely hard -3) deals double damage.', }, - ObsessedWithAllThatGlimmers: { - Name: 'Obsessed with all that glimmers', - Description: + obsessed_with_all_that_glimmers: { + name: 'Obsessed with all that glimmers', + description: 'If the creatures spots anything that glimmers like silver or a mirror it will focus its attention on the source.', }, }, - Motivation: { - Motivation: 'Motivation', - Territory: { - Name: 'Territory', - Description: 'The creature is bound to its territory', + motivation: { + motivation: 'Motivation', + territory: { + name: 'Territory', + description: 'The creature is bound to its territory', }, - Pregnant: { - Name: 'Pregnant', - Description: + pregnant: { + name: 'Pregnant', + description: 'The creature is pregnant and wants to give birth to its offspring in peace', }, - Hunger: { - Name: 'Hunger', - Description: + hunger: { + name: 'Hunger', + description: 'The creature is starving and will attack the juiciest adventurer and devour her if possible', }, - Injured: { - Name: 'Injured', - Description: 'The creature is sick (Gains the trait Injured)', + injured: { + name: 'Injured', + description: 'The creature is sick (Gains the trait Injured)', }, - Parasite: { - Name: 'Parasite', - Description: + parasite: { + name: 'Parasite', + description: 'The creature is controlled by a parasitic entity, acts strangely', }, - Alone: { - Name: 'Wants to be alone', - Description: + alone: { + name: 'Wants to be alone', + description: 'The creature wants to be left alone and only attacks if cornered', }, - Fun: { - Name: 'Fun', - Description: 'The creature hunts for fun', + fun: { + name: 'Fun', + description: 'The creature hunts for fun', }, - LookingForHost: { - Name: 'Looking for host', - Description: + looking_for_host: { + name: 'Looking for host', + description: 'It is Looking for a creature that can serve as a host for its offspring in some way', }, - GuardingTreasure: { - Name: 'Guarding treasure', - Description: 'The creature guards treasure', - }, - }, - Attack: { - Type: 'Type', - Attack: 'Attack', - Attacks: 'Attacks', - Roll: 'Roll', - Damage: { - Damage: 'Damage', - Blunt: 'Blunt damage', - Slash: 'Slash damage', - Stab: 'Stab damage', - NonTypical: 'Non Typical damage', - Fear: 'Fear', - Disease: 'Virulence', - Poison: 'Poison', - }, - Range: 'Range', - Description: 'Description', - Bash: { - Type: 'Crushing', - Description: 'Grabs an adventurer and tries to crush it.', - }, - Bite: { - Type: 'Bite', - Description: 'Bites the nearest adventurer with its razorsharp teeth.', - }, - BreathFire: { - Type: 'Breath fire', - Description: + guarding_treasure: { + name: 'Guarding treasure', + description: 'The creature guards treasure', + }, + }, + attack: { + type: 'Type', + attack: 'Attack', + attacks: 'Attacks', + roll: 'Roll', + damage: { + damage: 'Damage', + blunt: 'Blunt damage', + slash: 'Slash damage', + stab: 'Stab damage', + non_typical: 'Non Typical damage', + fear: 'Fear', + disease: 'Virulence', + poison: 'Poison', + }, + range: 'Range', + description: 'Description', + bash: { + type: 'Crushing', + description: 'Grabs an adventurer and tries to crush it.', + }, + bite: { + type: 'Bite', + description: 'Bites the nearest adventurer with its razorsharp teeth.', + }, + breath_fire: { + type: 'Breath fire', + description: 'Fire blazes out from its throat against one adventurer within Short range. If hit the victim takes the same damage each round until the fire is put out, by the victim or friend that succeeds with a roll on Move (fast action).', }, - DeadlyGaze: { - Type: 'Deadly gaze', - Description: + deadly_gaze: { + type: 'Deadly gaze', + description: 'The undead beast stares with dead eyes into the soul of its victim, who is hit by a Fear attack and becomes prone.', }, - Headbutt: { - Type: 'Headbutt', - Description: 'Smashes its head against the adventurer.', + headbutt: { + type: 'Headbutt', + description: 'Smashes its head against the adventurer.', }, - Horn: { - Type: 'Horns', - Description: 'Tries to impale with its horns.', + horn: { + type: 'Horns', + description: 'Tries to impale with its horns.', }, - Roar: { - Type: 'Roar', - Description: + roar: { + type: 'Roar', + description: 'Gives of a deafening roar that provokes a Fear attack against all adventurers within Near range.', }, - Kick: { - Type: 'Kick', - Description: + kick: { + type: 'Kick', + description: 'Kicks the nearest adventurer with all its force. If the attack hits the adventurer is thrown to Near range and becomes prone.', }, - Sweep: { - Type: 'Sweeping attack', - Description: + sweep: { + type: 'Sweeping attack', + description: 'Sweeps its claws (or similar) across two adventurers. If hit becomes prone.', }, - Slash: { - Type: 'Slash', - Description: 'Slashes its sharps claws over the body of an adventurer.', + slash: { + type: 'Slash', + description: 'Slashes its sharps claws over the body of an adventurer.', }, - TailsSlash: { - Type: 'Tail slash', - Description: + tails_slash: { + type: 'Tail slash', + description: 'Slashes an adventurer within Near range with the tip of its tail. If hit becomes prone.', }, - TentacleLash: { - Type: 'Tentacle slash', - Description: + tentacle_lash: { + type: 'Tentacle slash', + description: 'Slashes an adventurer within Near range with the tip of its tentacles against. If hit becomes prone.', }, - Devour: { - Type: 'Devour', - Description: + devour: { + type: 'Devour', + description: 'Tries to devour an adventurer. If the attack hits the adventurer is devoured. The victim can keep attacking from the inside and the beast does not have armor on the inside. The victim crawls out when the beast is dead. Each round inside the beast the victim takes 1 damage.', }, - SpitAcid: { - Type: 'Spit acid', - Description: + spit_acid: { + type: 'Spit acid', + description: 'Opens its maw and lets acid rain down over all adventurers within Near range. Victims that are hit take 1 damage each round for D3 rounds.', }, - DiveAttack: { - Type: 'Dive attack', - Description: + dive_attack: { + type: 'Dive attack', + description: 'Sweeps through the air and slashes an adventurer within Near rangel. If hit becomes prone.', }, - EyeGourge: { - Type: 'Eye Gouge', - Description: + eye_gourge: { + type: 'Eye Gouge', + description: 'The beast focuses on an unfortunate adventurer and attempts to tear thier eyes out with their sharp claws. If the victim takes damage, they immediately also suffer the critical injury “severed eye” (result 41–42 on the table for critical injuries from stab wounds).', }, - ClawFlurry: { - Type: 'Claw Flurry', - Description: + claw_flurry: { + type: 'Claw Flurry', + description: 'The creature rears up before an adventurer and tears at her rapidly with three attacks. The attacks can be PARRIED, but only one at a time.', }, - LockedJaws: { - Type: 'Locked Jaws', - Description: + locked_jaws: { + type: 'Locked Jaws', + description: 'The creature bites one of the adventurers and locks its jaws in a brutal grip. If hit, the adventurer is GRAPPLED and takes 1 point of damage per turn until the creature is removed.', }, - ThroatBite: { - Type: 'Throat Bite', - Description: + throat_bite: { + type: 'Throat Bite', + description: 'The creature sees a weak spot and attacks the adventurer by biting them in the throat, trying to kill them. The attack may be PARRIED. The adventurer suffers half of the amount of damage (round up) to EMPATHY as well, due to the horrific encounter and become COLD.', }, - TentacleFrenzy: { - Type: 'Tentacle Frenzy', - Description: + tentacle_frenzy: { + type: 'Tentacle Frenzy', + description: 'The beast flails its tentacles in a frenzy, striking all adventurers within Near distance. Perform an attack against each adventurer.', }, - TentaclePenetrationArmsLength: { - Type: 'Tentacle Penetration', - Description: + tentacle_penetration_arms_length: { + type: 'Tentacle Penetration', + description: "The creature tries to force a tentacle into a body cavity (such as the mouth, the eyes or the ears) of an adventurer within Arm's length range. The attack damages both STRENGTH and EMPATHY due to the horrifying experience.", }, - TentaclePenetrationNear: { - Type: 'Tentacle Penetration', - Description: + tentacle_penetration_near: { + type: 'Tentacle Penetration', + description: 'The creature tries to force a tentacle into a body cavity (such as the mouth, the eyes or the ears) of an adventurer within Near range. The attack damages both STRENGTH and EMPATHY due to the horrifying experience.', }, - SprayFire: { - Type: 'Spray Fire', - Description: + spray_fire: { + type: 'Spray Fire', + description: 'The creature lets out an annihilating storm of fire. All adventurers within Short range are targeted by an attack. This attack can only be used once per combat.', }, - SprayAcid: { - Type: 'Spray Acid', - Description: + spray_acid: { + type: 'Spray Acid', + description: 'The creature lets out an annihilating spray of acid. All adventurers within Short range are targeted by an attack. This attack can only be used once per combat.', }, - ColdStrike: { - Type: 'Cold Strike', - Description: + cold_strike: { + type: 'Cold Strike', + description: 'The undead creature grabs a victim and lets its icy chill of death stream into its body. If the victim is hit, it will also become COLD.', }, - DeathScream: { - Type: 'Death Scream', - Description: + death_scream: { + type: 'Death Scream', + description: 'The face of the undead creature twists into a horrible grimace and emits a scream that turns the souls of adventurers within Near range to ice. Roll a fear attack. Any victims hit by the attack are also turned COLD.', }, - BackwardsKick: { - Type: 'Backwards Kick', - Description: + backwards_kick: { + type: 'Backwards Kick', + description: 'The beast turns swifly and kicks out with its hind legs with formidable power. If the attack connects, the adventurer is thrown to Near distance and becomes prone. ', }, - Whirlwind: { - Type: 'Whirlwind', - Description: + whirlwind: { + type: 'Whirlwind', + description: "The beast uses its powerful wings to create a whirlwind knocking all adventurers within Near range to the ground. Anyone hit by the attack is also knocked to the ground. It's not possible to DODGE the attack.", }, - Peck: { - Type: 'Peck', - Description: + peck: { + type: 'Peck', + description: "The creature pecks one adventurer at Arm's Length with its beak.", }, - Squash: { - Type: 'Squash', - Description: + squash: { + type: 'Squash', + description: 'The giant beast rises into the sky and blocks the sun with its huge mass. Then it lets its body fall onto the adventurers to crush them. Have everyone roll for MOVE to get out of the way (does not count as an action). Everyone within Near range is thrown to the ground. Anyone who fails their MOVE roll is also hit by an attack with the stats described.', }, - BeakThrow: { - Type: 'BeakThrow', - Description: + beak_throw: { + type: 'BeakThrow', + description: 'The beast uses its beak to get a good grip on an adventurer and throws them into the air with a quick flip of the beak. Roll for an attack, if hit, the victim lands prone at Near range from the creature.', }, - AdventureToss: { - Type: 'Adventure Toss', - Description: + adventure_toss: { + type: 'Adventure Toss', + description: 'The beast lifts an adventurer high into the air and throws her as if she were a rag doll. Roll for an attack, if hit, the adventurer lands prone at Short distance from the creature.', }, - DeathRattle: { - Type: 'Death Rattle', - Description: + death_rattle: { + type: 'Death Rattle', + description: 'The beast jumps at an adventurer, biting it, and then shakes the unfortunate victim, finally throwing the victim aside like a rag doll. Roll for the attack, if the attack hits, the victim is thrown to a Near distance and lands prone.', }, - InfectedScratch: { - Type: 'Infected Scratch', - Description: + infected_scratch: { + type: 'Infected Scratch', + description: 'The diseased creature tears at an adventurer with its claws. Roll an attack, if the attack hits, the victim is also affected by the disease.', }, - DiseasedBite: { - Type: 'Diseased Bite', - Description: + diseased_bite: { + type: 'Diseased Bite', + description: 'The diseased creature bites at an adventurer with its fangs. Roll an attack, if the attack hits, the victim is also affected by the disease.', }, - InfectedTailSwipe: { - Type: 'Infected Tail Swipe', - Description: + infected_tail_swipe: { + type: 'Infected Tail Swipe', + description: 'The diseased creatures spiked tail swings at an adventurer. Roll an attack, if the attack hits, the victim is also affected by the disease.', }, - InfectedTentacleSwipe: { - Type: 'Infected Tentacle Swipe', - Description: + infected_tentacle_swipe: { + type: 'Infected Tentacle Swipe', + description: 'The diseased creatures tentacles swings at an adventurer. Roll an attack, if the attack hits, the victim is also affected by the disease', }, - DiseasedTouch: { - Type: 'Diseased Touch', - Description: + diseased_touch: { + type: 'Diseased Touch', + description: 'The diseased creature touches an adventurer, passing on its infection. Roll an attack, if the attack hits, the victim is also affected by the disease.', }, - Distraction: { - Type: 'Distraction', - Description: + distraction: { + type: 'Distraction', + description: 'The creature makes sudden distracting movements, causing each adventure to pause in their attack. Each adventurer within Near range must make an INSIGHT roll or suffer a -1 to their next action.', }, - Punch: { - Type: 'Punch', - Description: + punch: { + type: 'Punch', + description: "The creature balls one of its hands into a fist and swings it at one adventurer at Arm's Length trying to land a solid hit. The attack can be PARRIED.", }, - FlyingFists: { - Type: 'Flying Fists', - Description_count: + flying_fists: { + type: 'Flying Fists', + description_count: "The creature flails its arms, striking out at multiple adventurers at Arm's Length. (This attack targets {{count}} adventurers). Each attack can be PARRIED.", }, - FistsOfFury: { - Type: 'Fists of Fury', - Description_count: + fists_of_fury: { + type: 'Fists of Fury', + description_count: 'The creature uses all of its arms to strike a single adventurer {{count}} times. Each attack can be PARRIED but each attack must be PARRIED separately.', }, - PoisonSpit: { - Type: 'Poison Spit', - Description: + poison_spit: { + type: 'Poison Spit', + description: 'The creature spits a glob of poisonous phlegm at an adventurer within Near range. Make an attack, this attack does no direct damage but if the attack hits, the adventurer is immediately affected by the poison.', }, - VenemousBite: { - Type: 'Venemous Bite', - Description: + venemous_bite: { + type: 'Venemous Bite', + description: 'The creature bites an adventurer with its poisoned fangs.', }, - PoisonScratch: { - Type: 'Poison Scratch', - Description: + poison_scratch: { + type: 'Poison Scratch', + description: 'The creature scratches an adventurer with its poisoned claws.', }, - PoisonTailAttack: { - Type: 'Poison Tail Attack', - Description: + poison_tail_attack: { + type: 'Poison Tail Attack', + description: 'The creature attacks an adventurer with its poisoned spiked tail.', }, - PoisonTentacleAttack: { - Type: 'Poison Tentacle Attack', - Description: + poison_tentacle_attack: { + type: 'Poison Tentacle Attack', + description: 'The creature attacks an adventurer with its poisonous tentacles.', }, - PoisonHornAttack: { - Type: 'Poison Horn Attack', - Description: + poison_horn_attack: { + type: 'Poison Horn Attack', + description: 'The creature attacks an adventurer with its poisoned head adornment.', }, - NightmareVisions: { - Type: 'Nightmare Visions', - Description: + nightmare_visions: { + type: 'Nightmare Visions', + description: 'The telepathic creature targets one adventurer within Near range with nightmare visions within their mind. This is a Fear attack.', }, - MindBurst: { - Type: 'Mind Burst', - Description: + mind_burst: { + type: 'Mind Burst', + description: "This telepathic creature uses a powerful burst of negative emotion to overcome all adventurers within Arm's Length range. This is a Fear attack.", }, - Taunt: { - Type: 'Taunt', - Description: + taunt: { + type: 'Taunt', + description: 'The creature taunts and threatens the adventurers with terrible descriptions of what they will do to them. All adventurers within Near range suffer a fear attack.', }, - Plea: { - Type: 'Plea', - Description: + plea: { + type: 'Plea', + description: 'The creature pleas with you not to do them harm, pulling at your emotions. All adventurers within Near range are affected. Each adventurer must make an EMPATHY roll to continue to attack (as if performing a Coup de grace action) or lose thier next action (adventurers can use the Cold Blooded Talent to defend against the effects of this attack).', }, - Burrow: { - Type: 'Burrow', - Description: + burrow: { + type: 'Burrow', + description: 'The creature quickly burrows into the ground and comes up close to an adventurer, attacking as it does so. The ground is now difficult to stand on, incurring a -1 penaty to all actions.', }, - TheGroundShatters: { - Type: 'The Ground Shatters', - Description: + the_ground_shatters: { + type: 'The Ground Shatters', + description: 'The beast dives into the ground and uses its mass to shatter the ground around the adventurers. Everyone within Near range falls 2D6 meters and lands prone.', }, - Rush: { - Type: 'Rush', - Description: + rush: { + type: 'Rush', + description: 'The creature runs at an adventurer within Near range, attempting to knock them to the ground or trip them up. The victim is knocked prone if hit.', }, - WrapAttack: { - Type: 'Wrap Attack', - Description: + wrap_attack: { + type: 'Wrap Attack', + description: 'The creature slithers around an adventurer attempting to wrap itself around a limb. If the attack is successful the adventurer is GRAPPLED and suffers 1 point of damage per round until the creature is dislodged.', }, - FallFromTheSky: { - Type: 'Fall from the Sky', - Description: + fall_from_the_sky: { + type: 'Fall from the Sky', + description: "The beast grabs an adventurer within Near range and lifts her up into the sky. Roll for the attack, if the attack hits,the creature and its victim both ascend to Short range from the ground. The next round, the victim is dropped and suffers the effects of a fall from 2D6+10 meters (see page 113 in the Player's Handbook).", }, - RainOfRocks: { - Type: 'Rain of Rocks', - Description: + rain_of_rocks: { + type: 'Rain of Rocks', + description: 'The creature throws rocks and other scrap items from above. All adventurers within Near range suffer an attack.', }, - Stab: { - Type: 'Stab', - Description: + stab: { + type: 'Stab', + description: 'The beast stabs at an adventurer with something sharp like a claw.', }, - Pounce: { - Type: 'Pounce', - Description: + pounce: { + type: 'Pounce', + description: 'The beast leaps at an adventurer within Near range, attempting to knock them to the ground or trip them up. The victim is knocked prone if hit.', }, - Webshot: { - Type: 'Webshot', - Description: + webshot: { + type: 'Webshot', + description: 'The creature shoots a web at all adventurer within Near range. The adventurer is Grappled but can break free by rolling against 6 dice. The web also applies Paralyzing poison of strength 1.', }, - PiercingShriek: { - Type: 'Piercing Shriek', - Description: + piercing_shriek: { + type: 'Piercing Shriek', + description: 'The creature lets out a piercing shriek that makes a Fear attack against all adventurers within Near range.', }, - CallTheBrood: { - Type: 'Call The Brood', - Description: + call_the_brood: { + type: 'Call The Brood', + description: 'The creature calls out to its brood, summoning 1D6 of them to its aid.', }, - Generic: { - Type: 'Attack', - Description: 'The beast attacks one adventurer.', + generic: { + type: 'Attack', + description: 'The beast attacks one adventurer.', }, }, }, names: { - Title: 'Names', - CreateNewNames: 'New names', - OF: 'of', - THE: 'the', - NickNames: { - Adventurous: 'Adventurous', - Angry: 'Angry', - Bald: 'Bald', - Bloody: 'Bloody', - Bold: 'Bold', - Accurate: 'Accurate', - Sloppy: 'Sloppy', - Careful: 'Careful', - Able: 'Able', - Confused: 'Confused', - Cruel: 'Cruel', - Direct: 'Direct', - Dashing: 'Dashing', - Thick: 'Thick', - Wary: 'Wary', - Good: 'Good', - Hairy: 'Hairy', - Stylish: 'Stylish', - Blessed: 'Blessed', - Jumping: 'Jumping', - Hopeful: 'Hopeful', - Cheerful: 'Cheerful', - Happy: 'Happy', - Mighty: 'Mighty', - Gentle: 'Gentle', - Misled: 'Misled', - Somber: 'Somber', - Old: 'Old', - KeenEyed: 'Keen Eyed', - Proud: 'Proud', - Trustworthy: 'Trustworthy', - Sad: 'Sad', - Short: 'Short', - Sleepy: 'Sleepy', - Slow: 'Slow', - Powerful: 'Powerful', - Strong: 'Strong', - Honest: 'Honest', - Fast: 'Fast', - Talkative: 'Talkative', - Long: 'Long', - Terrible: 'Terrible', - Thin: 'Thin', - Ugly: 'Ugly', - Vain: 'Vain', - Weak: 'Weak', - Wise: 'Wise', - Young: 'Young', + title: 'Names', + create_new_names: 'New names', + of: 'of', + the: 'the', + nick_names: { + adventurous: 'Adventurous', + angry: 'Angry', + bald: 'Bald', + bloody: 'Bloody', + bold: 'Bold', + accurate: 'Accurate', + sloppy: 'Sloppy', + careful: 'Careful', + able: 'Able', + confused: 'Confused', + cruel: 'Cruel', + direct: 'Direct', + dashing: 'Dashing', + thick: 'Thick', + wary: 'Wary', + good: 'Good', + hairy: 'Hairy', + stylish: 'Stylish', + blessed: 'Blessed', + jumping: 'Jumping', + hopeful: 'Hopeful', + cheerful: 'Cheerful', + happy: 'Happy', + mighty: 'Mighty', + gentle: 'Gentle', + misled: 'Misled', + somber: 'Somber', + old: 'Old', + keen_eyed: 'Keen Eyed', + proud: 'Proud', + trustworthy: 'Trustworthy', + sad: 'Sad', + short: 'Short', + sleepy: 'Sleepy', + slow: 'Slow', + powerful: 'Powerful', + strong: 'Strong', + honest: 'Honest', + fast: 'Fast', + talkative: 'Talkative', + long: 'Long', + terrible: 'Terrible', + thin: 'Thin', + ugly: 'Ugly', + vain: 'Vain', + weak: 'Weak', + wise: 'Wise', + young: 'Young', }, }, npc: { - Title: 'NPC', - NpcButton: 'Get random NPC', - Occupation: { - Soldier: 'Soldier', - FortuneSeeker: 'Fortune Seeker', - Bandit: 'Bandit', - SlaveTrader: 'Slave Trader', - TreasureHunter: 'Treasure Hunter', - Beggar: 'Beggar', - Actor: 'Actor', - Lumberjack: 'Lumberjack', - Hunter: 'Hunter', - Farmer: 'Farmer', - Laborer: 'Laborer', - Jester: 'Jester', - Wanderer: 'Wanderer', - Fisher: 'Fisher', - Noble: 'Noble', - Child: 'Child', - Trader: 'Trader', - Brewer: 'Brewer', - Carpenter: 'Carpenter', - Apprentice: 'Apprentice', - Thief: 'Thief', - Druid: 'Druid', - Baker: 'Baker', - Refugee: 'Refugee', - Assassin: 'Assassin', - Smith: 'Smith', - Gravedigger: 'Gravedigger', - RustBrother: 'Rust Brother', - Shepherd: 'Shepherd', - Braggart: 'Braggart', - Cook: 'Cook', - Cultist: 'Cultist', - Guard: 'Guard', - Messenger: 'Messenger', - Miner: 'Miner', - Academic: 'Academic', - }, - Characteristic: { - IceBlueEyes: 'Ice blue eyes', - FluffyHair: 'Fluffy hair', - ScarredFace: 'Scarred face', - SeveredEar: 'Severed ear', - EyePatch: 'Eye patch', - MissingTeeth: 'Missing teeth', - Graceful: 'Graceful', - Towering: 'Towering', - ImpressiveBeardOrHair: 'Impressive beard or hair', - RoundCheeks: 'Round cheeks', - DistinctBirthmark: 'Distinct birthmark', - StrangeFacialPaint: 'Strange facial paint', - SadEyes: 'Sad eyes', - SmellsBad: 'Smells bad', - Perfumed: 'Perfumed', - Cocky: 'Cocky', - ConstantlySmiling: 'Constantly smiling', - Sullen: 'Sullen', - ConstantlyJoking: 'Constantly joking', - Lovesick: 'Lovesick', - Elegant: 'Elegant', - Tattooed: 'Tattooed', - ConstantlyEating: 'Constantly eating', - Desperate: 'Desperate', - Hateful: 'Hateful', - Sweaty: 'Sweaty', - Drunk: 'Drunk', - Suspicious: 'Suspicious', - VeryBeautiful: 'Very beautiful', - Foppish: 'Foppish', - Fat: 'Fat', - Seducing: 'Seducing', - Lazy: 'Lazy', - VeryTired: 'Very tired', - Wiry: 'Wiry', - UnkemptEyeBrows: 'Unkempt eye brows', - }, - Quirk: { - FamilyDream: + title: 'NPC', + npc_button: 'Get random NPC', + occupation: { + soldier: 'Soldier', + fortune_seeker: 'Fortune Seeker', + bandit: 'Bandit', + slave_trader: 'Slave Trader', + treasure_hunter: 'Treasure Hunter', + beggar: 'Beggar', + actor: 'Actor', + lumberjack: 'Lumberjack', + hunter: 'Hunter', + farmer: 'Farmer', + laborer: 'Laborer', + jester: 'Jester', + wanderer: 'Wanderer', + fisher: 'Fisher', + noble: 'Noble', + child: 'Child', + trader: 'Trader', + brewer: 'Brewer', + carpenter: 'Carpenter', + apprentice: 'Apprentice', + thief: 'Thief', + druid: 'Druid', + baker: 'Baker', + refugee: 'Refugee', + assassin: 'Assassin', + smith: 'Smith', + gravedigger: 'Gravedigger', + rust_brother: 'Rust Brother', + shepherd: 'Shepherd', + braggart: 'Braggart', + cook: 'Cook', + cultist: 'Cultist', + guard: 'Guard', + messenger: 'Messenger', + miner: 'Miner', + academic: 'Academic', + }, + characteristic: { + ice_blue_eyes: 'Ice blue eyes', + fluffy_hair: 'Fluffy hair', + scarred_face: 'Scarred face', + severed_ear: 'Severed ear', + eye_patch: 'Eye patch', + missing_teeth: 'Missing teeth', + graceful: 'Graceful', + towering: 'Towering', + impressive_beard_or_hair: 'Impressive beard or hair', + round_cheeks: 'Round cheeks', + distinct_birthmark: 'Distinct birthmark', + strange_facial_paint: 'Strange facial paint', + sad_eyes: 'Sad eyes', + smells_bad: 'Smells bad', + perfumed: 'Perfumed', + cocky: 'Cocky', + constantly_smiling: 'Constantly smiling', + sullen: 'Sullen', + constantly_joking: 'Constantly joking', + lovesick: 'Lovesick', + elegant: 'Elegant', + tattooed: 'Tattooed', + constantly_eating: 'Constantly eating', + desperate: 'Desperate', + hateful: 'Hateful', + sweaty: 'Sweaty', + drunk: 'Drunk', + suspicious: 'Suspicious', + very_beautiful: 'Very beautiful', + foppish: 'Foppish', + fat: 'Fat', + seducing: 'Seducing', + lazy: 'Lazy', + very_tired: 'Very tired', + wiry: 'Wiry', + unkempt_eye_brows: 'Unkempt eye brows', + }, + quirk: { + family_dream: 'Dreaming about a family and a house. Will do anything to realize it.', - SkillGambler: 'Skilled at gambling. Booted from three villages.', - HauntedByDream: + skill_gambler: 'Skilled at gambling. Booted from three villages.', + haunted_by_dream: 'Haunted by dreams of a family dying in a fire. Sometimes hallucinates.', - ChewingNarcotics: + chewing_narcotics: 'Chewing on narcotic leaves, staring glare and foul mood.', - HasTreasureMap: + has_treasure_map: 'Very enthusiastic. Has a treasure map but no surviving friends.', - AlderSpy: 'Alder spy in disguise. Will not hesitate to kill.', - TooSensitive: 'Too sensitive for this cruel world.', - Squeamish: 'Squeamish and weepy.', - ObsessedWithMonster: + alder_spy: 'Alder spy in disguise. Will not hesitate to kill.', + too_sensitive: 'Too sensitive for this cruel world.', + squeamish: 'Squeamish and weepy.', + obsessed_with_monster: 'Obsessed with finding a special monster. Will not give up until one of them is dead.', - Cultist: 'Cultist, looking for new victims.', - SleepsBad: 'Sleeps badly, sees holy visions at night.', - LegendaryPickpocket: + cultist: 'Cultist, looking for new victims.', + sleeps_bad: 'Sleeps badly, sees holy visions at night.', + legendary_pickpocket: 'Legendary pickpocket constantly changing identities.', - OnlySurvivor: 'Only survivor of a burnt down village. Pyromaniac.', - WorshipsGodInTheDeep: 'Worships the god in the deep.', - PossessedByDemon: 'Possessed by quirky demon.', - AvengeParent: 'Planning to avenge dead parent.', - Bankrupt: + only_survivor: 'Only survivor of a burnt down village. Pyromaniac.', + worships_god_in_the_deep: 'Worships the god in the deep.', + possessed_by_demon: 'Possessed by quirky demon.', + avenge_parent: 'Planning to avenge dead parent.', + bankrupt: 'Bankrupt, but has a grand plan to save the business. Just needs some help.', - HatesCompetitor: + hates_competitor: 'Hates a competitor and will do any thing to get rid of him or her.', - HidesSecret: 'Hides a dark secret.', - WillDoAnything: 'Will do anything to achieve dream. Anything.', - ExpensiveHabits: 'Expensive habits. Leaves tab to others.', - LikesToScare: 'Likes to scare people.', - BelievesToBeRoyal: 'Believes self to be of royal lineage.', - WantsRevenge: 'Wants revenge more than anything.', - InterestedPoetry: 'Interested in poetry.', - Cheater: 'A notorious cheat.', - Gossips: 'Knows a lot about people. Gossipy.', - Doubter: 'Has doubts.', - DreamsOfKilling: 'Dreams of killing someone.', - Touchy: 'Likes to touch people as if old friends.', - Storyteller: 'A brilliant storyteller.', - WillTakeOver: 'Will take over, one day.', - CravingBeer: 'Craving for a mug of beer.', - BelievesToBeFolllowed: 'Believes he or she is being followed.', - Swears: 'Swears all the time.', - TheoryOfWorld: + hides_secret: 'Hides a dark secret.', + will_do_anything: 'Will do anything to achieve dream. Anything.', + expensive_habits: 'Expensive habits. Leaves tab to others.', + likes_to_scare: 'Likes to scare people.', + believes_to_be_royal: 'Believes self to be of royal lineage.', + wants_revenge: 'Wants revenge more than anything.', + interested_poetry: 'Interested in poetry.', + cheater: 'A notorious cheat.', + gossips: 'Knows a lot about people. Gossipy.', + doubter: 'Has doubts.', + dreams_of_killing: 'Dreams of killing someone.', + touchy: 'Likes to touch people as if old friends.', + storyteller: 'A brilliant storyteller.', + will_take_over: 'Will take over, one day.', + craving_beer: 'Craving for a mug of beer.', + believes_to_be_folllowed: 'Believes he or she is being followed.', + swears: 'Swears all the time.', + theory_of_world: 'Has a theory about the world. Wants to tell everyone about it.', }, }, session: { - Title: 'Session', - Legend: 'New Legend', - ALongTimeAgo: 'A long time ago', - YearsAgo: '({{years}} years ago)', - ThereWas: 'there was', - WhoSearched: 'who sought', - BecauseOf: 'because of', - AndTraveledTo: 'and traveled to', - Located: 'located', - In: 'in', - InTheDirectionOf: 'in the direction of', - AsTheLegendGoesItIsSaidThat: 'As the legend goes, it is said that they', - AsTheLegendGoesItIsSaidThat_Third: 'As the legend goes, it is said they', - AndThatAtTheLocationThere: 'and that at the location there is', - ButAlso: 'but also', - TimeAgo: { - BeforeShift: 'before the shift', - BeforeBloodMist: 'before the blood mist', - DuringAlderWars: 'during the Alder Wars', - DuringBloodMist: 'in the age of the Blood Mist', - }, - Adjective: { - BloodThirsty: 'a blood thirsty', - Vengeful: 'a vengeful', - Greedy: 'a greedy', - Unhappy: 'an unhappy', - Ingenious: 'an ingenious', - Enterprising: 'an enterprising', - Kind: 'a kind', - Perseverant: 'a perseverant', - Treacherous: 'a treacherous', - Moral: 'a moral', - Skilled: 'a skilled', - Stingy: 'a stingy', - Vain: 'a vain', - Wise: 'a wise', - Beautiful: 'a beautiful', - Honorable: 'an honorable', - Jealous: 'a jealous', - Cruel: 'a cruel', - Determined: 'a determined', - Cunning: 'a cunning', - Scared: 'a scared', - Evil: 'an evil', - }, - WhoOrWhat: { - Elf: 'elf', - Dwarf: 'dwarf', - Peddler: 'peddler', - Smith: 'smith', - Farmer: 'farmer', - Apprentice: 'apprentice', - Druid: 'druid', - Shepherd: 'shepherd', - RavenSister: 'Raven Sister', - RustBrother: 'Rust Brother', - Rider: 'rider', - TreasureHunter: 'treasure hunter', - Priest: 'priest', - Sorcerer: 'sorcerer', - RobberChieftain: 'robber chieftain', - Warrior: 'warrior', - Lord: 'lord', - Prince: 'prince', - Princess: 'princess', - Queen: 'queen', - King: 'king', - Soldiers: 'unit of soldiers', - Village: 'village', - Cult: 'cult', - BandOfRobbers: 'band of robbers', - Cabal: 'cabal', - Monster: 'monster', - }, - SearchedFor: { - Weapon: 'a weapon', - Love: 'a love', - Friend: 'a friend in need', - Enemy: 'an enemy', - Treasure: 'a treasure', - Map: 'a map', - FamilyMember: 'a family member', - Artifact: 'an artifact', - Monster: 'a monster', - }, - Because: { - Love: 'love', - Friendship: 'friendship', - Promise: 'a promise', - Prophecy: 'a prophecy', - Bet: 'a bet', - Duty: 'duty', - War: 'war', - Honor: 'honor', - Insanity: 'insanity', - Dreams: 'dreams', - Greed: 'greed', - }, - Location: { - Ruin: 'a ruin', - Farm: 'a farm', - Grave: 'a grave', - Tower: 'a tower', - Fortress: 'a fortress', - Village: 'a village', - Cave: 'a cave', - Hill: 'a hill', - Tree: 'a tree', - WaterSource: 'a water source', - }, - Distance: { - Here: 'here', - CloseBy: 'close by', - OneDaysMarch: "one day's march away", - ManyDaysMarch: 'a few days off', - FarAway: 'far away', - TheOtherSide: 'on the other side of the Forbidden Lands', - }, - WhatHappened: { - Betrayed: 'was betrayed', - Betrayed_Third: 'were betrayed', - Murdered: 'was murdered', - Murdered_Third: 'were murdered', - NeverSeenAgain: 'was never seen again', - NeverSeenAgain_Third: 'were never seen again', - StarvedToDeath: 'starved to death', - StarvedToDeath_Third: 'starved to death', - CommitedSuicide: 'commited suicide', - CommitedSuicide_Third: 'commited suicide', - DiedInBattle: 'died in battle', - DiedInBattle_Third: 'died in battle', - Charmed: 'was charmed', - Charmed_Third: 'were charmed', - Possessed: 'was possessed', - Possessed_Third: 'were possessed', - CameBackChanged: 'came back changed', - CameBackChanged_Third: 'came back changed', - StillLooking: 'is still looking', - StillLooking_Third: 'are still looking', - }, - ItsToldThat: { - Gold: 'gold, lots of gold', - Artifact: 'a powerful artifact', - Armor: 'a suit of armor', - Weapon: 'a weapon', - Book: 'an invaluable book', - Treasure: 'a large treasure', - WarChest: 'a lost war chest', - Remains: 'the remains of an important person', - DwarvenArtifact: 'a dwarven artifact', - ElfRuby: 'an elf ruby', - }, - AdjectiveAdversary: { - Aggresive: 'aggresive', - BloodThirsty: 'blood thirsty', - Cruel: 'cruel', - Horrible: 'horrible', - Hungry: 'hungry', - Guarding: 'guarding', - Starving: 'starving', - Greedy: 'greedy', - Crazy: 'crazy', - Murderous: 'murderous', - Manic: 'manic', - Hunting: 'hunting', - }, - Adversary: { - WolfKin: 'wolfkin', - SlaveTraders: 'slave traders', - Orcs: 'orcs', - Ghosts: 'ghosts', - Saurians: 'saurians', - IronGuards: 'Iron Guards', - Undead: 'undead', - Robbers: 'robbers', - Goblins: 'goblins', - Ogres: 'ogres', - Demon_One: 'one demon', - Demon_Two: 'two demons', - DemonWithCount: 'demons', + title: 'Session', + legend: 'New Legend', + along_time_ago: 'A long time ago', + years_ago: '({{years}} years ago)', + there_was: 'there was', + who_searched: 'who sought', + because_of: 'because of', + and_traveled_to: 'and traveled to', + located: 'located', + in: 'in', + in_the_direction_of: 'in the direction of', + as_the_legend_goes_it_is_said_that: + 'As the legend goes, it is said that they', + as_the_legend_goes_it_is_said_that_third: + 'As the legend goes, it is said they', + and_that_at_the_location_there: 'and that at the location there is', + but_also: 'but also', + time_ago: { + before_shift: 'before the shift', + before_blood_mist: 'before the blood mist', + during_alder_wars: 'during the Alder Wars', + during_blood_mist: 'in the age of the Blood Mist', + }, + adjective: { + blood_thirsty: 'a blood thirsty', + vengeful: 'a vengeful', + greedy: 'a greedy', + unhappy: 'an unhappy', + ingenious: 'an ingenious', + enterprising: 'an enterprising', + kind: 'a kind', + perseverant: 'a perseverant', + treacherous: 'a treacherous', + moral: 'a moral', + skilled: 'a skilled', + stingy: 'a stingy', + vain: 'a vain', + wise: 'a wise', + beautiful: 'a beautiful', + honorable: 'an honorable', + jealous: 'a jealous', + cruel: 'a cruel', + determined: 'a determined', + cunning: 'a cunning', + scared: 'a scared', + evil: 'an evil', + }, + who_or_what: { + elf: 'elf', + dwarf: 'dwarf', + peddler: 'peddler', + smith: 'smith', + farmer: 'farmer', + apprentice: 'apprentice', + druid: 'druid', + shepherd: 'shepherd', + raven_sister: 'Raven Sister', + rust_brother: 'Rust Brother', + rider: 'rider', + treasure_hunter: 'treasure hunter', + priest: 'priest', + sorcerer: 'sorcerer', + robber_chieftain: 'robber chieftain', + warrior: 'warrior', + lord: 'lord', + prince: 'prince', + princess: 'princess', + queen: 'queen', + king: 'king', + soldiers: 'unit of soldiers', + village: 'village', + cult: 'cult', + band_of_robbers: 'band of robbers', + cabal: 'cabal', + monster: 'monster', + }, + searched_for: { + weapon: 'a weapon', + love: 'a love', + friend: 'a friend in need', + enemy: 'an enemy', + treasure: 'a treasure', + map: 'a map', + family_member: 'a family member', + artifact: 'an artifact', + monster: 'a monster', + }, + because: { + love: 'love', + friendship: 'friendship', + promise: 'a promise', + prophecy: 'a prophecy', + bet: 'a bet', + duty: 'duty', + war: 'war', + honor: 'honor', + insanity: 'insanity', + dreams: 'dreams', + greed: 'greed', + }, + location: { + ruin: 'a ruin', + farm: 'a farm', + grave: 'a grave', + tower: 'a tower', + fortress: 'a fortress', + village: 'a village', + cave: 'a cave', + hill: 'a hill', + tree: 'a tree', + water_source: 'a water source', + }, + distance: { + here: 'here', + close_by: 'close by', + one_days_march: "one day's march away", + many_days_march: 'a few days off', + far_away: 'far away', + the_other_side: 'on the other side of the Forbidden Lands', + }, + what_happened: { + betrayed: 'was betrayed', + betrayed_third: 'were betrayed', + murdered: 'was murdered', + murdered_third: 'were murdered', + never_seen_again: 'was never seen again', + never_seen_again_third: 'were never seen again', + starved_to_death: 'starved to death', + starved_to_death_third: 'starved to death', + commited_suicide: 'commited suicide', + commited_suicide_third: 'commited suicide', + died_in_battle: 'died in battle', + died_in_battle_third: 'died in battle', + charmed: 'was charmed', + charmed_third: 'were charmed', + possessed: 'was possessed', + possessed_third: 'were possessed', + came_back_changed: 'came back changed', + came_back_changed_third: 'came back changed', + still_looking: 'is still looking', + still_looking_third: 'are still looking', + }, + its_told_that: { + gold: 'gold, lots of gold', + artifact: 'a powerful artifact', + armor: 'a suit of armor', + weapon: 'a weapon', + book: 'an invaluable book', + treasure: 'a large treasure', + war_chest: 'a lost war chest', + remains: 'the remains of an important person', + dwarven_artifact: 'a dwarven artifact', + elf_ruby: 'an elf ruby', + }, + adjective_adversary: { + aggresive: 'aggresive', + blood_thirsty: 'blood thirsty', + cruel: 'cruel', + horrible: 'horrible', + hungry: 'hungry', + guarding: 'guarding', + starving: 'starving', + greedy: 'greedy', + crazy: 'crazy', + murderous: 'murderous', + manic: 'manic', + hunting: 'hunting', + }, + adversary: { + wolf_kin: 'wolfkin', + slave_traders: 'slave traders', + orcs: 'orcs', + ghosts: 'ghosts', + saurians: 'saurians', + iron_guards: 'Iron Guards', + undead: 'undead', + robbers: 'robbers', + goblins: 'goblins', + ogres: 'ogres', + demon_one: 'one demon', + demon_two: 'two demons', + demon_with_count: 'demons', }, }, typical: { - Title: 'Typical Kin', + title: 'Typical Kin', }, village: { - PageTitle: 'Create your village', - PageDescription: + page_title: 'Create your village', + page_description: "In the Gamemaster's Guide you can create a village with the help of tables and dice. Here that has been digitalized and enhanced with more details.", - CreateNewVillage: 'Create new village', - Size: { + create_new_village: 'Create new village', + size: { outpost: 'Outpost', hamlet: 'Hamlet', village: 'Village', }, - Inhabitants: 'Inhabitants', - Years: 'years', - Age: 'Village age', - Ages: { - beforeBloodMist: 'Before the Blood Mist', - duringAlderWars: 'During the Alder Wars', - duringBloodMist: 'During the Blood Mist', - afterBloodMist: 'After the Blood Mist', - }, - Founded: 'Founded', - Quirks: 'Quirks', - Problems: { - Problem: 'Problem', + inhabitants: 'Inhabitants', + years: 'years', + age: 'Village age', + ages: { + before_blood_mist: 'Before the Blood Mist', + during_alder_wars: 'During the Alder Wars', + during_blood_mist: 'During the Blood Mist', + after_blood_mist: 'After the Blood Mist', + }, + founded: 'Founded', + quirks: 'Quirks', + problems: { + problem: 'Problem', nightwargs: 'Nightwargs', - widespreadDrunkenness: 'Widespread drunkenness', - powerStruggle: 'Power struggle', - secretCult: 'Secret cult', + widespread_drunkenness: 'Widespread drunkenness', + power_struggle: 'Power struggle', + secret_cult: 'Secret cult', schism: 'Schism', undead: 'Undead', disease: 'Disease', sinkhole: 'Sinkhole', bandits: 'Bandits', - terrorizingMonster: 'Terrorizing monster', - slaveTrade: 'Slave trade', - hauntedByGhoulOrGhost: 'Haunted by ghoul or ghost', - }, - Fames: { - Fame: 'Fame', - excellentWine: 'Excellent wine', - deliciousBread: 'Delicious bread', + terrorizing_monster: 'Terrorizing monster', + slave_trade: 'Slave trade', + haunted_by_ghoul_or_ghost: 'Haunted by ghoul or ghost', + }, + fames: { + fame: 'Fame', + excellent_wine: 'Excellent wine', + delicious_bread: 'Delicious bread', craftsmanship: 'Craftsmanship', - beautifulLocation: 'Beautiful location', - aHorribleMassacre: 'A horrible massacre', + beautiful_location: 'Beautiful location', + a_horrible_massacre: 'A horrible massacre', decadence: 'Decadence', - wellBrewedBeer: 'Well-brewed beer', - hiddenRiches: 'Hidden riches', - strangeDisappearances: 'Strange disappearances', - worshippingDemons: 'Worshiping demons', - suspicionOfStrangers: 'Suspicion of strangers', + well_brewed_beer: 'Well-brewed beer', + hidden_riches: 'Hidden riches', + strange_disappearances: 'Strange disappearances', + worshipping_demons: 'Worshiping demons', + suspicion_of_strangers: 'Suspicion of strangers', hospitality: 'Hospitality', }, - Oddities: { - Oddity: 'Oddity', - eccentricClothing: 'Eccentric clothing', - incomprehensibleAccent: 'Incomprehensible accent', - smellsBad: 'Smells bad', - fullOfFlowers: 'Full of flowers', + oddities: { + oddity: 'Oddity', + eccentric_clothing: 'Eccentric clothing', + incomprehensible_accent: 'Incomprehensible accent', + smells_bad: 'Smells bad', + full_of_flowers: 'Full of flowers', muddy: 'Muddy', - oddBuildingMaterials: 'Odd building materials', - tentVillage: 'Tent village', - builtOnSteepHill: 'Built on steep hill', - oldTowerIntheMiddle: 'Old tower in the middle', - grandBuilding: 'Grand building', + odd_building_materials: 'Odd building materials', + tent_village: 'Tent village', + built_on_steep_hill: 'Built on steep hill', + old_tower_inthe_middle: 'Old tower in the middle', + grand_building: 'Grand building', windy: 'Windy', inbreeding: 'Inbreeding', - strangeEatingHabits: 'Strange eating habits', - builtOnMarshland: 'Built on marshland', - cutOutOfACliff: 'Cut out of a cliff', - oldBurialSite: 'Old burial site', - wanderingCattle: 'Wandering cattle', - mostlyInhabitedByWomen: 'Mostly inhabited by women', - alliedWithMonster: 'Allied with monster', - preparingWedding: 'Perparing wedding', - }, - Leader: { - Leader: 'Leader', - Oddities: { - Oddity: 'Oddity', + strange_eating_habits: 'Strange eating habits', + built_on_marshland: 'Built on marshland', + cut_out_of_acliff: 'Cut out of a cliff', + old_burial_site: 'Old burial site', + wandering_cattle: 'Wandering cattle', + mostly_inhabited_by_women: 'Mostly inhabited by women', + allied_with_monster: 'Allied with monster', + preparing_wedding: 'Perparing wedding', + }, + leader: { + leader: 'Leader', + oddities: { + oddity: 'Oddity', bickering: 'Bickering', cruel: 'Cruel', weak: 'Weak', @@ -2032,89 +2075,89 @@ export const translationsEn = { secret: 'Secret', drunkard: 'Drunkard', }, - Type: { - Type: 'Type', + type: { + type: 'Type', council: 'Council', despot: 'Despot', elder: 'Elder', mayor: 'Mayor', druid: 'Druid', sorcerer: 'Sorcerer', - noOne: 'Anarchy', + no_one: 'Anarchy', commander: 'Commander', trader: 'Trader', - rustBrother: 'Rust Brother', + rust_brother: 'Rust Brother', artisan: 'Artisan', - banditChief: 'Bandit Chief', + bandit_chief: 'Bandit Chief', }, }, - Institutions: { - Institutions: 'Institutions', + institutions: { + institutions: 'Institutions', inn: 'Inn', mill: 'Mill', smith: 'Smith', forester: 'Forester', - tradingPost: 'Trading post', + trading_post: 'Trading post', temple: 'Temple', militia: 'Militia', tavern: 'Tavern', stable: 'Stable', - Owner: 'Owner', + owner: 'Owner', nothing: 'Nothing', }, - Inns: { - Inn: 'Inn', - Oddities: { - Oddity: 'Oddity', - violenceIsInTheAir: 'Violence is in the air', - barrelsInsteadOfChairsAndPlanksInsteadOfTables: + inns: { + inn: 'Inn', + oddities: { + oddity: 'Oddity', + violence_is_in_the_air: 'Violence is in the air', + barrels_instead_of_chairs_and_planks_instead_of_tables: 'Barrels instead of chairs and planks instead of tables', - bigFireplace: 'Big fireplace', - peltsOnWalls: 'Pelts on walls', - longCommunalTable: 'Long communal table', - gamblingDen: 'Gambling den', - mediocreBard: 'Mediocre bard', - niceDog: 'Nice dog', - grumpyOwner: 'Grumpy owner', - monsterHeadOnWall: 'Monster head on wall', - singingWaiter: 'Singing waiter', - stompedFloor: 'Stomped floor', - birthdayParty: 'Birthday party', - drunkAdventurers: 'Drunk adventurers', - }, - Specialities: { - Speciality: 'Speciality', - cheapDilutedBeer: 'Cheap diluted beer', - meatStew: 'Meat stew', - grilledRodent: 'Grilled rodent', - stewedTurnips: 'Stewed turnips', - saltBird: 'Salt bird', - bloodSoup: 'Blood soup', - fierySpiceWine: 'Fiery spiced wine', - roastedPiglet: 'Roasted piglet', - swampStew: 'Mushroom stew', - vegetableMush: 'Vegetable mush', - saltedFish: 'Salted fish', - cookedCrow: 'Cooked crow', - bearStew: 'Bear stew', - dwarvenStrongAle: 'Dwarven strong ale', - }, - Guests: { - Guest: 'Guest', - escapedCriminal: 'Escaped criminal', - unhappyFarmer: 'Unhappy farmer', - scarredTreasureHunter: 'Scarred treasure hunter', - dirtyAndSullenHunter: 'Dirty and sullen hunter', - silentRavenSister: 'Silent raven sister', - noisyBandit: 'Noisy bandit', - oldWarVeteran: 'Old war veteran', - nobleInDisguise: 'Noble in disguise', - secretiveSpellbinder: 'Secretive spellbinder', - annoyingJester: 'Annoying jester', - dustyTraveller: 'Dusty traveller', - hungryDwarf: 'Hungry dwarf', - frostyElf: 'Frosty elf', - scoutingThief: 'Scouting thief', + big_fireplace: 'Big fireplace', + pelts_on_walls: 'Pelts on walls', + long_communal_table: 'Long communal table', + gambling_den: 'Gambling den', + mediocre_bard: 'Mediocre bard', + nice_dog: 'Nice dog', + grumpy_owner: 'Grumpy owner', + monster_head_on_wall: 'Monster head on wall', + singing_waiter: 'Singing waiter', + stomped_floor: 'Stomped floor', + birthday_party: 'Birthday party', + drunk_adventurers: 'Drunk adventurers', + }, + specialities: { + speciality: 'Speciality', + cheap_diluted_beer: 'Cheap diluted beer', + meat_stew: 'Meat stew', + grilled_rodent: 'Grilled rodent', + stewed_turnips: 'Stewed turnips', + salt_bird: 'Salt bird', + blood_soup: 'Blood soup', + fiery_spice_wine: 'Fiery spiced wine', + roasted_piglet: 'Roasted piglet', + swamp_stew: 'Mushroom stew', + vegetable_mush: 'Vegetable mush', + salted_fish: 'Salted fish', + cooked_crow: 'Cooked crow', + bear_stew: 'Bear stew', + dwarven_strong_ale: 'Dwarven strong ale', + }, + guests: { + guest: 'Guest', + escaped_criminal: 'Escaped criminal', + unhappy_farmer: 'Unhappy farmer', + scarred_treasure_hunter: 'Scarred treasure hunter', + dirty_and_sullen_hunter: 'Dirty and sullen hunter', + silent_raven_sister: 'Silent raven sister', + noisy_bandit: 'Noisy bandit', + old_war_veteran: 'Old war veteran', + noble_in_disguise: 'Noble in disguise', + secretive_spellbinder: 'Secretive spellbinder', + annoying_jester: 'Annoying jester', + dusty_traveller: 'Dusty traveller', + hungry_dwarf: 'Hungry dwarf', + frosty_elf: 'Frosty elf', + scouting_thief: 'Scouting thief', }, }, }, diff --git a/src/store/translations/translation.data.sv.ts b/src/store/translations/translation.data.sv.ts index d317ef2..39fc734 100644 --- a/src/store/translations/translation.data.sv.ts +++ b/src/store/translations/translation.data.sv.ts @@ -7,323 +7,327 @@ export const translationsSv: Translations = { swedish: 'Svenska', }, menu: { - Menu: 'Meny', - Session: 'Spelmöte', - Encounters: 'Slumpmöten', + menu: 'Meny', + session: 'Spelmöte', + encounters: 'Slumpmöten', places: { - Places: 'Platser', - Map: 'Karta', - Village: 'By', + places: 'Platser', + map: 'Karta', + village: 'By', }, gear: { - Gear: 'Utrustning', - Tables: 'Utrustningslistor', - Finds: 'Fynd', + gear: 'Utrustning', + tables: 'Utrustningslistor', + finds: 'Fynd', }, npcs: { - NPCs: 'Spelledarpersoner', - Typical: 'Typiska personer', - Names: 'Människonamn', - Npc: 'Slumpad SLP', + npcs: 'Spelledarpersoner', + typical: 'Typiska personer', + names: 'Människonamn', + npc: 'Slumpad SLP', }, - Calendar: 'Kalender', - Dice: 'Tärningar', - Monsters: 'Monster', + calendar: 'Kalender', + dice: 'Tärningar', + monsters: 'Monster', }, - GiveFeedback: 'Feedback', + give_feedback: 'Feedback', }, encounter: { - Title: 'Slumpmöten', - TerrainType: 'Terrängtyp', + title: 'Slumpmöten', + terrain_type: 'Terrängtyp', }, calendar: { - 'Weather-Hide': 'Dölj väder', - 'Weather-Show': 'Visa väder', - 'Weather-High': 'Högt', - 'Weather-Low': 'Lågt', - Title: 'Kalender', + weather_hide: 'Dölj väder', + weather_show: 'Visa väder', + weather_high: 'Högt', + weather_low: 'Lågt', + title: 'Kalender', date: 'Datum', - Year: 'År', - Month: 'Månad', - AS: 'E.S. (Efter skiftet)', - C: 'Celsius', - F: 'Fahrenheit', - Use: 'Använd', - WinterWane: 'Åldervinter', - SpringRise: 'Ungvår', - SpringWane: 'Åldervår', - SummerRise: 'Ungsommar', - SummerWane: 'Åldersommar', - AutumnRise: 'Unghöst', - AutumnWane: 'Ålderhöst', - WinterRise: 'Ungvinter', - SunDay: 'Soldag', - MoonDay: 'Måndag', - BloodDay: 'Bloddag', - EarthDay: 'Jorddag', - GrowthDay: 'Växtdag', - HarvestDay: 'Skördedag', - StillDay: 'Stilledag', - FullMoon: 'Fullmåne', - NewMoon: 'Nymåne', - StormNone: '', - StormWind: 'Stormwind', - StormSnow: 'Snöstorm', - StormRain: 'Regnstorm', - DownPourNone: '', - DownPourDrizzle: 'Duggregn', - DownPourShowers: 'Regnskurar', - DownPourLightRain: 'Regn', - DownPourRaining: 'Hällregn', - DownPourLightSnow: 'Lätt snöfall', - DownPourSnowShowers: 'Snöskurar', - DownPourSnowing: 'Snöfall', - ShowMonth: 'Show månad', - HideMonth: 'Hide månad', - ShowAll: 'Expandera månader', - HideAll: 'Kollapsa månader', - previousMonth: 'Föregående månad', - nextMonth: 'Nästa månad', - previousDay: 'Föregående dag', - nextDay: 'Nästa dag', - 'Options-StartingYear': 'Välj startår', - 'Options-StartingYearWarning': + year: 'År', + month: 'Månad', + as: 'E.S. (Efter skiftet)', + c: 'Celsius', + f: 'Fahrenheit', + use: 'Använd', + winter_wane: 'Åldervinter', + spring_rise: 'Ungvår', + spring_wane: 'Åldervår', + summer_rise: 'Ungsommar', + summer_wane: 'Åldersommar', + autumn_rise: 'Unghöst', + autumn_wane: 'Ålderhöst', + winter_rise: 'Ungvinter', + sun_day: 'Soldag', + moon_day: 'Måndag', + blood_day: 'Bloddag', + earth_day: 'Jorddag', + growth_day: 'Växtdag', + harvest_day: 'Skördedag', + still_day: 'Stilledag', + full_moon: 'Fullmåne', + new_moon: 'Nymåne', + storm_none: '', + storm_wind: 'Stormwind', + storm_snow: 'Snöstorm', + storm_rain: 'Regnstorm', + down_pour_none: '', + down_pour_drizzle: 'Duggregn', + down_pour_showers: 'Regnskurar', + down_pour_light_rain: 'Regn', + down_pour_raining: 'Hällregn', + down_pour_light_snow: 'Lätt snöfall', + down_pour_snow_showers: 'Snöskurar', + down_pour_snowing: 'Snöfall', + show_month: 'Show månad', + hide_month: 'Hide månad', + show_all: 'Expandera månader', + hide_all: 'Kollapsa månader', + previous_month: 'Föregående månad', + next_month: 'Nästa månad', + previous_day: 'Föregående dag', + next_day: 'Nästa dag', + options_starting_year: 'Välj startår', + options_starting_year_warning: 'Varning: Genom att ändra startår kommer du att rensa kalendern!', - 'Options-StartingYearNag': 'Ja, jag vill ändra startår och rensa kalendern', - 'Options-StartingDay': 'Välj startdag', + options_starting_year_nag: 'Ja, jag vill ändra startår och rensa kalendern', + options_starting_day: 'Välj startdag', }, common: { - Page: 'Sida', - GMBook: 'SL', - gameSource: { - gameSource: 'Källa', + page: 'Sida', + gmbook: 'SL', + game_source: { + game_source: 'Källa', ravland: 'Ravland', - bitterReach: 'Bittermarken', - }, - Empty: '', - Kin: { - Human: { - Human: 'Människa', - Humans: 'Människor', - Alderlander: 'Alderlänning', - Ailander: 'Eländer', - Aslene: 'Aslene', - Frailer: 'Klener', - SilentGuard: 'Vakt ur "De Tysta"', - MaidenDruid: 'Jungrusyskon', - }, - Elf: { - Elf: 'Alv', - Elves: 'Alver', - StillElf: 'Samlaralv', - UnrulyElf: 'Jägaralv', - GoldenBough: 'Druid ur Gyllene grenen', - Melder: 'Savristare', - RedRunner: 'Rödelöpare', - }, - Dwarf: { - Dwarf: 'Dvärg', - Dwarves: 'Dvärgar', - Belderranian: 'Belderann', - Meromannian: 'Meromann', - Canide: 'Kanid', - Crombe: 'Kromb', - }, - Ogre: { - Ogre: 'Rese', - Ogres: 'Resar', - }, - Orc: { - Orc: 'Orch', - Orcs: 'Orcher', - Urhur: 'Urhur', - Roka: 'Roka', - Isir: 'Äser', - Viraga: 'Viraga', - Drifter: 'Äling', - }, - Wolfkin: { - Wolfkins: 'Vargfolk', - Wolfkin: 'Vargkrigare', - }, - Saurian: { - Saurians: 'Reptilfolk', - Saurian: 'Reptilkrigare', - }, - Whiner: { - Whiners: 'Neslingar', - Whiner: 'Nesling', - }, - HalflingAndGoblin: { - HalflingAndGoblins: 'Halvlingar & Svartalfer', - Halfling: 'Halvling', - Goblin: 'Svartalf', - }, - Believers: { - Believers: 'Troende', - RavenSister: 'Korpsyster', - BlackWing: 'Svartvinge', - RustBrother: 'Rostbroder', - IronGuard: 'Järngardist', - HemeSister: 'Hemesyster', - }, - }, - Gender: { - Man: 'Man', - Men: 'Män', - Woman: 'Kvinna', - Women: 'Kvinnor', - }, - ATerrain: { - Plains: 'på en slätt', - Forest: 'i en skog', - DarkForest: 'i en mörk skog', - Hills: 'på en kulle', - Mountain: 'i ett berg', - Lake: 'i en sjön', - Swamp: 'i träsket', - Mire: 'i en myr', - RuinCity: 'i en ruinstad', - }, - Terrain: { - All: 'Alla', - Plains: 'Slätt', - Forest: 'Skog', - DarkForest: 'Mörk skog', - Hills: 'Kullar', - Mountain: 'Berg', - Lake: 'Sjö', - Swamp: 'Träsk', - Mire: 'Myr', - RuinCity: 'Ruinstad', - }, - Monster: { - Giant: 'Jätte', - AbyssWorm: 'Avgrundsmask', - Bloodling: 'Blodling', - DragonSmall: 'Drake, liten', - DragonLarge: 'Drake, stor', - Drakewyrm: 'Drakorm', - DeathKnight: 'Dödsriddare', - Ent: 'Ent', - Wyvern: 'Flygödla', - Ghost: 'Gast', - Gryphon: 'Grip', - GrayBear: 'Gråbjörn', - Harpies: 'Harpyor', - Hydra: 'Hydra', - Insectoid: 'Insektoid', - GiantSquid: 'Jättebläckfisk', - Manticore: 'Mantikora', - Minotaur: 'Minotaur', - NightWarg: 'Nattulv', - RestlessDead: 'Vandöd', - Skeleton: 'Skelett', - Ghoul: 'Likätare', - SeaSerpent: 'Sjöorm', - StranglingVine: 'Stryparranka', - Troll: 'Troll', - Dragon: 'Drake', - Demon: 'Demon', - }, - communityMonster: { - giantSpider: { + bitter_reach: 'Bittermarken', + }, + empty: '', + kin: { + human: { + human: 'Människa', + humans: 'Människor', + alderlander: 'Alderlänning', + ailander: 'Eländer', + aslene: 'Aslene', + frailer: 'Klener', + silent_guard: 'Vakt ur "De Tysta"', + maiden_druid: 'Jungrusyskon', + }, + elf: { + elf: 'Alv', + elves: 'Alver', + still_elf: 'Samlaralv', + unruly_elf: 'Jägaralv', + golden_bough: 'Druid ur Gyllene grenen', + melder: 'Savristare', + red_runner: 'Rödelöpare', + }, + dwarf: { + dwarf: 'Dvärg', + dwarves: 'Dvärgar', + belderranian: 'Belderann', + meromannian: 'Meromann', + canide: 'Kanid', + crombe: 'Kromb', + }, + ogre: { + ogre: 'Rese', + ogres: 'Resar', + }, + orc: { + orc: 'Orch', + orcs: 'Orcher', + urhur: 'Urhur', + roka: 'Roka', + isir: 'Äser', + viraga: 'Viraga', + drifter: 'Äling', + }, + wolfkin: { + wolfkins: 'Vargfolk', + wolfkin: 'Vargkrigare', + }, + saurian: { + saurians: 'Reptilfolk', + saurian: 'Reptilkrigare', + }, + whiner: { + whiners: 'Neslingar', + whiner: 'Nesling', + }, + halfling_and_goblin: { + halfling_and_goblins: 'Halvlingar & Svartalfer', + halfling: 'Halvling', + goblin: 'Svartalf', + }, + believers: { + believers: 'Troende', + raven_sister: 'Korpsyster', + black_wing: 'Svartvinge', + rust_brother: 'Rostbroder', + iron_guard: 'Järngardist', + heme_sister: 'Hemesyster', + }, + }, + gender: { + man: 'Man', + men: 'Män', + woman: 'Kvinna', + women: 'Kvinnor', + }, + aterrain: { + plains: 'på en slätt', + forest: 'i en skog', + dark_forest: 'i en mörk skog', + hills: 'på en kulle', + mountain: 'i ett berg', + lake: 'i en sjön', + swamp: 'i träsket', + mire: 'i en myr', + ruin_city: 'i en ruinstad', + }, + terrain: { + all: 'Alla', + plains: 'Slätt', + forest: 'Skog', + dark_forest: 'Mörk skog', + hills: 'Kullar', + mountain: 'Berg', + lake: 'Sjö', + swamp: 'Träsk', + mire: 'Myr', + ruin_city: 'Ruinstad', + }, + monster: { + giant: 'Jätte', + abyss_worm: 'Avgrundsmask', + bloodling: 'Blodling', + dragon_small: 'Drake, liten', + dragon_large: 'Drake, stor', + drakewyrm: 'Drakorm', + death_knight: 'Dödsriddare', + ent: 'Ent', + wyvern: 'Flygödla', + ghost: 'Gast', + gryphon: 'Grip', + gray_bear: 'Gråbjörn', + harpies: 'Harpyor', + hydra: 'Hydra', + insectoid: 'Insektoid', + giant_squid: 'Jättebläckfisk', + manticore: 'Mantikora', + minotaur: 'Minotaur', + night_warg: 'Nattulv', + restless_dead: 'Vandöd', + skeleton: 'Skelett', + ghoul: 'Likätare', + sea_serpent: 'Sjöorm', + strangling_vine: 'Stryparranka', + troll: 'Troll', + dragon: 'Drake', + demon: 'Demon', + }, + community_monster: { + giant_spider: { name: 'Jättespindel', description: 'Väldigt territoriell, vaktar sitt bo och följer inte efter. När möjlighet ges startar den striden med ett överraskningsanfall mot den längsta fienden', }, - giantSpiderling: { name: 'Jättespindelunge', description: '' }, - }, - Direction: { - North: 'norr', - NorthEast: 'nordöst', - East: 'öster', - SouthEast: 'sydöst', - South: 'söder', - SouthWest: 'sydväst', - West: 'väst', - NorthWest: 'nordväst', - }, - Range: { - Range: 'Räckvidd', - ArmsLength: 'Armslängd', - Near: 'Nära', - Short: 'Kort', - Long: 'Långt', - }, - Attribute: 'Grundegenskaper', - Attributes: { - Strength: 'Styrka', - Agility: 'Smidighet', - Wits: 'Intelligens', - Empathy: 'Karisma', - }, - Description: { - Description: 'Beskrivning', - Isir: 'Äserkrigare har ett giftigt bett (hallucinogent gift med Giftstyrka T3+2). Bettet i sig räknas som en obeväpnad attack med vapenskada 1 (huggsår). Äserkrigare får även +3 till UTHÅLLIGHET för att motstå gifter.', - Ogre: 'Effektgraden av alla besvärjelser som kastas mot resar sänks automatiskt med T6, till följd av deras naturliga motståndskraft mot magi.', - Goblin: + giant_spiderling: { + name: 'Jättespindelunge', + description: '', + }, + }, + direction: { + north: 'norr', + north_east: 'nordöst', + east: 'öster', + south_east: 'sydöst', + south: 'söder', + south_west: 'sydväst', + west: 'väst', + north_west: 'nordväst', + }, + range: { + range: 'Räckvidd', + arms_length: 'Armslängd', + near: 'Nära', + short: 'Kort', + long: 'Långt', + }, + attribute: 'Grundegenskaper', + attributes: { + strength: 'Styrka', + agility: 'Smidighet', + wits: 'Intelligens', + empathy: 'Karisma', + }, + description: { + description: 'Beskrivning', + isir: 'Äserkrigare har ett giftigt bett (hallucinogent gift med Giftstyrka T3+2). Bettet i sig räknas som en obeväpnad attack med vapenskada 1 (huggsår). Äserkrigare får även +3 till UTHÅLLIGHET för att motstå gifter.', + ogre: 'Effektgraden av alla besvärjelser som kastas mot resar sänks automatiskt med T6, till följd av deras naturliga motståndskraft mot magi.', + goblin: 'Svartalfer kan se i mörker och påverkar därför inte alls av mörker. I direkt solljus, tar de 1 poäng skada i Smidighet per kvartsdag.', }, - Skills: { - Skills: 'Färdigheter', - Might: 'Styrkeprov', - Endurance: 'Uthållighet', - Melee: 'Närkamp', - Crafting: 'Hantverk', - Stealth: 'Smyga', - SleightOfHand: 'Fingerfärdighet', - Move: 'Rörlighet', - Markmanship: 'Skytte', - Scouting: 'Speja', - Lore: 'Bildning', - Survival: 'Överlevnad', - Insight: 'Genomskåda', - Manipulation: 'Manipulera', - Performance: 'Skaldekonst', - Healing: 'Läkekonst', - AnimalHandling: 'Djurhantering', + skills: { + skills: 'Färdigheter', + might: 'Styrkeprov', + endurance: 'Uthållighet', + melee: 'Närkamp', + crafting: 'Hantverk', + stealth: 'Smyga', + sleight_of_hand: 'Fingerfärdighet', + move: 'Rörlighet', + markmanship: 'Skytte', + scouting: 'Speja', + lore: 'Bildning', + survival: 'Överlevnad', + insight: 'Genomskåda', + manipulation: 'Manipulera', + performance: 'Skaldekonst', + healing: 'Läkekonst', + animal_handling: 'Djurhantering', }, talents: { talents: 'Talanger', - horseMaster: 'Ryttarkämpe', - shiftingShapes2: 'Hamnskiftes väg 2', - shiftingShapes3: 'Hamnskiftes väg 3', - pathOfHealing2: 'Helandets väg 2', - pathOfTheArrow2: 'Pilens väg 2', - pathOfSight2: 'Synens väg 2', - pathOfKiller2: 'Mördarens väg 2', - pathOfForest2: 'Skogens väg 2', + horse_master: 'Ryttarkämpe', + shifting_shapes2: 'Hamnskiftes väg 2', + shifting_shapes3: 'Hamnskiftes väg 3', + path_of_healing2: 'Helandets väg 2', + path_of_the_arrow2: 'Pilens väg 2', + path_of_sight2: 'Synens väg 2', + path_of_killer2: 'Mördarens väg 2', + path_of_forest2: 'Skogens väg 2', executioner2: 'Bödel 2', - fastFootwork: 'Hal som en ål 1', + fast_footwork: 'Hal som en ål 1', threatening: 'Hotfull 1', - coldBlooded: 'Kallblodig 1', - pathOfBlood2: 'Blodets väg 2', - pathOfDeath2: 'Dödens väg 2', - pathOfTheBlade2: 'Svärdets väg 2', - pathOfTheEnemy2: 'Fiendens väg 2', - pathOfBlood2OrPathOfDeath2: - '$t(common:talents.pathOfBlood2) eller $t(common:talents.pathOfDeath2)', - pathOfTheBlade2OrPathOfTheEnemy2: - '$t(common:talents.pathOfTheBlade2) eller $t(common:talents.pathOfTheEnemy2)', - pathOfHealing2OrShiftingShapes2OrPathOfSight2: - '$t(common:talents.pathOfHealing2) eller $t(common:talents.shiftingShapes2) eller $t(common:talents.pathOfSight2)', + cold_blooded: 'Kallblodig 1', + path_of_blood2: 'Blodets väg 2', + path_of_death2: 'Dödens väg 2', + path_of_the_blade2: 'Svärdets väg 2', + path_of_the_enemy2: 'Fiendens väg 2', + path_of_blood2or_path_of_death2: + '$t(common:talents.path_of_blood2) eller $t(common:talents.path_of_death2)', + path_of_the_blade2or_path_of_the_enemy2: + '$t(common:talents.path_of_the_blade2) eller $t(common:talents.path_of_the_enemy2)', + path_of_healing2or_shifting_shapes2or_path_of_sight2: + '$t(common:talents.path_of_healing2) eller $t(common:talents.shifting_shapes2) eller $t(common:talents.path_of_sight2)', bowyer: 'Bågmakare', builder: 'Byggare', chef: 'Kock', lockpicker: 'Låsdyrkare', - masterOfTheHunt: 'Jaktmästare', + master_of_the_hunt: 'Jaktmästare', pathfinder: 'Stigfinnare', poisoner: 'Giftkokare', smith: 'Smed', tailor: 'Skräddare', - tailorOrTanner: '$t(common:talents.tailor) or $t(common:talents.tanner)', + tailor_or_tanner: + '$t(common:talents.tailor) or $t(common:talents.tanner)', tanner: 'Garvare', - pathOfTheSong: 'Stämmans väg', + path_of_the_song: 'Stämmans väg', }, material: { material: 'Material', - animalHorn: 'Djurhorn', + animal_horn: 'Djurhorn', bread: 'Bröd', cloth: 'Tyg', feather: 'Fjäder', @@ -334,14 +338,14 @@ export const translationsSv: Translations = { meat: 'Kött', fish: 'Fisk', vegetables: 'Grönsaker', - meatOrFishOrVegetables: + meat_or_fish_or_vegetables: '$t(common:material.meat) eller $t(common:material.fish) eller $t(common:material.vegetables)', parchment: 'Pergament', pelt: 'Päls', stone: 'Sten', tallow: 'Talg', wood: 'Trä', - woodOrLeather: + wood_or_leather: '$t(common:material.wood) eller $t(common:material.leather)', }, tool: { @@ -352,585 +356,552 @@ export const translationsSv: Translations = { fire: 'Eld', forge: 'Smedja', hammer: 'Hammare', - inkAndQuill: 'Bläck och fjäder', + ink_and_quill: 'Bläck och fjäder', knife: 'Kniv', - knifeOrAxe: '$t(common:tool.knife) eller $t(common:tool.axe)', - needleAndThread: 'Nål och tråd', + knife_or_axe: '$t(common:tool.knife) eller $t(common:tool.axe)', + needle_and_thread: 'Nål och tråd', saw: 'Såg', }, - Gear: { - Gear: 'Utrustning', - D6Silver: 'T6 silvermynt', - D6Copper: 'T6 kopparmynt', - RidingHorse: 'Ridhäst', - InkAndQuill: 'Skrivdon', - VialOfPoison: 'Flaska med gift (dos)', - SimpleFind: 'ENKELT fynd', - ValuableFind: 'VÄRDEFULLT fynd', - CombatTrainedHorse: 'Stridstränad häst', - }, - Weapon: { - Melee: { - Knife: 'Kniv', - Dagger: 'Dolk', - Falchion: 'Huggare', - ShortSword: 'Kortsvärd', - BroadSword: 'Bredsvärd', - LongSword: 'Slag', - TwoHandedSword: 'Tvåhandssvärd', - Scimitar: 'Kroksabel', - Handaxe: 'Handyxa', - Battleaxe: 'Stridsyxa', - TwoHandedAxe: 'Tvåhandsyxa', - Mace: 'Stridsklubbe', - Morningstar: 'Morgonstjärna', - Warhammer: 'Stridshammare', - Flail: 'Stridsgissel', - Club: 'Träklubbe', - LargeClub: 'Stor träklubba', - HeavyWarhammer: 'Tung stridshammare', - Staff: 'Trästav', - ShortSpear: 'Kortspjut', - LongSpear: 'Långspjut', - Pike: 'Pik', - Halberd: 'Hillebard', - Trident: 'Treudd', - }, - Ranged: { - ThrowingKnife: 'Kastknife', - ThrowingAxe: 'Kastyxa', - ThrowingSpear: 'Kastspjut', - Sling: 'Slunga', - ShortBow: 'Kortbåge', - LongBow: 'Långbåge', - LightCrossbow: 'Lätt armborst', - HeavyCrossbow: 'Tungt armborst', - }, - Feature: { - Light: 'Lätt', - Heavy: 'Tungt', - Edged: 'Egg', - Pointed: 'Spets', - Blunt: 'Trubbig', - Parrying: 'Parerande', - Hook: 'Krok', - LoadingIsLongAction: 'Ladda är lång handling', - }, - Grip: 'Grepp', - Bonus: 'Bonus', - Damage: 'Skada', - }, - Armor: { - Leather: 'Läder', - StuddedLeather: 'Nitläder', - Chainmail: 'Ringbrynja', - Plate: 'Helrustning', - Natural: 'Naturlig', - Rating: 'Skyddsvärde', - BodyPart: 'Kroppsdel', - Body: 'Kropp', - }, - Helmet: { - StuddedLeather: 'Nitläderhuva', - OpenHelmet: 'Öppen hjälm', - ClosedHelmet: 'Täckt hjälm', - GreatHelm: 'Tunnhjälm', - Rating: 'Skyddsvärde', - BodyPart: 'Kroppsdel', - Body: 'Huvud', - }, - ArmorFeature: { - PenetrationProtection: + gear: { + gear: 'Utrustning', + d6silver: 'T6 silvermynt', + d6copper: 'T6 kopparmynt', + riding_horse: 'Ridhäst', + ink_and_quill: 'Skrivdon', + vial_of_poison: 'Flaska med gift (dos)', + simple_find: 'ENKELT fynd', + valuable_find: 'VÄRDEFULLT fynd', + combat_trained_horse: 'Stridstränad häst', + }, + weapon: { + melee: { + knife: 'Kniv', + dagger: 'Dolk', + falchion: 'Huggare', + short_sword: 'Kortsvärd', + broad_sword: 'Bredsvärd', + long_sword: 'Slag', + two_handed_sword: 'Tvåhandssvärd', + scimitar: 'Kroksabel', + handaxe: 'Handyxa', + battleaxe: 'Stridsyxa', + two_handed_axe: 'Tvåhandsyxa', + mace: 'Stridsklubbe', + morningstar: 'Morgonstjärna', + warhammer: 'Stridshammare', + flail: 'Stridsgissel', + club: 'Träklubbe', + large_club: 'Stor träklubba', + heavy_warhammer: 'Tung stridshammare', + staff: 'Trästav', + short_spear: 'Kortspjut', + long_spear: 'Långspjut', + pike: 'Pik', + halberd: 'Hillebard', + trident: 'Treudd', + }, + ranged: { + throwing_knife: 'Kastknife', + throwing_axe: 'Kastyxa', + throwing_spear: 'Kastspjut', + sling: 'Slunga', + short_bow: 'Kortbåge', + long_bow: 'Långbåge', + light_crossbow: 'Lätt armborst', + heavy_crossbow: 'Tungt armborst', + }, + feature: { + light: 'Lätt', + heavy: 'Tungt', + edged: 'Egg', + pointed: 'Spets', + blunt: 'Trubbig', + parrying: 'Parerande', + hook: 'Krok', + loading_is_long_action: 'Ladda är lång handling', + }, + grip: 'Grepp', + bonus: 'Bonus', + damage: 'Skada', + }, + armor: { + leather: 'Läder', + studded_leather: 'Nitläder', + chainmail: 'Ringbrynja', + plate: 'Helrustning', + natural: 'Naturlig', + rating: 'Skyddsvärde', + body_part: 'Kroppsdel', + body: 'Kropp', + }, + helmet: { + studded_leather: 'Nitläderhuva', + open_helmet: 'Öppen hjälm', + closed_helmet: 'Täckt hjälm', + great_helm: 'Tunnhjälm', + rating: 'Skyddsvärde', + body_part: 'Kroppsdel', + body: 'Huvud', + }, + armor_feature: { + penetration_protection: 'Skyddsvärde 3 mot pilar och Stöt av vapen med Spets.', - HardToMove: 'Rörlighet -2', - HardToSee: 'Ger -2 på Speja', - Normal: '', - Light: 'Lätt föremål', - Heavy: 'Tungt föremål', - }, - Shield: { - Small: 'Liten sköld', - Large: 'Stor sköld', - }, - Coin: { - Coin_one: 'mynt', - Coin_other: 'mynt', - Copper: 'koppar', - Silver: 'silver', - Gold: 'guld', + hard_to_move: 'Rörlighet -2', + hard_to_see: 'Ger -2 på Speja', + normal: '', + light: 'Lätt föremål', + heavy: 'Tungt föremål', + }, + shield: { + small: 'Liten sköld', + large: 'Stor sköld', + }, + coin: { + coin_one: 'mynt', + coin_other: 'mynt', + copper: 'koppar', + silver: 'silver', + gold: 'guld', day: 'per dag', hex: 'per hexagon', }, - Weight: { - Weight: 'Vikt', - None: '–', - Tiny: 'Småsak', - Light: 'Lätt', - Normal: 'Normal', - Heavy: 'Tung', + weight: { '3': '3', '4': '4', '5': '5', '6': '6', '7': '7', '8': '8', + weight: 'Vikt', + none: '–', + tiny: 'Småsak', + light: 'Lätt', + normal: 'Normal', + heavy: 'Tung', }, time: { time: 'Tidsåtgång', - quarterDay: 'Ett kvartsdygn', + quarter_day: 'Ett kvartsdygn', day: 'En dag', week: 'En vecka', - twoWeeks: 'Två veckor', - bookTime: '7 kvartsdygn för ett original. 2 kvartsdygn för en kopia', + two_weeks: 'Två veckor', + book_time: '7 kvartsdygn för ett original. 2 kvartsdygn för en kopia', }, }, finds: { - Title: 'Fynd', - Value: 'Värde', - Type: 'Typ', - Location: 'Plats', - Find: { - Type: { - Simple: 'Enkla', - Valuable: 'Värdefulla', - Precious: 'Dyrbara', - }, - Location: { - Carried: 'Burna', - Lair: 'I hålan', - }, - Armchair: 'Karmstol', - Artifact: 'Artifakt', - Axe: 'Handyxa', - BeautifulDesk: 'Vackert skrivbord', - BeautifulTapestry: 'Vacker gobeläng', - BeautifulVase: 'Vacker vas', - BeltBuckle: 'Bältesspänne', - BoneDice: 'Tärningar av ben', - BoneStatuette: 'Statyett av ben', - BoneWhistle: 'Visselpipa av ben', - Book: 'Bok', - BottleOfExpensiveWine: 'Flaska dyrbart vin', - BronzeAltar: 'Bronsaltare', - BronzeArmor: 'Bronserustning', - BronzeBeltBuckle: 'Bältesspänne av brons', - BronzeBracelet: 'Bronsarmband', - BronzeDagger: 'Bronsdolk', - BronzeDrinkingHorn: 'Dryckeshorn i brons', - BronzeEarring: 'Örhänge av brons', - BronzeHelmet: 'Bronshjälm', - BronzeLantern: 'Oljelykta', - BronzeMedallion: 'Medaljong i brons', - BronzeMirror: 'Bronsspegel', - BronzeNecklace: 'Halsband av brons', - BronzePot: 'Bronsgryta', - BronzeSarcophagus: 'Bronssarkofag', - BronzeShield: 'Sköld av brons', - BronzeStatue: 'Staty av brons', - BronzeStatuette: 'Statyett av brons', - Cabinet: 'Kabinett', - CalfSkinGloves: 'Handskar av kalvskinn', - Candelabrum: 'Kandelaber', - Carpet: 'Matta', - CeilingCandelabrum: 'Takkandelaber', - Chest: 'Kista', - CopperBowl: 'Kopparskål', - CopperCoins: 'Kopparmynt', - CopperCrown: 'Kopparkrona', - CopperHeadband: 'Huvudring av koppar', - CopperMug: 'Kopparmugg', - CopperPlate: 'Kopparstick', - CopperRing: 'Kopparring', - CrownWithGemstones: 'Krona med ädelstenar', - DragonscaleBoots: 'Stövlar av drakormsskinn', - DrinkingHornWithGoldDetails: 'Dryckeshorn med gulddetaljer', - DrinkingHornWithSilverDetails: 'Dryckeshorn med silverdetaljer', - ElegantBoots: 'Fina stövlar', - ElegantHelmet: 'Välsmidd hjälm', - ElegantLargeShield: 'Välsmidd stor sköld', - ElegantOneHandedWeapon: 'Välsmitt enhandsvapen', - EmbroidedCarpet: 'Broderad matta', - Embroidery: 'Broderi', - FineHat: 'Fin hatt', - FurCloakWithExpensiveEmbroideryAndGoldenBuckle: + title: 'Fynd', + value: 'Värde', + type: 'Typ', + location: 'Plats', + find: { + type: { + simple: 'Enkla', + valuable: 'Värdefulla', + precious: 'Dyrbara', + }, + location: { + carried: 'Burna', + lair: 'I hålan', + }, + armchair: 'Karmstol', + artifact: 'Artifakt', + axe: 'Handyxa', + beautiful_desk: 'Vackert skrivbord', + beautiful_tapestry: 'Vacker gobeläng', + beautiful_vase: 'Vacker vas', + belt_buckle: 'Bältesspänne', + bone_dice: 'Tärningar av ben', + bone_statuette: 'Statyett av ben', + bone_whistle: 'Visselpipa av ben', + book: 'Bok', + bottle_of_expensive_wine: 'Flaska dyrbart vin', + bronze_altar: 'Bronsaltare', + bronze_armor: 'Bronserustning', + bronze_belt_buckle: 'Bältesspänne av brons', + bronze_bracelet: 'Bronsarmband', + bronze_dagger: 'Bronsdolk', + bronze_drinking_horn: 'Dryckeshorn i brons', + bronze_earring: 'Örhänge av brons', + bronze_helmet: 'Bronshjälm', + bronze_lantern: 'Oljelykta', + bronze_medallion: 'Medaljong i brons', + bronze_mirror: 'Bronsspegel', + bronze_necklace: 'Halsband av brons', + bronze_pot: 'Bronsgryta', + bronze_sarcophagus: 'Bronssarkofag', + bronze_shield: 'Sköld av brons', + bronze_statue: 'Staty av brons', + bronze_statuette: 'Statyett av brons', + cabinet: 'Kabinett', + calf_skin_gloves: 'Handskar av kalvskinn', + candelabrum: 'Kandelaber', + carpet: 'Matta', + ceiling_candelabrum: 'Takkandelaber', + chest: 'Kista', + copper_bowl: 'Kopparskål', + copper_coins: 'Kopparmynt', + copper_crown: 'Kopparkrona', + copper_headband: 'Huvudring av koppar', + copper_mug: 'Kopparmugg', + copper_plate: 'Kopparstick', + copper_ring: 'Kopparring', + crown_with_gemstones: 'Krona med ädelstenar', + dragonscale_boots: 'Stövlar av drakormsskinn', + drinking_horn_with_gold_details: 'Dryckeshorn med gulddetaljer', + drinking_horn_with_silver_details: 'Dryckeshorn med silverdetaljer', + elegant_boots: 'Fina stövlar', + elegant_helmet: 'Välsmidd hjälm', + elegant_large_shield: 'Välsmidd stor sköld', + elegant_one_handed_weapon: 'Välsmitt enhandsvapen', + embroided_carpet: 'Broderad matta', + embroidery: 'Broderi', + fine_hat: 'Fin hatt', + fur_cloak_with_expensive_embroidery_and_golden_buckle: 'Pälsbrämad manterl med dyrbara broderier och guldspänne', - GamingBoard: 'Spelbräde', - Gemstone: 'Ädelsten', - GlassBowl: 'Glasskål', - GoldAmulet: 'Gyllene amulett', - GoldBracelet: 'Guldarmband', - GoldCoins: 'Guldmynt', - GoldenArmchair: 'Förgylld karmstol', - GoldenArmor: 'Förgylld helrustning', - GoldenBowl: 'Guldskål', - GoldenCradle: 'Förgylld barnvagga', - GoldenCrown: 'Guldkrona', - GoldenDiadem: 'Gulddiadem', - GoldenEmbroidery: 'Förgyllt broderi', - GoldenHelmet: 'Förgylld hjälm', - GoldenLargeShield: 'Förgylld stor sköld', - GoldenMirror: 'Förgylld spegel', - GoldenNecklace: 'Halsband av guld', - GoldenPalanquin: 'Förgyllld bärstol', - GoldenSarcophagus: 'Guldsarkofag', - GoldenStatue: 'Staty av guld', - GoldenStatueOfAChild: 'Gyllene staty av ett barn', - GoldenTable: 'Förgyllt bord', - GoldenTray: 'Bricka av guld', - GoldenWeapon: 'Förgyllt vapen', - GoldGoblet: 'Guldbägare', - GoldMug: 'Guldmugg', - GoldNecklace: 'Förgyllt halsband', - GoldRing: 'Guldring', - GoldStatuette: 'Statyett av guld', - GoodBoots: 'Rejäla stövlar', - GoodGloves: 'Rejäla handskar', - Hammer: 'Hammare', - Knapsack: 'Ränsel', - Lantern: 'Lanterna', - LargeRareGemstone: 'Stor dyrbar ädelsten', - Lute: 'Luta', - Mask: 'Mask', - NecklaceWithGemstones: 'Halsband med ädelstenar', - OneHandedBronzeWeapon: 'Enhandsvapen i brons', - Painting: 'Målning', - PaintingWithGoldenFrame: 'Guldinramad målning', - PalanquinWithCopperDetails: 'Bärstol med koppardetaljer', - PalanquinWithSilverDetails: 'Bärstol med silverdetaljer', - Pearl: 'Pärla', - Pearls: 'Pärlor', - PieceOfAmber: 'Bärnsten', - PileOfCoins: 'Mynthög', - Pulpit: 'Pulpet', - RareBook: 'Sällsynt bok', - RareGemstone: 'Sällsynta ädelstenar', - RingWithGemstone: 'Ring med ädelstenar', - Saw: 'Såg', - Scepter: 'Spira', - ScepterWithGemstones: 'Spira med ädelstenar', - ShortSpear: 'Kortspjut', - ShortSword: 'Kortsvärd', - SilverAltar: 'Silveraltare', - SilverAmulet: 'Silveramulett', - SilverBowl: 'Silverskål', - SilverBox: 'Silverskrin', - SilverBracelet: 'Silverarmband', - SilverBrooch: 'Brosch av silver', - SilverCoins: 'Silvermynt', - SilverComb: 'Silverkam', - SilverCrown: 'Silverkrona', - SilverEarring: 'Örhänge av silver', - SilverGoblet: 'Silverbägare', - SilverHeadband: 'Huvudring av silver', - SilverHelmet: 'Silverhjälm', - SilverMedallion: 'Medaljong av silver', - SilverMirror: 'Silverspegel', - SilverMug: 'Silvermugg', - SilverNecklace: 'Halsband av silver', - SilverRing: 'Silverring', - SilverSarcophagus: 'Silversarkofag', - SilverStatue: 'Staty av silver', - SilverStatuette: 'Statyett av silver', - SimpleGemstone: 'Enkel ädelsten', - SmallShield: 'Liten sköld', - SmallSilverChest: 'Liten silverkista', - Tapestry: 'Gobeläng', - UniqueBook: 'Unik bok', - VelvetGloves: 'Sammetshandskar', - Waterskin: 'Vattenskinn', - WellTailoredCloakWithSilverBuckle: 'Välsydd mantel med silverspänne', + gaming_board: 'Spelbräde', + gemstone: 'Ädelsten', + glass_bowl: 'Glasskål', + gold_amulet: 'Gyllene amulett', + gold_bracelet: 'Guldarmband', + gold_coins: 'Guldmynt', + golden_armchair: 'Förgylld karmstol', + golden_armor: 'Förgylld helrustning', + golden_bowl: 'Guldskål', + golden_cradle: 'Förgylld barnvagga', + golden_crown: 'Guldkrona', + golden_diadem: 'Gulddiadem', + golden_embroidery: 'Förgyllt broderi', + golden_helmet: 'Förgylld hjälm', + golden_large_shield: 'Förgylld stor sköld', + golden_mirror: 'Förgylld spegel', + golden_necklace: 'Halsband av guld', + golden_palanquin: 'Förgyllld bärstol', + golden_sarcophagus: 'Guldsarkofag', + golden_statue: 'Staty av guld', + golden_statue_of_achild: 'Gyllene staty av ett barn', + golden_table: 'Förgyllt bord', + golden_tray: 'Bricka av guld', + golden_weapon: 'Förgyllt vapen', + gold_goblet: 'Guldbägare', + gold_mug: 'Guldmugg', + gold_necklace: 'Förgyllt halsband', + gold_ring: 'Guldring', + gold_statuette: 'Statyett av guld', + good_boots: 'Rejäla stövlar', + good_gloves: 'Rejäla handskar', + hammer: 'Hammare', + knapsack: 'Ränsel', + lantern: 'Lanterna', + large_rare_gemstone: 'Stor dyrbar ädelsten', + lute: 'Luta', + mask: 'Mask', + necklace_with_gemstones: 'Halsband med ädelstenar', + one_handed_bronze_weapon: 'Enhandsvapen i brons', + painting: 'Målning', + painting_with_golden_frame: 'Guldinramad målning', + palanquin_with_copper_details: 'Bärstol med koppardetaljer', + palanquin_with_silver_details: 'Bärstol med silverdetaljer', + pearl: 'Pärla', + pearls: 'Pärlor', + piece_of_amber: 'Bärnsten', + pile_of_coins: 'Mynthög', + pulpit: 'Pulpet', + rare_book: 'Sällsynt bok', + rare_gemstone: 'Sällsynta ädelstenar', + ring_with_gemstone: 'Ring med ädelstenar', + saw: 'Såg', + scepter: 'Spira', + scepter_with_gemstones: 'Spira med ädelstenar', + short_spear: 'Kortspjut', + short_sword: 'Kortsvärd', + silver_altar: 'Silveraltare', + silver_amulet: 'Silveramulett', + silver_bowl: 'Silverskål', + silver_box: 'Silverskrin', + silver_bracelet: 'Silverarmband', + silver_brooch: 'Brosch av silver', + silver_coins: 'Silvermynt', + silver_comb: 'Silverkam', + silver_crown: 'Silverkrona', + silver_earring: 'Örhänge av silver', + silver_goblet: 'Silverbägare', + silver_headband: 'Huvudring av silver', + silver_helmet: 'Silverhjälm', + silver_medallion: 'Medaljong av silver', + silver_mirror: 'Silverspegel', + silver_mug: 'Silvermugg', + silver_necklace: 'Halsband av silver', + silver_ring: 'Silverring', + silver_sarcophagus: 'Silversarkofag', + silver_statue: 'Staty av silver', + silver_statuette: 'Statyett av silver', + simple_gemstone: 'Enkel ädelsten', + small_shield: 'Liten sköld', + small_silver_chest: 'Liten silverkista', + tapestry: 'Gobeläng', + unique_book: 'Unik bok', + velvet_gloves: 'Sammetshandskar', + waterskin: 'Vattenskinn', + well_tailored_cloak_with_silver_buckle: 'Välsydd mantel med silverspänne', }, }, gear: { - Title: 'Utrustning', + title: 'Utrustning', craft: 'Tillverka', - Filters: { - Search: 'Sök', - MaxPrice: 'Max pris', + filters: { + search: 'Sök', + max_price: 'Max pris', }, category: { cateogory: 'Kategori', - tradeGoods: 'Handelsvara', + trade_goods: 'Handelsvara', services: 'Tjänster', }, - Supply: { - Supply: 'Tillgång', - Reroll: 'Slå om tillgång', - Common: 'Vanlig', - Uncommon: 'Ovanlig', - Rare: 'Sällsynt', - }, - MarketType: { - MarketType: 'Marknadstyp', - DailyLiving: 'Vardaglig', - TradeGoods: 'Handelsvaror', - LuxuryGoods: 'Lyxvaror', - War: 'Krig', - Food: 'Mat', - }, - Gear: { - tradeGoods: 'Handelsvaror', - Backpack: { + supply: { + supply: 'Tillgång', + reroll: 'Slå om tillgång', + common: 'Vanlig', + uncommon: 'Ovanlig', + rare: 'Sällsynt', + }, + market_type: { + market_type: 'Marknadstyp', + daily_living: 'Vardaglig', + trade_goods: 'Handelsvaror', + luxury_goods: 'Lyxvaror', + war: 'Krig', + food: 'Mat', + }, + gear: { + trade_goods: 'Handelsvaror', + backpack: { name: 'Ryggsäck', effect: '-1 Vikt. lägger till 1 i bärkapacitet', }, - Bandages: { + bandages: { name: 'Tygförband', effect: 'Redskapsbonus +1 till Läkekonst', }, - Barrel: { + barrel: { name: 'Tunna', effect: 'Innehåller 33 enheter (100 portioner) Vatten eller annan vätska', }, - BearTrap: { + bear_trap: { name: 'Rävsax', effect: 'Redskapsbonus +1 till Jaga under utfärder', }, - Blanket: { + blanket: { name: 'Filt', effect: 'Redskapsbonus +1 mot kyla', }, - Book: { + book: { name: 'Bok', effect: 'Redskapsbonus +1 vid skrift till det slutgiltiga Manipulation/Skaldekonst-slaget per 7 kvartsdagar spenderade på att skriva. Redskapsbonus +1 när man läser om bokens ämne.', }, - Cauldron: { + cauldron: { name: 'Gryta', effect: 'Låter Kock laga 1 matenhet (3 måltider) per kvartsdag', }, - Chalk: { + chalk: { name: 'Kritor', effect: 'Kan användas av symbolister.', }, - Chest: { + chest: { name: 'Kista', effect: 'Kan lagra 100 enheter.', }, - ClayJug: { + clay_jug: { name: 'Lerkrus', effect: 'Innehåller 1 enhet (3 portioner) Vatten eller annan vätska', }, - ClayPot: { + clay_pot: { name: 'Lerkruka', effect: 'Lätt föremål när fylld.', }, - CrystalBall: { + crystal_ball: { name: 'Spåkula', effect: 'Kan användas som ingrediens till besvärjelse.', }, - // DiseaseRemedy: { - // name: 'Botemedel mot sjukdom', - // effect: 'Potens 3. Varje ökning av potens dubblar priset. Lägg till Potens till Redskap mot Sjukdomsslag' - // }, - // Distiller: { - // name: 'Destilleringsglas', - // effect: 'Används som Alkemistverktyg' - // }, - Drum: { + drum: { name: 'Trumma', effect: 'Redskapsbonus +1 till Skaldekonst', }, - FieldKitchen: { + field_kitchen: { name: 'Fältkök', effect: 'Gör det möjligt att laga 2T6 enheter mat på ett kvartsdygn.', }, - FieldRation: { + field_ration: { name: 'Fältransoner mat', effect: 'En enhet Mat. Ökar resurstärning Mat ett steg.', }, - FishingHookAndLine: { + fishing_hook_and_line: { name: 'Fiskkrok och lina', effect: 'Redskapsbonus +1 till Fiska under utfärder', }, - FishingNet: { + fishing_net: { name: 'Fisknät', effect: 'Redskapsbonus +2 till Fiska under utfärder', }, - FlintAndSteel: { + flint_and_steel: { name: 'Flinta och stål', effect: 'Redskapsbonus +1 till att Slå läger under utfärder', }, - Flute: { + flute: { name: 'Flöjt', effect: 'Redskapsbonus +1 till Skaldekonst', }, - FoodKnife: { name: 'Matkniv', effect: '–' }, - GrapplingHook: { + food_knife: { + name: 'Matkniv', + effect: '–', + }, + grappling_hook: { name: 'Änterhake', effect: 'Redskapsbonus +1 vid Klättring', }, - HallucinogenicPoisonOrAntidote: { + hallucinogenic_poison_or_antidote: { name: 'Hallucinogent gift (dos)', effect: 'Potens 3. Varje ökning av potens dubblar priset.', }, - Harp: { + harp: { name: 'Harpa', effect: 'Redskapsbonus +2 till Skaldekonst', }, - // HealingOintment: { - // name: 'Läkande salva', - // effect: 'Potens 3. Varje ökning av potens dubblar priset. Lägg till Potens till Redskap mot Läkekonst-slag' - // effectEnglish: - // 'Potency 3. Each increase inpotency doubles price. AddPotency to Gear Dice for Long Term Care of a Critical Injury', - // }, - HolySymbol: { + holy_symbol: { name: 'Heligt symbol', effect: 'Kan användas som ingrediens till besvärjelse.', }, - Horn: { + horn: { name: 'Blåshorn', effect: 'Redskapsbonus +1 till Skaldekonst.', }, - Hourglass: { + hourglass: { name: 'Timglas', effect: 'Kan användas som ingrediens till besvärjelse.', }, - InkAndQuill: { + ink_and_quill: { name: 'Bläck och fjäder', effect: 'Kan användas för att nedteckna besvärjelser.', }, - // Knapsack: { - // name: 'Säck', - // effect: 'För att bära mat. Räknas som småsak.' - // }, - LampOil: { + lamp_oil: { name: 'Lampolja', effect: 'Nog för ett kvartsdags.', }, - Lantern: { + lantern: { name: 'Oljelykta', effect: 'Lyser upp en zon. Kräver lampolja.', }, - LargeTent: { + large_tent: { name: 'Stort tält', effect: 'Plats för sex. Ger +2 till att Slå läger under utfärder.', }, - LethalPoisonOrAntidote: { + lethal_poison_or_antidote: { name: 'Dödande gift (dos)', effect: 'Giftstyrka 3. Varje stegs ökad Giftstyrka fördubblar kostnaden.', }, - Lockpicks: { + lockpicks: { name: 'Dyrkar', effect: 'Redskapsbonus +1 till Fingerfärdighet vid låsdyrkning.', }, - Lyre: { + lyre: { name: 'Lyra', effect: 'Redskapsbonus +1 till Skaldekonst.', }, - MagnifyingGlass: { + magnifying_glass: { name: 'Förstoringsglas', effect: 'Kan användas som ingrediens till besvärjelse.', }, - Map: { + map: { name: 'Karta', effect: 'Kan användas som ingrediens till besvärjelse.', }, - MetalChalice: { name: 'Vinkalk i metall', effect: '–' }, - MetalPlate: { name: 'Tallrik i metall', effect: '–' }, - // MetalPot: { - // name: 'Gryta i metall', - // effect: '–' - // }, - // NarcoticMushrooms: { - // name: 'Narkotiska svampar', - // effect: - // effectEnglish: - // 'Must be gathered from location found after Surveying The Land. 15 minutes after consumption, you become INTOXICATED and gain 1 temporary WP. All effects and WP go away after ¼ day', - // }, - OilLamp: { + metal_chalice: { + name: 'Vinkalk i metall', + effect: '–', + }, + metal_plate: { + name: 'Tallrik i metall', + effect: '–', + }, + oil_lamp: { name: 'Oljelampa', effect: 'Lyser upp en zon inomhus. Kräver lampolja.', }, - ParalyzingPoisonOrAntidote: { + paralyzing_poison_or_antidote: { name: 'Förlamande gift (dos)', effect: 'Giftstyrka 3. Varje stegs ökad Giftstyrka fördubblar kostnaden.', }, - Parchment: { + parchment: { name: 'Pergament', effect: 'Kan användas för att nedteckna besvärjelser.', }, - Perfume: { + perfume: { name: 'Parfym', effect: 'Redskapsbonus +1 till Manipulera. Räcker ett kvartsdygn.', }, - Quiver: { + quiver: { name: 'Koger', effect: 'Räknas inte mot belastning.', }, - RopeTenMeters: { + rope_ten_meters: { name: 'Rep, 10 meter', effect: 'Redskapsbonus +1 vid Klättring.', }, - Scales: { + scales: { name: 'Våg', effect: 'Kan användas som ingrediens till besvärjelse.', }, - SleepingFur: { + sleeping_fur: { name: 'Sovfäll', effect: 'Redskapsbonus +2 mot kyla.', }, - SleepingPoisonOrAntidote: { + sleeping_poison_or_antidote: { name: 'Sövande gift (dos)', effect: 'Giftstyrka 3. Varje stegs ökad Giftstyrka fördubblar kostnaden.', }, - SmallTent: { + small_tent: { name: 'Litet tält', effect: 'Plats för två. Ger +2 till att Slå läger under utfärder.', }, - Snares: { + snares: { name: 'Snaror', effect: 'Redskapsbonus +1 till Jaga under utfärder.', }, - Spoon: { name: 'Sked', effect: '–' }, - Spyglass: { + spoon: { + name: 'Sked', + effect: '–', + }, + spyglass: { name: 'Kikare', effect: 'Redskapsbonus +2 till Speja på Långt avstånd.', }, - // Stimulant: { - // name: 'Uppiggande medel', - // effect: - // effectEnglish: - // 'Potency 1. Each increase inPotency doubles the price. +1 attribute/Potency, and 1 Dam to another perPotency. Lasts [Potency] hours', - // }, - TallowCandle: { + tallow_candle: { name: 'Talgljus', effect: 'Lyser upp inom Armslängd under ett kvartsdygn.', }, - Tankard: { name: 'Sejdel', effect: '–' }, - ThreeArrowsIronHead: { + tankard: { + name: 'Sejdel', + effect: '–', + }, + three_arrows_iron_head: { name: 'Pilar, järnspets', effect: 'Ökar resurstärning Pilar ett steg.', }, - ThreeArrowsWoodenHead: { + three_arrows_wooden_head: { name: 'Pilar, träspets', effect: 'Ökar resurstärning Pilar ett steg. Målets skyddsvärde fördubblas.', }, - // ThreeBlowdartsMetalTipped: { - // name: 'Blåsrörspilar, metallspets', - // effect: - // effectEnglish: - // 'May be crafted with no Talents and a Knife by combining 3 NEEDLES and 1 unit BLOWDARTS, WOODEN. Light (.5) min/“unit” (3 darts)', - // }, - // ThreeBlowdartsWooden: { - // name: 'Blåsrörspilar, träspets', - // effect: - // }, - Torches: { + torches: { name: 'Facklor', effect: 'Ökar resurstärning Facklor ett steg. Lyser upp en zon. Slå resurstärning varje kvartstimme.', }, - // UnitBrewAleOrSpirits: { - // name: 'Enhet öl eller sprit', - // effect: - // }, - Waterskin: { + waterskin: { name: 'Vattenskinn', effect: 'Krävs för att bära med sig Vatten. Räknas inte mot belastning.', @@ -938,7 +909,7 @@ export const translationsSv: Translations = { }, service: { service: 'Vanliga tjänster', - bathAtInn: { + bath_at_inn: { name: 'Bad på värdshus', effect: '', }, @@ -955,7 +926,7 @@ export const translationsSv: Translations = { name: 'Livvakt', effect: '', }, - clothesWashed: { + clothes_washed: { name: 'Tvätt av kläder', effect: '', }, @@ -963,27 +934,27 @@ export const translationsSv: Translations = { name: 'Budbärare', effect: '', }, - roadToll: { + road_toll: { name: 'Vägtull', effect: '', }, - lodgingAtInnDormitory: { + lodging_at_inn_dormitory: { name: 'Övernattning på värdshus, sovsal', effect: '', }, - lodgingAtInnSeparateRoom: { + lodging_at_inn_separate_room: { name: 'Övernattning på värdshus, eget rum', effect: '', }, - fineDwelling: { + fine_dwelling: { name: 'Ståtligt härbärge', effect: '', }, - bowlOfStew: { + bowl_of_stew: { name: 'Skål med stuvning', effect: 'Täcker dagsbehovet av Mat.', }, - heartyMeal: { + hearty_meal: { name: 'Måltid på värdshus', effect: 'Täcker dagsbehovet av Mat och Vatten.', }, @@ -991,36 +962,36 @@ export const translationsSv: Translations = { name: 'Festmåltid', effect: 'Täcker dagsbehovet av Mat och Vatten.', }, - flagonOfAle: { + flagon_of_ale: { name: 'Stop mjöd', effect: 'Täcker dagsbehovet av Vatten.', }, - chaliceOfWine: { + chalice_of_wine: { name: 'Kalk vin', effect: 'Täcker dagsbehovet av Vatten.', }, teacher: { name: 'Lärare', - effect: `Läs mer om lärare på sidan 38 i Spelarboken.`, + effect: 'Läs mer om lärare på sidan 38 i Spelarboken.', }, }, }, home: { - Page: 'Yxans klagan', - Description: + page: 'Yxans klagan', + description: 'Yxans klagan är mitt sätt att ge tillbaka till communityt och av helt själviska anledningar ett sätt för mig att leka med ny webbteknik.', - GameTitle: 'Svärdets sång', - GameDescription: + game_title: 'Svärdets sång', + game_description: 'Välkomna till Svärdets sång. I detta bordsrollspel är ni inte hjältar som utför uppdrag på order av andra – i stället är ni äventyrare och skattletare fast beslutna att sätta ert eget märke på denna fördömda värld. Ni kommer att vandra genom det vilda landet, utforska glömda gravar, kämpa mot fruktansvärda monster och – om ni lever länge nog – bygga ert eget fäste och försvara det mot fiender. Under era äventyr kan ni avslöja de mörka krafter som rör sig i skuggorna och till slut kan det bli ni som avgör Det glömda landets öde.', - FreeLeague: 'Fria Ligan', - ThanksTo: 'Tack till', - ForAFantasticGame: 'för ett fantastiskt spel!', - CommunityTitle: 'Community', - ThanksCommunity: + free_league: 'Fria Ligan', + thanks_to: 'Tack till', + for_afantastic_game: 'för ett fantastiskt spel!', + community_title: 'Community', + thanks_community: 'Tack till communityt för Svärdets sång för inspiration, hjälp och material jag kunnat använda.', - moreTools: { + more_tools: { title: 'Fler verktyg', - dragonTools: { + dragon_tools: { name: 'DragonTools', description: 'Ett webbverktyg för spelledare av Drakar och Demoner (Fria Ligan)', @@ -1028,41 +999,26 @@ export const translationsSv: Translations = { }, }, map: { - Title: 'Karta', - DownloadMapData: 'Ladda ned kartdata', - PasteMapData: 'Klistra in kartdata JSON', - 'Popover-Hide': 'Dölj', - 'Popover-Explore': 'Utforska', - 'Popover-Forget': 'Glöm bort', - 'Popover-Explored': 'Utforskad', - 'Popover-Unexplored': 'Ej utforskad', - InvalidJson: 'Ogiltig JSON', - InvalidHexData: `Hex Data såg inte ut som: { - version: 2, - source: 'ravland' | 'bitterReach', - fogOfWar: boolean, - maps: { - ravland: { - hasExploredHexes: boolean, - hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[], - selectedHex: boolean | undefined, - }, - bitterReach: { - hasExploredHexes: boolean, - hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[], - selectedHex: boolean | undefined, - }, - }, - }`, - GeneralPasteError: 'Okänt inklistringsfel', - FogOfWar_On: 'Slå av krigsdimma', - FogOfWar_Off: 'Slå på krigsdimma', + title: 'Karta', + download_map_data: 'Ladda ned kartdata', + paste_map_data: 'Klistra in kartdata JSON', + popover_hide: 'Dölj', + popover_explore: 'Utforska', + popover_forget: 'Glöm bort', + popover_explored: 'Utforskad', + popover_unexplored: 'Ej utforskad', + invalid_json: 'Ogiltig JSON', + invalid_hex_data: + "Hex Data såg inte ut som: {\n version: 2,\n source: 'ravland' | 'bitterReach',\n fogOfWar: boolean,\n maps: {\n ravland: {\n hasExploredHexes: boolean,\n hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[],\n selectedHex: boolean | undefined,\n },\n bitterReach: {\n hasExploredHexes: boolean,\n hexes: { hexKey: 'A10' | 'A12' | ..., explored: boolean}[],\n selectedHex: boolean | undefined,\n },\n },\n }", + general_paste_error: 'Okänt inklistringsfel', + fog_of_war_on: 'Slå av krigsdimma', + fog_of_war_off: 'Slå på krigsdimma', }, monster: { - Title: 'Monster', - bookOfMonsters: 'Monsterboken', - backToAllMonsters: 'Innehåll', - randomMonster: { + title: 'Monster', + book_of_monsters: 'Monsterboken', + back_to_all_monsters: 'Innehåll', + random_monster: { title: 'Slumpa fram monster', description: 'Världen är fylld av förskräckliga monster. De vanligaste har diktats ned men de flest kan bara beskrivas genom dess slumpmässiga utseende och beteeende.', @@ -1072,1032 +1028,1035 @@ export const translationsSv: Translations = { title: 'Monster från boken', description: 'Varje monster har sidhänvisning i GM-boken till höger.', }, - communityMonster: { + community_monster: { title: 'Community Monsters', description: 'Monster som skapats av passionerade människor från communityt.', - createdBy: 'Skapad av:', - }, - TheMonster: 'Monstret', - TheMonsterHas: 'Monstret har', - TheMonsterHave: 'Monstret har', - Size: { - Puny: 'Ynklig', - Puny_def: 'Ynkligt', - Small: 'Nätt', - Small_def: 'Nätt', - Average: 'Medelstor', - Average_def: 'Medelstort', - Large: 'Kraftig', - Large_def: 'Kraftigt', - Big: 'Storväxt', - Big_def: 'Storväxt', - Huge: 'Jättelik', - Huge_def: 'Jättelikt', - Gigantic: 'Gigantisk', - Gigantic_def: 'Gigantiskt', - }, - Type: { - Grazing: 'Betande kreatur', - Herbivore: 'Växtätare', - Gatherer: 'Samlare', - Scavenger: 'Asätare', - Predator: 'Rovdjur', - AggressivePredator: 'Aggresivt rovdjur', - }, - Head: { - Missing: 'saknar huvud', - Beak: 'en näbb', - HornWithCount: '{{count}} horn på huvudet', - ElkHorns: 'älghorm', - TentaclesWithCount: '{{count}} tentakler på huvudet', - InsectoidEyes: 'insektsliknande ögon', - SideEyesWithCount: '{{count}} ögon på var sida på sitt huvud', - ManyEyes: 'massvis med ögon', - BigMane: 'en stor man', - LongTongue: 'en lång tunga', - BigEars: 'stora öron', - Fin: 'en fena på toppen av huvudet', - }, - Tail: { - Tail: 'har en svans', - SpikedTail: 'har en spikförsedd svans', - }, - Limbs: { - Arms: '{{count}} armar', - Legs: '{{count}} ben', - Tentacles: '{{count}} tentakler', - Wings: '{{count}} vingar', - None: 'inga lemmar', - }, - ArmorLabel: 'Skydd', - Armor: { - Skin: 'Hud', - SoftFur: 'Mjuk päls', - ThickFur: 'Tjock päls', - Feathers: 'Fjädrar', - Scales: 'Fjäll', - Shell: 'Skal', - BonePlates: 'Benplattor', - ArmoredHide: 'Pansarhud', - }, - LivesIn: 'Monstret bor i {{home}}', - Homes: { - Burrow: 'ett gryt', - Ruin: 'en ruin', - WateringHole: 'ett vattehål', - TreeOrHighPoint: 'ett träd eller på en hög punkt', - Cave: 'en grotta', - Ravine: 'en ravin', - Den: 'en underjordisk håla', - }, - Skill: 'Färdigheter', - Skills: { - None: 'Inga', - Melee: 'Närkamp', - Move: 'Rörlighet', - Scouting: 'Speja', - Stealth: 'Smyga', - }, - Movement: { - Movement: 'Förflyttning', - Zones_one: 'zon', - Zones_other: 'zoner', - Slithering: 'Slingrande', - Digging: 'Grävande', - Swimming: 'Simmande', - Running: 'Springande', - Flying: 'Flygande', - Climbing: 'Klättrande', - }, - Poisons: { - Lethal: 'Dödlig', - Paralyzing: 'Paralyserande', - Sleeping: 'Sövande', - Hallucinogenic: 'Hallucinogen', - Lethal_count: 'Dödlig ({{count}})', - Paralyzing_count: 'Paralyserande ({{count}})', - Sleeping_count: 'Sövande ({{count}})', - }, - Trait: { - Traits: 'Egenskaper', - Undead: { - Name: 'Odöd', - Description: '+2 STY', - }, - Hurt: { - Name: 'Skadad', - Description: 'Half STY', - }, - Colorful: { - Name: 'Färggrann', - Description: 'Skinn, horn eller liknande är värt {{count}} silver', - }, - Poisonous: { - Name: 'Giftig', - }, - Regeneration: { - Name: 'Regenererande', - Description: 'Återfår T3 i STY varje runda', - }, - ResistanceMagic: { - Name: 'Okänslig mot magi', - Description: 'Motsvarande besvärjelsen Antimagi med T6 effektgrader', - }, - Camouflage: { - Name: 'Kamouflerad', - Description: 'Vanvettigt svår (−3) att upptäcka med Speja', - }, - Fast: { - Name: 'Snabb', - Description: + created_by: 'Skapad av:', + }, + the_monster: 'Monstret', + the_monster_has: 'Monstret har', + the_monster_have: 'Monstret har', + size: { + puny: 'Ynklig', + puny_def: 'Ynkligt', + small: 'Nätt', + small_def: 'Nätt', + average: 'Medelstor', + average_def: 'Medelstort', + large: 'Kraftig', + large_def: 'Kraftigt', + big: 'Storväxt', + big_def: 'Storväxt', + huge: 'Jättelik', + huge_def: 'Jättelikt', + gigantic: 'Gigantisk', + gigantic_def: 'Gigantiskt', + }, + type: { + grazing: 'Betande kreatur', + herbivore: 'Växtätare', + gatherer: 'Samlare', + scavenger: 'Asätare', + predator: 'Rovdjur', + aggressive_predator: 'Aggresivt rovdjur', + }, + head: { + missing: 'saknar huvud', + beak: 'en näbb', + horn_with_count: '{{count}} horn på huvudet', + elk_horns: 'älghorm', + tentacles_with_count: '{{count}} tentakler på huvudet', + insectoid_eyes: 'insektsliknande ögon', + side_eyes_with_count: '{{count}} ögon på var sida på sitt huvud', + many_eyes: 'massvis med ögon', + big_mane: 'en stor man', + long_tongue: 'en lång tunga', + big_ears: 'stora öron', + fin: 'en fena på toppen av huvudet', + }, + tail: { + tail: 'har en svans', + spiked_tail: 'har en spikförsedd svans', + }, + limbs: { + arms: '{{count}} armar', + legs: '{{count}} ben', + tentacles: '{{count}} tentakler', + wings: '{{count}} vingar', + none: 'inga lemmar', + }, + armor_label: 'Skydd', + armor: { + skin: 'Hud', + soft_fur: 'Mjuk päls', + thick_fur: 'Tjock päls', + feathers: 'Fjädrar', + scales: 'Fjäll', + shell: 'Skal', + bone_plates: 'Benplattor', + armored_hide: 'Pansarhud', + }, + lives_in: 'Monstret bor i {{home}}', + homes: { + burrow: 'ett gryt', + ruin: 'en ruin', + watering_hole: 'ett vattehål', + tree_or_high_point: 'ett träd eller på en hög punkt', + cave: 'en grotta', + ravine: 'en ravin', + den: 'en underjordisk håla', + }, + skill: 'Färdigheter', + skills: { + none: 'Inga', + melee: 'Närkamp', + move: 'Rörlighet', + scouting: 'Speja', + stealth: 'Smyga', + }, + movement: { + movement: 'Förflyttning', + zones_one: 'zon', + zones_other: 'zoner', + slithering: 'Slingrande', + digging: 'Grävande', + swimming: 'Simmande', + running: 'Springande', + flying: 'Flygande', + climbing: 'Klättrande', + }, + poisons: { + lethal: 'Dödlig', + paralyzing: 'Paralyserande', + sleeping: 'Sövande', + hallucinogenic: 'Hallucinogen', + lethal_count: 'Dödlig ({{count}})', + paralyzing_count: 'Paralyserande ({{count}})', + sleeping_count: 'Sövande ({{count}})', + }, + trait: { + traits: 'Egenskaper', + undead: { + name: 'Odöd', + description: '+2 STY', + }, + hurt: { + name: 'Skadad', + description: 'Half STY', + }, + colorful: { + name: 'Färggrann', + description: 'Skinn, horn eller liknande är värt {{count}} silver', + }, + poisonous: { + name: 'Giftig', + }, + regeneration: { + name: 'Regenererande', + description: 'Återfår T3 i STY varje runda', + }, + resistance_magic: { + name: 'Okänslig mot magi', + description: 'Motsvarande besvärjelsen Antimagi med T6 effektgrader', + }, + camouflage: { + name: 'Kamouflerad', + description: 'Vanvettigt svår (−3) att upptäcka med Speja', + }, + fast: { + name: 'Snabb', + description: 'Drar två iniativkort i stridens början och får agera på båda turerna', }, - SensitiveHearing: { - Name: 'Känslig hörsel', - Description: '+2 FV i Speja', + sensitive_hearing: { + name: 'Känslig hörsel', + description: '+2 FV i Speja', }, - SensitiveSmell: { - Name: 'Känsligt luktsinne', - Description: '+2 FV i Speja', + sensitive_smell: { + name: 'Känsligt luktsinne', + description: '+2 FV i Speja', }, - DarkVision: { - Name: 'Mörkerseende', - Description: 'Ser obehindrat i mörker', + dark_vision: { + name: 'Mörkerseende', + description: 'Ser obehindrat i mörker', }, - AcidGlands: { - Name: 'Syrakörtlar', - Description: 'Kan använda syraattack', + acid_glands: { + name: 'Syrakörtlar', + description: 'Kan använda syraattack', }, - FireGlands: { - Name: 'Eldkörtlar', - Description: 'Kan använda eldattack', + fire_glands: { + name: 'Eldkörtlar', + description: 'Kan använda eldattack', }, - Intelligent: { - Name: 'Intelligent', - SkillValues: 'Kan ha FV i Genomskåda och Manipulera', - Telepathy: 'Kan tala med telepati', + intelligent: { + name: 'Intelligent', + skill_values: 'Kan ha FV i Genomskåda och Manipulera', + telepathy: 'Kan tala med telepati', }, - CanSpeak: { - Name: 'Kan tala', - Description: 'Kan tala eller härma språk', + can_speak: { + name: 'Kan tala', + description: 'Kan tala eller härma språk', }, - PossessedByDemon: { - Name: 'Besatt av demon', - Description: + possessed_by_demon: { + name: 'Besatt av demon', + description: 'Är i själva verket en demon (Se sidan 76 i Spelledarboken)', }, }, - Weakness: { - Weakness: 'Svaghet', - None: { - Name: 'Ingen', - Description: '–', + weakness: { + weakness: 'Svaghet', + none: { + name: 'Ingen', + description: '–', }, - VulnerableToFire: { - Name: 'Känslig mot eld', - Description: 'Tar dubble skada av eld', + vulnerable_to_fire: { + name: 'Känslig mot eld', + description: 'Tar dubble skada av eld', }, - VulnerableToLight: { - Name: 'Känslig för ljud', - Description: + vulnerable_to_light: { + name: 'Känslig för ljud', + description: 'Tål ej ljus, måste röra sig bort från starka ljuskällor. Om ej möjligt tar varelsen T3 i skada för enskild ljuskälla, T6 i skada för större ljuskälla (som solen) varje runda', }, - AfraidOfLoudNoises: { - Name: 'Rädd för höga ljud', - Description: + afraid_of_loud_noises: { + name: 'Rädd för höga ljud', + description: 'Höga ljud skrämmer besten. Smällar eller högre ljud får den att fly, slamrande sköldar eller liknande får den att tveka och undvika källan', }, - ProtectsOffspring: { - Name: 'Skyddar avkomma', - Description: 'Har avkomma i närheten, lämnar inte platsen där de finns', + protects_offspring: { + name: 'Skyddar avkomma', + description: 'Har avkomma i närheten, lämnar inte platsen där de finns', }, - SensitiveEyes: { - Name: 'Känslig ögon', - Description: + sensitive_eyes: { + name: 'Känslig ögon', + description: 'Attacker mot ögonen (Vanvettigt svårt -3) gör dubbel skada', }, - ObsessedWithAllThatGlimmers: { - Name: 'Besatt av allt som glimrar', - Description: + obsessed_with_all_that_glimmers: { + name: 'Besatt av allt som glimrar', + description: 'Får varelsen syn på något som glimrar såsom silver eller en spegel kommer den att fokusera på källan till det', }, }, - Motivation: { - Motivation: 'Motivation', - Territory: { - Name: 'Revir', - Description: 'Bunden till sitt revir', + motivation: { + motivation: 'Motivation', + territory: { + name: 'Revir', + description: 'Bunden till sitt revir', }, - Pregnant: { - Name: 'Föda avkomma', - Description: 'Varelsen är dräktig och vill föda sin avkomma i fred', + pregnant: { + name: 'Föda avkomma', + description: 'Varelsen är dräktig och vill föda sin avkomma i fred', }, - Hunger: { - Name: 'Hungrig', - Description: + hunger: { + name: 'Hungrig', + description: 'Varelsen är utsvulten och kommer attackera den saftigaste äventyraren och om möjligt försöka sluka henne', }, - Injured: { - Name: 'Sjuk', - Description: 'Får egenskapen Skadad', + injured: { + name: 'Sjuk', + description: 'Får egenskapen Skadad', }, - Parasite: { - Name: 'Parasit', - Description: 'Kontrollerad av parasitisk varelse, beter sig underligt', + parasite: { + name: 'Parasit', + description: 'Kontrollerad av parasitisk varelse, beter sig underligt', }, - Alone: { - Name: 'Vara i fred', - Description: 'Anfaller bara om trängd', + alone: { + name: 'Vara i fred', + description: 'Anfaller bara om trängd', }, - Fun: { - Name: 'Nöje', - Description: 'Jagar för nöjets skull', + fun: { + name: 'Nöje', + description: 'Jagar för nöjets skull', }, - LookingForHost: { - Name: 'Letar värd', - Description: + looking_for_host: { + name: 'Letar värd', + description: 'Letar efter en varelse som kan agera som värd för varelsens avkomma på något sätt', }, - GuardingTreasure: { - Name: 'Skatt', - Description: 'Vaktar skatt', - }, - }, - Attack: { - Type: 'Typ', - Attack: 'Attack', - Attacks: 'Attacker', - Roll: 'Slumpa', - Damage: { - Damage: 'Skada', - Blunt: 'Krossskada', - Slash: 'Huggskada', - Stab: 'Stickskada', - NonTypical: 'Icke-typisk skada', - Fear: 'Skräck', - Disease: 'Smittvärde', - Poison: 'Giftstyrka', - }, - Range: 'Räckvidd', - Description: 'Effekt', - Bash: { - Type: 'Krossande', - Description: 'Griper tag i en äventyrare och försöker slita henne itu.', - }, - Bite: { - Type: 'Bett', - Description: 'Biter närmaste äventyrare med sina sylvassa tänder.', - }, - BreathFire: { - Type: 'Eldattack', - Description: + guarding_treasure: { + name: 'Skatt', + description: 'Vaktar skatt', + }, + }, + attack: { + type: 'Typ', + attack: 'Attack', + attacks: 'Attacker', + roll: 'Slumpa', + damage: { + damage: 'Skada', + blunt: 'Krossskada', + slash: 'Huggskada', + stab: 'Stickskada', + non_typical: 'Icke-typisk skada', + fear: 'Skräck', + disease: 'Smittvärde', + poison: 'Giftstyrka', + }, + range: 'Räckvidd', + description: 'Effekt', + bash: { + type: 'Krossande', + description: 'Griper tag i en äventyrare och försöker slita henne itu.', + }, + bite: { + type: 'Bett', + description: 'Biter närmaste äventyrare med sina sylvassa tänder.', + }, + breath_fire: { + type: 'Eldattack', + description: 'Eld flammar ur bestens strupe och riktar in sig på en äventyrare inom Kort avstånd. Om attacken träffar tar offret samma skada igen varje runda tills elden släckts,genom att offret självt eller en vän klarar ett slag för Rörlighet (kort handling).', }, - DeadlyGaze: { - Type: 'Dödande blick', - Description: + deadly_gaze: { + type: 'Dödande blick', + description: 'Den odöda besten stirrar med döda ögon rakt in i hennes själ. Utstå en skräckattack. Äventyraren faller sedan till marken.', }, - Headbutt: { - Type: 'Skallning', - Description: 'Skallar en äventyrare.', + headbutt: { + type: 'Skallning', + description: 'Skallar en äventyrare.', }, - Horn: { - Type: 'Stångattack', - Description: 'Försöker genomborra en äventyrare med sina horn.', + horn: { + type: 'Stångattack', + description: 'Försöker genomborra en äventyrare med sina horn.', }, - Roar: { - Type: 'Vrål', - Description: + roar: { + type: 'Vrål', + description: 'Ger ifrån sig ett öronbedövande vrål som ger en skräckattack alla äventyrare inom Nära avstånd.', }, - Kick: { - Type: 'Spark', - Description: + kick: { + type: 'Spark', + description: 'Sparkar närmaste äventyrare med fruktansvärd kraft. Om attacken träffar slungas äventyraren till Nära avstånd och landar liggande.', }, - Sweep: { - Type: 'Svepande attack', - Description: + sweep: { + type: 'Svepande attack', + description: 'Klor (eller liknande vapen) sveper över två äventyrare inom Nära avstånd. Offer som träffas slås även omkull.', }, - Slash: { - Type: 'Rivande klor', - Description: 'River en äventyrare med sina vassa klor över kroppen.', + slash: { + type: 'Rivande klor', + description: 'River en äventyrare med sina vassa klor över kroppen.', }, - TailsSlash: { - Type: 'Svansattack', - Description: + tails_slash: { + type: 'Svansattack', + description: 'Piskar med svansspetsen mot en äventyrare inom Nära avstånd. Om attacken träffar slås offret omkull.', }, - TentacleLash: { - Type: 'Snärtattck', - Description: + tentacle_lash: { + type: 'Snärtattck', + description: 'Piskar med sina tentakler mot en äventyrare inom Nära avstånd. Om attacken träffar slås offret omkull.', }, - Devour: { - Type: 'Sluka', - Description: + devour: { + type: 'Sluka', + description: 'Försöker sluka en äventyrare och om attacken lyckas blir offret slukat helt. Äventyraren kan fortsätta anfalla besten inifrån och varelsen saknar dessutom skydd då. Offret tar sig ut när besten är död. Varje runda i bestens inre tar offret 1 poäng skada.', }, - SpitAcid: { - Type: 'Spotta syra', - Description: + spit_acid: { + type: 'Spotta syra', + description: 'Besten öppnar sin käft och låter ett moln av frätande syra regna över alla äventyrare inom Nära avstånd. Offer som träffas tar 1 poäng skada igen varje runda i T3 rundor.', }, - DiveAttack: { - Type: 'Dykattack', - Description: + dive_attack: { + type: 'Dykattack', + description: 'Sveper genom luften och river en olycklig äventyrare inom Nära avstånd med all sin kraft. Om attacken träffar slås offret till marken.', }, - EyeGourge: { - Type: 'Stick ut öga', - Description: + eye_gourge: { + type: 'Stick ut öga', + description: 'Besten fokuserar på en olyckligt lottad äventyrare och försöker slita ut dess ögon med sina vassa klor. Om offret tar skada får de direkt också den kritiska skadan “Sargat öga“ (resultat 42-43 på tabllen för kritisk skador stickvapen).', }, - ClawFlurry: { - Type: 'Virvelklor', - Description: + claw_flurry: { + type: 'Virvelklor', + description: 'Varelsen ryggar upp inför en äventyrare och river henne med tre attacker. Attackerna kan PARERAS, men en åt gången.', }, - LockedJaws: { - Type: 'Käklås', - Description: + locked_jaws: { + type: 'Käklås', + description: 'Varelsen biter en av äventyrarna och låser sin käke i ett brutalt grepp. Om attacken träffar hamnar offret i ett GREPP och tar 1 poäng skada per runda så länge hon är greppad.', }, - ThroatBite: { - Type: 'Halsbett', - Description: + throat_bite: { + type: 'Halsbett', + description: 'Varelsen ser en svag punkt och biter en äventyrare i halsen för att döda. Attacken kan PARERAS. Offret tar också halva skadan (avrundat uppåt) på KARISMA, på grund av det fruktansvärda händelsen och blir NEDKYLD.', }, - TentacleFrenzy: { - Type: 'Tentakelfrenese', - Description: + tentacle_frenzy: { + type: 'Tentakelfrenese', + description: 'Besten fäktar med alla sina tentakler och slår alla äventyrare inom Nära räckvid. Utför en attack mot varje äventyrare.', }, - TentaclePenetrationArmsLength: { - Type: 'Forcerande tentakel', - Description: + tentacle_penetration_arms_length: { + type: 'Forcerande tentakel', + description: 'Varelsen försöker tvinga en tentakel in i kroppen (som munnen, ögonen eller öronen) på en äventyrare inom Armlängds avstånd. Attacken skadar både STYRKA och KARISMA på grund av den hemska upplevelsen.', }, - TentaclePenetrationNear: { - Type: 'Forcerande tentakel', - Description: + tentacle_penetration_near: { + type: 'Forcerande tentakel', + description: 'Varelsen försöker tvinga en tentakel in i kroppen (som munnen, ögonen eller öronen) på en äventyrare inom Nära avstånd. Attacken skadar både STYRKA och KARISMA på grund av den hemska upplevelsen.', }, - SprayFire: { - Type: 'Eldstorm', - Description: + spray_fire: { + type: 'Eldstorm', + description: 'Varelse släpper ut en storm av eld som riktar en attack mot alla äventyrare inom Kort avstånd. Den här attacken kan bara användas en gång per strid.', }, - SprayAcid: { - Type: 'Syrastorm', - Description: + spray_acid: { + type: 'Syrastorm', + description: 'Varelse släpper ut en storm av syra som riktar en attack mot alla äventyrare inom Kort avstånd. Den här attacken kan bara användas en gång per strid.', }, - ColdStrike: { - Type: 'Dödskyla', - Description: + cold_strike: { + type: 'Dödskyla', + description: 'Den odöda varelsen tar tag i ett offer och låter sin iskalla dödskyla strömma in i kroppen. Om offret träffas blir det också NEDKYLD.', }, - DeathScream: { - Type: 'Dödsskri', - Description: + death_scream: { + type: 'Dödsskri', + description: 'Ansiktet på den odöda varelsen förvandlas till en hemsk grimas och avger ett skri som förvandlar äventyrares själar inom Nära räckvidd till is. Rulla en skräckattack. Alla offer som drabbas av attacken blir också NEDKYLD. ', }, - BackwardsKick: { - Type: 'Backwards Kick', - Description: + backwards_kick: { + type: 'Backwards Kick', + description: 'Odjuret vänder sig snabbt och sparkar bakut med en formidabel kraft. Om attacken träffar, kastas äventyraren till Nära avstånd och blir liggande.', }, - Whirlwind: { - Type: 'Virvelvind', - Description: + whirlwind: { + type: 'Virvelvind', + description: 'Besten använder sina kraftfull vingar för att skapa en virvelvind som knuffar alla äventyrare inom Nära räckvidd till marken. Alla som träffas av attacken slås till marken och blir liggande. Det går inte att DUCKA attacken.', }, - Peck: { - Type: 'Näbbhacka', - Description: + peck: { + type: 'Näbbhacka', + description: 'Varelsen hackar med sin näbb en äventyrare inom Armlängs avstånd.', }, - Squash: { - Type: 'Mosa', - Description: + squash: { + type: 'Mosa', + description: 'Den stora besten reser upp och blockerar solen med sin stora massa. Sen låter den sin kroppa falla mot äventyrarna. Låt alla slå ett RÖRLIGHET för att hoppa undan (räknas inte som en handlig). Alla inom Nära avstånd slängs till marken. Den som misslyckades medd sitt rörligetsslag träffas också av attacken som står beskriven här.', }, - BeakThrow: { - Type: 'Näbbkast', - Description: + beak_throw: { + type: 'Näbbkast', + description: 'Besten använder sin näbb för att få ett bra grepp på en äventyrare och kastar upp henne i lyften med en kvick snärt med näbben. Slå för attacken, om den träffar landar offret liggandes inom Nära avstånd.', }, - AdventureToss: { - Type: 'Kast med liten äventyrare', - Description: + adventure_toss: { + type: 'Kast med liten äventyrare', + description: 'Besten lyfter en äventyrare högt upp i luften och kastar henne som en trasdocka. Slå för attacken, om den träffar landar offret liggandes inom Kort avstånd.', }, - DeathRattle: { - Type: 'Dödsrassel', - Description: + death_rattle: { + type: 'Dödsrassel', + description: 'Besten hoppar till en äventyrare, biter henne och sen skakar henne och till sist kastar henne åt sidan. Slå attacken, om den träffar kastas offret till inom Nära avstånd och blir liggandes.', }, - InfectedScratch: { - Type: 'Infektera Rivsår', - Description: + infected_scratch: { + type: 'Infektera Rivsår', + description: 'Den sjuka varelsen river en äventyrare med sina klor. Om attacken träffar, drabbas offret även av sjukdomen.', }, - DiseasedBite: { - Type: 'Smittande bett', - Description: + diseased_bite: { + type: 'Smittande bett', + description: 'Den sjuka varelsen biten en äventyrare med sina huggtänder. Om attacken träffar, drabbas offret även av sjukdomen.', }, - InfectedTailSwipe: { - Type: 'Infekterat svansriv', - Description: + infected_tail_swipe: { + type: 'Infekterat svansriv', + description: 'Den sjuka varelsen river en äventyrare med sin spikförsedda svans. Om attacken träffar, drabbas offret även av sjukdomen.', }, - InfectedTentacleSwipe: { - Type: 'Infekterat tentakelriv', - Description: + infected_tentacle_swipe: { + type: 'Infekterat tentakelriv', + description: 'Den sjuka varelsen river en äventyrare med sina tentakler. Om attacken träffar, drabbas offret även av sjukdomen.', }, - DiseasedTouch: { - Type: 'Sjuklig beröring', - Description: + diseased_touch: { + type: 'Sjuklig beröring', + description: 'Den sjuka varelsen rör vid en äventyrare och sprider sin sjukdom. Om attacken träffar, drabbas offret även av sjukdomen.', }, - Distraction: { - Type: 'Distraktion', - Description: + distraction: { + type: 'Distraktion', + description: 'Besten för en plötslig distraherande rörelse som får alla äventyrare att stanna till sina attacker. Alla äventyrare inom Nära räckvid måste lyckas med ett GENOMSKÅDA eller få -1 på deras nästa handling.', }, - Punch: { - Type: 'Slag', - Description: + punch: { + type: 'Slag', + description: 'Varelsen knyter sin näven och svingar mot en äventyrare inom Armslängs räckvidd. Attacken kan PARERAS.', }, - FlyingFists: { - Type: 'Fäktande nävar', - Description_count: + flying_fists: { + type: 'Fäktande nävar', + description_count: 'Varelsen fäktar med sina armar och slår {{count}} äventyrare inom Armlängds avstånd. Varje attack kan PARERAS.', }, - FistsOfFury: { - Type: 'Ursinniga nävar', - Description_count: + fists_of_fury: { + type: 'Ursinniga nävar', + description_count: 'Varelsen använder alla sina armar för att slå en äventyrare {{count}} gånger. Varje attack kan PARERAS men måste PARERAS separat.', }, - PoisonSpit: { - Type: 'Giftspott', - Description: + poison_spit: { + type: 'Giftspott', + description: 'Varelsen spottar en boll giftigt slem mot en äventyrare inom Nära avstånd. Gör en attack, den gör ingen skada men om den träffar, drabbas offret direkt av giftet.', }, - VenemousBite: { - Type: 'Giftbett', - Description: + venemous_bite: { + type: 'Giftbett', + description: 'Varelsen biter en äventyrare med sina giftiga huggtänder.', }, - PoisonScratch: { - Type: 'Giftigt klös', - Description: 'Varelsen klöser en äventyrare med sina giftiga klor.', + poison_scratch: { + type: 'Giftigt klös', + description: 'Varelsen klöser en äventyrare med sina giftiga klor.', }, - PoisonTailAttack: { - Type: 'Giftsvans', - Description: 'Varelsen attackerar en äventyrare med sin giftiga svans.', + poison_tail_attack: { + type: 'Giftsvans', + description: 'Varelsen attackerar en äventyrare med sin giftiga svans.', }, - PoisonTentacleAttack: { - Type: 'Gifttentakel', - Description: 'Varelsen attackerar en äventyrare med sin giftiga svans.', + poison_tentacle_attack: { + type: 'Gifttentakel', + description: 'Varelsen attackerar en äventyrare med sin giftiga svans.', }, - PoisonHornAttack: { - Type: 'Gifthorn', - Description: 'Varelsen stångar en äventyrare med sina giftiga horn.', + poison_horn_attack: { + type: 'Gifthorn', + description: 'Varelsen stångar en äventyrare med sina giftiga horn.', }, - NightmareVisions: { - Type: 'Mardröm', - Description: + nightmare_visions: { + type: 'Mardröm', + description: 'Den telepatiska bester riktar in sig på en äventyrare inom Nära räckvidd och fyller hennes huvud med mardrömmar. Detta är en Skräckattack.', }, - MindBurst: { - Type: 'Sinnessmäll', - Description: + mind_burst: { + type: 'Sinnessmäll', + description: 'Den telepatiska besten sänder ut en kraftfull våg av negativa känslor mot alla äventyrare inom Armlängds avstånd. Detta är en Skräckattack.', }, - Taunt: { - Type: 'Håna', - Description: + taunt: { + type: 'Håna', + description: 'Varelsen hånar och hotar äventyrarna med fruktansvärda beskrivningar av vad besten ska göra mot dem. Alla äventyrare inom Nära avstånd utsätts för en Skräckattack.', }, - Plea: { - Type: 'Vädjan', - Description: + plea: { + type: 'Vädjan', + description: 'Varelsen vädjar äventyrarna att inte skada denne, lekandes med deras känslor. Alla äventyrare inom Nära räckvid påverkas och måste slå KARISMA för att kunna fortsätta anfalla (som Nådastöt). Annars förlorar de sin nästa handling (Talangen Kallblodig kan användas som försvar mot attackens effekter).', }, - Burrow: { - Type: 'Grävande Attack', - Description: + burrow: { + type: 'Grävande Attack', + description: 'Varelsen gräver fort ned sig, rör sig mot en äventyrare och dyker upp ur jorden attackerandes. Marken är nu svår att stå på (-1 på alla handlingar).', }, - TheGroundShatters: { - Type: 'Marken skälver', - Description: + the_ground_shatters: { + type: 'Marken skälver', + description: 'Besten dyker ner under marken och använder sin massa för att skälva marken run äventyrarna. Alla äventyrare inom Nära avstånd faller 2T6 meter och landar liggandes.', }, - Rush: { - Type: 'Anstorma', - Description: + rush: { + type: 'Anstorma', + description: 'Varelsen springer mot en äventyrare inom Nära räckvidd, försöker knuffa eller fälla henne. Om attacken träffar faller offret till marken och blir liggandes.', }, - WrapAttack: { - Type: 'Dödskram', - Description: + wrap_attack: { + type: 'Dödskram', + description: 'Varelsen slingrar sig mot en äventyrare och försöker omfamna en lem. Om attacken lyckas, har besten henne i ett GREPP och hon tar 1 poäng skada per runda tills någon får bort besten.', }, - FallFromTheSky: { - Type: 'Skyfall', - Description: + fall_from_the_sky: { + type: 'Skyfall', + description: 'Besten grabbar tag i en äventyrare inom Nära räckvid och lyfter upp henne i skyn. Om attacken lyckas, lyfts både besten och offret uppåt till Kort avstånd från marken. Nästa runda släpper besten offret som faller 2T6+10 meter och tar fallskada (se sida 109 i Spelarboken).', }, - RainOfRocks: { - Type: 'Stenregn', - Description: + rain_of_rocks: { + type: 'Stenregn', + description: 'Varelsen kastar stenar och annat skräp från lyften. Alla äventyrare inom Nära räckvid utsätts för en attack.', }, - Stab: { - Type: 'Stick', - Description: 'Besten hugger en äventyrare med något vasst som en klo.', + stab: { + type: 'Stick', + description: 'Besten hugger en äventyrare med något vasst som en klo.', }, - Pounce: { - Type: 'Påhoppad', - Description: + pounce: { + type: 'Påhoppad', + description: 'Besten hoppar på en äventyrare inom Nära räckvidd och försöker knuffa eller fälla henne. Om attacken träffar faller offret till marken och blir liggandes.', }, - Webshot: { - Type: 'Nätskott', - Description: + webshot: { + type: 'Nätskott', + description: 'Varelsen skjuter ett nät mot alla äverntyrare inom Nära avstånd som vid träff gör att de blir fast i nätet. De kan bryta sig loss genom att slå mot 6 tärningar. Nätet applicerar även ett paralyserande gift med potens 1.', }, - PiercingShriek: { - Type: 'Piercing Shriek', - Description: + piercing_shriek: { + type: 'Piercing Shriek', + description: 'Varelsen gör ifrån sig ett skrik som når ändå in i själen på alla äventyrare inom Nära avstånd som får en Skräckattack mot sig', }, - CallTheBrood: { - Type: 'Call The Brood', - Description: + call_the_brood: { + type: 'Call The Brood', + description: 'Varelsen ropar på sin kull, ropet får 1D6 av dem att komma till hjälp.', }, - Generic: { - Type: 'Attack', - Description: 'Besten attackerar en äventyrare inom Armslängds avstånd.', + generic: { + type: 'Attack', + description: 'Besten attackerar en äventyrare inom Armslängds avstånd.', }, }, }, names: { - Title: 'Namn', - CreateNewNames: 'Nya namn', - OF: 'av', - THE: 'den', - NickNames: { - Adventurous: 'Äventyrlige', - Angry: 'Arge', - Bald: 'Skallige', - Bloody: 'Blodige', - Bold: 'Djärve', - Accurate: 'Noggranne', - Sloppy: 'Slarvige', - Careful: 'Försiktig', - Able: 'Duktige', - Confused: 'Förvirrade', - Cruel: 'Grymme', - Direct: 'Direkte', - Dashing: 'Energiske', - Thick: 'Tjocka', - Wary: 'Varsamme', - Good: 'Gode', - Hairy: 'Hårige', - Stylish: 'Stilige', - Blessed: 'Lycklige', - Jumping: 'Hoppfulle', - Hopeful: 'Hoppfulle', - Cheerful: 'Muntra', - Happy: 'Glad', - Mighty: 'Mäktige', - Gentle: 'Lindriga', - Misled: 'Vilseledne', - Somber: 'Dystere', - Old: 'Gamle', - KeenEyed: 'Skarpsynte', - Proud: 'Stolte', - Trustworthy: 'Pålitlige', - Sad: 'Ledsne', - Short: 'Korte', - Sleepy: 'Sömnig', - Slow: 'Långsamme', - Powerful: 'Kraftige', - Strong: 'Starke', - Honest: 'Ärlige', - Fast: 'Snabbe', - Talkative: 'Pratsamme', - Long: 'Långe', - Terrible: 'Fruktansvärde', - Thin: 'Tunne', - Ugly: 'Fule', - Vain: 'Fåfänglige', - Weak: 'Svage', - Wise: 'Vise', - Young: 'Unge', + title: 'Namn', + create_new_names: 'Nya namn', + of: 'av', + the: 'den', + nick_names: { + adventurous: 'Äventyrlige', + angry: 'Arge', + bald: 'Skallige', + bloody: 'Blodige', + bold: 'Djärve', + accurate: 'Noggranne', + sloppy: 'Slarvige', + careful: 'Försiktig', + able: 'Duktige', + confused: 'Förvirrade', + cruel: 'Grymme', + direct: 'Direkte', + dashing: 'Energiske', + thick: 'Tjocka', + wary: 'Varsamme', + good: 'Gode', + hairy: 'Hårige', + stylish: 'Stilige', + blessed: 'Lycklige', + jumping: 'Hoppfulle', + hopeful: 'Hoppfulle', + cheerful: 'Muntra', + happy: 'Glad', + mighty: 'Mäktige', + gentle: 'Lindriga', + misled: 'Vilseledne', + somber: 'Dystere', + old: 'Gamle', + keen_eyed: 'Skarpsynte', + proud: 'Stolte', + trustworthy: 'Pålitlige', + sad: 'Ledsne', + short: 'Korte', + sleepy: 'Sömnig', + slow: 'Långsamme', + powerful: 'Kraftige', + strong: 'Starke', + honest: 'Ärlige', + fast: 'Snabbe', + talkative: 'Pratsamme', + long: 'Långe', + terrible: 'Fruktansvärde', + thin: 'Tunne', + ugly: 'Fule', + vain: 'Fåfänglige', + weak: 'Svage', + wise: 'Vise', + young: 'Unge', }, }, npc: { - Title: 'SLP', - NpcButton: 'Slumpa spelledarperson', - Occupation: { - Soldier: 'Soldat', - FortuneSeeker: 'Lycksökare', - Bandit: 'Rövare', - SlaveTrader: 'Slavhandlare', - TreasureHunter: 'Skattletare', - Beggar: 'Tiggare', - Actor: 'Skådespelare', - Lumberjack: 'Skogshuggare', - Hunter: 'Jägare', - Farmer: 'Bonde', - Laborer: 'Dräng', - Jester: 'Gycklare', - Wanderer: 'Vandrare', - Fisher: 'Fiskare', - Noble: 'Ädling', - Child: 'Barn', - Trader: 'Nasare', - Brewer: 'Bryggare', - Carpenter: 'Snickare', - Apprentice: 'Lärling', - Thief: 'Tjuv', - Druid: 'Druid', - Baker: 'Bagare', - Refugee: 'Flykting', - Assassin: 'Lönnmördare', - Smith: 'Smed', - Gravedigger: 'Dödgrävare', - RustBrother: 'Rostbroder', - Shepherd: 'Herde', - Braggart: 'Sprätthök', - Cook: 'Kock', - Cultist: 'Kultist', - Guard: 'Vakt', - Messenger: 'Budbärare', - Miner: 'Gruvarbetare', - Academic: 'Akademiker', - }, - Characteristic: { - IceBlueEyes: 'Isblå ögon', - FluffyHair: 'Svallande hårman', - ScarredFace: 'Ärrat ansikte', - SeveredEar: 'Avhugget öra', - EyePatch: 'Lapp för ena ögat', - MissingTeeth: 'Saknar tänder', - Graceful: 'Finlemmad', - Towering: 'Reslig', - ImpressiveBeardOrHair: 'Imponerande skäggväxt eller hår', - RoundCheeks: 'Äppelkindad', - DistinctBirthmark: 'Tydligt födelsemärke', - StrangeFacialPaint: 'Märklig sminkning', - SadEyes: 'Sorgsna ögon', - SmellsBad: 'Luktar illa', - Perfumed: 'Luktar gott', - Cocky: 'Kaxig', - ConstantlySmiling: 'Ler konstant', - Sullen: 'Surmulen', - ConstantlyJoking: 'Skämtar oavbrutet', - Lovesick: 'Kärlekskrank', - Elegant: 'Elegant', - Tattooed: 'Tatuerad', - ConstantlyEating: 'Äter konstant', - Desperate: 'Förtvivlad', - Hateful: 'Hatisk', - Sweaty: 'Svettig', - Drunk: 'Berusad', - Suspicious: 'Misstänksam', - VeryBeautiful: 'Mycket vacker', - Foppish: 'Snobbig', - Fat: 'Fet', - Seducing: 'Förförisk', - Lazy: 'Slö', - VeryTired: 'Stirrig', - Wiry: 'Senig', - UnkemptEyeBrows: 'Dammig', - }, - Quirk: { - FamilyDream: + title: 'SLP', + npc_button: 'Slumpa spelledarperson', + occupation: { + soldier: 'Soldat', + fortune_seeker: 'Lycksökare', + bandit: 'Rövare', + slave_trader: 'Slavhandlare', + treasure_hunter: 'Skattletare', + beggar: 'Tiggare', + actor: 'Skådespelare', + lumberjack: 'Skogshuggare', + hunter: 'Jägare', + farmer: 'Bonde', + laborer: 'Dräng', + jester: 'Gycklare', + wanderer: 'Vandrare', + fisher: 'Fiskare', + noble: 'Ädling', + child: 'Barn', + trader: 'Nasare', + brewer: 'Bryggare', + carpenter: 'Snickare', + apprentice: 'Lärling', + thief: 'Tjuv', + druid: 'Druid', + baker: 'Bagare', + refugee: 'Flykting', + assassin: 'Lönnmördare', + smith: 'Smed', + gravedigger: 'Dödgrävare', + rust_brother: 'Rostbroder', + shepherd: 'Herde', + braggart: 'Sprätthök', + cook: 'Kock', + cultist: 'Kultist', + guard: 'Vakt', + messenger: 'Budbärare', + miner: 'Gruvarbetare', + academic: 'Akademiker', + }, + characteristic: { + ice_blue_eyes: 'Isblå ögon', + fluffy_hair: 'Svallande hårman', + scarred_face: 'Ärrat ansikte', + severed_ear: 'Avhugget öra', + eye_patch: 'Lapp för ena ögat', + missing_teeth: 'Saknar tänder', + graceful: 'Finlemmad', + towering: 'Reslig', + impressive_beard_or_hair: 'Imponerande skäggväxt eller hår', + round_cheeks: 'Äppelkindad', + distinct_birthmark: 'Tydligt födelsemärke', + strange_facial_paint: 'Märklig sminkning', + sad_eyes: 'Sorgsna ögon', + smells_bad: 'Luktar illa', + perfumed: 'Luktar gott', + cocky: 'Kaxig', + constantly_smiling: 'Ler konstant', + sullen: 'Surmulen', + constantly_joking: 'Skämtar oavbrutet', + lovesick: 'Kärlekskrank', + elegant: 'Elegant', + tattooed: 'Tatuerad', + constantly_eating: 'Äter konstant', + desperate: 'Förtvivlad', + hateful: 'Hatisk', + sweaty: 'Svettig', + drunk: 'Berusad', + suspicious: 'Misstänksam', + very_beautiful: 'Mycket vacker', + foppish: 'Snobbig', + fat: 'Fet', + seducing: 'Förförisk', + lazy: 'Slö', + very_tired: 'Stirrig', + wiry: 'Senig', + unkempt_eye_brows: 'Dammig', + }, + quirk: { + family_dream: 'Drömmer om familj och hus, kommer göra vad som helst för att få det.', - SkillGambler: 'En fena på hasardspel, portad i tre byar.', - HauntedByDream: 'Hemsöks av drömmar om en inne bränd familj. Ser i syne.', - ChewingNarcotics: + skill_gambler: 'En fena på hasardspel, portad i tre byar.', + haunted_by_dream: + 'Hemsöks av drömmar om en inne bränd familj. Ser i syne.', + chewing_narcotics: 'Tuggar på narkotiska blad, stirrig blick och dåligt humör.', - HasTreasureMap: + has_treasure_map: 'Överentusiastisk. Har en skattkarta men inga levande kumpaner.', - AlderSpy: 'En alderländsk spion i förklädnad.Drar sig inte för att döda.', - TooSensitive: 'För känslig för denna grymma värld.', - Squeamish: 'Blödig och gråtmild.', - ObsessedWithMonster: + alder_spy: + 'En alderländsk spion i förklädnad.Drar sig inte för att döda.', + too_sensitive: 'För känslig för denna grymma värld.', + squeamish: 'Blödig och gråtmild.', + obsessed_with_monster: 'Besatt av att hitta legendarisk best, kommer inte ge sig förrän någon av dem är döda.', - Cultist: 'Kultist, letar nya offer.', - SleepsBad: 'Sover dåligt, ser heliga syner om nätterna.', - LegendaryPickpocket: 'Legendarisk ficktjuv som ständigt byter identitet.', - OnlySurvivor: 'Enda överlevande från nedbrunnen by. Pyroman.', - WorshipsGodInTheDeep: 'Tillber guden i djupet.', - PossessedByDemon: 'Besatt av nyckfull demon.', - AvengeParent: 'Planerar att hämnas sin mördade far.', - Bankrupt: + cultist: 'Kultist, letar nya offer.', + sleeps_bad: 'Sover dåligt, ser heliga syner om nätterna.', + legendary_pickpocket: + 'Legendarisk ficktjuv som ständigt byter identitet.', + only_survivor: 'Enda överlevande från nedbrunnen by. Pyroman.', + worships_god_in_the_deep: 'Tillber guden i djupet.', + possessed_by_demon: 'Besatt av nyckfull demon.', + avenge_parent: 'Planerar att hämnas sin mördade far.', + bankrupt: 'Bankrutt, men har en sista stor slagen plan för att rädda sin verksamhet.', - HatesCompetitor: + hates_competitor: 'Avskyr en konkurrent och gör vad som helst för att bli av med denne.', - HidesSecret: 'Döljer en mörk hemlighet.', - WillDoAnything: + hides_secret: 'Döljer en mörk hemlighet.', + will_do_anything: 'Gör vad som helst för att få sin vilja igenom. Vad som helst.', - ExpensiveHabits: 'Har dyrbara vanor och smiter gärna från notan.', - LikesToScare: 'Gillar att skrämma folk.', - BelievesToBeRoyal: 'Tror sig vara av kunglig ätt.', - WantsRevenge: 'Vill hämnas mer än allt annat.', - InterestedPoetry: 'Intresserad av poesi.', - Cheater: 'Notoriskt otrogen.', - Gossips: 'Vet allt om alla och berättar gärna.', - Doubter: 'Hyser starka tvivel.', - DreamsOfKilling: 'Drömmer om att döda någon.', - Touchy: 'Gillar att röra vid folk.', - Storyteller: 'Är en gudabenådad berättare.', - WillTakeOver: 'Tänker ta över en dag.', - CravingBeer: 'Väldigt sugen på ett stop öl.', - BelievesToBeFolllowed: 'Tror sig vara förföljd.', - Swears: 'Svär hela tiden.', - TheoryOfWorld: + expensive_habits: 'Har dyrbara vanor och smiter gärna från notan.', + likes_to_scare: 'Gillar att skrämma folk.', + believes_to_be_royal: 'Tror sig vara av kunglig ätt.', + wants_revenge: 'Vill hämnas mer än allt annat.', + interested_poetry: 'Intresserad av poesi.', + cheater: 'Notoriskt otrogen.', + gossips: 'Vet allt om alla och berättar gärna.', + doubter: 'Hyser starka tvivel.', + dreams_of_killing: 'Drömmer om att döda någon.', + touchy: 'Gillar att röra vid folk.', + storyteller: 'Är en gudabenådad berättare.', + will_take_over: 'Tänker ta över en dag.', + craving_beer: 'Väldigt sugen på ett stop öl.', + believes_to_be_folllowed: 'Tror sig vara förföljd.', + swears: 'Svär hela tiden.', + theory_of_world: 'Har en teori om världens beskaffenhet. Berättar gärna om den.', }, }, session: { - Title: 'Spelmöte', - Legend: 'Nytt sägen', - ALongTimeAgo: 'För länge sedan', - YearsAgo: '({{years}} år sedan)', - ThereWas: 'var det', - WhoSearched: 'som sökte', - BecauseOf: 'på grund av', - AndTraveledTo: 'och begav sig till', - Located: 'som ligger', - In: 'i', - InTheDirectionOf: 'i riktning', - AsTheLegendGoesItIsSaidThat: 'Enligt sägnen sägs det att hen', - AsTheLegendGoesItIsSaidThat_Third: 'Enligt sägnen sägs det att de', - AndThatAtTheLocationThere: 'och på platsen finns', - ButAlso: 'men också', - TimeAgo: { - BeforeShift: 'innan skiftet', - BeforeBloodMist: 'innan blodsdimman', - DuringAlderWars: 'under de alderländska krigen', - DuringBloodMist: 'under blodsdimmans tid', - }, - Adjective: { - BloodThirsty: 'en blodtörstig', - Vengeful: 'en hämndlysten', - Greedy: 'en girig', - Unhappy: 'en olyckligt', - Ingenious: 'en påhittig', - Enterprising: 'en driftig', - Kind: 'en vänlig', - Perseverant: 'en uthållig', - Treacherous: 'en lömsk', - Moral: 'en moralisk', - Skilled: 'en skicklig', - Stingy: 'en snål', - Vain: 'en fåfäng', - Wise: 'en vis', - Beautiful: 'en vacker', - Honorable: 'en ärofull', - Jealous: 'en missunnsam', - Cruel: 'en grym', - Determined: 'en handlingskraftig', - Cunning: 'en listig', - Scared: 'en rädd', - Evil: 'en ond', - }, - WhoOrWhat: { - Elf: 'alv', - Dwarf: 'dvärg', - Peddler: 'nasare', - Smith: 'smed', - Farmer: 'bonde', - Apprentice: 'lärling', - Druid: 'druid', - Shepherd: 'herde', - RavenSister: 'korpsyster', - RustBrother: 'rostbroder', - Rider: 'riddare/ryttare', - TreasureHunter: 'skattletare', - Priest: 'präst', - Sorcerer: 'magiker', - RobberChieftain: 'rövarhövding', - Warrior: 'krigare', - Lord: 'furste', - Prince: 'prins', - Princess: 'prinsessa', - Queen: 'drottning', - King: 'kung', - Soldiers: 'trupp', - Village: 'by', - Cult: 'kult', - BandOfRobbers: 'rövarband', - Cabal: 'kabal', - Monster: 'monster', - }, - SearchedFor: { - Weapon: 'ett vapen', - Love: 'en kärlek', - Friend: 'en vän i nöd', - Enemy: 'en fiende', - Treasure: 'en skatt', - Map: 'en karta', - FamilyMember: 'en familjemedlem', - Artifact: 'en artefakt', - Monster: 'ett monster', - }, - Because: { - Love: 'kärlek', - Friendship: 'vänskap', - Promise: 'ett löfte', - Prophecy: 'en profetia', - Bet: 'ett vad', - Duty: 'plikt', - War: 'krig', - Honor: 'ära', - Insanity: 'vansinne', - Dreams: 'drömmar', - Greed: 'girighet', - }, - Location: { - Ruin: 'en ruin', - Farm: 'en gård', - Grave: 'en grav', - Tower: 'ett torn', - Fortress: 'en borg', - Village: 'en by', - Cave: 'en grotta', - Hill: 'en kulle', - Tree: 'ett träd', - WaterSource: 'en vattenkälla', - }, - Distance: { - Here: 'här', - CloseBy: 'i närheten', - OneDaysMarch: 'en dagsmarsch bort', - ManyDaysMarch: 'flera dagsmarscher bort', - FarAway: 'i fjärran', - TheOtherSide: 'på andra sidan Det glömda landet', - }, - WhatHappened: { - Betrayed: 'blev förrådd', - Betrayed_Third: 'blev förrådda', - Murdered: 'blev mördad', - Murdered_Third: 'blev mördade', - NeverSeenAgain: 'aldrig sågs mer', - NeverSeenAgain_Third: 'aldrig sågs mer', - StarvedToDeath: 'svalt ihjäl', - StarvedToDeath_Third: 'svalt ihjäl', - CommitedSuicide: 'tog livet av sig', - CommitedSuicide_Third: 'tog livet av sig', - DiedInBattle: 'dog i strid', - DiedInBattle_Third: 'dog i strid', - Charmed: 'blev förtrollad', - Charmed_Third: 'blev förtrollade', - Possessed: 'blev besatt', - Possessed_Third: 'blev besatta', - CameBackChanged: 'kom tillbaka förändrad', - CameBackChanged_Third: 'kom tillbaka förändrade', - StillLooking: 'fortfarande letar', - StillLooking_Third: 'fortfarande letar', - }, - ItsToldThat: { - Gold: 'guld, massor av guld', - Artifact: 'en kraftfull artefakt', - Armor: 'en rustning', - Weapon: 'ett vapen', - Book: 'en ovärderlig bok', - Treasure: 'en stor skatt', - WarChest: 'en försvunnen krigskassa', - Remains: 'lämningarna av en viktig pers', - DwarvenArtifact: 'en dvärgisk artefakt', - ElfRuby: 'en alvrubin', - }, - AdjectiveAdversary: { - Aggresive: 'aggresiva', - BloodThirsty: 'blodtörstiga', - Cruel: 'grymma', - Horrible: 'fasansfulla', - Hungry: 'hungriga', - Guarding: 'vaktande', - Starving: 'utsvultna', - Greedy: 'giriga', - Crazy: 'galna', - Murderous: 'mordiska', - Manic: 'maniska', - Hunting: 'jagande', - }, - Adversary: { - WolfKin: 'vargmän', - SlaveTraders: 'slavhandlare', - Orcs: 'orcher', - Ghosts: 'gastar', - Saurians: 'reptilfolk', - IronGuards: 'järngardister', - Undead: 'odöda', - Robbers: 'rövare', - Goblins: 'svartalfer', - Ogres: 'resar', - Demon_One: 'en demon', - Demon_Two: 'två demoner', - DemonWithCount: 'demoner', + title: 'Spelmöte', + legend: 'Nytt sägen', + along_time_ago: 'För länge sedan', + years_ago: '({{years}} år sedan)', + there_was: 'var det', + who_searched: 'som sökte', + because_of: 'på grund av', + and_traveled_to: 'och begav sig till', + located: 'som ligger', + in: 'i', + in_the_direction_of: 'i riktning', + as_the_legend_goes_it_is_said_that: 'Enligt sägnen sägs det att hen', + as_the_legend_goes_it_is_said_that_third: 'Enligt sägnen sägs det att de', + and_that_at_the_location_there: 'och på platsen finns', + but_also: 'men också', + time_ago: { + before_shift: 'innan skiftet', + before_blood_mist: 'innan blodsdimman', + during_alder_wars: 'under de alderländska krigen', + during_blood_mist: 'under blodsdimmans tid', + }, + adjective: { + blood_thirsty: 'en blodtörstig', + vengeful: 'en hämndlysten', + greedy: 'en girig', + unhappy: 'en olyckligt', + ingenious: 'en påhittig', + enterprising: 'en driftig', + kind: 'en vänlig', + perseverant: 'en uthållig', + treacherous: 'en lömsk', + moral: 'en moralisk', + skilled: 'en skicklig', + stingy: 'en snål', + vain: 'en fåfäng', + wise: 'en vis', + beautiful: 'en vacker', + honorable: 'en ärofull', + jealous: 'en missunnsam', + cruel: 'en grym', + determined: 'en handlingskraftig', + cunning: 'en listig', + scared: 'en rädd', + evil: 'en ond', + }, + who_or_what: { + elf: 'alv', + dwarf: 'dvärg', + peddler: 'nasare', + smith: 'smed', + farmer: 'bonde', + apprentice: 'lärling', + druid: 'druid', + shepherd: 'herde', + raven_sister: 'korpsyster', + rust_brother: 'rostbroder', + rider: 'riddare/ryttare', + treasure_hunter: 'skattletare', + priest: 'präst', + sorcerer: 'magiker', + robber_chieftain: 'rövarhövding', + warrior: 'krigare', + lord: 'furste', + prince: 'prins', + princess: 'prinsessa', + queen: 'drottning', + king: 'kung', + soldiers: 'trupp', + village: 'by', + cult: 'kult', + band_of_robbers: 'rövarband', + cabal: 'kabal', + monster: 'monster', + }, + searched_for: { + weapon: 'ett vapen', + love: 'en kärlek', + friend: 'en vän i nöd', + enemy: 'en fiende', + treasure: 'en skatt', + map: 'en karta', + family_member: 'en familjemedlem', + artifact: 'en artefakt', + monster: 'ett monster', + }, + because: { + love: 'kärlek', + friendship: 'vänskap', + promise: 'ett löfte', + prophecy: 'en profetia', + bet: 'ett vad', + duty: 'plikt', + war: 'krig', + honor: 'ära', + insanity: 'vansinne', + dreams: 'drömmar', + greed: 'girighet', + }, + location: { + ruin: 'en ruin', + farm: 'en gård', + grave: 'en grav', + tower: 'ett torn', + fortress: 'en borg', + village: 'en by', + cave: 'en grotta', + hill: 'en kulle', + tree: 'ett träd', + water_source: 'en vattenkälla', + }, + distance: { + here: 'här', + close_by: 'i närheten', + one_days_march: 'en dagsmarsch bort', + many_days_march: 'flera dagsmarscher bort', + far_away: 'i fjärran', + the_other_side: 'på andra sidan Det glömda landet', + }, + what_happened: { + betrayed: 'blev förrådd', + betrayed_third: 'blev förrådda', + murdered: 'blev mördad', + murdered_third: 'blev mördade', + never_seen_again: 'aldrig sågs mer', + never_seen_again_third: 'aldrig sågs mer', + starved_to_death: 'svalt ihjäl', + starved_to_death_third: 'svalt ihjäl', + commited_suicide: 'tog livet av sig', + commited_suicide_third: 'tog livet av sig', + died_in_battle: 'dog i strid', + died_in_battle_third: 'dog i strid', + charmed: 'blev förtrollad', + charmed_third: 'blev förtrollade', + possessed: 'blev besatt', + possessed_third: 'blev besatta', + came_back_changed: 'kom tillbaka förändrad', + came_back_changed_third: 'kom tillbaka förändrade', + still_looking: 'fortfarande letar', + still_looking_third: 'fortfarande letar', + }, + its_told_that: { + gold: 'guld, massor av guld', + artifact: 'en kraftfull artefakt', + armor: 'en rustning', + weapon: 'ett vapen', + book: 'en ovärderlig bok', + treasure: 'en stor skatt', + war_chest: 'en försvunnen krigskassa', + remains: 'lämningarna av en viktig pers', + dwarven_artifact: 'en dvärgisk artefakt', + elf_ruby: 'en alvrubin', + }, + adjective_adversary: { + aggresive: 'aggresiva', + blood_thirsty: 'blodtörstiga', + cruel: 'grymma', + horrible: 'fasansfulla', + hungry: 'hungriga', + guarding: 'vaktande', + starving: 'utsvultna', + greedy: 'giriga', + crazy: 'galna', + murderous: 'mordiska', + manic: 'maniska', + hunting: 'jagande', + }, + adversary: { + wolf_kin: 'vargmän', + slave_traders: 'slavhandlare', + orcs: 'orcher', + ghosts: 'gastar', + saurians: 'reptilfolk', + iron_guards: 'järngardister', + undead: 'odöda', + robbers: 'rövare', + goblins: 'svartalfer', + ogres: 'resar', + demon_one: 'en demon', + demon_two: 'två demoner', + demon_with_count: 'demoner', }, }, typical: { - Title: 'Typisk person från släkte', + title: 'Typisk person från släkte', }, village: { - PageTitle: 'Skapa din by', - PageDescription: + page_title: 'Skapa din by', + page_description: 'I spelledarboken går det att slumpa fram en by med hjälp av tabeller och tärningar. Här har det digitaliserats och utökats med fler detaljer.', - CreateNewVillage: 'Skapa ny by', - Size: { + create_new_village: 'Skapa ny by', + size: { outpost: 'Utpost', hamlet: 'Liten by', village: 'Stor by', }, - Age: 'Byålder', - Inhabitants: 'Invånare', - Years: 'år', - Ages: { - beforeBloodMist: 'Innan blodsdimman', - duringAlderWars: 'Under de alderländska krigen', - duringBloodMist: 'Under blodsdimmans tid', - afterBloodMist: 'Efter blodsdimman', - }, - Founded: 'Grundad', - Quirks: 'Egendomligheter', - Problems: { - Problem: 'Problem', + age: 'Byålder', + inhabitants: 'Invånare', + years: 'år', + ages: { + before_blood_mist: 'Innan blodsdimman', + during_alder_wars: 'Under de alderländska krigen', + during_blood_mist: 'Under blodsdimmans tid', + after_blood_mist: 'Efter blodsdimman', + }, + founded: 'Grundad', + quirks: 'Egendomligheter', + problems: { + problem: 'Problem', nightwargs: 'Ulvar', - widespreadDrunkenness: 'Utbredd fylla', - powerStruggle: 'Maktkamp', - secretCult: 'Hemlig kult', + widespread_drunkenness: 'Utbredd fylla', + power_struggle: 'Maktkamp', + secret_cult: 'Hemlig kult', schism: 'Schism', undead: 'Odöda', disease: 'Sjukdom', sinkhole: 'Slukhål', bandits: 'Rövare', - terrorizingMonster: 'Terroriserande monster', - slaveTrade: 'Slavhandel', - hauntedByGhoulOrGhost: 'Hemsökt av gast', - }, - Fames: { - Fame: 'Kännetecken', - excellentWine: 'Välsmakande vin', - deliciousBread: 'Gott bröd', + terrorizing_monster: 'Terroriserande monster', + slave_trade: 'Slavhandel', + haunted_by_ghoul_or_ghost: 'Hemsökt av gast', + }, + fames: { + fame: 'Kännetecken', + excellent_wine: 'Välsmakande vin', + delicious_bread: 'Gott bröd', craftsmanship: 'Hantverksskicklighet', - beautifulLocation: 'Vackert läge', - aHorribleMassacre: 'En frukansvärd massaker', + beautiful_location: 'Vackert läge', + a_horrible_massacre: 'En frukansvärd massaker', decadence: 'Dekadens', - wellBrewedBeer: 'Välbryggt öl', - hiddenRiches: 'Gömda rikedomar', - strangeDisappearances: 'Märkliga försvinnanden', - worshippingDemons: 'Demondyrkan', - suspicionOfStrangers: 'Misstänksamhet mot främlingar', + well_brewed_beer: 'Välbryggt öl', + hidden_riches: 'Gömda rikedomar', + strange_disappearances: 'Märkliga försvinnanden', + worshipping_demons: 'Demondyrkan', + suspicion_of_strangers: 'Misstänksamhet mot främlingar', hospitality: 'Gästfrihet', }, - Oddities: { - Oddity: 'Egenhet', - eccentricClothing: 'Udda klädedräkter', - incomprehensibleAccent: 'Obegriplig dialekt', - smellsBad: 'Lukar illa', - fullOfFlowers: 'Full av blommor', + oddities: { + oddity: 'Egenhet', + eccentric_clothing: 'Udda klädedräkter', + incomprehensible_accent: 'Obegriplig dialekt', + smells_bad: 'Lukar illa', + full_of_flowers: 'Full av blommor', muddy: 'Lerig', - oddBuildingMaterials: 'Udda byggnadsmaterial', - tentVillage: 'Tältby', - builtOnSteepHill: 'Byggd på brant sluttning', - oldTowerIntheMiddle: 'Gammalt torn i mitten', - grandBuilding: 'Pampig byggnad', + odd_building_materials: 'Udda byggnadsmaterial', + tent_village: 'Tältby', + built_on_steep_hill: 'Byggd på brant sluttning', + old_tower_inthe_middle: 'Gammalt torn i mitten', + grand_building: 'Pampig byggnad', windy: 'Blåsigt', inbreeding: 'Inavel', - strangeEatingHabits: 'Märkliga matvanor', - builtOnMarshland: 'Byggd på sumpmark', - cutOutOfACliff: 'Uthyggen ur en klippa', - oldBurialSite: 'Gammal begravningsplats', - wanderingCattle: 'Fridrivande kreatur', - mostlyInhabitedByWomen: 'Mest befolkad av kvinnor', - alliedWithMonster: 'Alliered med best', - preparingWedding: 'Förbereder för bröllop', - }, - Leader: { - Leader: 'Ledare', - Oddities: { - Oddity: 'Egenhet', + strange_eating_habits: 'Märkliga matvanor', + built_on_marshland: 'Byggd på sumpmark', + cut_out_of_acliff: 'Uthyggen ur en klippa', + old_burial_site: 'Gammal begravningsplats', + wandering_cattle: 'Fridrivande kreatur', + mostly_inhabited_by_women: 'Mest befolkad av kvinnor', + allied_with_monster: 'Alliered med best', + preparing_wedding: 'Förbereder för bröllop', + }, + leader: { + leader: 'Ledare', + oddities: { + oddity: 'Egenhet', bickering: 'Käbblande', cruel: 'Grym', weak: 'Svag', @@ -2111,89 +2070,89 @@ export const translationsSv: Translations = { secret: 'Hemlighetsfull', drunkard: 'Suput', }, - Type: { - Type: 'Ledartyp', + type: { + type: 'Ledartyp', council: 'Byråd', despot: 'Despot', elder: 'Byäldste', mayor: 'Borgmästare', druid: 'Druid', sorcerer: 'Magiker', - noOne: 'Anarki', + no_one: 'Anarki', commander: 'Kommendant', trader: 'Nasare', - rustBrother: 'Rostbroder', + rust_brother: 'Rostbroder', artisan: 'Hantverkare', - banditChief: 'Rövarhövding', + bandit_chief: 'Rövarhövding', }, }, - Institutions: { - Institutions: 'Inrättningar', + institutions: { + institutions: 'Inrättningar', inn: 'Värdshus', mill: 'Mjölnare', smith: 'Smed', forester: 'Jägmästare', - tradingPost: 'Handelsbod', + trading_post: 'Handelsbod', temple: 'Tempel', militia: 'Milis', tavern: 'Taverna', stable: 'Stall', - Owner: 'Ägare', + owner: 'Ägare', nothing: 'Inget', }, - Inns: { - Inn: 'Värdshus', - Oddities: { - Oddity: 'Egenhet', - violenceIsInTheAir: 'Smockan hänger i luften', - barrelsInsteadOfChairsAndPlanksInsteadOfTables: + inns: { + inn: 'Värdshus', + oddities: { + oddity: 'Egenhet', + violence_is_in_the_air: 'Smockan hänger i luften', + barrels_instead_of_chairs_and_planks_instead_of_tables: 'Tunnor istället för stolar och plankor istället för bord', - bigFireplace: 'Stor eldstad', - peltsOnWalls: 'Fällar på väggarna', - longCommunalTable: 'Avlångt gemensamt bord', - gamblingDen: 'Hasardspel', - mediocreBard: 'Medioker bard', - niceDog: 'Snäll hund', - grumpyOwner: 'Vresig ägare', - monsterHeadOnWall: 'Besthuvud på väggen', - singingWaiter: 'Sjungande servitör', - stompedFloor: 'Stampat jordgolv', - birthdayParty: 'Födelsedagsfest', - drunkAdventurers: 'Fulla äventyrare', - }, - Specialities: { - Speciality: 'Specialitet', - cheapDilutedBeer: 'Billig utspädd öl', - meatStew: 'Köttstuvning', - grilledRodent: 'Grillad gnagare', - stewedTurnips: 'Stuvade rovor', - saltBird: 'Salt fågel', - bloodSoup: 'Blodsoppa', - fierySpiceWine: 'Eldigt kryddvin', - roastedPiglet: 'Helstekt spädgrid', - swampStew: 'Svampstuvning', - vegetableMush: 'Grönsaksgröt', - saltedFish: 'Saltad fisk', - cookedCrow: 'Kokad kråka', - bearStew: 'Björngryta', - dwarvenStrongAle: 'Dvärgiskt starköl', - }, - Guests: { - Guest: 'Gäst', - escapedCriminal: 'Förrymd brottsling', - unhappyFarmer: 'Olycklig bonde', - scarredTreasureHunter: 'Ärrad skattletare', - dirtyAndSullenHunter: 'Smutsig och butter jägare', - silentRavenSister: 'Tystlåten korpsyster', - noisyBandit: 'Bullrig rövare', - oldWarVeteran: 'Gammal krigsveteran', - nobleInDisguise: 'Förklädd ädling', - secretiveSpellbinder: 'Hemlighetsfull magiker', - annoyingJester: 'Irriterande gycklare', - dustyTraveller: 'Dammig resenär', - hungryDwarf: 'Hungrig dvärg', - frostyElf: 'Kylig alv', - scoutingThief: 'Spejande tjuv', + big_fireplace: 'Stor eldstad', + pelts_on_walls: 'Fällar på väggarna', + long_communal_table: 'Avlångt gemensamt bord', + gambling_den: 'Hasardspel', + mediocre_bard: 'Medioker bard', + nice_dog: 'Snäll hund', + grumpy_owner: 'Vresig ägare', + monster_head_on_wall: 'Besthuvud på väggen', + singing_waiter: 'Sjungande servitör', + stomped_floor: 'Stampat jordgolv', + birthday_party: 'Födelsedagsfest', + drunk_adventurers: 'Fulla äventyrare', + }, + specialities: { + speciality: 'Specialitet', + cheap_diluted_beer: 'Billig utspädd öl', + meat_stew: 'Köttstuvning', + grilled_rodent: 'Grillad gnagare', + stewed_turnips: 'Stuvade rovor', + salt_bird: 'Salt fågel', + blood_soup: 'Blodsoppa', + fiery_spice_wine: 'Eldigt kryddvin', + roasted_piglet: 'Helstekt spädgrid', + swamp_stew: 'Svampstuvning', + vegetable_mush: 'Grönsaksgröt', + salted_fish: 'Saltad fisk', + cooked_crow: 'Kokad kråka', + bear_stew: 'Björngryta', + dwarven_strong_ale: 'Dvärgiskt starköl', + }, + guests: { + guest: 'Gäst', + escaped_criminal: 'Förrymd brottsling', + unhappy_farmer: 'Olycklig bonde', + scarred_treasure_hunter: 'Ärrad skattletare', + dirty_and_sullen_hunter: 'Smutsig och butter jägare', + silent_raven_sister: 'Tystlåten korpsyster', + noisy_bandit: 'Bullrig rövare', + old_war_veteran: 'Gammal krigsveteran', + noble_in_disguise: 'Förklädd ädling', + secretive_spellbinder: 'Hemlighetsfull magiker', + annoying_jester: 'Irriterande gycklare', + dusty_traveller: 'Dammig resenär', + hungry_dwarf: 'Hungrig dvärg', + frosty_elf: 'Kylig alv', + scouting_thief: 'Spejande tjuv', }, }, },