2330f374fc
- case-study components: CsHeader, TldrBox, MiniToc, SectionRenderer, DecisionList, ArchDiagram (data-driven), Gallery, NextPrev, CaseStudyPage - standalone pages: projects index, about, experience, contact (with form), cv hub, colophon — all EN/NO compositions - full route tree: EN root + /no localised slugs (prosjekter, om-meg, erfaring, kontakt, kolofon, hjemmelab) per ROUTING_SPEC - bilingual 404 with trace-fray motif; robots.txt + sitemap.xml from slug map - Portrait atom; reusable sections gain header/eyebrow toggles for standalone pages Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
116 lines
3.2 KiB
TypeScript
116 lines
3.2 KiB
TypeScript
import type { Dictionary } from './dictionary';
|
||
|
||
export const en: Dictionary = {
|
||
hero: {
|
||
viewProjects: 'View projects',
|
||
},
|
||
home: {
|
||
skillsLabel: 'Skills',
|
||
skillsHeading: 'What I work with',
|
||
skillsIntro: 'A practical profile: business value, maintainability and dependable delivery.',
|
||
projectsLabel: 'Projects',
|
||
projectsHeading: 'Built, shipped and running',
|
||
experienceLabel: 'Experience',
|
||
experienceHeading: 'Where I’ve worked',
|
||
aboutLabel: 'About',
|
||
earlierRoles: 'Earlier & alongside',
|
||
present: 'Present',
|
||
},
|
||
nav: {
|
||
home: 'Home',
|
||
projects: 'Projects',
|
||
experience: 'Experience',
|
||
about: 'About',
|
||
contact: 'Contact',
|
||
},
|
||
about: {
|
||
languages: 'Languages',
|
||
interests: 'Interests',
|
||
},
|
||
cvPage: {
|
||
heading: 'Download my CV',
|
||
intro:
|
||
'For a full overview of my experience, skills and work history, download my CV in either language.',
|
||
atsNote:
|
||
'These are plain, ATS-friendly PDFs — single column, real text, standard headings.',
|
||
updated: 'Updated',
|
||
},
|
||
lang: {
|
||
switchTo: 'Switch to Norwegian',
|
||
en: 'EN',
|
||
no: 'NO',
|
||
},
|
||
theme: {
|
||
toLight: 'Switch to light mode',
|
||
toDark: 'Switch to dark mode',
|
||
},
|
||
cv: {
|
||
download: 'Download CV',
|
||
english: 'English CV',
|
||
norsk: 'Norwegian CV',
|
||
fileMeta: 'pdf · {size} kB',
|
||
},
|
||
project: {
|
||
readCaseStudy: 'Read case study',
|
||
explore: 'Explore',
|
||
all: 'All projects',
|
||
caseStudyEyebrow: 'Case study · personal product',
|
||
capabilityEyebrow: 'Capability · infrastructure',
|
||
onThisPage: 'On this page',
|
||
repository: 'Repository',
|
||
liveDemo: 'Live demo',
|
||
prev: 'Previous',
|
||
next: 'Next',
|
||
status: {
|
||
active: 'Active',
|
||
'in-development': 'In development',
|
||
archived: 'Archived',
|
||
},
|
||
tldr: { what: 'What', why: 'Why', stack: 'Stack', role: 'Role' },
|
||
},
|
||
form: {
|
||
name: 'Name',
|
||
email: 'E-mail',
|
||
message: 'Message',
|
||
send: 'Send message',
|
||
sending: 'Sending',
|
||
successTitle: 'Message sent',
|
||
successBody: 'Thanks — I usually reply within a day.',
|
||
errorTitle: 'Something went wrong',
|
||
errorBody: 'The message could not be sent. Please e-mail me directly instead.',
|
||
required: 'This field is required',
|
||
invalidEmail: 'Please enter a valid e-mail address',
|
||
orEmail: 'Or reach me directly',
|
||
copy: 'Copy',
|
||
copied: 'Copied',
|
||
},
|
||
// The first-visit hint appears only on EN pages, inviting a Norwegian-preferring
|
||
// visitor to switch — so its text is written in Norwegian (ROUTING_SPEC §3).
|
||
hint: {
|
||
text: 'Denne siden finnes på norsk',
|
||
action: 'Bytt til norsk',
|
||
dismiss: 'Lukk',
|
||
},
|
||
notFound: {
|
||
code: 'route not found',
|
||
title: 'No such page',
|
||
body: 'The page you were looking for does not exist or has moved.',
|
||
home: 'Go to homepage',
|
||
projects: 'View projects',
|
||
},
|
||
a11y: {
|
||
skipToContent: 'Skip to content',
|
||
primaryNav: 'Primary',
|
||
openMenu: 'Open menu',
|
||
closeMenu: 'Close menu',
|
||
breadcrumb: 'Breadcrumb',
|
||
backToTop: 'Back to top',
|
||
},
|
||
footer: {
|
||
tagline: 'Systems developer based in Tønsberg, Norway.',
|
||
colophon: 'How this site works',
|
||
availability: 'Open to remote, hybrid or on-site roles.',
|
||
copyright: '© {year} Connor Babbington',
|
||
},
|
||
};
|