Portail de facturation : le bouton manquait, et l'écran n'affichait rien du tout hors essai — if (isTrialActive) enveloppait le seul bouton, donc un client payant arrivait sur un écran sans action. Désormais Checkout pendant l'essai, portail après ; les deux ne coexistent jamais. Le 409 a son propre message : les instances venues de Mongo n'ont pas de StripeCustomerId, « réessayez plus tard » les ferait attendre quelque chose qui n'arrivera jamais. Diviseur de questions : guide_ia_screen lit aiTokensPerQuestion du serveur au lieu du /1000 codé en dur, par appel http direct — le motif déjà établi dans cet écran pour knowledge et insights. Si l'appel échoue, la ligne « ~N questions » disparaît plutôt que d'afficher un repli : sur une jauge qui sert à décider d'un achat, pas de chiffre vaut mieux qu'un chiffre faux, ce que le /1000 faisait depuis le début à un facteur 10 près. manager_api_new étendu à la main, générateur non relancé. 4 clés i18n FR/EN/NL. flutter analyze lib sans erreur, flutter build web OK. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
779 lines
31 KiB
Plaintext
779 lines
31 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.",
|
||
"subscriptionManageBtn": "Manage my subscription",
|
||
"subscriptionManageDesc": "Update your card, view invoices or cancel — on Stripe's secure pages.",
|
||
"subscriptionPortalError": "Could not open the billing portal, please try again later.",
|
||
"subscriptionPortalNoCustomer": "This instance has no online subscription. Your billing is handled directly with us.",
|
||
"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.",
|
||
"guideIaTabConfig": "Configuration",
|
||
"guideIaTabQuestions": "What your visitors ask",
|
||
"guideIaPreviewTitle": "Try your guide",
|
||
"guideIaPreviewSub": "Test the tone and the answers without reaching for a phone",
|
||
"guideIaPreviewPlaceholder": "Ask a question, the way a visitor would",
|
||
"guideIaPreviewSources": "Where does this answer come from?",
|
||
"guideIaPreviewSourcesInfo": "This source indicator only appears on this screen. Your visitors see the answer alone.",
|
||
"guideIaPreviewError": "The guide did not answer. Try again in a moment.",
|
||
"guideIaPreviewUnsaved": "Save your changes before testing them: the preview queries the guide as published.",
|
||
"guideIaKnowledgeTitle": "What your guide knows",
|
||
"guideIaKnowledgeSub": "Measured on what is actually indexed, not on what is published",
|
||
"guideIaKnowledgeSections": "Indexed sections",
|
||
"guideIaKnowledgeChunks": "Content chunks",
|
||
"guideIaKnowledgeLanguages": "Languages covered",
|
||
"guideIaKnowledgeLastIndexed": "Last indexed",
|
||
"guideIaKnowledgeHint": "An unpublished section drops out of the guide's answers within the minute.",
|
||
"guideIaKnowledgeMinutesAgo": "{count} min ago",
|
||
"guideIaKnowledgeHoursAgo": "{count} h ago",
|
||
"guideIaKnowledgeDaysAgo": "{count} d ago",
|
||
"guideIaKpiQuestions": "Questions this month",
|
||
"guideIaKpiUnanswered": "Unanswered",
|
||
"guideIaKpiThemes": "Themes",
|
||
"guideIaKpiLanguages": "Languages",
|
||
"guideIaGapTitle": "What your visitors look for and don't find",
|
||
"guideIaGapSub": "{count} questions found no answer in your content. Add it and your guide will answer from the next visit on.",
|
||
"guideIaTopicsTitle": "Question topics",
|
||
"guideIaQuestionLanguagesTitle": "Question languages",
|
||
"guideIaInsightsSubCount": "Number of questions over the period",
|
||
"guideIaCitedTitle": "Most used content",
|
||
"guideIaCitedSub": "Sections cited in answers",
|
||
"guideIaInsightsEmpty": "No questions yet",
|
||
"guideIaInsightsEmptyHint": "As soon as your visitors start asking the guide, their questions will be grouped here by topic — and the ones left unanswered will tell you what to add to your content.",
|
||
"guideIaInsightsPrivacy": "Questions are kept for 90 days, then deleted. Only the topic groupings are kept beyond that. No data identifying a visitor is recorded.",
|
||
"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",
|
||
"addStep": "Add a step",
|
||
"addQuestion": "Add a question",
|
||
"deleteStep": "Delete step",
|
||
"deleteStepConfirm": "Delete this step and its questions?",
|
||
"pathPanelTitle": "The path",
|
||
"pathPanelSubtitle": "Title, mood, progression",
|
||
"stepSummaryEmpty": "No content",
|
||
"mediaCount": "{count} media",
|
||
"@mediaCount": {
|
||
"placeholders": {
|
||
"count": { "type": "int" }
|
||
}
|
||
},
|
||
"questionCount": "{count} question(s)",
|
||
"@questionCount": {
|
||
"placeholders": {
|
||
"count": { "type": "int" }
|
||
}
|
||
},
|
||
"saveStatusIdle": "Saved automatically",
|
||
"saveStatusSaving": "Saving…",
|
||
"saveStatusSaved": "Saved",
|
||
"saveStatusFailed": "Could not save",
|
||
"retry": "Retry",
|
||
"mapProviderMobileOnlyNote": "The map provider and type apply to the mobile and tablet apps. The web app always renders its own map.",
|
||
"menuAudit": "Activity",
|
||
"auditTitle": "Activity",
|
||
"auditSubtitle": "Who changed what, and when",
|
||
"auditFilterInstance": "Instance",
|
||
"auditFilterEntity": "Item type",
|
||
"auditFilterUser": "User",
|
||
"auditFilterFrom": "From",
|
||
"auditFilterTo": "To",
|
||
"auditAllInstances": "All instances",
|
||
"auditAllEntities": "All types",
|
||
"auditAllUsers": "All users",
|
||
"auditReset": "Clear filters",
|
||
"auditColDate": "Date",
|
||
"auditColInstance": "Instance",
|
||
"auditColEntity": "Item",
|
||
"auditColAction": "Action",
|
||
"auditColUser": "User",
|
||
"auditColEntityId": "Identifier",
|
||
"auditActionCreate": "Created",
|
||
"auditActionUpdate": "Updated",
|
||
"auditActionDelete": "Deleted",
|
||
"auditEntitySection": "Section",
|
||
"auditEntityResource": "Resource",
|
||
"auditEntityConfiguration": "Configuration",
|
||
"auditEntityDevice": "Device",
|
||
"auditEntityUser": "User",
|
||
"auditEntityInstance": "Instance",
|
||
"auditEmpty": "No activity for these filters",
|
||
"auditLoadError": "The activity log could not be loaded",
|
||
"auditRange": "{first} – {last} of {total}",
|
||
"@auditRange": {
|
||
"placeholders": {
|
||
"first": { "type": "int" },
|
||
"last": { "type": "int" },
|
||
"total": { "type": "int" }
|
||
}
|
||
},
|
||
"auditPrevious": "Previous page",
|
||
"auditNext": "Next page",
|
||
"auditDetailTitle": "Change detail",
|
||
"auditDetailField": "Field",
|
||
"auditDetailBefore": "Before",
|
||
"auditDetailAfter": "After",
|
||
"auditDetailNoValues": "The log does not keep the detail of this operation.",
|
||
"usersCount": "{count} / {max} users",
|
||
"@usersCount": {
|
||
"placeholders": {
|
||
"count": { "type": "int" },
|
||
"max": { "type": "int" }
|
||
}
|
||
},
|
||
"usersQuotaReached": "Limit of {max} users reached",
|
||
"@usersQuotaReached": {
|
||
"placeholders": {
|
||
"max": { "type": "int" }
|
||
}
|
||
},
|
||
"usersQuotaHint": "Delete a user to invite another one.",
|
||
"userCreateError": "Creation failed: {message}",
|
||
"@userCreateError": {
|
||
"placeholders": {
|
||
"message": { "type": "String" }
|
||
}
|
||
}
|
||
}
|