import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; import 'app_localizations_de.dart'; import 'app_localizations_en.dart'; // ignore_for_file: type=lint /// Callers can lookup localized strings with an instance of AppLocalizations /// returned by `AppLocalizations.of(context)`. /// /// Applications need to include `AppLocalizations.delegate()` in their app's /// `localizationDelegates` list, and the locales they support in the app's /// `supportedLocales` list. For example: /// /// ```dart /// import 'l10n/app_localizations.dart'; /// /// return MaterialApp( /// localizationsDelegates: AppLocalizations.localizationsDelegates, /// supportedLocales: AppLocalizations.supportedLocales, /// home: MyApplicationHome(), /// ); /// ``` /// /// ## Update pubspec.yaml /// /// Please make sure to update your pubspec.yaml to include the following /// packages: /// /// ```yaml /// dependencies: /// # Internationalization support. /// flutter_localizations: /// sdk: flutter /// intl: any # Use the pinned version from flutter_localizations /// /// # Rest of dependencies /// ``` /// /// ## iOS Applications /// /// iOS applications define key application metadata, including supported /// locales, in an Info.plist file that is built into the application bundle. /// To configure the locales supported by your app, you’ll need to edit this /// file. /// /// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. /// Then, in the Project Navigator, open the Info.plist file under the Runner /// project’s Runner folder. /// /// Next, select the Information Property List item, select Add Item from the /// Editor menu, then select Localizations from the pop-up menu. /// /// Select and expand the newly-created Localizations item then, for each /// locale your application supports, add a new item and select the locale /// you wish to add from the pop-up menu in the Value field. This list should /// be consistent with the languages listed in the AppLocalizations.supportedLocales /// property. abstract class AppLocalizations { AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; static AppLocalizations of(BuildContext context) { return Localizations.of(context, AppLocalizations)!; } static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. /// /// Returns a list of localizations delegates containing this delegate along with /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, /// and GlobalWidgetsLocalizations.delegate. /// /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. static const List> localizationsDelegates = >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ Locale('de'), Locale('en'), Locale('en', 'GB'), Locale('en', 'US'), ]; /// The app's name: the window's title, and where halkyon_app's texts name the app. /// /// In en, this message translates to: /// **'Halkyon Todo'** String get appTitle; /// The app's word in its wordmark, under "Halkyon". /// /// In en, this message translates to: /// **'Todo'** String get launchProduct; /// No description provided for @instanceFirstStartSubtitle. /// /// In en, this message translates to: /// **'Choose the instance to keep your tasks on. Someone runs each one; you can add others later.'** String get instanceFirstStartSubtitle; /// No description provided for @accountTitle. /// /// In en, this message translates to: /// **'Account'** String get accountTitle; /// No description provided for @accountDeleteMessage. /// /// In en, this message translates to: /// **'Your account is deleted on the server and on all your devices. This can\'t be undone.'** String get accountDeleteMessage; /// No description provided for @aboutTitle. /// /// In en, this message translates to: /// **'About Halkyon Todo'** String get aboutTitle; /// No description provided for @shellTabToday. /// /// In en, this message translates to: /// **'Today'** String get shellTabToday; /// No description provided for @shellTabUpcoming. /// /// In en, this message translates to: /// **'Upcoming'** String get shellTabUpcoming; /// No description provided for @shellTabInbox. /// /// In en, this message translates to: /// **'Inbox'** String get shellTabInbox; /// Under Today's title: how many tasks are overdue or due today. /// /// In en, this message translates to: /// **'{count, plural, =1{1 task} other{{count} tasks}}'** String todayCount(int count); /// No description provided for @browseProfile. /// /// In en, this message translates to: /// **'Profile'** String get browseProfile; /// No description provided for @browseProfileHint. /// /// In en, this message translates to: /// **'Your account, how you sign in and your public profile'** String get browseProfileHint; /// No description provided for @shellTabBrowse. /// /// In en, this message translates to: /// **'Browse'** String get shellTabBrowse; /// No description provided for @settingsTitle. /// /// In en, this message translates to: /// **'Settings'** String get settingsTitle; /// No description provided for @settingsVersion. /// /// In en, this message translates to: /// **'Version {version} (build {build})'** String settingsVersion(String version, String build); /// No description provided for @clear. /// /// In en, this message translates to: /// **'Clear'** String get clear; /// No description provided for @colorLabel. /// /// In en, this message translates to: /// **'Colour'** String get colorLabel; /// No description provided for @dateTitle. /// /// In en, this message translates to: /// **'Date'** String get dateTitle; /// No description provided for @dateNextWeek. /// /// In en, this message translates to: /// **'Next week'** String get dateNextWeek; /// No description provided for @dateWeekend. /// /// In en, this message translates to: /// **'This weekend'** String get dateWeekend; /// No description provided for @datePick. /// /// In en, this message translates to: /// **'Pick a day'** String get datePick; /// No description provided for @dateTime. /// /// In en, this message translates to: /// **'Time'** String get dateTime; /// No description provided for @dateNone. /// /// In en, this message translates to: /// **'No date'** String get dateNone; /// No description provided for @dateNoneYet. /// /// In en, this message translates to: /// **'No date'** String get dateNoneYet; /// No description provided for @dayToday. /// /// In en, this message translates to: /// **'Today'** String get dayToday; /// No description provided for @dayTomorrow. /// /// In en, this message translates to: /// **'Tomorrow'** String get dayTomorrow; /// No description provided for @dayYesterday. /// /// In en, this message translates to: /// **'Yesterday'** String get dayYesterday; /// No description provided for @dayHeadingNamed. /// /// In en, this message translates to: /// **'{date} · {name}'** String dayHeadingNamed(String date, String name); /// No description provided for @deadlineOn. /// /// In en, this message translates to: /// **'Deadline {day}'** String deadlineOn(String day); /// No description provided for @deadlineNone. /// /// In en, this message translates to: /// **'No deadline'** String get deadlineNone; /// No description provided for @keysMissing. /// /// In en, this message translates to: /// **'This device can\'t save: it doesn\'t hold your account\'s keys. Sign in with your password or recovery phrase to add them.'** String get keysMissing; /// No description provided for @filtersLabelsTitle. /// /// In en, this message translates to: /// **'Filters & labels'** String get filtersLabelsTitle; /// No description provided for @filtersLabelsHint. /// /// In en, this message translates to: /// **'Views of your tasks, kept'** String get filtersLabelsHint; /// No description provided for @filtersTitle. /// /// In en, this message translates to: /// **'My filters'** String get filtersTitle; /// No description provided for @filtersNone. /// /// In en, this message translates to: /// **'No filters yet.'** String get filtersNone; /// No description provided for @filterAdd. /// /// In en, this message translates to: /// **'New filter'** String get filterAdd; /// No description provided for @filterEdit. /// /// In en, this message translates to: /// **'Edit filter'** String get filterEdit; /// No description provided for @filterDelete. /// /// In en, this message translates to: /// **'Delete filter'** String get filterDelete; /// No description provided for @filterDeleteTitle. /// /// In en, this message translates to: /// **'Delete the filter?'** String get filterDeleteTitle; /// No description provided for @filterName. /// /// In en, this message translates to: /// **'Name'** String get filterName; /// No description provided for @filterDescription. /// /// In en, this message translates to: /// **'Description'** String get filterDescription; /// No description provided for @filterQuery. /// /// In en, this message translates to: /// **'Query'** String get filterQuery; /// No description provided for @filterQueryHint. /// /// In en, this message translates to: /// **'today & p1'** String get filterQueryHint; /// No description provided for @filterFavorite. /// /// In en, this message translates to: /// **'Add to favourites'** String get filterFavorite; /// No description provided for @filterUnfavorite. /// /// In en, this message translates to: /// **'Remove from favourites'** String get filterUnfavorite; /// No description provided for @filterPreviewEmpty. /// /// In en, this message translates to: /// **'Nothing matches yet.'** String get filterPreviewEmpty; /// No description provided for @filterNothing. /// /// In en, this message translates to: /// **'No tasks in this filter at the moment.'** String get filterNothing; /// No description provided for @filterHelp. /// /// In en, this message translates to: /// **'today, tomorrow, overdue, no date, 7 days, p1 to p4, #Project, ##Project with its sub-projects, /Section, @label, search: word. Combine them with & (and), | (or), ! (not) and parentheses; * stands for anything in a name.'** String get filterHelp; /// No description provided for @filterMenu. /// /// In en, this message translates to: /// **'Filter menu'** String get filterMenu; /// No description provided for @labelMenu. /// /// In en, this message translates to: /// **'Label menu'** String get labelMenu; /// No description provided for @labelNothing. /// /// In en, this message translates to: /// **'No open tasks have this label.'** String get labelNothing; /// No description provided for @labelEditEntry. /// /// In en, this message translates to: /// **'Edit label'** String get labelEditEntry; /// The filter editor's preview. /// /// In en, this message translates to: /// **'{count, plural, =1{1 task matches} other{{count} tasks match}}'** String filterMatches(int count); /// The filter editor when its query cannot be read. /// /// In en, this message translates to: /// **'Not understood near “{near}”'** String filterNotRead(String near); /// The filter editor when its query stops before it is complete. /// /// In en, this message translates to: /// **'This query ends too soon'** String get filterNotReadEnd; /// No description provided for @labelsTitle. /// /// In en, this message translates to: /// **'Labels'** String get labelsTitle; /// No description provided for @labelsNone. /// /// In en, this message translates to: /// **'No labels yet.'** String get labelsNone; /// No description provided for @labelsNoneSet. /// /// In en, this message translates to: /// **'No labels'** String get labelsNoneSet; /// No description provided for @labelsCount. /// /// In en, this message translates to: /// **'{count, plural, =1{1 label} other{{count} labels}}'** String labelsCount(int count); /// No description provided for @labelAdd. /// /// In en, this message translates to: /// **'New label'** String get labelAdd; /// No description provided for @labelEdit. /// /// In en, this message translates to: /// **'Edit label'** String get labelEdit; /// No description provided for @labelDelete. /// /// In en, this message translates to: /// **'Delete label'** String get labelDelete; /// No description provided for @labelDeleteTitle. /// /// In en, this message translates to: /// **'Delete the label?'** String get labelDeleteTitle; /// No description provided for @labelDeleteMessage. /// /// In en, this message translates to: /// **'\"{name}\" is taken off every task that has it.'** String labelDeleteMessage(String name); /// No description provided for @nameLabel. /// /// In en, this message translates to: /// **'Name'** String get nameLabel; /// No description provided for @save. /// /// In en, this message translates to: /// **'Save'** String get save; /// No description provided for @overdue. /// /// In en, this message translates to: /// **'Overdue'** String get overdue; /// No description provided for @reschedule. /// /// In en, this message translates to: /// **'Reschedule'** String get reschedule; /// No description provided for @priorityTitle. /// /// In en, this message translates to: /// **'Priority'** String get priorityTitle; /// No description provided for @priority1. /// /// In en, this message translates to: /// **'Priority 1'** String get priority1; /// No description provided for @priority2. /// /// In en, this message translates to: /// **'Priority 2'** String get priority2; /// No description provided for @priority3. /// /// In en, this message translates to: /// **'Priority 3'** String get priority3; /// No description provided for @priority4. /// /// In en, this message translates to: /// **'No priority'** String get priority4; /// No description provided for @projectsTitle. /// /// In en, this message translates to: /// **'Projects'** String get projectsTitle; /// No description provided for @projectsNone. /// /// In en, this message translates to: /// **'No projects of your own yet.'** String get projectsNone; /// No description provided for @projectAdd. /// /// In en, this message translates to: /// **'Add project'** String get projectAdd; /// No description provided for @projectEdit. /// /// In en, this message translates to: /// **'Edit project'** String get projectEdit; /// No description provided for @projectDelete. /// /// In en, this message translates to: /// **'Delete project'** String get projectDelete; /// No description provided for @projectDeleteTitle. /// /// In en, this message translates to: /// **'Delete the project?'** String get projectDeleteTitle; /// No description provided for @projectDeleteMessage. /// /// In en, this message translates to: /// **'\"{name}\" is deleted with its sections and tasks, on all your devices.'** String projectDeleteMessage(String name); /// A project's editor (ADR 0033, D28), as Todoist's Add project. /// /// In en, this message translates to: /// **'Parent project'** String get projectParent; /// No description provided for @projectNoParent. /// /// In en, this message translates to: /// **'No parent'** String get projectNoParent; /// No description provided for @projectFavorite. /// /// In en, this message translates to: /// **'Favourite'** String get projectFavorite; /// No description provided for @favoritesTitle. /// /// In en, this message translates to: /// **'Favourites'** String get favoritesTitle; /// No description provided for @projectSubProjectsHide. /// /// In en, this message translates to: /// **'Hide sub-projects'** String get projectSubProjectsHide; /// No description provided for @projectSubProjectsShow. /// /// In en, this message translates to: /// **'Show sub-projects'** String get projectSubProjectsShow; /// Deleting a project with sub-projects (ADR 0033, D28): subProjects their names, separated by commas. /// /// In en, this message translates to: /// **'\"{name}\" is deleted with its sub-projects {subProjects}, and their sections and tasks, on all your devices.'** String projectDeleteWithSubProjects(String name, String subProjects); /// No description provided for @projectEmptyTitle. /// /// In en, this message translates to: /// **'Nothing to do here'** String get projectEmptyTitle; /// No description provided for @projectEmptyHint. /// /// In en, this message translates to: /// **'Add a task with the + button.'** String get projectEmptyHint; /// No description provided for @projectGone. /// /// In en, this message translates to: /// **'This project was deleted.'** String get projectGone; /// No description provided for @projectMenu. /// /// In en, this message translates to: /// **'More'** String get projectMenu; /// No description provided for @projectPickTitle. /// /// In en, this message translates to: /// **'Project'** String get projectPickTitle; /// No description provided for @sectionAdd. /// /// In en, this message translates to: /// **'Add section'** String get sectionAdd; /// No description provided for @sectionEdit. /// /// In en, this message translates to: /// **'Rename section'** String get sectionEdit; /// No description provided for @sectionDelete. /// /// In en, this message translates to: /// **'Delete section'** String get sectionDelete; /// No description provided for @sectionDeleteTitle. /// /// In en, this message translates to: /// **'Delete the section?'** String get sectionDeleteTitle; /// No description provided for @sectionDeleteMessage. /// /// In en, this message translates to: /// **'\"{name}\" is deleted with its tasks.'** String sectionDeleteMessage(String name); /// No description provided for @sectionMenu. /// /// In en, this message translates to: /// **'Section'** String get sectionMenu; /// No description provided for @subTasks. /// /// In en, this message translates to: /// **'Sub-tasks'** String get subTasks; /// No description provided for @subTasksDone. /// /// In en, this message translates to: /// **'Sub-tasks {done}/{count}'** String subTasksDone(int done, int count); /// No description provided for @subTaskAdd. /// /// In en, this message translates to: /// **'Add sub-task'** String get subTaskAdd; /// No description provided for @taskTitle. /// /// In en, this message translates to: /// **'Task'** String get taskTitle; /// No description provided for @taskAddTitle. /// /// In en, this message translates to: /// **'Add task'** String get taskAddTitle; /// No description provided for @taskAdd. /// /// In en, this message translates to: /// **'Add'** String get taskAdd; /// No description provided for @taskAddOn. /// /// In en, this message translates to: /// **'Add a task on {day}'** String taskAddOn(String day); /// No description provided for @taskTitleHint. /// /// In en, this message translates to: /// **'Task name'** String get taskTitleHint; /// No description provided for @taskDescription. /// /// In en, this message translates to: /// **'Description'** String get taskDescription; /// No description provided for @taskDescriptionHint. /// /// In en, this message translates to: /// **'Description'** String get taskDescriptionHint; /// No description provided for @taskComplete. /// /// In en, this message translates to: /// **'Mark as done'** String get taskComplete; /// No description provided for @taskReopen. /// /// In en, this message translates to: /// **'Mark as not done'** String get taskReopen; /// No description provided for @taskCompleted. /// /// In en, this message translates to: /// **'Task done'** String get taskCompleted; /// No description provided for @taskDelete. /// /// In en, this message translates to: /// **'Delete task'** String get taskDelete; /// No description provided for @taskDeleteTitle. /// /// In en, this message translates to: /// **'Delete the task?'** String get taskDeleteTitle; /// No description provided for @taskDeleteMessage. /// /// In en, this message translates to: /// **'\"{title}\" is deleted on all your devices.'** String taskDeleteMessage(String title); /// No description provided for @taskDeleteWithSubTasks. /// /// In en, this message translates to: /// **'\"{title}\" is deleted with its {count, plural, =1{sub-task} other{{count} sub-tasks}}, on all your devices.'** String taskDeleteWithSubTasks(String title, int count); /// No description provided for @taskGone. /// /// In en, this message translates to: /// **'This task was deleted.'** String get taskGone; /// No description provided for @todayEmptyTitle. /// /// In en, this message translates to: /// **'Nothing due today'** String get todayEmptyTitle; /// No description provided for @todayEmptyHint. /// /// In en, this message translates to: /// **'Tasks dated today, and those overdue, show here.'** String get todayEmptyHint; /// No description provided for @lockedRows. /// /// In en, this message translates to: /// **'{count, plural, =1{1 item doesn\'t open on this device.} other{{count} items don\'t open on this device.}}'** String lockedRows(int count); /// No description provided for @inboxMissingTitle. /// /// In en, this message translates to: /// **'No Inbox yet'** String get inboxMissingTitle; /// No description provided for @inboxMissingHint. /// /// In en, this message translates to: /// **'Your Inbox comes with the next sync, or once this device holds your account\'s keys.'** String get inboxMissingHint; /// No description provided for @repeatTitle. /// /// In en, this message translates to: /// **'Repeat'** String get repeatTitle; /// No description provided for @repeatNone. /// /// In en, this message translates to: /// **'Doesn\'t repeat'** String get repeatNone; /// No description provided for @repeatCustom. /// /// In en, this message translates to: /// **'Custom'** String get repeatCustom; /// No description provided for @repeatEveryDay. /// /// In en, this message translates to: /// **'{count, plural, =1{Every day} other{Every {count} days}}'** String repeatEveryDay(int count); /// No description provided for @repeatEveryWeek. /// /// In en, this message translates to: /// **'{count, plural, =1{Every week} other{Every {count} weeks}}'** String repeatEveryWeek(int count); /// No description provided for @repeatEveryMonth. /// /// In en, this message translates to: /// **'{count, plural, =1{Every month} other{Every {count} months}}'** String repeatEveryMonth(int count); /// No description provided for @repeatEveryYear. /// /// In en, this message translates to: /// **'{count, plural, =1{Every year} other{Every {count} years}}'** String repeatEveryYear(int count); /// No description provided for @repeatWeekdays. /// /// In en, this message translates to: /// **'Every weekday'** String get repeatWeekdays; /// No description provided for @repeatOn. /// /// In en, this message translates to: /// **'{rule} on {on}'** String repeatOn(String rule, String on); /// No description provided for @repeatMonthDay. /// /// In en, this message translates to: /// **'day {day}'** String repeatMonthDay(int day); /// No description provided for @repeatMonthWeek. /// /// In en, this message translates to: /// **'the {nth, select, 1{first} 2{second} 3{third} 4{fourth} other{last}} {weekday}'** String repeatMonthWeek(String nth, String weekday); /// No description provided for @repeatFromCompletion. /// /// In en, this message translates to: /// **'{rule}, from when it\'s done'** String repeatFromCompletion(String rule); /// No description provided for @repeatUntil. /// /// In en, this message translates to: /// **'{rule}, until {day}'** String repeatUntil(String rule, String day); /// No description provided for @repeatLeft. /// /// In en, this message translates to: /// **'{rule}, {count, plural, =0{this time only} =1{once more} other{{count} more times}}'** String repeatLeft(String rule, int count); /// No description provided for @repeatEvery. /// /// In en, this message translates to: /// **'Every'** String get repeatEvery; /// No description provided for @repeatUnitDays. /// /// In en, this message translates to: /// **'Days'** String get repeatUnitDays; /// No description provided for @repeatUnitWeeks. /// /// In en, this message translates to: /// **'Weeks'** String get repeatUnitWeeks; /// No description provided for @repeatUnitMonths. /// /// In en, this message translates to: /// **'Months'** String get repeatUnitMonths; /// No description provided for @repeatUnitYears. /// /// In en, this message translates to: /// **'Years'** String get repeatUnitYears; /// No description provided for @repeatCountFromCompletion. /// /// In en, this message translates to: /// **'Count from when it\'s done'** String get repeatCountFromCompletion; /// No description provided for @repeatCountFromCompletionHint. /// /// In en, this message translates to: /// **'Not from its date: done late, it comes again as long after.'** String get repeatCountFromCompletionHint; /// No description provided for @repeatEnds. /// /// In en, this message translates to: /// **'Ends'** String get repeatEnds; /// No description provided for @repeatEndsNever. /// /// In en, this message translates to: /// **'Never'** String get repeatEndsNever; /// No description provided for @repeatEndsOn. /// /// In en, this message translates to: /// **'On a day'** String get repeatEndsOn; /// No description provided for @repeatEndsAfter. /// /// In en, this message translates to: /// **'{count, plural, =1{After once} other{After {count} times}}'** String repeatEndsAfter(int count); /// No description provided for @remindersTitle. /// /// In en, this message translates to: /// **'Reminders'** String get remindersTitle; /// No description provided for @remindersNone. /// /// In en, this message translates to: /// **'No reminders'** String get remindersNone; /// No description provided for @reminderAtTime. /// /// In en, this message translates to: /// **'At its time'** String get reminderAtTime; /// No description provided for @reminderMinutesBefore. /// /// In en, this message translates to: /// **'{count, plural, =1{1 minute before} other{{count} minutes before}}'** String reminderMinutesBefore(int count); /// No description provided for @reminderHoursBefore. /// /// In en, this message translates to: /// **'{count, plural, =1{1 hour before} other{{count} hours before}}'** String reminderHoursBefore(int count); /// No description provided for @reminderDaysBefore. /// /// In en, this message translates to: /// **'{count, plural, =1{1 day before} other{{count} days before}}'** String reminderDaysBefore(int count); /// No description provided for @reminderDue. /// /// In en, this message translates to: /// **'Due at {time}'** String reminderDue(String time); /// No description provided for @remindersChannel. /// /// In en, this message translates to: /// **'Task reminders'** String get remindersChannel; /// No description provided for @remindersNotAllowed. /// /// In en, this message translates to: /// **'Notifications are off for Halkyon Todo: reminders show once you allow them in the system\'s settings.'** String get remindersNotAllowed; /// No description provided for @remindersOnThisDevice. /// /// In en, this message translates to: /// **'Reminders come on each of your devices that opens your tasks.'** String get remindersOnThisDevice; /// No description provided for @reminderBody. /// /// In en, this message translates to: /// **'Reminder'** String get reminderBody; /// No description provided for @remindersAtTimes. /// /// In en, this message translates to: /// **'At a time of their own'** String get remindersAtTimes; /// No description provided for @reminderAddTime. /// /// In en, this message translates to: /// **'Remind at a time'** String get reminderAddTime; /// No description provided for @reminderRemove. /// /// In en, this message translates to: /// **'Remove the reminder'** String get reminderRemove; /// No description provided for @durationTitle. /// /// In en, this message translates to: /// **'Duration'** String get durationTitle; /// No description provided for @durationNone. /// /// In en, this message translates to: /// **'No duration'** String get durationNone; /// No description provided for @durationHours. /// /// In en, this message translates to: /// **'{hours} h'** String durationHours(int hours); /// No description provided for @durationMinutes. /// /// In en, this message translates to: /// **'{minutes} min'** String durationMinutes(int minutes); /// No description provided for @durationHoursMinutes. /// /// In en, this message translates to: /// **'{hours} h {minutes} min'** String durationHoursMinutes(int hours, int minutes); /// No description provided for @weekPrevious. /// /// In en, this message translates to: /// **'Previous week'** String get weekPrevious; /// No description provided for @weekNext. /// /// In en, this message translates to: /// **'Following week'** String get weekNext; /// No description provided for @searchTitle. /// /// In en, this message translates to: /// **'Search'** String get searchTitle; /// No description provided for @searchHint. /// /// In en, this message translates to: /// **'Search tasks and projects'** String get searchHint; /// No description provided for @searchEmpty. /// /// In en, this message translates to: /// **'Find a task by the words in its title, its description or its labels. Search runs on this device: your instance can\'t read your tasks.'** String get searchEmpty; /// No description provided for @searchNone. /// /// In en, this message translates to: /// **'Nothing found for “{query}”.'** String searchNone(String query); /// No description provided for @searchProjects. /// /// In en, this message translates to: /// **'Projects'** String get searchProjects; /// No description provided for @searchTasks. /// /// In en, this message translates to: /// **'Tasks'** String get searchTasks; /// No description provided for @taskMore. /// /// In en, this message translates to: /// **'Task options'** String get taskMore; /// No description provided for @taskAddedOn. /// /// In en, this message translates to: /// **'Added on {when}'** String taskAddedOn(String when); /// No description provided for @taskDuplicate. /// /// In en, this message translates to: /// **'Duplicate'** String get taskDuplicate; /// No description provided for @taskDuplicated. /// /// In en, this message translates to: /// **'Task duplicated'** String get taskDuplicated; /// No description provided for @subTasksHideDone. /// /// In en, this message translates to: /// **'Hide done sub-tasks'** String get subTasksHideDone; /// No description provided for @subTasksShowDone. /// /// In en, this message translates to: /// **'Show done sub-tasks'** String get subTasksShowDone; /// No description provided for @taskClose. /// /// In en, this message translates to: /// **'Close'** String get taskClose; /// No description provided for @taskPath. /// /// In en, this message translates to: /// **'Where the task is'** String get taskPath; /// No description provided for @weekToday. /// /// In en, this message translates to: /// **'Back to today'** String get weekToday; /// No description provided for @monthPrevious. /// /// In en, this message translates to: /// **'Previous month'** String get monthPrevious; /// No description provided for @monthNext. /// /// In en, this message translates to: /// **'Following month'** String get monthNext; /// No description provided for @monthShow. /// /// In en, this message translates to: /// **'Show the whole month'** String get monthShow; /// No description provided for @monthHide. /// /// In en, this message translates to: /// **'Show one week'** String get monthHide; /// No description provided for @selectTasks. /// /// In en, this message translates to: /// **'Select tasks'** String get selectTasks; /// No description provided for @selectionCount. /// /// In en, this message translates to: /// **'{count, plural, =0{Select tasks} =1{1 task selected} other{{count} tasks selected}}'** String selectionCount(int count); /// No description provided for @selectionEnd. /// /// In en, this message translates to: /// **'Stop selecting'** String get selectionEnd; /// No description provided for @selectionDate. /// /// In en, this message translates to: /// **'Date'** String get selectionDate; /// No description provided for @selectionMove. /// /// In en, this message translates to: /// **'Move to'** String get selectionMove; /// No description provided for @selectionLabels. /// /// In en, this message translates to: /// **'Labels'** String get selectionLabels; /// No description provided for @selectionPriority. /// /// In en, this message translates to: /// **'Priority'** String get selectionPriority; /// No description provided for @selectionMore. /// /// In en, this message translates to: /// **'More'** String get selectionMore; /// No description provided for @selectionDelete. /// /// In en, this message translates to: /// **'{count, plural, =1{Delete 1 task} other{Delete {count} tasks}}'** String selectionDelete(int count); /// No description provided for @selectionDeleteTitle. /// /// In en, this message translates to: /// **'Delete the tasks?'** String get selectionDeleteTitle; /// No description provided for @selectionDeleteMessage. /// /// In en, this message translates to: /// **'{count, plural, =1{1 task is deleted with its sub-tasks, on all your devices.} other{{count} tasks are deleted with their sub-tasks, on all your devices.}}'** String selectionDeleteMessage(int count); /// No description provided for @selectionDuplicate. /// /// In en, this message translates to: /// **'{count, plural, =1{Duplicate 1 task} other{Duplicate {count} tasks}}'** String selectionDuplicate(int count); /// No description provided for @selectionComplete. /// /// In en, this message translates to: /// **'{count, plural, =1{Complete 1 task} other{Complete {count} tasks}}'** String selectionComplete(int count); /// No description provided for @selectionDeadline. /// /// In en, this message translates to: /// **'Deadline'** String get selectionDeadline; /// No description provided for @tasksCompleted. /// /// In en, this message translates to: /// **'{count, plural, =1{Task done} other{{count} tasks done}}'** String tasksCompleted(int count); /// No description provided for @swipeSelect. /// /// In en, this message translates to: /// **'Select'** String get swipeSelect; /// No description provided for @swipeDate. /// /// In en, this message translates to: /// **'Date'** String get swipeDate; /// No description provided for @tasksMenu. /// /// In en, this message translates to: /// **'More'** String get tasksMenu; /// Quick add's + menu, holding Description and Deadline (ADR 0033, D15). /// /// In en, this message translates to: /// **'More'** String get quickAddMore; /// Below quick add's title while it has tokens recognised (D15). /// /// In en, this message translates to: /// **'Tap a highlighted word, or press Backspace right after it, to keep it as text.'** String get quickAddTokenHint; /// Tooltip of quick add's microphone, shown while the title is empty (D29). /// /// In en, this message translates to: /// **'Dictate the task'** String get quickAddSpeak; /// Tooltip of quick add's microphone while it listens (D29). /// /// In en, this message translates to: /// **'Stop listening'** String get quickAddStopListening; /// Shown when quick add's microphone can't listen, as with the microphone refused (D29). /// /// In en, this message translates to: /// **'This device can\'t listen now. Check that the app may use the microphone and that speech recognition is on.'** String get quickAddSpeechUnavailable; /// Quick add's deadline chip and menu entry (D15). /// /// In en, this message translates to: /// **'Deadline'** String get deadlineTitle; /// Snack bar after a task was dragged into another place (ADR 0033, D16). /// /// In en, this message translates to: /// **'Order changed'** String get orderChanged; /// The × left in the add button's place while it is dragged (D16). /// /// In en, this message translates to: /// **'Drop here to cancel'** String get addTaskCancel; /// Snack bar after a task was dragged onto another day in Upcoming (ADR 0033, D16). /// /// In en, this message translates to: /// **'Moved to {day}'** String taskMovedTo(String day); /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Display'** String get display; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Completed tasks'** String get displayCompleted; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Sort'** String get displaySort; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Grouping'** String get displayGrouping; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Sorting'** String get displaySorting; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Filter'** String get displayFilter; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Deadline'** String get displayDeadline; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Label'** String get displayLabel; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Reset all'** String get displayReset; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Done'** String get displayDone; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'All'** String get displayAll; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Any'** String get displayAny; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'None'** String get groupingNone; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Date'** String get groupingDate; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Deadline'** String get groupingDeadline; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Added date'** String get groupingAdded; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Priority'** String get groupingPriority; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Label'** String get groupingLabel; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Manual'** String get sortingManual; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Name'** String get sortingName; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Date'** String get sortingDate; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Deadline'** String get sortingDeadline; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Added date'** String get sortingAdded; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Priority'** String get sortingPriority; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Today'** String get rangeToday; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'This week'** String get rangeThisWeek; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Next 7 days'** String get rangeNext7; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'This month'** String get rangeThisMonth; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Next 30 days'** String get rangeNext30; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'No date'** String get rangeNoDate; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'No deadline'** String get rangeNoDeadline; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Nothing matches'** String get viewNothingTitle; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'This view\'s filters leave out every task here. Display changes them.'** String get viewNothingHint; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Save'** String get displaySave; /// A project's Display sheet and what it shows (ADR 0033, D17). /// /// In en, this message translates to: /// **'Cancel'** String get displayCancel; /// A project's group of tasks without a label (ADR 0033, D17). /// /// In en, this message translates to: /// **'No label'** String get groupNoLabel; /// A project's layout in its Display, and its board's columns (ADR 0033, D17). /// /// In en, this message translates to: /// **'Layout'** String get layoutTitle; /// A project's layout in its Display, and its board's columns (ADR 0033, D17). /// /// In en, this message translates to: /// **'List'** String get layoutList; /// A project's layout in its Display, and its board's columns (ADR 0033, D17). /// /// In en, this message translates to: /// **'Board'** String get layoutBoard; /// A project's layout in its Display, and its board's columns (ADR 0033, D17). /// /// In en, this message translates to: /// **'(No section)'** String get boardNoSection; /// A project's Calendar layout and its Display (ADR 0033, D17). /// /// In en, this message translates to: /// **'Calendar'** String get layoutCalendar; /// A project's Calendar layout and its Display (ADR 0033, D17). /// /// In en, this message translates to: /// **'Future occurrences'** String get displayOccurrences; /// A project's Calendar layout and its Display (ADR 0033, D17). /// /// In en, this message translates to: /// **'No date'** String get calendarNoDate; /// A project's Calendar layout and its Display (ADR 0033, D17). /// /// In en, this message translates to: /// **'Every task here has a date'** String get calendarNoDateEmpty; /// A project's Calendar layout and its Display (ADR 0033, D17). /// /// In en, this message translates to: /// **'Tasks of this project without a date show here.'** String get calendarNoDateHint; /// A project's Calendar layout and its Display (ADR 0033, D17). /// /// In en, this message translates to: /// **'A later time of a repeating task'** String get taskLater; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'Smart'** String get sortingSmart; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'Agenda'** String get layoutAgenda; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'3-day'** String get layoutThreeDay; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'Colouring'** String get displayColoring; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'Project'** String get coloringProject; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'All day'** String get allDay; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'Earlier days'** String get daysPrevious; /// Upcoming's Display and its 3-day grid (ADR 0033, D17). /// /// In en, this message translates to: /// **'Later days'** String get daysNext; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'Tasks'** String get settingsTasks; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'Start the week on'** String get weekStartTitle; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'As the language has it'** String get weekStartLanguage; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'Reset sub-tasks'** String get resetSubTasksTitle; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'Open them again when a recurring task is done'** String get resetSubTasksHint; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'Automatic reminder'** String get automaticReminderTitle; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'For a task given a time, unless it has reminders of its own'** String get automaticReminderHint; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'None'** String get automaticReminderNone; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'When snoozed'** String get snoozeTitle; /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'{count, plural, =1{1 minute} other{{count} minutes}}'** String snoozeMinutes(int count); /// Settings of tasks and reminders (ADR 0033, D4). /// /// In en, this message translates to: /// **'Snooze {count} min'** String reminderSnooze(int count); /// Settings' Reminders while notifications are off and reminders are planned (ADR 0033, D31). /// /// In en, this message translates to: /// **'Notifications are off'** String get notificationsOffTitle; /// Settings' Reminders while notifications are off and reminders are planned (ADR 0033, D31). /// /// In en, this message translates to: /// **'Reminders can\'t show until Halkyon Todo may notify you.'** String get notificationsOffHint; /// Settings' Reminders while notifications are off and reminders are planned (ADR 0033, D31). /// /// In en, this message translates to: /// **'Turn on'** String get notificationsTurnOn; /// A project's Calendar as a month on wide windows (ADR 0033, D17): a day's tasks that don't fit. /// /// In en, this message translates to: /// **'{count} more'** String monthMore(int count); /// intl's DateFormat pattern of a day's heading in Today and Upcoming, as Todoist's ("Tuesday, 3 Nov"): EEEE the weekday, d the day, MMM the short month. /// /// In en, this message translates to: /// **'EEEE, d MMM'** String get dayHeadingPattern; /// No description provided for @overdueHide. /// /// In en, this message translates to: /// **'Hide what is overdue'** String get overdueHide; /// No description provided for @overdueShow. /// /// In en, this message translates to: /// **'Show what is overdue'** String get overdueShow; /// No description provided for @paneResize. /// /// In en, this message translates to: /// **'Resize'** String get paneResize; /// Today's app bar in its Calendar layout (ADR 0033, D30, as Todoist's): shows or hides the Plan, counting the tasks it holds. /// /// In en, this message translates to: /// **'Plan: {count}'** String planButton(int count); /// Today's Plan beside or below its day of hours (ADR 0033, D30). /// /// In en, this message translates to: /// **'Plan'** String get planTitle; /// Tooltip of Today's Plan button while the Plan is hidden (ADR 0033, D30). /// /// In en, this message translates to: /// **'Show the Plan'** String get planShow; /// Tooltip of Today's Plan button and the Plan's close button while it shows (ADR 0033, D30). /// /// In en, this message translates to: /// **'Hide the Plan'** String get planHide; /// No description provided for @planNoDate. /// /// In en, this message translates to: /// **'No date'** String get planNoDate; /// Today's Plan (ADR 0033, D30): the group of today's tasks without a time, to be given one. /// /// In en, this message translates to: /// **'To plan'** String get planToPlan; /// Today's Plan (ADR 0033, D30, Todoist's word): the group of today's tasks with a time. /// /// In en, this message translates to: /// **'Time-blocked'** String get planTimeBlocked; /// Today's Plan (ADR 0033, D30) while it holds no task. /// /// In en, this message translates to: /// **'Nothing to plan'** String get planEmpty; /// Today's Plan (ADR 0033, D30) while a block of the day is dragged over it. /// /// In en, this message translates to: /// **'Drop here to take its time away'** String get planDropHint; /// Tooltip folding a group of Today's Plan (ADR 0033, D30). /// /// In en, this message translates to: /// **'Hide {group}'** String planGroupHide(String group); /// Tooltip unfolding a group of Today's Plan (ADR 0033, D30). /// /// In en, this message translates to: /// **'Show {group}'** String planGroupShow(String group); /// Today's Plan's project filter (ADR 0033, D30) while it keeps every project, and the button putting it back. /// /// In en, this message translates to: /// **'All projects'** String get planAllProjects; /// Today's Plan's project filter (ADR 0033, D30) while it keeps several projects. /// /// In en, this message translates to: /// **'{count, plural, =1{1 project} other{{count} projects}}'** String planProjectsCount(int count); /// Today's Plan's project filter (ADR 0033, D30): its search field's hint and its name. /// /// In en, this message translates to: /// **'Filter by project'** String get planFilterTitle; /// Quick add's + menu and its button (ADR 0033, D32). /// /// In en, this message translates to: /// **'Location'** String get locationTitle; /// A task's Where, and the picker's button. /// /// In en, this message translates to: /// **'Add location'** String get locationAdd; /// The heading of a task's places. /// /// In en, this message translates to: /// **'Where'** String get locationWhere; /// Under a task's Where, with several places: they are alternatives. /// /// In en, this message translates to: /// **'Any of these'** String get locationAnyOf; /// The location picker's search field. /// /// In en, this message translates to: /// **'City or district, then the name'** String get locationSearchHint; /// Quick add, as + is typed. /// /// In en, this message translates to: /// **'Search for a place'** String get locationSearchAny; /// Quick add, as +something is typed. /// /// In en, this message translates to: /// **'Search for “{query}”'** String locationSearchFor(String query); /// The location picker without a place search. /// /// In en, this message translates to: /// **'Search isn\'t available here. Move the map and tap to place a pin.'** String get locationSearchUnavailable; /// The location picker after a failed search. /// /// In en, this message translates to: /// **'The search didn\'t work. Try again.'** String get locationSearchFailed; /// The location picker, a search without results. /// /// In en, this message translates to: /// **'Nothing found'** String get locationNoResults; /// The location picker's places of the person's tasks. /// /// In en, this message translates to: /// **'Recent'** String get locationRecent; /// Above the places around the pin in the location picker. /// /// In en, this message translates to: /// **'Or choose a nearby place'** String get locationNearby; /// The location picker when asking what is around the pin failed. /// /// In en, this message translates to: /// **'Couldn\'t look up what\'s around here'** String get locationNearbyFailed; /// Beside the location picker's message that asking what is around the pin failed. /// /// In en, this message translates to: /// **'Try again'** String get locationTryAgain; /// The location picker's sheet while the map is too far out for a spot. /// /// In en, this message translates to: /// **'Zoom in and move the map to a spot'** String get locationPickHint; /// The location picker's compass, turning the map back to north. /// /// In en, this message translates to: /// **'Point north'** String get locationNorth; /// What a place found is, from OpenStreetMap's value; empty for any other. /// /// In en, this message translates to: /// **'{kind, select, city{City} town{Town} village{Village} hamlet{Hamlet} isolated_dwelling{Isolated dwelling} locality{Locality} suburb{District} neighbourhood{Neighbourhood} residential{Street} house{Address} supermarket{Supermarket} convenience{Shop} bakery{Bakery} butcher{Butcher} chemist{Chemist} pharmacy{Pharmacy} doctors{Doctor} dentist{Dentist} hospital{Hospital} restaurant{Restaurant} cafe{Café} fast_food{Fast food} bar{Bar} pub{Pub} fuel{Petrol station} bank{Bank} post_office{Post office} school{School} kindergarten{Nursery} library{Library} station{Station} bus_stop{Bus stop} hotel{Hotel} park{Park} other{}}'** String locationKind(String kind); /// The location picker's button zooming the map in. /// /// In en, this message translates to: /// **'Zoom in'** String get locationZoomIn; /// The location picker's button zooming the map out. /// /// In en, this message translates to: /// **'Zoom out'** String get locationZoomOut; /// The name of a pin placed by hand where nothing names the spot. /// /// In en, this message translates to: /// **'Pinned place'** String get locationPin; /// The name field of a pin placed by hand. /// /// In en, this message translates to: /// **'Name'** String get locationName; /// The map's button. /// /// In en, this message translates to: /// **'My position'** String get locationMine; /// A location's reminder. /// /// In en, this message translates to: /// **'No reminder'** String get locationRemindNone; /// A location's reminder. /// /// In en, this message translates to: /// **'On arriving'** String get locationRemindArrive; /// A location's reminder. /// /// In en, this message translates to: /// **'On leaving'** String get locationRemindLeave; /// A task's location's menu. /// /// In en, this message translates to: /// **'Remove'** String get locationRemove; /// No description provided for @locationWatching. /// /// In en, this message translates to: /// **'Watching your places'** String get locationWatching; /// No description provided for @locationWatchingChannel. /// /// In en, this message translates to: /// **'Places watched'** String get locationWatchingChannel; /// Before asking for the position in the background. /// /// In en, this message translates to: /// **'Allow location all the time'** String get locationAccessTitle; /// Before asking for the position in the background. /// /// In en, this message translates to: /// **'To remind you when you arrive or leave, Halkyon Todo needs your position while it is closed too. It stays on this device. Next, choose “Allow all the time”.'** String get locationAccessHint; /// Before asking for the position in the background. /// /// In en, this message translates to: /// **'Continue'** String get locationAccessGo; /// Settings' Reminders while places are planned and may not be watched. /// /// In en, this message translates to: /// **'Location is off for reminders'** String get locationOffTitle; /// Settings' Reminders while places are planned and may not be watched. /// /// In en, this message translates to: /// **'Reminders at a place need “Allow all the time”.'** String get locationOffHint; /// A reminder on arriving, below the task's title. /// /// In en, this message translates to: /// **'You\'re at {name}'** String locationArrived(String name); /// A reminder on leaving, below the task's title. /// /// In en, this message translates to: /// **'You\'ve left {name}'** String locationLeft(String name); } class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupAppLocalizations(locale)); } @override bool isSupported(Locale locale) => ['de', 'en'].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { // Lookup logic when language+country codes are specified. switch (locale.languageCode) { case 'en': { switch (locale.countryCode) { case 'GB': return AppLocalizationsEnGb(); case 'US': return AppLocalizationsEnUs(); } break; } } // Lookup logic when only language code is specified. switch (locale.languageCode) { case 'de': return AppLocalizationsDe(); case 'en': return AppLocalizationsEn(); } throw FlutterError( 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' 'an issue with the localizations generation tool. Please file an issue ' 'on GitHub with a reproducible sample app and the gen-l10n configuration ' 'that was used.', ); }