Implémentation complète du multilingue FR/EN
- Installation vue-i18n v11 et création des fichiers de traduction (fr.json, en.json) - Création store locale avec détection hiérarchique (URL > localStorage > navigator) - Modification des routes avec préfixe /:locale? optionnel - Toggle FR/EN dans Menu.vue avec synchronisation immédiate - Traduction de ~200 textes dans 27 composants Vue - Suppression des labels hardcodés en français côté backend - Ajout route Kirby catch-all en/(:all?) pour /en/ URLs - Helper addLocalePrefix() pour préserver locale dans liens dialogs - Traduction pseudo-élément CSS via data attribute Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
3af95b1d20
commit
82eb8d88cc
49 changed files with 1079 additions and 295 deletions
198
src/locales/en.json
Normal file
198
src/locales/en.json
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
{
|
||||
"menu": {
|
||||
"home": "Home",
|
||||
"notifications": "Notifications",
|
||||
"meetings": "Meetings",
|
||||
"designToLight": "Design to Light",
|
||||
"inspirations": "Inspirations",
|
||||
"profile": "Profile",
|
||||
"logout": "Logout",
|
||||
"currentProjects": "Current projects",
|
||||
"archivedProjects": "Archived projects",
|
||||
"news": "New",
|
||||
"show": "Show menu",
|
||||
"hide": "Hide menu",
|
||||
"newModifications": "New modifications"
|
||||
},
|
||||
"steps": {
|
||||
"clientBrief": "Client brief",
|
||||
"proposal": "Commercial proposal",
|
||||
"extendedBrief": "Extended brief",
|
||||
"industrialIdeation": "Industrial ideation",
|
||||
"virtualSample": "Virtual sample",
|
||||
"physicalSample": "Physical sample"
|
||||
},
|
||||
"dtl": {
|
||||
"dynamicTrack": "Virtual sample - dynamic track",
|
||||
"staticTrack": "Virtual sample - static track",
|
||||
"title": "Design to Light",
|
||||
"grade": "Design to Light: {grade}",
|
||||
"globalScore": "Global score",
|
||||
"positioning": "Positioning",
|
||||
"design": "Design",
|
||||
"weight": "Weight",
|
||||
"indicators": "Component indicators",
|
||||
"requestOptimization": "Request optimization expertise",
|
||||
"requestPending": "Expertise request being processed…",
|
||||
"initialProposal": "Initial proposal",
|
||||
"alternative": "Alternative {index}",
|
||||
"proposalBasedOn": "Data based on the proposal"
|
||||
},
|
||||
"buttons": {
|
||||
"edit": "Edit",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"delete": "Delete",
|
||||
"submit": "Submit",
|
||||
"retry": "Retry",
|
||||
"add": "Add",
|
||||
"close": "Close",
|
||||
"validate": "Validate and send the brief",
|
||||
"validateMinimum": "Add at least one image",
|
||||
"showPassword": "Show password",
|
||||
"hidePassword": "Hide password",
|
||||
"showProject": "Show project",
|
||||
"hideProject": "Hide project",
|
||||
"showComments": "Show comments",
|
||||
"hideComments": "Hide comments",
|
||||
"backToProject": "Back to project",
|
||||
"backToList": "Back to list",
|
||||
"addComment": "Add a comment",
|
||||
"reply": "Reply…",
|
||||
"seeAll": "See all",
|
||||
"deleteImage": "Delete this image",
|
||||
"downloadImage": "Download image",
|
||||
"downloadImages": "Download images",
|
||||
"downloadPdf": "Download PDF",
|
||||
"update": "Update",
|
||||
"requestMeeting": "Request a meeting",
|
||||
"markAllAsRead": "Mark all as read",
|
||||
"loopAnimation": "Loop animation",
|
||||
"stopAnimation": "Stop animation",
|
||||
"compareTracks": "Compare tracks",
|
||||
"exitCompare": "Exit compare mode"
|
||||
},
|
||||
"forms": {
|
||||
"email": "Email",
|
||||
"emailPlaceholder": "email@example.com",
|
||||
"password": "Password",
|
||||
"passwordPlaceholder": "Minimum 8 characters",
|
||||
"newPassword": "New password",
|
||||
"confirmPassword": "Confirm new password…",
|
||||
"projectName": "Project name",
|
||||
"projectDetails": "Project details",
|
||||
"projectDetailsPlaceholder": "Project details…",
|
||||
"meetingSubject": "Meeting subject",
|
||||
"meetingDetails": "Project details",
|
||||
"meetingDetailsPlaceholder": "Describe your request…",
|
||||
"description": "Project description",
|
||||
"descriptionPlaceholder": "Add a general description of your project…",
|
||||
"imageDescription": "Image description",
|
||||
"imageDescriptionPlaceholder": "Add a description to the image…",
|
||||
"commentPlaceholder": "Add a comment…",
|
||||
"filterByTags": "Filter by tags",
|
||||
"tags": "Tags",
|
||||
"selectVariation": "Select a variation",
|
||||
"uploadedFiles": "Uploaded files",
|
||||
"addImages": "Add one or more images"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Login",
|
||||
"passwordShown": "Password shown",
|
||||
"passwordHidden": "Password hidden",
|
||||
"fillFields": "Please fill in the fields.",
|
||||
"inProgress": "In progress…",
|
||||
"updateSuccess": "Update successful",
|
||||
"updateInProgress": "in progress…"
|
||||
},
|
||||
"account": {
|
||||
"comments": "Comments",
|
||||
"noClient": "No associated client",
|
||||
"managedProjects": "Managed projects",
|
||||
"myProjects": "My projects",
|
||||
"currentStep": "Current step:",
|
||||
"projectCount": "Number of projects",
|
||||
"clientLogo": "{clientName} logo"
|
||||
},
|
||||
"brief": {
|
||||
"addPlatform": "Add a brief via the platform",
|
||||
"addPdf": "Add a PDF brief",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"comments": {
|
||||
"title": "Comments",
|
||||
"your": "Your comment",
|
||||
"new": "New comment",
|
||||
"newInstruction": "In the content area, click where you want to position the comment",
|
||||
"reply": "reply",
|
||||
"replies": "replies",
|
||||
"edit": "Edit",
|
||||
"inProgress": "In progress",
|
||||
"emptyMessage": "Share your ideas by adding comments"
|
||||
},
|
||||
"dates": {
|
||||
"today": "Today",
|
||||
"yesterday": "yesterday",
|
||||
"updatedOn": "Last updated on"
|
||||
},
|
||||
"projects": {
|
||||
"none": "No projects at the moment",
|
||||
"current": "Current projects",
|
||||
"archived": "Archived projects"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notifications",
|
||||
"none": "You have no new notifications",
|
||||
"noneUnread": "You have no unread notifications",
|
||||
"all": "All",
|
||||
"unread": "Unread",
|
||||
"projectRequest": "Project creation request",
|
||||
"meetingRequest": "Meeting request",
|
||||
"content": "Content",
|
||||
"draft": "(draft)",
|
||||
"from": "From",
|
||||
"author": "Author:",
|
||||
"goToContent": "Go to content"
|
||||
},
|
||||
"meetings": {
|
||||
"none": "You have no scheduled meetings",
|
||||
"upcoming": "Upcoming",
|
||||
"past": "Past"
|
||||
},
|
||||
"inspirations": {
|
||||
"title": "Inspirations",
|
||||
"favorites": "My Favorites",
|
||||
"addToFavorites": "Add to favorites",
|
||||
"removeFromFavorites": "Remove from favorites",
|
||||
"new": "New"
|
||||
},
|
||||
"dialogs": {
|
||||
"requestProject": "Request project creation",
|
||||
"requestMeeting": "Request a meeting",
|
||||
"imageDetails": "Image details",
|
||||
"addImages": "Add images",
|
||||
"deleteConfirm": "Are you sure you want to delete this image?",
|
||||
"deleteWarning": "If you delete this image, it will disappear from your brief along with all the information attributed to it.",
|
||||
"pdfTitle": "PDF title",
|
||||
"renderTitle": "Render title",
|
||||
"createWithDTL": "Create with Design to Light",
|
||||
"learnMore": "Learn more",
|
||||
"dtlDescription": "Discover the environmental score of your project..."
|
||||
},
|
||||
"virtualSample": {
|
||||
"title": "Virtual sample",
|
||||
"dynamicPresentation": "Dynamic presentation",
|
||||
"staticView": "Static view",
|
||||
"noContent": "Content not available for this track",
|
||||
"selectToCompare": "Select the track you want to compare"
|
||||
},
|
||||
"errors": {
|
||||
"saveFailed": "Save failed",
|
||||
"deleteFailed": "Delete failed",
|
||||
"toggleProjectFailed": "Failed to show/hide project",
|
||||
"toggleFavoriteFailed": "Failed to toggle favorite",
|
||||
"readNotificationFailed": "Failed to read notification:",
|
||||
"readAllNotificationsFailed": "Could not read all notifications",
|
||||
"markNotificationFailed": "Could not mark notification as read"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue