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>
1945 lines
44 KiB
Dart
1945 lines
44 KiB
Dart
// 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 => 'Resources';
|
||
|
||
@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 =>
|
||
'Enabled per channel, from each application\'s settings.';
|
||
|
||
@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: they will be translated into their language, like the rest of your content.';
|
||
|
||
@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 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 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 centerPointLabel => 'Center point:';
|
||
|
||
@override
|
||
String get iconLabel => 'Icon:';
|
||
|
||
@override
|
||
String get listViewLabel => 'List view:';
|
||
|
||
@override
|
||
String get typeLabel => 'Type:';
|
||
|
||
@override
|
||
String get zoomLabel => '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 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 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 userCreateError(String message) {
|
||
return 'Creation failed: $message';
|
||
}
|
||
}
|