manager-app/lib/l10n/app_localizations_en.dart
Thomas Fransolet 0054122829 Carte : filtre par categorie, editeur de point, et corrections users/quotas
Regroupe la configuration de carte en deux blocs (Carte / Points d'interet),
ajoute le filtre par categorie et l'editeur de point geographique, et passe
les ecrans Users et les jauges de quota par AppLocalizations (FR/EN/NL).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:22:39 +02:00

3174 lines
71 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for English (`en`).
class AppLocalizationsEn extends AppLocalizations {
AppLocalizationsEn([String locale = 'en']) : super(locale);
@override
String get cancel => 'Cancel';
@override
String get save => 'Save';
@override
String get create => 'Create';
@override
String get delete => 'Delete';
@override
String get close => 'Close';
@override
String get edit => 'Edit';
@override
String get actions => 'Actions';
@override
String get status => 'Status';
@override
String get no => 'No';
@override
String get name => 'Name';
@override
String get type => 'Type';
@override
String get date => 'Date';
@override
String get loginSuccess => 'Login successful';
@override
String get loginError => 'An error occurred during login';
@override
String get rememberMe => 'Remember me';
@override
String get connect => 'LOG IN';
@override
String get forgotPasswordLink => 'Forgot your password?';
@override
String get forgotPasswordTitle => 'Forgot password';
@override
String get forgotPasswordDesc =>
'Enter your email and we\'ll send you a link to set a new password.';
@override
String get forgotPasswordSubmit => 'SEND LINK';
@override
String get forgotPasswordSuccess =>
'If this email exists, a reset link has just been sent.';
@override
String get backToLogin => 'Back to login';
@override
String get setPasswordTitle => 'Set your password';
@override
String get setPasswordDesc => 'Choose a password to access your workspace.';
@override
String get setPasswordNewLabel => 'New password';
@override
String get setPasswordSubmit => 'SET PASSWORD';
@override
String get setPasswordSuccess => 'Password set — you can now log in.';
@override
String get setPasswordError => 'This link is invalid or has expired';
@override
String get setPasswordTooShort => 'Password must be at least 8 characters';
@override
String get setPasswordMissingToken => 'Invalid link — no token provided';
@override
String get inviteUserHint =>
'An invitation email will be sent to set the password.';
@override
String get menuSubscription => 'Subscription';
@override
String get subscriptionTitle => 'Subscription';
@override
String get subscriptionTrialActive => 'Free trial in progress';
@override
String subscriptionTrialEndsAt(Object date) {
return 'Your trial ends on $date';
}
@override
String get subscriptionTrialNoDate => 'Your free trial is active.';
@override
String get subscriptionPlanActive => 'Essentiel plan active';
@override
String get subscriptionPlanActiveDesc =>
'Your subscription is active and renews automatically.';
@override
String get subscriptionIncludedTitle => 'What\'s included';
@override
String get subscriptionUpgradeBtn => 'Upgrade to a paid subscription';
@override
String get subscriptionCheckoutError =>
'Could not start checkout, please try again later.';
@override
String get subscriptionManageBtn => 'Manage my subscription';
@override
String get subscriptionManageDesc =>
'Update your card, view invoices or cancel — on Stripe\'s secure pages.';
@override
String get subscriptionPortalError =>
'Could not open the billing portal, please try again later.';
@override
String get subscriptionPortalNoCustomer =>
'This instance has no online subscription. Your billing is handled directly with us.';
@override
String get subscriptionAddonsTitle => 'Add-ons';
@override
String get subscriptionAddonsComingSoon =>
'Coming soon: extra AI requests and other options.';
@override
String get menuApplications => 'Applications';
@override
String get menuConfigurations => 'Configurations';
@override
String get menuResources => 'Media library';
@override
String get menuStatistics => 'Statistics';
@override
String get menuGuideIa => 'AI Guide';
@override
String get guideIaSubtitle =>
'Your guide answers visitor questions using your own content. It never answers from anything else.';
@override
String get guideIaUsageTitle => 'This month\'s usage';
@override
String guideIaUsageQuestions(Object count) {
return '$count questions asked';
}
@override
String get guideIaUsageNoQuota => 'No cap set on your plan.';
@override
String get guideIaChannelsTitle => 'Where the guide is available';
@override
String get guideIaChannelsSub =>
'Click a channel to enable or disable the guide there.';
@override
String get guideIaChannelOn => 'Enabled';
@override
String get guideIaChannelOff => 'Disabled';
@override
String get guideIaIdentityTitle => 'Guide identity';
@override
String get guideIaIdentitySub => 'This is what gives the answers their tone';
@override
String get guideIaNameLabel => 'Guide name';
@override
String get guideIaNameHint => 'The name visitors see and hear. E.g. Leon';
@override
String get guideIaPersonaLabel => 'Personality';
@override
String get guideIaPersonaHint =>
'Describe it the way you would introduce a guide to a new colleague. To get started, pick an example:';
@override
String get guideIaExampleWarden => 'Passionate warden';
@override
String get 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.';
@override
String get guideIaExampleSober => 'Measured mediator';
@override
String get 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.';
@override
String get guideIaExampleKids => 'For children';
@override
String get 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.';
@override
String get guideIaFallbackLabel => 'When the guide doesn\'t know';
@override
String get guideIaFallbackHint =>
'The guide picks one at random. With a single sentence it repeats it word for word, and that shows immediately.';
@override
String get guideIaFallbackAdd => 'Add a wording';
@override
String get guideIaFallbackTranslated =>
'Visitors see these sentences: on save, they are translated into your channels\' languages.';
@override
String get guideIaFallbackTranslateError => 'AI translation failed';
@override
String guideIaSavedTranslationFailed(String reason) {
return 'Saved, but translating the wordings failed: $reason';
}
@override
String get guideIaVoiceTitle => 'Your guide out loud';
@override
String get guideIaVoiceSub =>
'Visitors ask out loud and hear the answer — in the app, or in their connected glasses.';
@override
String get guideIaVoiceFemale => 'Female voice, warm';
@override
String get guideIaVoiceMale => 'Male voice, steady';
@override
String guideIaVoiceWakeword(Object word) {
return 'Wake word: \"$word\"';
}
@override
String guideIaVoiceInfoName(Object word) {
return '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.';
}
@override
String get guideIaVoiceInfoGlasses =>
'Connected glasses work with the mobile app installed on the visitor\'s phone.';
@override
String get guideIaVoiceInfoMultilang =>
'The same voice speaks all your languages: your guide keeps one identity across them.';
@override
String get guideIaSave => 'Save';
@override
String get guideIaSaved => 'Guide saved';
@override
String get guideIaSaveError => 'Saving failed. Please try again.';
@override
String get guideIaTabConfig => 'Configuration';
@override
String get guideIaTabQuestions => 'What your visitors ask';
@override
String get guideIaPreviewTitle => 'Try your guide';
@override
String get guideIaPreviewSub =>
'Test the tone and the answers without reaching for a phone';
@override
String get guideIaPreviewPlaceholder =>
'Ask a question, the way a visitor would';
@override
String get guideIaPreviewSources => 'Where does this answer come from?';
@override
String get guideIaPreviewSourcesInfo =>
'This source indicator only appears on this screen. Your visitors see the answer alone.';
@override
String get guideIaPreviewError =>
'The guide did not answer. Try again in a moment.';
@override
String get guideIaPreviewUnsaved =>
'Save your changes before testing them: the preview queries the guide as published.';
@override
String get guideIaKnowledgeTitle => 'What your guide knows';
@override
String get guideIaKnowledgeSub =>
'Measured on what is actually indexed, not on what is published';
@override
String get guideIaKnowledgeSections => 'Indexed sections';
@override
String get guideIaKnowledgeChunks => 'Content chunks';
@override
String get guideIaKnowledgeLanguages => 'Languages covered';
@override
String get guideIaKnowledgeLastIndexed => 'Last indexed';
@override
String get guideIaKnowledgeHint =>
'An unpublished section drops out of the guide\'s answers within the minute.';
@override
String guideIaKnowledgeMinutesAgo(Object count) {
return '$count min ago';
}
@override
String guideIaKnowledgeHoursAgo(Object count) {
return '$count h ago';
}
@override
String guideIaKnowledgeDaysAgo(Object count) {
return '$count d ago';
}
@override
String get guideIaKpiQuestions => 'Questions this month';
@override
String get guideIaKpiUnanswered => 'Unanswered';
@override
String get guideIaKpiThemes => 'Themes';
@override
String get guideIaKpiLanguages => 'Languages';
@override
String get guideIaGapTitle => 'What your visitors look for and don\'t find';
@override
String guideIaGapSub(Object count) {
return '$count questions found no answer in your content. Add it and your guide will answer from the next visit on.';
}
@override
String get guideIaTopicsTitle => 'Question topics';
@override
String get guideIaQuestionLanguagesTitle => 'Question languages';
@override
String get guideIaInsightsSubCount => 'Number of questions over the period';
@override
String get guideIaCitedTitle => 'Most used content';
@override
String get guideIaCitedSub => 'Sections cited in answers';
@override
String get guideIaInsightsEmpty => 'No questions yet';
@override
String get 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.';
@override
String get guideIaInsightsPrivacy =>
'Questions are kept for 90 days, then deleted. Only the topic groupings are kept beyond that. No data identifying a visitor is recorded.';
@override
String get menuNotifications => 'Notifications';
@override
String get menuUsers => 'Users';
@override
String get menuApiKeys => 'API Keys';
@override
String get noPlansAvailable => 'No plans available. Create a plan first.';
@override
String get noPlan => 'No plan (unlimited)';
@override
String get unlimitedStorage => 'Unlimited storage';
@override
String get unlimitedAI => 'Unlimited AI';
@override
String aiTokensPerMonth(String amount) {
return '$amount AI tokens/month';
}
@override
String get storageLabel => 'Storage';
@override
String get aiThisMonthLabel => 'AI this month';
@override
String get unlimited => 'Unlimited';
@override
String get requestsAbbr => 'req';
@override
String get tokensAbbr => 'tokens';
@override
String get planUpdated => 'Plan updated';
@override
String errorMessage(String error) {
return 'Error: $error';
}
@override
String get switchInstance => 'Switch instance';
@override
String get noInstanceFound => 'No instance found';
@override
String get configurePlan => 'Configure plan';
@override
String get tooltipSwitchInstance => 'Switch instance';
@override
String get tooltipLogout => 'Log out';
@override
String get usersInstance => 'Instance';
@override
String get usersTitle => 'Users';
@override
String get createUserBtn => 'Create user';
@override
String get createUserTitle => 'Create user';
@override
String get editUserTitle => 'Edit user';
@override
String get deleteUserTitle => 'Delete user';
@override
String deleteUserConfirm(String email) {
return 'Delete $email?';
}
@override
String get noUsers => 'No users';
@override
String get email => 'Email';
@override
String get firstName => 'First name';
@override
String get lastName => 'Last name';
@override
String get password => 'Password';
@override
String get role => 'Role';
@override
String get tooltipEdit => 'Edit';
@override
String get tooltipDelete => 'Delete';
@override
String get notificationsTitle => 'Notifications';
@override
String get newMessage => 'New message';
@override
String get messageTitle => 'Title';
@override
String get messageBody => 'Message';
@override
String get schedule => 'Schedule';
@override
String get time => 'Time';
@override
String get send => 'Send';
@override
String get cancelNotification => 'Cancel notification';
@override
String cancelNotificationConfirm(String title) {
return 'Cancel « $title »?';
}
@override
String get allNotifications => 'All';
@override
String get sentNotifications => 'Sent';
@override
String get scheduledNotifications => 'Scheduled';
@override
String get failedNotifications => 'Failed';
@override
String get noNotifications => 'No notifications sent';
@override
String get noNotificationsForFilter => 'No notifications for this filter';
@override
String get topic => 'Topic';
@override
String get tooltipCancelNotification => 'Cancel';
@override
String resultsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count results',
one: '$count result',
);
return '$_temp0';
}
@override
String get apiKeysTitle => 'API Keys';
@override
String get createApiKey => 'Create API key';
@override
String get createKeyBtn => 'Create key';
@override
String get appType => 'Application type';
@override
String get noExpiration => 'No expiration';
@override
String expiresOn(String date) {
return 'Expires on $date';
}
@override
String get choose => 'Choose';
@override
String get removeExpiration => 'Remove expiration';
@override
String get apiKeyCreatedTitle => 'API key created';
@override
String get copyKeyWarning => 'Copy this key now — it won\'t be shown again.';
@override
String get copy => 'Copy';
@override
String get copiedKey => 'I\'ve copied the key';
@override
String get revokeApiKeyTitle => 'Revoke API key';
@override
String revokeApiKeyConfirm(String name) {
return 'Revoke « $name »? Apps using this key will lose access.';
}
@override
String get revoke => 'Revoke';
@override
String get noApiKeys => 'No API keys';
@override
String get createdOn => 'Created on';
@override
String get expiration => 'Expiration';
@override
String get activeKey => 'Active';
@override
String get revokedKey => 'Revoked';
@override
String get tooltipRevoke => 'Revoke';
@override
String get statisticsTitle => 'Statistics';
@override
String get statsLoadError => 'Unable to load statistics';
@override
String get statsNoData => 'No data yet for this period';
@override
String statsNoDataForType(String type) {
return 'No events received for type \"$type\"';
}
@override
String get statsSessions => 'Sessions';
@override
String get statsAvgDuration => 'Avg. duration';
@override
String get statsTopApp => 'Top app';
@override
String get statsTopLang => 'Top language';
@override
String get statsVisitsByDay => 'Visits per day';
@override
String get statsAll => 'All';
@override
String get statsTopSections => 'Top sections';
@override
String get statsApps => 'Apps';
@override
String get statsLanguages => 'Languages';
@override
String get statsTopPOI => 'Top POI';
@override
String get statsPOI => 'POI';
@override
String get statsTaps => 'Taps';
@override
String get statsTopAgenda => 'Top agenda events';
@override
String get statsEvent => 'Event';
@override
String get statsQuiz => 'Quiz';
@override
String get statsSection => 'Section';
@override
String get statsAvgScore => 'Avg. score';
@override
String get statsCompletions => 'Completions';
@override
String get statsGames => 'Games';
@override
String get statsGameType => 'Type';
@override
String get statsArticles => 'Articles read';
@override
String get statsReadings => 'Reads';
@override
String get statsMenuTitle => 'Menu';
@override
String get statsMenuItem => 'Item';
@override
String get statsQrScans => 'QR Scans';
@override
String get statsTotal => 'Total';
@override
String get statsValid => 'Valid';
@override
String get statsInvalid => 'Invalid';
@override
String get statsViews => 'Views';
@override
String get statsAttendanceTitle => 'Attendance';
@override
String statsPeriodRange(String from, String to) {
return 'From $from to $to';
}
@override
String get statsFilterPeriod => 'Period';
@override
String get statsFilterChannel => 'Channel';
@override
String statsPeriodDays(int days) {
return '$days days';
}
@override
String get statsPeriodYear => 'Year';
@override
String get statsChannelMobile => 'Mobile app';
@override
String get statsChannelTablet => 'Kiosk';
@override
String get statsChannelWeb => 'Website';
@override
String get statsChannelVR => 'VR headset';
@override
String get statsChannelVoice => 'Voice guide';
@override
String statsTakeawayUp(String percent) {
return 'Attendance is up $percent % compared to the previous period.';
}
@override
String statsTakeawayDown(String percent) {
return 'Attendance is down $percent % compared to the previous period.';
}
@override
String get statsTakeawayStable =>
'Attendance is stable compared to the previous period.';
@override
String statsTakeawayVolume(String visits, String perDay) {
return '$visits visits over the period, or $perDay a day on average.';
}
@override
String statsTakeawayVoice(String percent) {
return 'The voice guide accounts for $percent % of visits — a strong argument for your funding bodies.';
}
@override
String statsTakeawayChannel(String channel, String percent) {
return 'The « $channel » channel accounts for $percent % of visits.';
}
@override
String statsTakeawayContent(String title, String percent) {
return '« $title » alone accounts for $percent % of all views: it is your front door, keep it up to date first.';
}
@override
String get statsKpiVisits => 'Visits';
@override
String get statsKpiAvgDuration => 'Average duration';
@override
String get statsKpiContentsPerVisit => 'Contents per visit';
@override
String get statsKpiVoiceShare => 'Voice guide share';
@override
String get statsKpiTotalViews => 'Contents viewed';
@override
String get statsVsPrevious => 'vs previous period';
@override
String get statsTrendStable => 'stable';
@override
String statsDurationMinSec(String minutes, String seconds) {
return '$minutes min $seconds s';
}
@override
String statsDurationSec(String seconds) {
return '$seconds s';
}
@override
String get statsVisitsByDaySub => 'Light bands mark the weekends';
@override
String get statsWeekends => 'Saturdays and Sundays';
@override
String statsPeakDay(String date, String visits) {
return 'Peak on $date$visits visits';
}
@override
String get statsTopContents => 'Most viewed contents';
@override
String get statsTopContentsSub => 'Number of views over the period';
@override
String get statsChannels => 'Channels';
@override
String get statsChannelsSub => 'Visits per channel';
@override
String get statsLanguagesSub => 'Visits per language';
@override
String get statsReportTitle => 'Your attendance report';
@override
String get statsReportBody =>
'A document in your own colours, ready to send to your municipality, your board or your funding bodies.';
@override
String get statsReportItemAttendance =>
'Attendance, visit durations and trend';
@override
String get statsReportItemContents => 'Most viewed contents and their trend';
@override
String get statsReportItemChannels =>
'Breakdown per channel, including the voice guide, and per language';
@override
String get statsReportItemAdvanced =>
'Points of interest, quizzes, games and QR scans';
@override
String statsReportGenerated(String date) {
return 'Report generated on $date with MyInfoMate';
}
@override
String get statsReportError => 'The report could not be generated';
@override
String get statsReportDownload => 'Download the PDF';
@override
String get statsAdvancedTitle => 'Advanced statistics';
@override
String get statsAdvancedBody =>
'Detailed statistics (POI, quizzes, games, articles, QR…) are available with the Premium plan.';
@override
String get statsUnavailableTitle => 'Statistics not included';
@override
String get statsUnavailableBody =>
'Your current plan does not include attendance statistics.';
@override
String get noData => 'No data';
@override
String get errorOccurred => 'An error occurred';
@override
String get yes => 'Yes';
@override
String get newConfiguration => 'New configuration';
@override
String get configNameLabel => 'Name:';
@override
String get orText => 'or';
@override
String get importLabel => 'Import';
@override
String get configNameRequired => 'Please specify a name for the new visit';
@override
String get configCreatedSuccess => 'Configuration created successfully';
@override
String configExportSuccess(String path) {
return 'Configuration exported successfully, file is at: $path';
}
@override
String get configExportFailed => 'Configuration export failed';
@override
String get configExportAction => 'Export the configuration';
@override
String get offlineHint => 'Content is downloaded on first launch.';
@override
String get configDeletedSuccess => 'Configuration deleted successfully';
@override
String get configSavedSuccess => 'Configuration saved successfully';
@override
String get configDeleteConfirm =>
'Are you sure you want to delete this configuration?';
@override
String get newSection => 'New section';
@override
String get newSubSection => 'New sub section';
@override
String get sectionNameLabel => 'Name:';
@override
String get sectionTypeLabel => 'Type:';
@override
String get sectionNameRequired => 'Please specify a name for the new section';
@override
String get sectionCreatedSuccess => 'Section created successfully!';
@override
String get sectionDeleteConfirm =>
'Are you sure you want to delete this section?';
@override
String get sectionSavedSuccess => 'Section saved successfully';
@override
String get sectionTranslationSaved =>
'Section translations saved successfully';
@override
String get sectionLoadError => 'An error occurred while loading the section';
@override
String get qrCodeCopied => 'This QR code has been copied to the clipboard';
@override
String get beaconLabel => 'Beacon:';
@override
String get beaconIdLabel => 'Beacon ID:';
@override
String get beaconMustBeNumber => 'This must be a number';
@override
String get identifierLabel => 'Identifier:';
@override
String get displayTitleLabel => 'Display title:';
@override
String get imageLabel => 'Image:';
@override
String get backgroundImageLabel => 'Background image:';
@override
String get questionInputLabel => 'Question:';
@override
String get videoUrlLabel => 'Video URL:';
@override
String get webUrlLabel => 'Website URL:';
@override
String get subSectionUpdatedSuccess => 'Sub section updated successfully';
@override
String get subSectionUpdateError =>
'An error occurred while updating the sub section';
@override
String get subSectionDeletedSuccess => 'Sub section deleted successfully';
@override
String get subSectionDeleteError =>
'An error occurred while deleting the sub section';
@override
String get subSectionOrderUpdatedSuccess =>
'Sub section order updated successfully';
@override
String get subSectionOrderUpdateError =>
'An error occurred while updating the sub section order';
@override
String get subSectionCreatedSuccess => 'Sub section created successfully';
@override
String get subSectionCreateError =>
'An error occurred while creating the sub section';
@override
String get questionsLabel => 'Questions';
@override
String get questionLabel => 'Question';
@override
String get editQuestion => 'Edit question';
@override
String get questionDeleteConfirm =>
'Are you sure you want to delete this question?';
@override
String get questionsLoadError =>
'An error occurred while loading the questions';
@override
String get quizBadScore => 'Bad score';
@override
String get quizMediumScore => 'Medium score';
@override
String get quizGoodScore => 'Good score';
@override
String get quizExcellentScore => 'Excellent score';
@override
String get quizBadScoreMsg => 'Message for a bad score';
@override
String get quizMediumScoreMsg => 'Message for a medium score';
@override
String get quizGoodScoreMsg => 'Message for a good score';
@override
String get quizExcellentScoreMsg => 'Message for an excellent score';
@override
String get questionOrderUpdatedSuccess =>
'Question order updated successfully';
@override
String get questionOrderUpdateError =>
'An error occurred while updating the question order';
@override
String get questionCreatedSuccess => 'Question created successfully';
@override
String get questionCreateError =>
'An error occurred while creating the question';
@override
String get questionUpdatedSuccess => 'Question updated successfully';
@override
String get questionUpdateError =>
'An error occurred while updating the question';
@override
String get questionDeletedSuccess => 'Question deleted successfully';
@override
String get questionDeleteError =>
'An error occurred while deleting the question';
@override
String get translationIncomplete => 'Translation is incomplete';
@override
String get geopointCreatedSuccess => 'Point created successfully';
@override
String get geopointCreateError =>
'An error occurred while creating the point';
@override
String get geopointUpdatedSuccess => 'Point updated successfully';
@override
String get geopointUpdateError =>
'An error occurred while updating the point';
@override
String get geopointDeletedSuccess => 'Point deleted successfully';
@override
String get geopointDeleteError =>
'An error occurred while deleting the point';
@override
String get categoryCreatedSuccess => 'Category created successfully';
@override
String get categoryCreateError =>
'An error occurred while creating the category';
@override
String get categoryUpdatedSuccess => 'Category updated successfully';
@override
String get categoryUpdateError =>
'An error occurred while updating the category';
@override
String get eventCreatedSuccess => 'Event created successfully';
@override
String get eventCreateError => 'An error occurred while creating the event';
@override
String get eventUpdatedSuccess => 'Event updated successfully';
@override
String get eventUpdateError => 'An error occurred while updating the event';
@override
String get eventDeletedSuccess => 'Event deleted successfully';
@override
String get eventDeleteError => 'An error occurred while deleting the event';
@override
String get annotationCreatedSuccess => 'Annotation created successfully';
@override
String get annotationCreateError =>
'An error occurred while creating the annotation';
@override
String get annotationUpdatedSuccess => 'Annotation updated successfully';
@override
String get annotationUpdateError =>
'An error occurred while updating the annotation';
@override
String get programmeBlockCreatedSuccess => 'Block created successfully';
@override
String get programmeBlockCreateError =>
'An error occurred while creating the block';
@override
String get programmeBlockUpdatedSuccess => 'Block updated successfully';
@override
String get programmeBlockUpdateError =>
'An error occurred while updating the block';
@override
String get pathCreatedSuccess => 'Path created successfully';
@override
String get pathCreateError => 'An error occurred while creating the path';
@override
String get pathUpdatedSuccess => 'Path updated successfully';
@override
String get pathUpdateError => 'An error occurred while updating the path';
@override
String get stepCreatedSuccess => 'Step created successfully';
@override
String get stepCreateError => 'An error occurred while creating the step';
@override
String get stepUpdatedSuccess => 'Step updated successfully';
@override
String get stepUpdateError => 'An error occurred while updating the step';
@override
String get agendaEventsLabel => 'Events';
@override
String get agendaEventFallback => 'Event';
@override
String get addEvent => 'Add an event';
@override
String get noEvents => 'No events';
@override
String get noAddress => 'No address';
@override
String get agendaFilterAll => 'All';
@override
String get agendaFilterThisMonth => 'This month';
@override
String get agendaFilterThisYear => 'This year';
@override
String get agendaFilterPast => 'Past';
@override
String get agendaEventDeleteConfirm =>
'Are you sure you want to delete this event?';
@override
String get onlineLabel => 'Online:';
@override
String get mapViewLabel => 'Map view:';
@override
String get mapServiceLabel => 'Map service:';
@override
String get jsonFilesLabel => 'JSON files:';
@override
String get jsonLabel => 'JSON';
@override
String get guidedPathsLabel => 'Guided Paths';
@override
String get addPath => 'Add a path';
@override
String get noPathConfigured => 'No path configured';
@override
String get pathOrderUpdateError => 'Error updating order';
@override
String get pathNoTitle => 'Untitled path';
@override
String get pathDeletedSuccess => 'Path deleted successfully';
@override
String get pathDeleteError => 'Error deleting path';
@override
String get pathsLabel => 'Paths';
@override
String get pointsOfInterestLabel => 'Points of Interest';
@override
String get geopointsLabel => 'Geographic points';
@override
String get searchLabel => 'Search:';
@override
String get geopointsLoadError => 'Error loading geographic points';
@override
String get geopointDeleteConfirm =>
'Are you sure you want to delete this geographic point?';
@override
String get serviceLabel => 'Service';
@override
String get geopointConfirmPosition => 'Confirm position';
@override
String get clearFilter => 'Show all';
@override
String get mapGroupMap => 'Map';
@override
String get mapGroupPoints => 'Points of interest';
@override
String get displayLabel => 'Display';
@override
String get listViewOption => 'Offer the list view';
@override
String get centerPointLabel => 'Center point';
@override
String get iconLabel => 'Default icon';
@override
String get listViewLabel => 'List view';
@override
String get typeLabel => 'Map type';
@override
String get zoomLabel => 'Initial zoom';
@override
String get categoriesLabel => 'Categories';
@override
String get startDateLabel => 'Start date';
@override
String get notDefined => 'Not defined';
@override
String get endDateLabel => 'End date';
@override
String get programmeLabel => 'Programme';
@override
String get addBlock => 'Add a block';
@override
String get blockFallback => 'Block';
@override
String get noBlocks => 'No programme blocks defined';
@override
String get programmeBlockDeletedSuccess => 'Block deleted successfully';
@override
String get programmeBlockDeleteError => 'Error deleting block';
@override
String get baseMapLabel => 'Base map';
@override
String get mapLabel => 'Map:';
@override
String get globalAnnotationsLabel => 'Global annotations';
@override
String get addAnnotation => 'Add an annotation';
@override
String get noAnnotations => 'No global annotations';
@override
String get annotationFallback => 'Annotation';
@override
String get annotationDeletedSuccess => 'Annotation deleted';
@override
String get annotationDeleteError => 'Error deleting';
@override
String get agendaEventCreatedSuccess => 'Event created successfully';
@override
String get agendaEventCreateError =>
'An error occurred while creating the event';
@override
String get agendaEventUpdatedSuccess => 'Event updated successfully';
@override
String get agendaEventUpdateError =>
'An error occurred while updating the event';
@override
String get agendaEventDeletedSuccess => 'Event deleted successfully';
@override
String get agendaEventDeleteError =>
'An error occurred while deleting the event';
@override
String get newResource => 'New resource';
@override
String get resourceCreatedSuccess => 'Resource created successfully';
@override
String get resourceCreateError =>
'An error occurred while creating the resource';
@override
String get resourceUploadInProgress => 'Upload in progress…';
@override
String get resourceUpdatedSuccess => 'Resource updated successfully';
@override
String get resourceNoFileLoaded => 'No file has been loaded';
@override
String get resourceNameRequired => 'Please give the resource a name';
@override
String get resourceTooLarge => 'Error: resource size must be under 1.5MB';
@override
String get resourceInvalidUrl => 'The URL is invalid';
@override
String get resourceUrlRequired => 'Please fill in the URL field';
@override
String get generalInfo => 'General information';
@override
String get mainImageLabel => 'Main image:';
@override
String get loaderLabel => 'Loader:';
@override
String get primaryColorLabel => 'Primary color:';
@override
String get secondaryColorLabel => 'Secondary color:';
@override
String get layoutLabel => 'Layout:';
@override
String get layoutGrid => 'Grid';
@override
String get languagesLabel => 'Languages:';
@override
String get featuredEventLabel => 'Featured event:';
@override
String get chooseEvent => 'Choose an event';
@override
String get previewWebTitle => 'Preview — Web';
@override
String get previewMobileTitle => 'Preview — Mobile';
@override
String get previewDesktop => 'Desktop';
@override
String get previewMobile => 'Mobile';
@override
String get noneOption => 'None';
@override
String get aiAssistantLabel => 'AI assistant:';
@override
String get appUpdatedSuccess => 'Mobile application updated';
@override
String get configActivatedSuccess => 'Configuration activated successfully';
@override
String get configDeactivatedSuccess =>
'Configuration deactivated successfully';
@override
String get configRemoveConfirm =>
'Are you sure you want to remove this configuration from the application?';
@override
String get configRemovedSuccess =>
'Configuration removed from application successfully';
@override
String get configRemoveError =>
'An error occurred while removing the configuration';
@override
String get phoneConfigTitle => 'Configurations per device';
@override
String get addConfig => 'Add a configuration';
@override
String get selectConfigToAdd => 'Select a configuration to add';
@override
String get noItems => 'No items to display';
@override
String get add => 'Add';
@override
String pinCode(String code) {
return 'Pin code: $code';
}
@override
String get tablets => 'Tablets';
@override
String stepsCount(int count) {
return '$count steps';
}
@override
String get displayedDescriptionLabel => 'Displayed description:';
@override
String get displayedContentLabel => 'Displayed content:';
@override
String get displayedNameLabel => 'Display name:';
@override
String get startTimeLabel => 'Start time';
@override
String get noAnnotationConfigured => 'No annotations configured.';
@override
String get newStepTitle => 'New step';
@override
String get editStepTitle => 'Edit step';
@override
String get stepTitleLabel => 'Step title';
@override
String get stepDescriptionLabel => 'Step description';
@override
String get stepLocationLabel => 'Step location:';
@override
String get initiallyHiddenLabel => 'Initially hidden';
@override
String get lockedLabel => 'Locked';
@override
String get durationSecondsLabel => 'Duration (seconds):';
@override
String get triggerGeopointLabel => 'Trigger GeoPoint (ID):';
@override
String get questionsChallengesLabel => 'Questions / Challenges';
@override
String get noQuestionsConfigured => 'No questions configured.';
@override
String get newAgendaEventTitle => 'New event';
@override
String get editAgendaEventTitle => 'Edit event';
@override
String get eventTitleLabel => 'Event title';
@override
String get eventDescriptionLabel => 'Event description';
@override
String get startDateColonLabel => 'Start date:';
@override
String get videoResourceLabel => 'Video:';
@override
String get directVideoLinkLabel => 'Direct video link:';
@override
String get phoneLabel => 'Phone:';
@override
String get locationGeometryLabel => 'Location / Geometry';
@override
String get geometryLabel => 'Geometry:';
@override
String get materialIconLabel => 'Icon (material):';
@override
String get linearLabel => 'Linear:';
@override
String get requiredSuccessLabel => 'Required success:';
@override
String get pathStepsLabel => 'Path steps';
@override
String get noStepConfigured => 'No point/step configured.';
@override
String get stepFallback => 'Step';
@override
String get questionAskedLabel => 'Question asked:';
@override
String get questionTitleLabel => 'Question title';
@override
String get expectedAnswerLabel => 'Expected answer:';
@override
String get expectedAnswerModalLabel => 'Expected answer';
@override
String get validationNote =>
'Validation is done by comparison (case-insensitive).';
@override
String get possibleAnswersLabel => 'Possible answers:';
@override
String get noAnswerDefined => 'No answer defined. Add at least one.';
@override
String get correctAnswer => 'Correct answer ✓';
@override
String get wrongAnswer => 'Wrong answer';
@override
String get answerNote => '✓ = correct answer. Multiple can be correct.';
@override
String get geopointZoneTitle => 'Geographic point / Zone';
@override
String get geometryTypeLabel => 'Geometry (Point/Line/Zone):';
@override
String get phoneModalLabel => 'Phone';
@override
String get categoryLabel => 'Category:';
@override
String get startMessageLabel => 'Start message:';
@override
String get startMessageModalLabel => 'Start message';
@override
String get createCategoryTitle => 'Create category';
@override
String get editCategoryTitle => 'Edit category';
@override
String get categoryIconLabel => 'Category icon:';
@override
String get selectResource => 'Select a resource';
@override
String get selectResourceHint => 'Click a thumbnail to select and close.';
@override
String get createPdfTitle => 'Create PDF';
@override
String get answersLabel => 'Answers';
@override
String get answerLabel => 'Answer';
@override
String get createAnswerTitle => 'Create answer';
@override
String get editAnswerTitle => 'Edit answer';
@override
String get answerValidNote => 'If checked, the answer is valid';
@override
String get selectConfiguration => 'Select a configuration';
@override
String get noConfigFound => 'No configuration found';
@override
String get backgroundColorLabel => 'Background color:';
@override
String get updateTabletBtn => 'Update tablet';
@override
String get kioskUpdatedSuccess => 'Kiosk updated';
@override
String get webViewError =>
'The web page cannot be displayed, the URL is incorrect or empty';
@override
String get download => 'Download';
@override
String get resourceDeleteConfirm =>
'Are you sure you want to delete this resource?';
@override
String get categoriesTitle => 'Categories';
@override
String get endTimeLabel => 'End time';
@override
String get annotationsLabel => 'Annotations';
@override
String get addStep => 'Add a step';
@override
String get addQuestion => 'Add a question';
@override
String get deleteStep => 'Delete step';
@override
String get deleteStepConfirm => 'Delete this step and its questions?';
@override
String get pathPanelTitle => 'The path';
@override
String get pathPanelSubtitle => 'Title, mood, progression';
@override
String get stepSummaryEmpty => 'No content';
@override
String mediaCount(int count) {
return '$count media';
}
@override
String questionCount(int count) {
return '$count question(s)';
}
@override
String get saveStatusIdle => 'Saved automatically';
@override
String get saveStatusSaving => 'Saving…';
@override
String get saveStatusSaved => 'Saved';
@override
String get saveStatusFailed => 'Could not save';
@override
String get retry => 'Retry';
@override
String get mapProviderMobileOnlyNote =>
'The map provider and type apply to the mobile and tablet apps. The web app always renders its own map.';
@override
String get menuAudit => 'Activity';
@override
String get auditTitle => 'Activity';
@override
String get auditSubtitle => 'Who changed what, and when';
@override
String get auditFilterInstance => 'Instance';
@override
String get auditFilterEntity => 'Item type';
@override
String get auditFilterUser => 'User';
@override
String get auditFilterFrom => 'From';
@override
String get auditFilterTo => 'To';
@override
String get auditAllInstances => 'All instances';
@override
String get auditAllEntities => 'All types';
@override
String get auditAllUsers => 'All users';
@override
String get auditReset => 'Clear filters';
@override
String get auditColDate => 'Date';
@override
String get auditColInstance => 'Instance';
@override
String get auditColEntity => 'Item';
@override
String get auditColAction => 'Action';
@override
String get auditColUser => 'User';
@override
String get auditColEntityId => 'Identifier';
@override
String get auditActionCreate => 'Created';
@override
String get auditActionUpdate => 'Updated';
@override
String get auditActionDelete => 'Deleted';
@override
String get auditEntitySection => 'Section';
@override
String get auditEntityResource => 'Resource';
@override
String get auditEntityConfiguration => 'Configuration';
@override
String get auditEntityDevice => 'Device';
@override
String get auditEntityUser => 'User';
@override
String get auditEntityInstance => 'Instance';
@override
String get auditEmpty => 'No activity for these filters';
@override
String get auditLoadError => 'The activity log could not be loaded';
@override
String auditRange(int first, int last, int total) {
return '$first $last of $total';
}
@override
String get auditPrevious => 'Previous page';
@override
String get auditNext => 'Next page';
@override
String get auditDetailTitle => 'Change detail';
@override
String get auditDetailField => 'Field';
@override
String get auditDetailBefore => 'Before';
@override
String get auditDetailAfter => 'After';
@override
String get auditDetailNoValues =>
'The log does not keep the detail of this operation.';
@override
String usersCount(int count, int max) {
return '$count / $max users';
}
@override
String usersQuotaReached(int max) {
return 'Limit of $max users reached';
}
@override
String get usersQuotaHint => 'Delete a user to invite another one.';
@override
String get userCreatedSuccess =>
'User created, the invitation has been emailed';
@override
String get userUpdatedSuccess => 'User updated';
@override
String get userDeletedSuccess => 'User deleted';
@override
String userUpdateError(String message) {
return 'Update failed: $message';
}
@override
String userDeleteError(String message) {
return 'Deletion failed: $message';
}
@override
String userCreateError(String message) {
return 'Creation failed: $message';
}
@override
String get mediaFacetType => 'TYPE';
@override
String get mediaFacetUsage => 'USAGE';
@override
String get mediaFacetConfiguration => 'CONFIGURATION';
@override
String get mediaFacetAll => 'All';
@override
String get mediaFacetUsed => 'Used';
@override
String get mediaFacetUnused => 'Never used';
@override
String get mediaFacetUnusedTooltip =>
'An image set on a guided step (the step\'s Image field) is not counted: it is stored there as a URL, not as a reference. Check before deleting.';
@override
String get mediaFacetNoConfiguration => 'None';
@override
String get mediaSearchHint => 'Search a resource…';
@override
String get mediaSort => 'Sort';
@override
String get mediaSortRecent => 'Most recent';
@override
String get mediaSortName => 'Name A→Z';
@override
String get mediaSortSize => 'Largest first';
@override
String get mediaSortUsages => 'Fewest uses first';
@override
String get mediaViewGrid => 'Grid view';
@override
String get mediaViewList => 'List view';
@override
String get mediaGroupByMonth => 'Group by month';
@override
String get mediaUngroupByMonth => 'Stop grouping by month';
@override
String get mediaFilterNoConfiguration => 'No configuration';
@override
String get mediaClearFilters => 'Clear all';
@override
String get mediaEmptyFiltered => 'No resource matches these filters.';
@override
String get mediaEmpty => 'No resource yet.';
@override
String get mediaRemoveCurrent => 'Remove the current resource';
@override
String get mediaFree => 'free';
@override
String get mediaNoDate => 'No date';
@override
String get mediaDetail => 'Details';
@override
String get mediaNoPreview => 'No preview';
@override
String get mediaInformation => 'INFORMATION';
@override
String get mediaDimensions => 'Dimensions';
@override
String get mediaWeight => 'Size';
@override
String get mediaAddedOn => 'Added on';
@override
String get mediaFile => 'File';
@override
String get mediaUsedIn => 'USED IN';
@override
String get mediaNeverUsed => 'Never used. No visitor will ever see it.';
@override
String get mediaReplaceFile => 'Replace file';
@override
String get mediaDeleteBlockedTooltip =>
'Resource in use: remove it from its content before deleting it';
@override
String get mediaDeleteTooltip => 'Delete permanently';
@override
String get mediaConfigurationNotFound =>
'The configuration of this content cannot be found';
@override
String get mediaSaveError => 'The resource could not be saved';
@override
String get mediaDeleteRefused =>
'Resource used by some content: it was not deleted';
@override
String get mediaDeleteError => 'The resource could not be deleted';
@override
String get mediaDeleteSuccess => 'The resource was deleted';
@override
String get mediaFileReplaced => 'File replaced';
@override
String get mediaFileReplaceError => 'The file could not be replaced';
@override
String get mediaCloseTooltip => 'Close the panel';
@override
String mediaUsageCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count uses',
one: '1 use',
);
return '$_temp0';
}
@override
String mediaSelectedCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count selected',
one: '1 selected',
);
return '$_temp0';
}
@override
String mediaSelectedUsedCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count in use, cannot be deleted',
one: '1 in use, cannot be deleted',
);
return '$_temp0';
}
@override
String mediaBulkDeleteConfirm(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Delete $count resources? Resources in use will be kept.',
one: 'Delete 1 resource? Resources in use will be kept.',
);
return '$_temp0';
}
@override
String mediaBulkDeleteDone(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count resources deleted',
one: '1 resource deleted',
);
return '$_temp0';
}
@override
String mediaFilterType(String type) {
return 'Type: $type';
}
@override
String mediaSizeBytes(String value) {
return '$value B';
}
@override
String mediaSizeKilobytes(String value) {
return '$value KB';
}
@override
String mediaSizeMegabytes(String value) {
return '$value MB';
}
@override
String mediaBulkDeletePartial(int deleted, int refused) {
return '$deleted deleted, $refused kept because in use';
}
@override
String get mediaAddTitle => 'Add a resource';
@override
String get mediaDropZone => 'Drop your files here or click to browse';
@override
String get mediaDropFormats => 'JPG, PNG, GIF, MP3, MP4, WEBM, PDF, JSON';
@override
String get mediaOrPasteUrl => 'or paste a URL';
@override
String get mediaUrlHint => 'https://… image, YouTube video or JSON file';
@override
String get mediaUrlInvalid => 'This URL is not valid';
@override
String get mediaUrlAlreadyAdded => 'This URL is already in the list';
@override
String get mediaFileAlreadyAdded => 'This file is already in the list';
@override
String get mediaUnsupportedFormat => 'Unsupported format';
@override
String get mediaOnlineResource => 'Online resource';
@override
String mediaAddCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Add $count files',
one: 'Add 1 file',
zero: 'Add',
);
return '$_temp0';
}
@override
String mediaSelectedTotal(int count, String size) {
return '$count file(s) · $size';
}
@override
String mediaQuotaRemaining(String size) {
return '$size left of your quota';
}
@override
String mediaRemoveFile(String name) {
return 'Remove $name';
}
@override
String get menuMobile => 'Mobile';
@override
String get menuKiosk => 'Kiosk';
@override
String get menuWeb => 'Web';
@override
String get menuVr => 'VR';
@override
String get noAppConfigured => 'No application configured on this instance';
@override
String get mobileAppNotConfigured => 'Mobile application not configured';
@override
String get kioskAppNotConfigured => 'Kiosk application not configured';
@override
String get vrAppNotConfigured => 'VR application not configured';
@override
String get titleColonLabel => 'Title:';
@override
String get titleModalLabel => 'Title';
@override
String get descriptionColonLabel => 'Description:';
@override
String get descriptionModalLabel => 'Description';
@override
String get nameColonLabel => 'Name:';
@override
String get dateColonLabel => 'Date:';
@override
String get hourLabel => 'Time:';
@override
String get emailColonLabel => 'Email:';
@override
String get siteColonLabel => 'Website:';
@override
String get websiteColonLabel => 'Website:';
@override
String get websiteModalLabel => 'Website';
@override
String get priceColonLabel => 'Price:';
@override
String get priceModalLabel => 'Price';
@override
String get phoneShortLabel => 'Phone:';
@override
String get openingHoursColonLabel => 'Opening hours:';
@override
String get openingHoursModalLabel => 'Opening hours';
@override
String get addressTextLabel => 'Address (text):';
@override
String get mapLocationLabel => 'Location on the map:';
@override
String get youtubeIdLabel => 'YouTube ID:';
@override
String get youtubeUrlLabel => 'YouTube URL:';
@override
String get vimeoUrlLabel => 'Vimeo URL:';
@override
String get youtubeUrlInvalid =>
'The video cannot be displayed, the URL is incorrect';
@override
String get videoSelected => 'Video selected';
@override
String get selectVideo => 'Select a video';
@override
String get videoPreviewUnavailable => 'Video preview is not available';
@override
String get errorLoadingVideo => 'The video could not be loaded';
@override
String get errorLoadingPdf => 'The PDF could not be loaded';
@override
String get jsonNoPreview => 'JSON file — no preview available';
@override
String get chooseDate => 'Choose a date';
@override
String get endDateColonLabel => 'End date:';
@override
String get audioColonLabel => 'Audio:';
@override
String get audioModalLabel => 'Audio';
@override
String get autoPlayAudioLabel => 'Auto-play audio:';
@override
String get contentModalLabel => 'Content';
@override
String get contentOnTopLabel => 'Content above:';
@override
String get imagesLabel => 'Images';
@override
String get sectionsLabel => 'Sections';
@override
String get offlineLabel => 'Offline:';
@override
String get cityLabel => 'City:';
@override
String get resource => 'Resource';
@override
String get resourceColonLabel => 'Resource:';
@override
String get resourceToDisplayLabel => 'Resource to display:';
@override
String get pdfFilesLabel => 'PDF files';
@override
String get pdfFilesColonLabel => 'PDF files:';
@override
String get pdfFileAndTitleLabel => 'PDF file and title:';
@override
String get pdfFileAndTitleModalLabel => 'PDF file and title';
@override
String get editPdfTitle => 'Edit PDF';
@override
String get newAnnotationTitle => 'New annotation';
@override
String get editAnnotationTitle => 'Edit annotation';
@override
String get annotationLabelColon => 'Label:';
@override
String get annotationLabelModal => 'Annotation label';
@override
String get annotationDeleteConfirm => 'Delete this annotation?';
@override
String get colorHexLabel => 'Color (hex):';
@override
String get newProgrammeBlockTitle => 'New programme block';
@override
String get editProgrammeBlockTitle => 'Edit block';
@override
String get blockTitleModalLabel => 'Block title';
@override
String get blockDescriptionModalLabel => 'Block description';
@override
String get puzzle => 'Puzzle';
@override
String get slidingPuzzle => 'Sliding puzzle';
@override
String get puzzleConfigTitle => 'Puzzle configuration';
@override
String get puzzleImageLabel => 'Puzzle image:';
@override
String get puzzleRowsLabel => 'Rows:';
@override
String get puzzleColsLabel => 'Columns:';
@override
String get puzzleSlidingLabel => 'Sliding puzzle:';
@override
String get endMessageLabel => 'End message:';
@override
String get endMessageModalLabel => 'End message';
@override
String get gameStartMessageModalLabel => 'Game intro message';
@override
String get gameEndMessageModalLabel => 'Game congratulations message';
@override
String get parcoursWhereTitle => 'Where does the trail take place?';
@override
String get parcoursIndoor => 'Indoors';
@override
String get parcoursIndoorDesc =>
'A sequence of steps in a confined space, without a map or geolocation.';
@override
String get parcoursOutdoor => 'Outdoors';
@override
String get parcoursOutdoorDesc =>
'The visitor moves around: map and position on every step.';
@override
String get parcoursBaseMapOptional => 'Base map (optional)';
@override
String get noneFeminine => 'None';
@override
String get parcoursNoMapSection =>
'No Map section in this configuration — create one to be able to reuse it here.';
@override
String get parcoursSaveSectionFirst =>
'Save the section first to manage its trails.';
@override
String get pathTitleLabel => 'Trail title';
@override
String get pathDescriptionLabel => 'Trail description';
@override
String get pathMoodTitle => 'Mood';
@override
String get pathMoodSub => 'Classic visit or game';
@override
String get pathMoodQuestion => 'Which mood?';
@override
String get pathMoodVisit => 'Visit';
@override
String get pathMoodVisitDesc =>
'Discovery trail: the visitor moves at their own pace.';
@override
String get pathMoodGame => 'Game';
@override
String get pathMoodGameDesc =>
'Escape game or treasure hunt: start and end messages, game wording on the steps.';
@override
String get pathOptionsTitle => 'Trail options';
@override
String get pathProgressionQuestion => 'How does the visitor progress?';
@override
String get pathHideNextSteps => 'Hide steps not reached yet';
@override
String get pathHideNextStepsDesc =>
'The visitor only discovers the next steps as they go.';
@override
String get pathEstimatedDuration => 'Estimated duration';
@override
String get pathPanelIntroSub => 'What the visitor sees before starting.';
@override
String get progressionFree => 'Free';
@override
String get progressionFreeDesc => 'The visitor picks the steps in any order.';
@override
String get progressionOrdered => 'In order';
@override
String get progressionOrderedDesc =>
'The visitor follows the sequence; they can go back to a step already seen.';
@override
String get progressionStepByStep => 'Step by step';
@override
String get progressionStepByStepDesc =>
'Each step unlocks by completing the previous one\'s challenge.';
@override
String get stepLocationTitle => 'Location';
@override
String get stepLocationSub => 'Position and geolocated trigger of the step';
@override
String get stepGeoTrigger => 'Geolocated trigger';
@override
String get stepGeoTriggerDesc =>
'The step unlocks automatically when the visitor enters the zone.';
@override
String get stepRadiusLabel => 'Radius';
@override
String get stepRichContentTitle => 'Rich content';
@override
String get stepRichContentSub =>
'Audio guide, images and videos shown on the step page';
@override
String get stepGuideAudioLabel => 'Guide audio';
@override
String get mediasColonLabel => 'Media:';
@override
String get stepNoMedia =>
'No media — click + to add an image, a video or an audio file';
@override
String get stepRiddleSub => 'Riddle to solve in order to progress';
@override
String get stepQuizSub => 'Optional quiz for this step';
@override
String get stepTimerTitle => 'Timer';
@override
String get stepTimerDesc =>
'Times the answer; once the delay is over, the expiry message is shown.';
@override
String get stepTimerExpiredLabel => 'Expiry message:';
@override
String get stepTimerExpiredModalLabel => 'Timer expiry message';
@override
String get questionValidationTypeLabel => 'Validation type:';
@override
String get questionTypeSimple => 'Simple (expected text)';
@override
String get questionTypeMultipleChoice => 'Multiple choice';
@override
String get questionTypeMultipleChoiceShort => 'MCQ';
@override
String get questionTypePuzzle => 'Puzzle';
@override
String get questionDigicodeHint =>
'If the expected answer only contains digits, the visitor automatically gets a lock-style keypad instead of the text field. Nothing to configure.';
@override
String get identityTitle => 'Identity';
@override
String get appearanceTitle => 'Appearance';
@override
String get layoutTitle => 'Layout';
@override
String get optionsTitle => 'Options';
@override
String get configurationColonLabel => 'Configuration:';
@override
String get sectionsSpaceLabel => 'Space for sections (%):';
@override
String get roundedPercentLabel => 'Corner rounding percentage (0-50):';
@override
String get sectionImageBackgroundLabel => 'Background for section images:';
@override
String get deviceNameLabel => 'Device name';
@override
String get noTabletPaired => 'No tablet paired';
@override
String get noConfiguration => 'No configuration';
@override
String get chooseAudioFile => 'Choose an audio file';
@override
String get selectMp3File => 'Select an mp3 audio file';
@override
String get selectFile => 'Select a file';
@override
String get filesLabel => 'Files';
@override
String get addOneOrMoreFiles => 'Add one or more files';
@override
String get searchLocationHint => 'Search for a location';
@override
String get selectThisLocation => 'Choose this location';
@override
String get noLocationChosen => 'No location chosen';
@override
String get changeLocation => 'Change location';
@override
String get geometryEditorTitle => 'Geometry editor';
@override
String get newPoint => 'New point';
@override
String get noPointYet => 'No point yet. Create one to get started.';
@override
String get contentsLabel => 'Point contents';
@override
String get practicalInfoLabel => 'Practical information';
@override
String practicalInfoFilled(int filled, int total) {
return '$filled / $total filled in';
}
@override
String untitledPoint(int index) {
return 'Point $index';
}
@override
String get geometryTypePoint => 'Point';
@override
String get geometryTypeLine => 'Line';
@override
String get geometryTypePolygon => 'Area';
@override
String get geometryClear => 'Clear the shape';
@override
String get geometryExpand => 'Enlarge the map';
@override
String get geometryCollapse => 'Shrink the map';
@override
String get geometryHintPoint =>
'Tap the map to place the point. Drag the point to move it.';
@override
String get geometryHintLine =>
'Tap the map to add points to the line. Drag a point to move it.';
@override
String get geometryHintPolygon =>
'Tap the map to set the polygon vertices. Drag a vertex to move it.';
@override
String get define => 'Define';
@override
String get change => 'Change';
@override
String get validate => 'Confirm';
@override
String get errorLabel => 'Error';
@override
String get noCategory => 'No category';
@override
String get atLeastOneValueRequired => 'At least one value must be selected';
@override
String get selectLanguageHint => 'Please select a language';
@override
String get noTextYet => 'No text yet —';
@override
String get changeTranslations => 'Change translations';
@override
String get changeResources => 'Change resources';
@override
String get translateWithAi => 'Translate with AI';
@override
String get translationApplied => 'Translation applied';
@override
String get noSourceTextToTranslate => 'No source text to translate';
@override
String get aiTranslateError => 'AI translation failed';
@override
String get aiAssistantNotEnabled =>
'The AI assistant is not enabled for this instance';
@override
String get applyToAllLanguages => 'Apply to all languages';
@override
String get textAppliedToAllLanguages =>
'The text was applied to all languages';
@override
String get aiQuotaUnlimited => 'AI quota: unlimited';
@override
String get aiQuotaSharedWithGuide => 'Shared with the visitor assistant';
@override
String get identifierColonLabel => 'Identifier:';
@override
String get qrCodeIdentifierTitle => 'QR code / identifier';
@override
String get storageQuotaExceeded => 'Storage quota exceeded';
@override
String get configImportSuccess =>
'The configuration was imported successfully';
@override
String get configImportError =>
'An error occurred while importing the configuration';
@override
String get configAlreadyExists =>
'The configuration already exists in the system';
@override
String get pageNotFound => '404 — This page does not exist';
@override
String get copied => 'Copied!';
@override
String get webAppCreateEmptyResponse => 'Creation failed (empty response)';
@override
String get webAppNotInitialized =>
'The web application is not initialised yet.';
@override
String get webAppInitialize => 'Initialise the web application';
@override
String get webAppVisitorUrl => 'Visitor URL';
@override
String get webAppPublicApiKey => 'Public API key';
@override
String get webAppContentTitle => 'Web application content';
@override
String get webAppUpdated => 'Web application updated';
@override
String get subscriptionFeatureWebApp =>
'Web visitor app, opened by QR code — no install needed';
@override
String get subscriptionFeatureUnlimited =>
'Unlimited content, agenda, maps and sections';
@override
String get subscriptionFeatureMultilang =>
'Multilingual — your visitors choose their language';
@override
String get subscriptionFeatureBranding =>
'Your colors and logo, your own address';
@override
String get guideIaCollectionTitle => 'Your visitors\' questions';
@override
String get guideIaCollectionSwitch =>
'Record the questions asked to the guide';
@override
String get guideIaCollectionOnDesc =>
'Feeds the \"What your visitors ask\" tab and the report of unanswered questions. Kept for 90 days, then only the groupings by topic remain.';
@override
String get guideIaCollectionOffDesc =>
'No new question will be recorded. The \"What your visitors ask\" tab will stop filling up. Questions already recorded stay until their automatic deletion after 90 days.';
@override
String get sectionTypeMap => 'Map';
@override
String get sectionTypeSlider => 'Slider';
@override
String get sectionTypeVideo => 'Video';
@override
String get sectionTypeWeb => 'Web';
@override
String get sectionTypeMenu => 'Menu';
@override
String get sectionTypeQuiz => 'Quiz';
@override
String get sectionTypeArticle => 'Article';
@override
String get sectionTypePdf => 'PDF';
@override
String get sectionTypeGame => 'Game';
@override
String get sectionTypeAgenda => 'Agenda';
@override
String get sectionTypeWeather => 'Weather';
@override
String get sectionTypeEvent => 'Event';
@override
String get sectionTypeParcours => 'Trail';
@override
String get sectionTypeDefault => 'Section';
@override
String get sectionTypeDescMap => 'Map with points of interest';
@override
String get sectionTypeDescSlider => 'Series of captioned images';
@override
String get sectionTypeDescVideo => 'YouTube, Vimeo, file';
@override
String get sectionTypeDescWeb => 'Embedded external page';
@override
String get sectionTypeDescMenu => 'Groups sub-sections';
@override
String get sectionTypeDescQuiz => 'Questions and scores';
@override
String get sectionTypeDescArticle => 'Text, images, audio';
@override
String get sectionTypeDescPdf => 'Documents to browse';
@override
String get sectionTypeDescGame => 'Image puzzle';
@override
String get sectionTypeDescAgenda => 'Dated events';
@override
String get sectionTypeDescWeather => 'Forecast for a city';
@override
String get sectionTypeDescEvent => 'Programme and site map';
@override
String get sectionTypeDescParcours => 'Guided steps, riddles';
@override
String get sectionFamilyContent => 'Content';
@override
String get sectionFamilyPlaces => 'Places and movement';
@override
String get sectionFamilyInteractive => 'Interactive';
@override
String get sectionFamilyPractical => 'Practical information';
@override
String get sectionTypeFinalWarning =>
'The type cannot be changed after creation.';
@override
String get addContentLabel => 'New content';
@override
String get dragToReorder => 'Drag to reorder';
@override
String get gameTypeLabel => 'Game type';
@override
String get puzzlePreviewLabel => 'Grid';
@override
String get puzzleNoImage => 'Pick an image to see the grid.';
@override
String puzzlePieces(int rows, int cols, int count) {
return '$rows × $cols$count pieces';
}
@override
String get quizScoreMessagesLabel => 'Score messages';
@override
String untitledQuestion(int index) {
return 'Question $index';
}
@override
String untitledEvent(int index) {
return 'Event $index';
}
@override
String untitledFile(int index) {
return 'File $index';
}
@override
String untitledContent(int index) {
return 'Content $index';
}
@override
String get settingsPaneTitle => 'Settings';
@override
String get distributionPaneTitle => 'Distribution';
@override
String configHeaderSubtitle(String date, int sections, int languages) {
return 'Created on $date · $sections sections · $languages languages';
}
@override
String get sectionHiddenBadge => 'Hidden';
@override
String get sectionHideAction => 'Hide in the visitor app';
@override
String get sectionShowAction => 'Show in the visitor app';
@override
String get sectionHiddenSuccess => 'Section hidden';
@override
String get sectionShownSuccess => 'Section shown';
@override
String get sectionVisibilityError =>
'Could not change the section visibility';
@override
String get addSectionTile => 'Add a section';
@override
String get resourceTypeImage => 'Image';
@override
String get resourceTypeImageUrl => 'Image (URL)';
@override
String get resourceTypeVideo => 'Video';
@override
String get resourceTypeVideoUrl => 'Video (URL)';
@override
String get resourceTypeAudio => 'Audio';
@override
String get resourceTypePdf => 'PDF';
@override
String get resourceTypeJson => 'JSON';
@override
String get resourceTypeJsonUrl => 'JSON (URL)';
@override
String get minutesAbbr => 'min';
@override
String get secondsAbbr => 'sec';
@override
String get metersAbbr => 'm';
@override
String planDialogTitle(String name) {
return 'Plan — $name';
}
@override
String sectionConfigTitle(String type) {
return '$type configuration';
}
@override
String questionNumbered(int index) {
return 'Question $index';
}
@override
String selectedCount(int count) {
return '$count selected';
}
@override
String translatedLanguagesCount(int done, int total) {
return '$done / $total languages translated';
}
@override
String aiQuotaUsed(String used, String quota) {
return 'AI quota: $used / $quota used this month';
}
@override
String get webAccessTitle => 'Web access';
}