2025-11-20 16:17:56 +00:00
|
|
|
package ui
|
|
|
|
|
|
|
|
|
|
import "html/template"
|
|
|
|
|
|
|
|
|
|
// UI represents user interface translations and configuration
|
|
|
|
|
type UI struct {
|
2025-11-30 10:13:37 +00:00
|
|
|
Navigation Navigation `json:"navigation"`
|
|
|
|
|
ViewControls ViewControls `json:"viewControls"`
|
|
|
|
|
Sections Sections `json:"sections"`
|
|
|
|
|
Footer Footer `json:"footer"`
|
|
|
|
|
Portfolio Portfolio `json:"portfolio"`
|
|
|
|
|
PdfModal PdfModal `json:"pdfModal"`
|
2025-11-20 16:17:56 +00:00
|
|
|
ShortcutsModal ShortcutsModal `json:"shortcutsModal"`
|
2025-11-30 10:13:37 +00:00
|
|
|
InfoModal InfoModal `json:"infoModal"`
|
|
|
|
|
Widgets Widgets `json:"widgets"`
|
2025-11-20 16:17:56 +00:00
|
|
|
}
|
|
|
|
|
|
2025-11-30 10:13:37 +00:00
|
|
|
// 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"`
|
2025-11-20 16:17:56 +00:00
|
|
|
}
|
|
|
|
|
|
2025-11-30 10:13:37 +00:00
|
|
|
// 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"`
|
2025-11-20 16:17:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ShortcutsModal struct {
|
|
|
|
|
Title string `json:"title"`
|
2025-11-30 10:13:37 +00:00
|
|
|
Subtitle string `json:"subtitle"`
|
2025-11-20 16:17:56 +00:00
|
|
|
Description string `json:"description"`
|
2025-11-30 10:13:37 +00:00
|
|
|
Close string `json:"close"`
|
2025-11-20 16:17:56 +00:00
|
|
|
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"`
|
|
|
|
|
}
|
2025-11-30 10:13:37 +00:00
|
|
|
|
|
|
|
|
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"`
|
|
|
|
|
}
|