L'infobulle promettait que ces phrases seraient traduites « comme le reste de vos contenus », mais rien ne les traduisait jamais : BuildFallbackInstruction filtre sur la langue du visiteur et, ne trouvant rien, laisse le modèle improviser son refus. Les formulations du client ne servaient qu'en français. L'enregistrement traduit désormais vers les langues déclarées sur les canaux, en n'appelant l'IA que pour ce qui en a besoin : les langues sans traduction, et toutes les langues si une phrase source a changé depuis le chargement. Une sauvegarde qui ne touche pas aux formulations ne consomme donc pas de jetons. Les langues visées sont celles des canaux, pas les dix supportées, pour la même raison. Un échec de traduction n'empêche pas l'enregistrement : le reste est sauvé, les traductions précédentes sont conservées et l'écran le signale. Effacer toutes les formulations efface aussi leurs traductions, devenues sans objet. Corrige au passage le mot de réveil affiché : le modèle OpenWakeWord est « hey_viva » / « hey_marco », le visiteur doit donc dire « Hey Viva », pas « Viva ». Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1953 lines
44 KiB
Dart
1953 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 =>
|
||
'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 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';
|
||
}
|
||
}
|