package ui
import "html/template"
// UI represents user interface translations and configuration
type UI struct {
Navigation Navigation `json:"navigation"`
ViewControls ViewControls `json:"viewControls"`
Sections Sections `json:"sections"`
Footer Footer `json:"footer"`
Portfolio Portfolio `json:"portfolio"`
PdfModal PdfModal `json:"pdfModal"`
ShortcutsModal ShortcutsModal `json:"shortcutsModal"`
InfoModal InfoModal `json:"infoModal"`
Widgets Widgets `json:"widgets"`
}
// Navigation labels for hamburger menu
type Navigation struct {
CvSections string `json:"cvSections"`
Training string `json:"training"`
Skills string `json:"skills"`
Experience string `json:"experience"`
Awards string `json:"awards"`
Projects string `json:"projects"`
Courses string `json:"courses"`
Languages string `json:"languages"`
References string `json:"references"`
Other string `json:"other"`
QuickActions string `json:"quickActions"`
CollapseAll string `json:"collapseAll"`
ExpandAll string `json:"expandAll"`
Zoom string `json:"zoom"`
ViewControls string `json:"viewControls"`
Actions string `json:"actions"`
}
// ViewControls labels for toggle buttons
type ViewControls struct {
Length string `json:"length"`
Icons string `json:"icons"`
View string `json:"view"`
}
// Sections labels for CV section headers
type Sections struct {
TechnicalSkills string `json:"technicalSkills"`
MoreSkills string `json:"moreSkills"`
YearsOfExperience string `json:"yearsOfExperience"`
DrivingLicense string `json:"drivingLicense"`
ObtainedFrom string `json:"obtainedFrom"`
CurrentBadge string `json:"currentBadge"`
ExpiredBadge string `json:"expiredBadge"`
Present string `json:"present"`
Technologies string `json:"technologies"`
MaintainedBy string `json:"maintainedBy"`
}
// Footer labels
type Footer struct {
ViewOnGithub string `json:"viewOnGithub"`
LastUpdated string `json:"lastUpdated"`
}
// Portfolio labels
type Portfolio struct {
SeeAllProjects string `json:"seeAllProjects"`
DomestikaPortfolio string `json:"domestikaPortfolio"`
}
// PdfModal labels
type PdfModal struct {
Title string `json:"title"`
Subtitle string `json:"subtitle"`
PreparingPdf string `json:"preparingPdf"`
PleaseWait string `json:"pleaseWait"`
Close string `json:"close"`
DownloadButton string `json:"downloadButton"`
ShortCv PdfCvOption `json:"shortCv"`
DefaultCv PdfCvOption `json:"defaultCv"`
ExtendedCv PdfCvOption `json:"extendedCv"`
}
type PdfCvOption struct {
Title string `json:"title"`
Pages string `json:"pages"`
Description string `json:"description"`
AriaLabel string `json:"ariaLabel"`
}
type ShortcutsModal struct {
Title string `json:"title"`
Subtitle string `json:"subtitle"`
Description string `json:"description"`
Close string `json:"close"`
Sections ShortcutsSections `json:"sections"`
}
type ShortcutsSections struct {
Zoom ShortcutGroup `json:"zoom"`
ViewControls ShortcutGroup `json:"viewControls"`
Navigation ShortcutGroup `json:"navigation"`
Actions ShortcutGroup `json:"actions"`
Browser ShortcutGroup `json:"browser"`
}
type ShortcutGroup struct {
Title string `json:"title"`
ZoomIn *ShortcutItem `json:"zoomIn,omitempty"`
ZoomOut *ShortcutItem `json:"zoomOut,omitempty"`
ZoomReset *ShortcutItem `json:"zoomReset,omitempty"`
ToggleLength *ShortcutItem `json:"toggleLength,omitempty"`
ToggleIcons *ShortcutItem `json:"toggleIcons,omitempty"`
ToggleTheme *ShortcutItem `json:"toggleTheme,omitempty"`
ExpandAll *ShortcutItem `json:"expandAll,omitempty"`
CollapseAll *ShortcutItem `json:"collapseAll,omitempty"`
ScrollToTop *ShortcutItem `json:"scrollToTop,omitempty"`
Print *ShortcutItem `json:"print,omitempty"`
CloseModal *ShortcutItem `json:"closeModal,omitempty"`
ShowHelp *ShortcutItem `json:"showHelp,omitempty"`
Tab *ShortcutItem `json:"tab,omitempty"`
Enter *ShortcutItem `json:"enter,omitempty"`
}
type ShortcutItem struct {
Key string `json:"key"`
Description string `json:"description"`
}
type InfoModal struct {
Title string `json:"title"`
Description template.HTML `json:"description"`
TechStack TechStack `json:"techStack"`
ViewSource string `json:"viewSource"`
ViewSourceSubtext string `json:"viewSourceSubtext"`
}
type TechStack struct {
GoHono string `json:"goHono"`
HTMX string `json:"htmx"`
HTML5 string `json:"html5"`
CSS3 string `json:"css3"`
}
// Widget label types
type Widgets struct {
BackToTop WidgetLabel `json:"backToTop"`
Info WidgetLabel `json:"info"`
Download WidgetLabel `json:"download"`
Print WidgetLabel `json:"print"`
Shortcuts WidgetLabel `json:"shortcuts"`
ZoomToggle WidgetLabel `json:"zoomToggle"`
ZoomControl ZoomControlLabel `json:"zoomControl"`
PdfToast PdfToastLabel `json:"pdfToast"`
ActionButtons ActionButtonsLabel `json:"actionButtons"`
}
type WidgetLabel struct {
AriaLabel string `json:"ariaLabel"`
Tooltip string `json:"tooltip"`
}
type ZoomControlLabel struct {
GroupLabel string `json:"groupLabel"`
CloseLabel string `json:"closeLabel"`
CloseTitle string `json:"closeTitle"`
SliderLabel string `json:"sliderLabel"`
ResetLabel string `json:"resetLabel"`
ResetTitle string `json:"resetTitle"`
}
type PdfToastLabel struct {
Title string `json:"title"`
CloseLabel string `json:"closeLabel"`
}
type ActionButtonsLabel struct {
DownloadPdf string `json:"downloadPdf"`
PrintFriendly string `json:"printFriendly"`
}