Statistiques — refonte complète, aucun changement backend statistics_screen.dart réécrit (+1832) : barres horizontales monochromes à la place des barres verticales tronquées et des deux anneaux, barre de filtres unique avec les volumes par canal, règle mono-canal, 4 KPI portant chacun leur variation, bandeau « à retenir », courbe en aire avec bandes de week-end. La période précédente s'obtient en rappelant le même endpoint. statistics_report.dart : export PDF généré côté client (paquet pdf Dart), il partage les valeurs calculées de l'écran — un chiffre ne peut pas diverger entre l'écran et le document envoyé à la commune. Deux puces du sommaire promettaient des données inexistantes (parcours terminés, questions au guide IA), retirées. ⚠️ Jamais ouvert dans un navigateur. Cases de test : test-plan.md §8bis / §8ter. Guide IA Screens/GuideIa/guide_ia_screen.dart — onglet Configuration. Menu conditionné à isAssistant, le même drapeau que la garde d'AiController. L'onglet « Ce que demandent vos visiteurs » n'est pas dans ce commit : le schéma backend est prêt, l'UI non. Onboarding self-service Screens/Auth/ (mot de passe oublié, définition du mot de passe), Screens/Billing/subscription_screen.dart, ai_quota_hint.dart. ⚠️ Aucun parcours joué de bout en bout — test-plan.md §18. Parcours guidés progression_mode.dart : 9 booléens sur 3 niveaux remplacés par 3 questions. Popups GuidedPath / GuidedStep / QuizQuestion mises à jour en conséquence. Client API (manager_api_new) — édité À LA MAIN, ne pas relancer la génération onboarding_api.dart, authentication_api.dart (+80), instance_dto (champs Guide*), guided_step / quiz_question_guided_step (flags morts retirés). Le // @dart=2.18 manquant dans onboarding_api.dart cassait les 3 apps Flutter d'un coup — corrigé ici. i18n : ~180 clés par langue (FR/EN/NL) + fichiers générés. Tests : progression_mode_test, statistics_report_test (le second a attrapé deux plantages qui seraient sortis au premier clic). flutter build web ✅. flutter analyze : 68 erreurs, toutes dans les fichiers modèle orphelins de manager_api_new — dette connue, pas une régression, ces fichiers ne sont pas dans le graphe de compilation.
653 lines
26 KiB
Plaintext
653 lines
26 KiB
Plaintext
{
|
|
"@@locale": "en",
|
|
|
|
"cancel": "Cancel",
|
|
"save": "Save",
|
|
"create": "Create",
|
|
"delete": "Delete",
|
|
"close": "Close",
|
|
"edit": "Edit",
|
|
"actions": "Actions",
|
|
"status": "Status",
|
|
"no": "No",
|
|
"name": "Name",
|
|
"type": "Type",
|
|
"date": "Date",
|
|
|
|
"loginSuccess": "Login successful",
|
|
"loginError": "An error occurred during login",
|
|
"rememberMe": "Remember me",
|
|
"connect": "LOG IN",
|
|
"forgotPasswordLink": "Forgot your password?",
|
|
"forgotPasswordTitle": "Forgot password",
|
|
"forgotPasswordDesc": "Enter your email and we'll send you a link to set a new password.",
|
|
"forgotPasswordSubmit": "SEND LINK",
|
|
"forgotPasswordSuccess": "If this email exists, a reset link has just been sent.",
|
|
"backToLogin": "Back to login",
|
|
"setPasswordTitle": "Set your password",
|
|
"setPasswordDesc": "Choose a password to access your workspace.",
|
|
"setPasswordNewLabel": "New password",
|
|
"setPasswordSubmit": "SET PASSWORD",
|
|
"setPasswordSuccess": "Password set — you can now log in.",
|
|
"setPasswordError": "This link is invalid or has expired",
|
|
"setPasswordTooShort": "Password must be at least 8 characters",
|
|
"setPasswordMissingToken": "Invalid link — no token provided",
|
|
"inviteUserHint": "An invitation email will be sent to set the password.",
|
|
|
|
"menuSubscription": "Subscription",
|
|
"subscriptionTitle": "Subscription",
|
|
"subscriptionTrialActive": "Free trial in progress",
|
|
"subscriptionTrialEndsAt": "Your trial ends on {date}",
|
|
"@subscriptionTrialEndsAt": { "placeholders": { "date": {} } },
|
|
"subscriptionTrialNoDate": "Your free trial is active.",
|
|
"subscriptionPlanActive": "Essentiel plan active",
|
|
"subscriptionPlanActiveDesc": "Your subscription is active and renews automatically.",
|
|
"subscriptionIncludedTitle": "What's included",
|
|
"subscriptionUpgradeBtn": "Upgrade to a paid subscription",
|
|
"subscriptionCheckoutError": "Could not start checkout, please try again later.",
|
|
"subscriptionAddonsTitle": "Add-ons",
|
|
"subscriptionAddonsComingSoon": "Coming soon: extra AI requests and other options.",
|
|
|
|
"menuApplications": "Applications",
|
|
"menuConfigurations": "Configurations",
|
|
"menuResources": "Resources",
|
|
"menuStatistics": "Statistics",
|
|
"menuGuideIa": "AI Guide",
|
|
"guideIaSubtitle": "Your guide answers visitor questions using your own content. It never answers from anything else.",
|
|
"guideIaUsageTitle": "This month's usage",
|
|
"guideIaUsageQuestions": "{count} questions asked",
|
|
"guideIaUsageNoQuota": "No cap set on your plan.",
|
|
"guideIaChannelsTitle": "Where the guide is available",
|
|
"guideIaChannelsSub": "Enabled per channel, from each application's settings.",
|
|
"guideIaChannelOn": "Enabled",
|
|
"guideIaChannelOff": "Disabled",
|
|
"guideIaIdentityTitle": "Guide identity",
|
|
"guideIaIdentitySub": "This is what gives the answers their tone",
|
|
"guideIaNameLabel": "Guide name",
|
|
"guideIaNameHint": "The name visitors see and hear. E.g. Leon",
|
|
"guideIaPersonaLabel": "Personality",
|
|
"guideIaPersonaHint": "Describe it the way you would introduce a guide to a new colleague. To get started, pick an example:",
|
|
"guideIaExampleWarden": "Passionate warden",
|
|
"guideIaExampleWardenText": "Your name is Leon, you are the site's former warden. You speak plainly and warmly, and you happily slip in an anecdote. Address visitors politely.",
|
|
"guideIaExampleSober": "Measured mediator",
|
|
"guideIaExampleSoberText": "You are a calm, precise cultural mediator. You answer in two or three sentences, without familiarity, citing established facts. If something is uncertain, you say so.",
|
|
"guideIaExampleKids": "For children",
|
|
"guideIaExampleKidsText": "You are an enthusiastic explorer speaking to children aged 7 to 12. Use informal language, ask questions, use simple comparisons and short words. Tell stories.",
|
|
"guideIaFallbackLabel": "When the guide doesn't know",
|
|
"guideIaFallbackHint": "The guide picks one at random. With a single sentence it repeats it word for word, and that shows immediately.",
|
|
"guideIaFallbackAdd": "Add a wording",
|
|
"guideIaFallbackTranslated": "Visitors see these sentences: they will be translated into their language, like the rest of your content.",
|
|
"guideIaVoiceTitle": "Your guide out loud",
|
|
"guideIaVoiceSub": "Visitors ask out loud and hear the answer — in the app, or in their connected glasses.",
|
|
"guideIaVoiceFemale": "Female voice, warm",
|
|
"guideIaVoiceMale": "Male voice, steady",
|
|
"guideIaVoiceWakeword": "Wake word: \"{word}\"",
|
|
"guideIaVoiceInfoName": "Visitors say \"{word}\" to wake the guide, even if it goes by another name. A voice and wake word of your own are available as an option.",
|
|
"guideIaVoiceInfoGlasses": "Connected glasses work with the mobile app installed on the visitor's phone.",
|
|
"guideIaVoiceInfoMultilang": "The same voice speaks all your languages: your guide keeps one identity across them.",
|
|
"guideIaSave": "Save",
|
|
"guideIaSaved": "Guide saved",
|
|
"guideIaSaveError": "Saving failed. Please try again.",
|
|
"menuNotifications": "Notifications",
|
|
"menuUsers": "Users",
|
|
"menuApiKeys": "API Keys",
|
|
|
|
"noPlansAvailable": "No plans available. Create a plan first.",
|
|
"noPlan": "No plan (unlimited)",
|
|
"unlimitedStorage": "Unlimited storage",
|
|
"unlimitedAI": "Unlimited AI",
|
|
"aiTokensPerMonth": "{amount} AI tokens/month",
|
|
"@aiTokensPerMonth": {
|
|
"placeholders": {
|
|
"amount": { "type": "String" }
|
|
}
|
|
},
|
|
"storageLabel": "Storage",
|
|
"aiThisMonthLabel": "AI this month",
|
|
"unlimited": "Unlimited",
|
|
"requestsAbbr": "req",
|
|
"tokensAbbr": "tokens",
|
|
"planUpdated": "Plan updated",
|
|
"errorMessage": "Error: {error}",
|
|
"@errorMessage": {
|
|
"placeholders": {
|
|
"error": { "type": "String" }
|
|
}
|
|
},
|
|
"switchInstance": "Switch instance",
|
|
"noInstanceFound": "No instance found",
|
|
"configurePlan": "Configure plan",
|
|
"tooltipSwitchInstance": "Switch instance",
|
|
"tooltipLogout": "Log out",
|
|
|
|
"usersTitle": "Users",
|
|
"createUserBtn": "Create user",
|
|
"createUserTitle": "Create user",
|
|
"editUserTitle": "Edit user",
|
|
"deleteUserTitle": "Delete user",
|
|
"deleteUserConfirm": "Delete {email}?",
|
|
"@deleteUserConfirm": {
|
|
"placeholders": {
|
|
"email": { "type": "String" }
|
|
}
|
|
},
|
|
"noUsers": "No users",
|
|
"email": "Email",
|
|
"firstName": "First name",
|
|
"lastName": "Last name",
|
|
"password": "Password",
|
|
"role": "Role",
|
|
"tooltipEdit": "Edit",
|
|
"tooltipDelete": "Delete",
|
|
|
|
"notificationsTitle": "Notifications",
|
|
"newMessage": "New message",
|
|
"messageTitle": "Title",
|
|
"messageBody": "Message",
|
|
"schedule": "Schedule",
|
|
"time": "Time",
|
|
"send": "Send",
|
|
"cancelNotification": "Cancel notification",
|
|
"cancelNotificationConfirm": "Cancel « {title} »?",
|
|
"@cancelNotificationConfirm": {
|
|
"placeholders": {
|
|
"title": { "type": "String" }
|
|
}
|
|
},
|
|
"allNotifications": "All",
|
|
"sentNotifications": "Sent",
|
|
"scheduledNotifications": "Scheduled",
|
|
"failedNotifications": "Failed",
|
|
"noNotifications": "No notifications sent",
|
|
"noNotificationsForFilter": "No notifications for this filter",
|
|
"topic": "Topic",
|
|
"tooltipCancelNotification": "Cancel",
|
|
"resultsCount": "{count, plural, one{{count} result} other{{count} results}}",
|
|
"@resultsCount": {
|
|
"placeholders": {
|
|
"count": { "type": "int" }
|
|
}
|
|
},
|
|
|
|
"apiKeysTitle": "API Keys",
|
|
"createApiKey": "Create API key",
|
|
"createKeyBtn": "Create key",
|
|
"appType": "Application type",
|
|
"noExpiration": "No expiration",
|
|
"expiresOn": "Expires on {date}",
|
|
"@expiresOn": {
|
|
"placeholders": {
|
|
"date": { "type": "String" }
|
|
}
|
|
},
|
|
"choose": "Choose",
|
|
"removeExpiration": "Remove expiration",
|
|
"apiKeyCreatedTitle": "API key created",
|
|
"copyKeyWarning": "Copy this key now — it won't be shown again.",
|
|
"copy": "Copy",
|
|
"copiedKey": "I've copied the key",
|
|
"revokeApiKeyTitle": "Revoke API key",
|
|
"revokeApiKeyConfirm": "Revoke « {name} »? Apps using this key will lose access.",
|
|
"@revokeApiKeyConfirm": {
|
|
"placeholders": {
|
|
"name": { "type": "String" }
|
|
}
|
|
},
|
|
"revoke": "Revoke",
|
|
"noApiKeys": "No API keys",
|
|
"createdOn": "Created on",
|
|
"expiration": "Expiration",
|
|
"activeKey": "Active",
|
|
"revokedKey": "Revoked",
|
|
"tooltipRevoke": "Revoke",
|
|
|
|
"statisticsTitle": "Statistics",
|
|
"statsLoadError": "Unable to load statistics",
|
|
"statsNoData": "No data yet for this period",
|
|
"statsNoDataForType": "No events received for type \"{type}\"",
|
|
"@statsNoDataForType": {
|
|
"placeholders": {
|
|
"type": { "type": "String" }
|
|
}
|
|
},
|
|
"statsSessions": "Sessions",
|
|
"statsAvgDuration": "Avg. duration",
|
|
"statsTopApp": "Top app",
|
|
"statsTopLang": "Top language",
|
|
"statsVisitsByDay": "Visits per day",
|
|
"statsAll": "All",
|
|
"statsTopSections": "Top sections",
|
|
"statsApps": "Apps",
|
|
"statsLanguages": "Languages",
|
|
"statsTopPOI": "Top POI",
|
|
"statsPOI": "POI",
|
|
"statsTaps": "Taps",
|
|
"statsTopAgenda": "Top agenda events",
|
|
"statsEvent": "Event",
|
|
"statsQuiz": "Quiz",
|
|
"statsSection": "Section",
|
|
"statsAvgScore": "Avg. score",
|
|
"statsCompletions": "Completions",
|
|
"statsGames": "Games",
|
|
"statsGameType": "Type",
|
|
"statsArticles": "Articles read",
|
|
"statsReadings": "Reads",
|
|
"statsMenuTitle": "Menu",
|
|
"statsMenuItem": "Item",
|
|
"statsQrScans": "QR Scans",
|
|
"statsTotal": "Total",
|
|
"statsValid": "Valid",
|
|
"statsInvalid": "Invalid",
|
|
"statsViews": "Views",
|
|
|
|
"statsAttendanceTitle": "Attendance",
|
|
"statsPeriodRange": "From {from} to {to}",
|
|
"@statsPeriodRange": {
|
|
"placeholders": {
|
|
"from": { "type": "String" },
|
|
"to": { "type": "String" }
|
|
}
|
|
},
|
|
"statsFilterPeriod": "Period",
|
|
"statsFilterChannel": "Channel",
|
|
"statsPeriodDays": "{days} days",
|
|
"@statsPeriodDays": {
|
|
"placeholders": {
|
|
"days": { "type": "int" }
|
|
}
|
|
},
|
|
"statsPeriodYear": "Year",
|
|
"statsChannelMobile": "Mobile app",
|
|
"statsChannelTablet": "Kiosk",
|
|
"statsChannelWeb": "Website",
|
|
"statsChannelVR": "VR headset",
|
|
"statsChannelVoice": "Voice guide",
|
|
"statsTakeawayUp": "Attendance is up {percent} % compared to the previous period.",
|
|
"@statsTakeawayUp": {
|
|
"placeholders": {
|
|
"percent": { "type": "String" }
|
|
}
|
|
},
|
|
"statsTakeawayDown": "Attendance is down {percent} % compared to the previous period.",
|
|
"@statsTakeawayDown": {
|
|
"placeholders": {
|
|
"percent": { "type": "String" }
|
|
}
|
|
},
|
|
"statsTakeawayStable": "Attendance is stable compared to the previous period.",
|
|
"statsTakeawayVolume": "{visits} visits over the period, or {perDay} a day on average.",
|
|
"@statsTakeawayVolume": {
|
|
"placeholders": {
|
|
"visits": { "type": "String" },
|
|
"perDay": { "type": "String" }
|
|
}
|
|
},
|
|
"statsTakeawayVoice": "The voice guide accounts for {percent} % of visits — a strong argument for your funding bodies.",
|
|
"@statsTakeawayVoice": {
|
|
"placeholders": {
|
|
"percent": { "type": "String" }
|
|
}
|
|
},
|
|
"statsTakeawayChannel": "The « {channel} » channel accounts for {percent} % of visits.",
|
|
"@statsTakeawayChannel": {
|
|
"placeholders": {
|
|
"channel": { "type": "String" },
|
|
"percent": { "type": "String" }
|
|
}
|
|
},
|
|
"statsTakeawayContent": "« {title} » alone accounts for {percent} % of all views: it is your front door, keep it up to date first.",
|
|
"@statsTakeawayContent": {
|
|
"placeholders": {
|
|
"title": { "type": "String" },
|
|
"percent": { "type": "String" }
|
|
}
|
|
},
|
|
"statsKpiVisits": "Visits",
|
|
"statsKpiAvgDuration": "Average duration",
|
|
"statsKpiContentsPerVisit": "Contents per visit",
|
|
"statsKpiVoiceShare": "Voice guide share",
|
|
"statsKpiTotalViews": "Contents viewed",
|
|
"statsVsPrevious": "vs previous period",
|
|
"statsTrendStable": "stable",
|
|
"statsDurationMinSec": "{minutes} min {seconds} s",
|
|
"@statsDurationMinSec": {
|
|
"placeholders": {
|
|
"minutes": { "type": "String" },
|
|
"seconds": { "type": "String" }
|
|
}
|
|
},
|
|
"statsDurationSec": "{seconds} s",
|
|
"@statsDurationSec": {
|
|
"placeholders": {
|
|
"seconds": { "type": "String" }
|
|
}
|
|
},
|
|
"statsVisitsByDaySub": "Light bands mark the weekends",
|
|
"statsWeekends": "Saturdays and Sundays",
|
|
"statsPeakDay": "Peak on {date} — {visits} visits",
|
|
"@statsPeakDay": {
|
|
"placeholders": {
|
|
"date": { "type": "String" },
|
|
"visits": { "type": "String" }
|
|
}
|
|
},
|
|
"statsTopContents": "Most viewed contents",
|
|
"statsTopContentsSub": "Number of views over the period",
|
|
"statsChannels": "Channels",
|
|
"statsChannelsSub": "Visits per channel",
|
|
"statsLanguagesSub": "Visits per language",
|
|
"statsReportTitle": "Your attendance report",
|
|
"statsReportBody": "A document in your own colours, ready to send to your municipality, your board or your funding bodies.",
|
|
"statsReportItemAttendance": "Attendance, visit durations and trend",
|
|
"statsReportItemContents": "Most viewed contents and their trend",
|
|
"statsReportItemChannels": "Breakdown per channel, including the voice guide, and per language",
|
|
"statsReportItemAdvanced": "Points of interest, quizzes, games and QR scans",
|
|
"statsReportGenerated": "Report generated on {date} with MyInfoMate",
|
|
"@statsReportGenerated": {
|
|
"placeholders": {
|
|
"date": { "type": "String" }
|
|
}
|
|
},
|
|
"statsReportError": "The report could not be generated",
|
|
"statsReportDownload": "Download the PDF",
|
|
"statsAdvancedTitle": "Advanced statistics",
|
|
"statsAdvancedBody": "Detailed statistics (POI, quizzes, games, articles, QR…) are available with the Premium plan.",
|
|
"statsUnavailableTitle": "Statistics not included",
|
|
"statsUnavailableBody": "Your current plan does not include attendance statistics.",
|
|
|
|
"noData": "No data",
|
|
"errorOccurred": "An error occurred",
|
|
"yes": "Yes",
|
|
|
|
"newConfiguration": "New configuration",
|
|
"configNameLabel": "Name:",
|
|
"orText": "or",
|
|
"importLabel": "Import",
|
|
"configNameRequired": "Please specify a name for the new visit",
|
|
"configCreatedSuccess": "Configuration created successfully",
|
|
"configExportSuccess": "Configuration exported successfully, file is at: {path}",
|
|
"@configExportSuccess": {
|
|
"placeholders": {
|
|
"path": { "type": "String" }
|
|
}
|
|
},
|
|
"configExportFailed": "Configuration export failed",
|
|
"configDeletedSuccess": "Configuration deleted successfully",
|
|
"configSavedSuccess": "Configuration saved successfully",
|
|
"configDeleteConfirm": "Are you sure you want to delete this configuration?",
|
|
|
|
"newSection": "New section",
|
|
"newSubSection": "New sub section",
|
|
"sectionNameLabel": "Name:",
|
|
"sectionTypeLabel": "Type:",
|
|
"sectionNameRequired": "Please specify a name for the new section",
|
|
"sectionCreatedSuccess": "Section created successfully!",
|
|
"sectionDeleteConfirm": "Are you sure you want to delete this section?",
|
|
"sectionSavedSuccess": "Section saved successfully",
|
|
"sectionTranslationSaved": "Section translations saved successfully",
|
|
"sectionLoadError": "An error occurred while loading the section",
|
|
"qrCodeCopied": "This QR code has been copied to the clipboard",
|
|
"beaconLabel": "Beacon:",
|
|
"beaconIdLabel": "Beacon ID:",
|
|
"beaconMustBeNumber": "This must be a number",
|
|
"identifierLabel": "Identifier:",
|
|
"displayTitleLabel": "Display title:",
|
|
"imageLabel": "Image:",
|
|
"backgroundImageLabel": "Background image:",
|
|
"questionInputLabel": "Question:",
|
|
"videoUrlLabel": "Video URL:",
|
|
"webUrlLabel": "Website URL:",
|
|
|
|
"subSectionUpdatedSuccess": "Sub section updated successfully",
|
|
"subSectionUpdateError": "An error occurred while updating the sub section",
|
|
"subSectionDeletedSuccess": "Sub section deleted successfully",
|
|
"subSectionDeleteError": "An error occurred while deleting the sub section",
|
|
"subSectionOrderUpdatedSuccess": "Sub section order updated successfully",
|
|
"subSectionOrderUpdateError": "An error occurred while updating the sub section order",
|
|
"subSectionCreatedSuccess": "Sub section created successfully",
|
|
"subSectionCreateError": "An error occurred while creating the sub section",
|
|
|
|
"questionsLabel": "Questions",
|
|
"questionLabel": "Question",
|
|
"editQuestion": "Edit question",
|
|
"questionDeleteConfirm": "Are you sure you want to delete this question?",
|
|
"questionsLoadError": "An error occurred while loading the questions",
|
|
"quizBadScore": "Bad score",
|
|
"quizMediumScore": "Medium score",
|
|
"quizGoodScore": "Good score",
|
|
"quizExcellentScore": "Excellent score",
|
|
"quizBadScoreMsg": "Message for a bad score",
|
|
"quizMediumScoreMsg": "Message for a medium score",
|
|
"quizGoodScoreMsg": "Message for a good score",
|
|
"quizExcellentScoreMsg": "Message for an excellent score",
|
|
"questionOrderUpdatedSuccess": "Question order updated successfully",
|
|
"questionOrderUpdateError": "An error occurred while updating the question order",
|
|
"questionCreatedSuccess": "Question created successfully",
|
|
"questionCreateError": "An error occurred while creating the question",
|
|
"questionUpdatedSuccess": "Question updated successfully",
|
|
"questionUpdateError": "An error occurred while updating the question",
|
|
"questionDeletedSuccess": "Question deleted successfully",
|
|
"questionDeleteError": "An error occurred while deleting the question",
|
|
"translationIncomplete": "Translation is incomplete",
|
|
|
|
"geopointCreatedSuccess": "Point created successfully",
|
|
"geopointCreateError": "An error occurred while creating the point",
|
|
"geopointUpdatedSuccess": "Point updated successfully",
|
|
"geopointUpdateError": "An error occurred while updating the point",
|
|
"geopointDeletedSuccess": "Point deleted successfully",
|
|
"geopointDeleteError": "An error occurred while deleting the point",
|
|
"categoryCreatedSuccess": "Category created successfully",
|
|
"categoryCreateError": "An error occurred while creating the category",
|
|
"categoryUpdatedSuccess": "Category updated successfully",
|
|
"categoryUpdateError": "An error occurred while updating the category",
|
|
|
|
"eventCreatedSuccess": "Event created successfully",
|
|
"eventCreateError": "An error occurred while creating the event",
|
|
"eventUpdatedSuccess": "Event updated successfully",
|
|
"eventUpdateError": "An error occurred while updating the event",
|
|
"eventDeletedSuccess": "Event deleted successfully",
|
|
"eventDeleteError": "An error occurred while deleting the event",
|
|
"annotationCreatedSuccess": "Annotation created successfully",
|
|
"annotationCreateError": "An error occurred while creating the annotation",
|
|
"annotationUpdatedSuccess": "Annotation updated successfully",
|
|
"annotationUpdateError": "An error occurred while updating the annotation",
|
|
"programmeBlockCreatedSuccess": "Block created successfully",
|
|
"programmeBlockCreateError": "An error occurred while creating the block",
|
|
"programmeBlockUpdatedSuccess": "Block updated successfully",
|
|
"programmeBlockUpdateError": "An error occurred while updating the block",
|
|
|
|
"pathCreatedSuccess": "Path created successfully",
|
|
"pathCreateError": "An error occurred while creating the path",
|
|
"pathUpdatedSuccess": "Path updated successfully",
|
|
"pathUpdateError": "An error occurred while updating the path",
|
|
"stepCreatedSuccess": "Step created successfully",
|
|
"stepCreateError": "An error occurred while creating the step",
|
|
"stepUpdatedSuccess": "Step updated successfully",
|
|
"stepUpdateError": "An error occurred while updating the step",
|
|
|
|
"agendaEventsLabel": "Events",
|
|
"agendaEventFallback": "Event",
|
|
"addEvent": "Add an event",
|
|
"noEvents": "No events",
|
|
"noAddress": "No address",
|
|
"agendaFilterAll": "All",
|
|
"agendaFilterThisMonth": "This month",
|
|
"agendaFilterThisYear": "This year",
|
|
"agendaFilterPast": "Past",
|
|
"agendaEventDeleteConfirm": "Are you sure you want to delete this event?",
|
|
"onlineLabel": "Online:",
|
|
"mapViewLabel": "Map view:",
|
|
"mapServiceLabel": "Map service:",
|
|
"jsonFilesLabel": "JSON files:",
|
|
"jsonLabel": "JSON",
|
|
|
|
"guidedPathsLabel": "Guided Paths",
|
|
"addPath": "Add a path",
|
|
"noPathConfigured": "No path configured",
|
|
"pathOrderUpdateError": "Error updating order",
|
|
"pathNoTitle": "Untitled path",
|
|
"pathDeletedSuccess": "Path deleted successfully",
|
|
"pathDeleteError": "Error deleting path",
|
|
"pathsLabel": "Paths",
|
|
|
|
"pointsOfInterestLabel": "Points of Interest",
|
|
"geopointsLabel": "Geographic points",
|
|
"searchLabel": "Search:",
|
|
"geopointsLoadError": "Error loading geographic points",
|
|
"geopointDeleteConfirm": "Are you sure you want to delete this geographic point?",
|
|
"serviceLabel": "Service:",
|
|
"centerPointLabel": "Center point:",
|
|
"iconLabel": "Icon:",
|
|
"listViewLabel": "List view:",
|
|
"typeLabel": "Type:",
|
|
"zoomLabel": "Zoom:",
|
|
"categoriesLabel": "Categories:",
|
|
|
|
"startDateLabel": "Start date",
|
|
"notDefined": "Not defined",
|
|
"endDateLabel": "End date",
|
|
"programmeLabel": "Programme",
|
|
"addBlock": "Add a block",
|
|
"blockFallback": "Block",
|
|
"noBlocks": "No programme blocks defined",
|
|
"programmeBlockDeletedSuccess": "Block deleted successfully",
|
|
"programmeBlockDeleteError": "Error deleting block",
|
|
"baseMapLabel": "Base map",
|
|
"mapLabel": "Map:",
|
|
"globalAnnotationsLabel": "Global annotations",
|
|
"addAnnotation": "Add an annotation",
|
|
"noAnnotations": "No global annotations",
|
|
"annotationFallback": "Annotation",
|
|
"annotationDeletedSuccess": "Annotation deleted",
|
|
"annotationDeleteError": "Error deleting",
|
|
|
|
"agendaEventCreatedSuccess": "Event created successfully",
|
|
"agendaEventCreateError": "An error occurred while creating the event",
|
|
"agendaEventUpdatedSuccess": "Event updated successfully",
|
|
"agendaEventUpdateError": "An error occurred while updating the event",
|
|
"agendaEventDeletedSuccess": "Event deleted successfully",
|
|
"agendaEventDeleteError": "An error occurred while deleting the event",
|
|
|
|
"newResource": "New resource",
|
|
"resourceCreatedSuccess": "Resource created successfully",
|
|
"resourceCreateError": "An error occurred while creating the resource",
|
|
"resourceUpdatedSuccess": "Resource updated successfully",
|
|
"resourceNoFileLoaded": "No file has been loaded",
|
|
"resourceNameRequired": "Please give the resource a name",
|
|
"resourceTooLarge": "Error: resource size must be under 1.5MB",
|
|
"resourceInvalidUrl": "The URL is invalid",
|
|
"resourceUrlRequired": "Please fill in the URL field",
|
|
|
|
"generalInfo": "General information",
|
|
"mainImageLabel": "Main image:",
|
|
"loaderLabel": "Loader:",
|
|
"primaryColorLabel": "Primary color:",
|
|
"secondaryColorLabel": "Secondary color:",
|
|
"layoutLabel": "Layout:",
|
|
"layoutGrid": "Grid",
|
|
"languagesLabel": "Languages:",
|
|
"featuredEventLabel": "Featured event:",
|
|
"chooseEvent": "Choose an event",
|
|
"previewWebTitle": "Preview — Web",
|
|
"previewMobileTitle": "Preview — Mobile",
|
|
"previewDesktop": "Desktop",
|
|
"previewMobile": "Mobile",
|
|
"noneOption": "None",
|
|
"aiAssistantLabel": "AI assistant:",
|
|
"appUpdatedSuccess": "Mobile application updated",
|
|
"configActivatedSuccess": "Configuration activated successfully",
|
|
"configDeactivatedSuccess": "Configuration deactivated successfully",
|
|
"configRemoveConfirm": "Are you sure you want to remove this configuration from the application?",
|
|
"configRemovedSuccess": "Configuration removed from application successfully",
|
|
"configRemoveError": "An error occurred while removing the configuration",
|
|
"phoneConfigTitle": "Configurations per device",
|
|
"addConfig": "Add a configuration",
|
|
"selectConfigToAdd": "Select a configuration to add",
|
|
"noItems": "No items to display",
|
|
"add": "Add",
|
|
|
|
"pinCode": "Pin code: {code}",
|
|
"@pinCode": {
|
|
"placeholders": {
|
|
"code": { "type": "String" }
|
|
}
|
|
},
|
|
"tablets": "Tablets",
|
|
|
|
"stepsCount": "{count} steps",
|
|
"@stepsCount": {
|
|
"placeholders": {
|
|
"count": { "type": "int" }
|
|
}
|
|
},
|
|
"displayedDescriptionLabel": "Displayed description:",
|
|
"displayedContentLabel": "Displayed content:",
|
|
"displayedNameLabel": "Display name:",
|
|
"startTimeLabel": "Start time",
|
|
"noAnnotationConfigured": "No annotations configured.",
|
|
"newStepTitle": "New step",
|
|
"editStepTitle": "Edit step",
|
|
"stepTitleLabel": "Step title",
|
|
"stepDescriptionLabel": "Step description",
|
|
"stepLocationLabel": "Step location:",
|
|
"initiallyHiddenLabel": "Initially hidden",
|
|
"lockedLabel": "Locked",
|
|
"durationSecondsLabel": "Duration (seconds):",
|
|
"triggerGeopointLabel": "Trigger GeoPoint (ID):",
|
|
"questionsChallengesLabel": "Questions / Challenges",
|
|
"noQuestionsConfigured": "No questions configured.",
|
|
"newAgendaEventTitle": "New event",
|
|
"editAgendaEventTitle": "Edit event",
|
|
"eventTitleLabel": "Event title",
|
|
"eventDescriptionLabel": "Event description",
|
|
"startDateColonLabel": "Start date:",
|
|
"videoResourceLabel": "Video:",
|
|
"directVideoLinkLabel": "Direct video link:",
|
|
"phoneLabel": "Phone:",
|
|
"locationGeometryLabel": "Location / Geometry",
|
|
"geometryLabel": "Geometry:",
|
|
"materialIconLabel": "Icon (material):",
|
|
"linearLabel": "Linear:",
|
|
"requiredSuccessLabel": "Required success:",
|
|
"pathStepsLabel": "Path steps",
|
|
"noStepConfigured": "No point/step configured.",
|
|
"stepFallback": "Step",
|
|
"questionAskedLabel": "Question asked:",
|
|
"questionTitleLabel": "Question title",
|
|
"expectedAnswerLabel": "Expected answer:",
|
|
"expectedAnswerModalLabel": "Expected answer",
|
|
"validationNote": "Validation is done by comparison (case-insensitive).",
|
|
"possibleAnswersLabel": "Possible answers:",
|
|
"noAnswerDefined": "No answer defined. Add at least one.",
|
|
"correctAnswer": "Correct answer ✓",
|
|
"wrongAnswer": "Wrong answer",
|
|
"answerNote": "✓ = correct answer. Multiple can be correct.",
|
|
"geopointZoneTitle": "Geographic point / Zone",
|
|
"geometryTypeLabel": "Geometry (Point/Line/Zone):",
|
|
"phoneModalLabel": "Phone",
|
|
"categoryLabel": "Category:",
|
|
"startMessageLabel": "Start message:",
|
|
"startMessageModalLabel": "Start message",
|
|
"createCategoryTitle": "Create category",
|
|
"editCategoryTitle": "Edit category",
|
|
"categoryIconLabel": "Category icon:",
|
|
"selectResource": "Select a resource",
|
|
"createPdfTitle": "Create PDF",
|
|
"answersLabel": "Answers",
|
|
"answerLabel": "Answer",
|
|
"createAnswerTitle": "Create answer",
|
|
"editAnswerTitle": "Edit answer",
|
|
"answerValidNote": "If checked, the answer is valid",
|
|
"selectConfiguration": "Select a configuration",
|
|
"noConfigFound": "No configuration found",
|
|
"backgroundColorLabel": "Background color:",
|
|
"updateTabletBtn": "Update tablet",
|
|
"kioskUpdatedSuccess": "Kiosk updated",
|
|
"webViewError": "The web page cannot be displayed, the URL is incorrect or empty",
|
|
"download": "Download",
|
|
"resourceDeleteConfirm": "Are you sure you want to delete this resource?",
|
|
"categoriesTitle": "Categories",
|
|
"endTimeLabel": "End time",
|
|
"annotationsLabel": "Annotations"
|
|
}
|