1910 lines
56 KiB
Dart
1910 lines
56 KiB
Dart
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_en.dart';
|
||
import 'app_localizations_sv.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 'generated/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<AppLocalizations>(context, AppLocalizations);
|
||
}
|
||
|
||
static const LocalizationsDelegate<AppLocalizations> 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<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||
<LocalizationsDelegate<dynamic>>[
|
||
delegate,
|
||
GlobalMaterialLocalizations.delegate,
|
||
GlobalCupertinoLocalizations.delegate,
|
||
GlobalWidgetsLocalizations.delegate,
|
||
];
|
||
|
||
/// A list of this localizations delegate's supported locales.
|
||
static const List<Locale> supportedLocales = <Locale>[
|
||
Locale('en'),
|
||
Locale('sv')
|
||
];
|
||
|
||
/// No description provided for @appTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipe App'**
|
||
String get appTitle;
|
||
|
||
/// No description provided for @retryAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry'**
|
||
String get retryAction;
|
||
|
||
/// No description provided for @mealPlanTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Meal plan'**
|
||
String get mealPlanTitle;
|
||
|
||
/// No description provided for @mealPlanLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading meal plan...'**
|
||
String get mealPlanLoading;
|
||
|
||
/// No description provided for @mealPlanWeekPrevious.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous week'**
|
||
String get mealPlanWeekPrevious;
|
||
|
||
/// No description provided for @mealPlanWeekNext.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next week'**
|
||
String get mealPlanWeekNext;
|
||
|
||
/// No description provided for @mealPlanWeekCurrent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Current week'**
|
||
String get mealPlanWeekCurrent;
|
||
|
||
/// No description provided for @mealPlanDayNoRecipe.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing planned'**
|
||
String get mealPlanDayNoRecipe;
|
||
|
||
/// No description provided for @mealPlanSelectRecipe.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose recipe'**
|
||
String get mealPlanSelectRecipe;
|
||
|
||
/// No description provided for @mealPlanViewRecipe.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View recipe'**
|
||
String get mealPlanViewRecipe;
|
||
|
||
/// No description provided for @mealPlanServingsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Servings'**
|
||
String get mealPlanServingsLabel;
|
||
|
||
/// No description provided for @mealPlanResetServings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset'**
|
||
String get mealPlanResetServings;
|
||
|
||
/// No description provided for @mealPlanSaving.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saving...'**
|
||
String get mealPlanSaving;
|
||
|
||
/// No description provided for @mealPlanPlannedRecipes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, one {# recipe planned} other {# recipes planned}}'**
|
||
String mealPlanPlannedRecipes(int count);
|
||
|
||
/// No description provided for @mealPlanShoppingTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shopping list'**
|
||
String get mealPlanShoppingTitle;
|
||
|
||
/// No description provided for @mealPlanPickRecipeHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose recipes above to see the combined ingredient list.'**
|
||
String get mealPlanPickRecipeHint;
|
||
|
||
/// No description provided for @mealPlanNoShoppingItems.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No ingredients to show for this week.'**
|
||
String get mealPlanNoShoppingItems;
|
||
|
||
/// No description provided for @mealPlanNoRecipesTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'There are no recipes to plan yet.'**
|
||
String get mealPlanNoRecipesTitle;
|
||
|
||
/// No description provided for @mealPlanNoRecipesDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create at least one recipe first, then add it to the meal plan.'**
|
||
String get mealPlanNoRecipesDescription;
|
||
|
||
/// No description provided for @mealPlanMissingCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, one {# missing} other {# missing}}'**
|
||
String mealPlanMissingCount(int count);
|
||
|
||
/// No description provided for @mealPlanPartialCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, one {# partially at home} other {# partially at home}}'**
|
||
String mealPlanPartialCount(int count);
|
||
|
||
/// No description provided for @mealPlanEnoughCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, one {# at home} other {# at home}}'**
|
||
String mealPlanEnoughCount(int count);
|
||
|
||
/// No description provided for @mealPlanPantryCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, one {# pantry staple} other {# pantry staples}}'**
|
||
String mealPlanPantryCount(int count);
|
||
|
||
/// No description provided for @mealPlanAllAtHome.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You already have everything at home.'**
|
||
String get mealPlanAllAtHome;
|
||
|
||
/// No description provided for @mealPlanStatusMissing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Missing'**
|
||
String get mealPlanStatusMissing;
|
||
|
||
/// No description provided for @mealPlanStatusPartial.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Partially at home'**
|
||
String get mealPlanStatusPartial;
|
||
|
||
/// No description provided for @mealPlanStatusEnough.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At home'**
|
||
String get mealPlanStatusEnough;
|
||
|
||
/// No description provided for @mealPlanStatusPantry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pantry staple'**
|
||
String get mealPlanStatusPantry;
|
||
|
||
/// No description provided for @loginTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sign in'**
|
||
String get loginTitle;
|
||
|
||
/// No description provided for @usernameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Username'**
|
||
String get usernameLabel;
|
||
|
||
/// No description provided for @usernameRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter your username.'**
|
||
String get usernameRequired;
|
||
|
||
/// No description provided for @passwordLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Password'**
|
||
String get passwordLabel;
|
||
|
||
/// No description provided for @passwordRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter your password.'**
|
||
String get passwordRequired;
|
||
|
||
/// No description provided for @loginAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sign in'**
|
||
String get loginAction;
|
||
|
||
/// No description provided for @sessionExpiredError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your session has expired. Sign in again.'**
|
||
String get sessionExpiredError;
|
||
|
||
/// No description provided for @forbiddenError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You do not have permission to use this feature.'**
|
||
String get forbiddenError;
|
||
|
||
/// No description provided for @serverError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A server error occurred. Try again in a moment.'**
|
||
String get serverError;
|
||
|
||
/// No description provided for @networkError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Network error. Check your connection and try again.'**
|
||
String get networkError;
|
||
|
||
/// No description provided for @unexpectedError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An unexpected error occurred.'**
|
||
String get unexpectedError;
|
||
|
||
/// No description provided for @cancelAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel'**
|
||
String get cancelAction;
|
||
|
||
/// No description provided for @saveAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get saveAction;
|
||
|
||
/// No description provided for @deleteAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get deleteAction;
|
||
|
||
/// No description provided for @addAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add'**
|
||
String get addAction;
|
||
|
||
/// No description provided for @editTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit'**
|
||
String get editTooltip;
|
||
|
||
/// No description provided for @deleteTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get deleteTooltip;
|
||
|
||
/// No description provided for @loadingLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading...'**
|
||
String get loadingLabel;
|
||
|
||
/// No description provided for @cannotBeUndone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This action cannot be undone.'**
|
||
String get cannotBeUndone;
|
||
|
||
/// No description provided for @yesLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Yes'**
|
||
String get yesLabel;
|
||
|
||
/// No description provided for @noLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No'**
|
||
String get noLabel;
|
||
|
||
/// No description provided for @commentLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Comment'**
|
||
String get commentLabel;
|
||
|
||
/// No description provided for @commentOptionalLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Comment (optional)'**
|
||
String get commentOptionalLabel;
|
||
|
||
/// No description provided for @openedLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Opened'**
|
||
String get openedLabel;
|
||
|
||
/// No description provided for @quantityLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Quantity *'**
|
||
String get quantityLabel;
|
||
|
||
/// No description provided for @quantityHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter quantity'**
|
||
String get quantityHint;
|
||
|
||
/// No description provided for @invalidNumber.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Invalid number'**
|
||
String get invalidNumber;
|
||
|
||
/// No description provided for @unitLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unit *'**
|
||
String get unitLabel;
|
||
|
||
/// No description provided for @selectDateLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select date'**
|
||
String get selectDateLabel;
|
||
|
||
/// No description provided for @locationOptionalLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location (optional)'**
|
||
String get locationOptionalLabel;
|
||
|
||
/// No description provided for @locationLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location'**
|
||
String get locationLabel;
|
||
|
||
/// No description provided for @brandOptionalLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Brand (optional)'**
|
||
String get brandOptionalLabel;
|
||
|
||
/// No description provided for @brandLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Brand'**
|
||
String get brandLabel;
|
||
|
||
/// No description provided for @enterPositiveNumber.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter a positive number'**
|
||
String get enterPositiveNumber;
|
||
|
||
/// No description provided for @inventoryTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Inventory'**
|
||
String get inventoryTitle;
|
||
|
||
/// No description provided for @inventoryFilterAndSort.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter and sorting'**
|
||
String get inventoryFilterAndSort;
|
||
|
||
/// No description provided for @inventorySortLatest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Latest added'**
|
||
String get inventorySortLatest;
|
||
|
||
/// No description provided for @inventorySortNameAsc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name A-Z'**
|
||
String get inventorySortNameAsc;
|
||
|
||
/// No description provided for @inventorySortBestBeforeAsc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Best before ascending'**
|
||
String get inventorySortBestBeforeAsc;
|
||
|
||
/// No description provided for @inventorySortBestBeforeDesc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Best before descending'**
|
||
String get inventorySortBestBeforeDesc;
|
||
|
||
/// No description provided for @inventorySortLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort'**
|
||
String get inventorySortLabel;
|
||
|
||
/// No description provided for @inventoryAllFilter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All'**
|
||
String get inventoryAllFilter;
|
||
|
||
/// No description provided for @inventoryEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Inventory is empty.'**
|
||
String get inventoryEmpty;
|
||
|
||
/// No description provided for @inventoryLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading inventory...'**
|
||
String get inventoryLoading;
|
||
|
||
/// No description provided for @inventoryCreateTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add inventory item'**
|
||
String get inventoryCreateTitle;
|
||
|
||
/// No description provided for @inventoryEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit inventory item'**
|
||
String get inventoryEditTitle;
|
||
|
||
/// No description provided for @inventorySelectProduct.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select a product from the list.'**
|
||
String get inventorySelectProduct;
|
||
|
||
/// No description provided for @inventoryDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete inventory item?'**
|
||
String get inventoryDeleteTitle;
|
||
|
||
/// No description provided for @inventoryProductLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Product'**
|
||
String get inventoryProductLabel;
|
||
|
||
/// No description provided for @inventoryQuantityDisplayLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Quantity'**
|
||
String get inventoryQuantityDisplayLabel;
|
||
|
||
/// No description provided for @inventoryLocationDisplayLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Location'**
|
||
String get inventoryLocationDisplayLabel;
|
||
|
||
/// No description provided for @inventoryBrandDisplayLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Brand'**
|
||
String get inventoryBrandDisplayLabel;
|
||
|
||
/// No description provided for @inventoryPurchaseDateLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Purchase date'**
|
||
String get inventoryPurchaseDateLabel;
|
||
|
||
/// No description provided for @inventoryBestBeforeLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Best before'**
|
||
String get inventoryBestBeforeLabel;
|
||
|
||
/// No description provided for @inventoryPurchaseDatePrefix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Purchase: '**
|
||
String get inventoryPurchaseDatePrefix;
|
||
|
||
/// No description provided for @inventoryBestBeforeDatePrefix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Best before: '**
|
||
String get inventoryBestBeforeDatePrefix;
|
||
|
||
/// No description provided for @inventoryConsumeAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Consume'**
|
||
String get inventoryConsumeAction;
|
||
|
||
/// No description provided for @inventoryHistoryAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Consumption history'**
|
||
String get inventoryHistoryAction;
|
||
|
||
/// No description provided for @inventoryConsumeAmountLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Amount to consume *'**
|
||
String get inventoryConsumeAmountLabel;
|
||
|
||
/// No description provided for @inventoryHistoryLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading history...'**
|
||
String get inventoryHistoryLoading;
|
||
|
||
/// No description provided for @inventoryHistoryEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No consumption history exists.'**
|
||
String get inventoryHistoryEmpty;
|
||
|
||
/// No description provided for @inventoryRecipesAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipes'**
|
||
String get inventoryRecipesAction;
|
||
|
||
/// No description provided for @inventoryHistoryTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'History: {name}'**
|
||
String inventoryHistoryTitle(String name);
|
||
|
||
/// No description provided for @inventoryConsumeNameTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Consume: {name}'**
|
||
String inventoryConsumeNameTitle(String name);
|
||
|
||
/// No description provided for @inventoryAvailableLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Available: {quantity} {unit}'**
|
||
String inventoryAvailableLabel(String quantity, String unit);
|
||
|
||
/// No description provided for @pantryDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Products you always expect to have at home.'**
|
||
String get pantryDescription;
|
||
|
||
/// No description provided for @pantryLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading pantry...'**
|
||
String get pantryLoading;
|
||
|
||
/// No description provided for @pantryNoLocation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No location selected'**
|
||
String get pantryNoLocation;
|
||
|
||
/// No description provided for @pantryInvalidQuantity.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter a valid quantity greater than 0.'**
|
||
String get pantryInvalidQuantity;
|
||
|
||
/// No description provided for @pantryRemoveTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from pantry?'**
|
||
String get pantryRemoveTitle;
|
||
|
||
/// No description provided for @pantryOtherCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Other'**
|
||
String get pantryOtherCategory;
|
||
|
||
/// No description provided for @pantryGoToRecipesTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Go to recipes'**
|
||
String get pantryGoToRecipesTooltip;
|
||
|
||
/// No description provided for @pantryAddToInventoryTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add \"{name}\" to inventory'**
|
||
String pantryAddToInventoryTitle(String name);
|
||
|
||
/// No description provided for @pantryItemAdded.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{name} added to inventory.'**
|
||
String pantryItemAdded(String name);
|
||
|
||
/// No description provided for @pantryRemoveContent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to remove \"{name}\"?'**
|
||
String pantryRemoveContent(String name);
|
||
|
||
/// No description provided for @recipesLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading recipes...'**
|
||
String get recipesLoading;
|
||
|
||
/// No description provided for @recipesEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No recipes found'**
|
||
String get recipesEmpty;
|
||
|
||
/// No description provided for @recipesEmptyDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a recipe to get started.'**
|
||
String get recipesEmptyDescription;
|
||
|
||
/// No description provided for @recipesNewTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New recipe'**
|
||
String get recipesNewTooltip;
|
||
|
||
/// No description provided for @recipeDetailLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading recipe...'**
|
||
String get recipeDetailLoading;
|
||
|
||
/// No description provided for @recipeDetailMakePrivate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Make private'**
|
||
String get recipeDetailMakePrivate;
|
||
|
||
/// No description provided for @recipeDetailMakePublic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Make public'**
|
||
String get recipeDetailMakePublic;
|
||
|
||
/// No description provided for @recipeDetailShareWithUser.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share with user'**
|
||
String get recipeDetailShareWithUser;
|
||
|
||
/// No description provided for @recipeDetailGoToInventory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Go to inventory'**
|
||
String get recipeDetailGoToInventory;
|
||
|
||
/// No description provided for @recipeDetailShareTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share recipe'**
|
||
String get recipeDetailShareTitle;
|
||
|
||
/// No description provided for @recipeDetailUsernameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Username'**
|
||
String get recipeDetailUsernameLabel;
|
||
|
||
/// No description provided for @recipeDetailUsernameHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'e.g. anna'**
|
||
String get recipeDetailUsernameHint;
|
||
|
||
/// No description provided for @recipeDetailRemoveShare.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove sharing'**
|
||
String get recipeDetailRemoveShare;
|
||
|
||
/// No description provided for @recipeDetailShareAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share'**
|
||
String get recipeDetailShareAction;
|
||
|
||
/// No description provided for @recipeDetailDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete recipe?'**
|
||
String get recipeDetailDeleteTitle;
|
||
|
||
/// No description provided for @recipeDetailNowPublic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The recipe is now public.'**
|
||
String get recipeDetailNowPublic;
|
||
|
||
/// No description provided for @recipeDetailNowPrivate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The recipe is now private.'**
|
||
String get recipeDetailNowPrivate;
|
||
|
||
/// No description provided for @recipeDetailServings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'servings'**
|
||
String get recipeDetailServings;
|
||
|
||
/// No description provided for @recipeDetailIngredients.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ingredients'**
|
||
String get recipeDetailIngredients;
|
||
|
||
/// No description provided for @recipeDetailInstructions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Instructions'**
|
||
String get recipeDetailInstructions;
|
||
|
||
/// No description provided for @recipeDetailBackToList.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back to recipe list'**
|
||
String get recipeDetailBackToList;
|
||
|
||
/// No description provided for @recipeDetailSharingRemoved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sharing removed for {user}'**
|
||
String recipeDetailSharingRemoved(String user);
|
||
|
||
/// No description provided for @recipeDetailSharedWith.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipe shared with {user}'**
|
||
String recipeDetailSharedWith(String user);
|
||
|
||
/// No description provided for @recipeDetailDeleteContent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to delete \"{title}\"? This action cannot be undone.'**
|
||
String recipeDetailDeleteContent(String title);
|
||
|
||
/// No description provided for @recipeCreateTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New recipe'**
|
||
String get recipeCreateTitle;
|
||
|
||
/// No description provided for @recipeCreateReviewIngredients.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review ingredients'**
|
||
String get recipeCreateReviewIngredients;
|
||
|
||
/// No description provided for @recipeCreateMarkdownPlaceholder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'# Recipe name\n\n## Ingredients\n- 500 g ground beef\n- 1 onion\n\n## Instructions\nFry the onion...'**
|
||
String get recipeCreateMarkdownPlaceholder;
|
||
|
||
/// No description provided for @recipeCreateMarkdownHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paste or write a recipe in Markdown format.'**
|
||
String get recipeCreateMarkdownHint;
|
||
|
||
/// No description provided for @recipeCreateNameRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipe name cannot be empty.'**
|
||
String get recipeCreateNameRequired;
|
||
|
||
/// No description provided for @recipeCreateSaveAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save recipe'**
|
||
String get recipeCreateSaveAction;
|
||
|
||
/// No description provided for @recipeCreateServingsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Number of servings (optional)'**
|
||
String get recipeCreateServingsLabel;
|
||
|
||
/// No description provided for @recipeCreateIngredientsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ingredients'**
|
||
String get recipeCreateIngredientsLabel;
|
||
|
||
/// No description provided for @recipeCreateIngredientsHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Check ingredients to include and select the right product.'**
|
||
String get recipeCreateIngredientsHint;
|
||
|
||
/// No description provided for @recipeCreateNoProductFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No product found — ingredient will be skipped.'**
|
||
String get recipeCreateNoProductFound;
|
||
|
||
/// No description provided for @recipeEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit recipe'**
|
||
String get recipeEditTitle;
|
||
|
||
/// No description provided for @recipeEditNameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipe name'**
|
||
String get recipeEditNameLabel;
|
||
|
||
/// No description provided for @recipeEditNameRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter a recipe name.'**
|
||
String get recipeEditNameRequired;
|
||
|
||
/// No description provided for @recipeEditDescriptionLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description (optional)'**
|
||
String get recipeEditDescriptionLabel;
|
||
|
||
/// No description provided for @recipeEditServingsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Number of servings (optional)'**
|
||
String get recipeEditServingsLabel;
|
||
|
||
/// No description provided for @recipeEditServingsInvalid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter a whole number.'**
|
||
String get recipeEditServingsInvalid;
|
||
|
||
/// No description provided for @recipeEditInstructionsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Instructions (optional)'**
|
||
String get recipeEditInstructionsLabel;
|
||
|
||
/// No description provided for @recipeEditIngredientsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ingredients'**
|
||
String get recipeEditIngredientsLabel;
|
||
|
||
/// No description provided for @recipeEditIngredientsHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select product, quantity and unit for each ingredient.'**
|
||
String get recipeEditIngredientsHint;
|
||
|
||
/// No description provided for @recipeEditNoIngredients.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No ingredients added yet.'**
|
||
String get recipeEditNoIngredients;
|
||
|
||
/// No description provided for @recipeEditIngredientPrefix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ingredient '**
|
||
String get recipeEditIngredientPrefix;
|
||
|
||
/// No description provided for @recipeEditRemoveIngredient.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove ingredient'**
|
||
String get recipeEditRemoveIngredient;
|
||
|
||
/// No description provided for @recipeEditMinIngredients.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At least one ingredient is required.'**
|
||
String get recipeEditMinIngredients;
|
||
|
||
/// No description provided for @recipeEditSelectProduct.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select product for all ingredients.'**
|
||
String get recipeEditSelectProduct;
|
||
|
||
/// No description provided for @recipeEditValidQuantity.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter valid quantity for all ingredients.'**
|
||
String get recipeEditValidQuantity;
|
||
|
||
/// No description provided for @recipeEditSelectUnit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select unit for all ingredients.'**
|
||
String get recipeEditSelectUnit;
|
||
|
||
/// No description provided for @recipeEditSaveChanges.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save changes'**
|
||
String get recipeEditSaveChanges;
|
||
|
||
/// No description provided for @importTabDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Upload a PDF or image, or enter a recipe link — the recipe will be imported and opened directly in edit mode.'**
|
||
String get importTabDescription;
|
||
|
||
/// No description provided for @importFileTabLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'File / PDF'**
|
||
String get importFileTabLabel;
|
||
|
||
/// No description provided for @importLinkTabLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Link'**
|
||
String get importLinkTabLabel;
|
||
|
||
/// No description provided for @importChooseFileAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose file (PDF, PNG, JPG, WEBP, BMP)'**
|
||
String get importChooseFileAction;
|
||
|
||
/// No description provided for @importFileAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import file'**
|
||
String get importFileAction;
|
||
|
||
/// No description provided for @importFileProcessing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Parsing recipe — this can take up to a minute...'**
|
||
String get importFileProcessing;
|
||
|
||
/// No description provided for @importLinkAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import from link'**
|
||
String get importLinkAction;
|
||
|
||
/// No description provided for @importLinkLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipe link'**
|
||
String get importLinkLabel;
|
||
|
||
/// No description provided for @importLinkHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'https://example.com/recipe/...'**
|
||
String get importLinkHint;
|
||
|
||
/// No description provided for @importWriteInstead.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Write recipe instead'**
|
||
String get importWriteInstead;
|
||
|
||
/// No description provided for @errorDialogTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Error'**
|
||
String get errorDialogTitle;
|
||
|
||
/// No description provided for @errorDialogClose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get errorDialogClose;
|
||
|
||
/// No description provided for @errorDialogCopy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy'**
|
||
String get errorDialogCopy;
|
||
|
||
/// No description provided for @errorDialogCopied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Error message copied!'**
|
||
String get errorDialogCopied;
|
||
|
||
/// No description provided for @profileMyProfileTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'My profile'**
|
||
String get profileMyProfileTab;
|
||
|
||
/// No description provided for @profileDatabaseTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Database'**
|
||
String get profileDatabaseTab;
|
||
|
||
/// No description provided for @profileUsersTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Users'**
|
||
String get profileUsersTab;
|
||
|
||
/// No description provided for @profilePendingTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Suggestions'**
|
||
String get profilePendingTab;
|
||
|
||
/// No description provided for @profileAiTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AI'**
|
||
String get profileAiTab;
|
||
|
||
/// No description provided for @profileUsernameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Username'**
|
||
String get profileUsernameLabel;
|
||
|
||
/// No description provided for @profileEmailLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'E-mail'**
|
||
String get profileEmailLabel;
|
||
|
||
/// No description provided for @profileEmailHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter an e-mail address'**
|
||
String get profileEmailHint;
|
||
|
||
/// No description provided for @profileEmailInvalid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Invalid e-mail address'**
|
||
String get profileEmailInvalid;
|
||
|
||
/// No description provided for @profileFirstNameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'First name'**
|
||
String get profileFirstNameLabel;
|
||
|
||
/// No description provided for @profileLastNameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Last name'**
|
||
String get profileLastNameLabel;
|
||
|
||
/// No description provided for @profileSaveAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save changes'**
|
||
String get profileSaveAction;
|
||
|
||
/// No description provided for @profileSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Profile saved!'**
|
||
String get profileSaved;
|
||
|
||
/// No description provided for @profileInventoryTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Inventory'**
|
||
String get profileInventoryTab;
|
||
|
||
/// No description provided for @profilePantryTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pantry'**
|
||
String get profilePantryTab;
|
||
|
||
/// No description provided for @profileProductsTab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Products'**
|
||
String get profileProductsTab;
|
||
|
||
/// No description provided for @profileAddInventoryItem.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add inventory item'**
|
||
String get profileAddInventoryItem;
|
||
|
||
/// No description provided for @profileOpenInventory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open inventory'**
|
||
String get profileOpenInventory;
|
||
|
||
/// No description provided for @profileInventoryDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update and consume items in your inventory.'**
|
||
String get profileInventoryDescription;
|
||
|
||
/// No description provided for @profileOpenPantry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open pantry'**
|
||
String get profileOpenPantry;
|
||
|
||
/// No description provided for @profilePantryDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manage items you always expect to have at home.'**
|
||
String get profilePantryDescription;
|
||
|
||
/// No description provided for @adminChangeRole.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change role'**
|
||
String get adminChangeRole;
|
||
|
||
/// No description provided for @adminGivePremium.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Give Premium'**
|
||
String get adminGivePremium;
|
||
|
||
/// No description provided for @adminRemovePremium.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove Premium'**
|
||
String get adminRemovePremium;
|
||
|
||
/// No description provided for @adminAllowSharing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Allow recipe sharing'**
|
||
String get adminAllowSharing;
|
||
|
||
/// No description provided for @adminBlockSharing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Block recipe sharing'**
|
||
String get adminBlockSharing;
|
||
|
||
/// No description provided for @adminResetPassword.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset password'**
|
||
String get adminResetPassword;
|
||
|
||
/// No description provided for @adminTempPasswordTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Temporary password'**
|
||
String get adminTempPasswordTitle;
|
||
|
||
/// No description provided for @adminCopyAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy'**
|
||
String get adminCopyAction;
|
||
|
||
/// No description provided for @adminCloseAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get adminCloseAction;
|
||
|
||
/// No description provided for @adminEmailLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'E-mail'**
|
||
String get adminEmailLabel;
|
||
|
||
/// No description provided for @adminEmailInvalid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Invalid e-mail address.'**
|
||
String get adminEmailInvalid;
|
||
|
||
/// No description provided for @adminEmailUpdated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'E-mail updated.'**
|
||
String get adminEmailUpdated;
|
||
|
||
/// No description provided for @adminDeleteUser.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete user'**
|
||
String get adminDeleteUser;
|
||
|
||
/// No description provided for @adminDeleteUserConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete permanently? This cannot be undone.'**
|
||
String get adminDeleteUserConfirm;
|
||
|
||
/// No description provided for @adminConfirmAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Confirm'**
|
||
String get adminConfirmAction;
|
||
|
||
/// No description provided for @adminNewUser.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New user'**
|
||
String get adminNewUser;
|
||
|
||
/// No description provided for @adminNoUsers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No users found.'**
|
||
String get adminNoUsers;
|
||
|
||
/// No description provided for @adminAdminRole.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Admin'**
|
||
String get adminAdminRole;
|
||
|
||
/// No description provided for @adminUserRole.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'User'**
|
||
String get adminUserRole;
|
||
|
||
/// No description provided for @adminPremiumLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Premium'**
|
||
String get adminPremiumLabel;
|
||
|
||
/// No description provided for @adminFreeLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Free'**
|
||
String get adminFreeLabel;
|
||
|
||
/// No description provided for @adminSharingOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sharing: On'**
|
||
String get adminSharingOn;
|
||
|
||
/// No description provided for @adminSharingOff.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sharing: Off'**
|
||
String get adminSharingOff;
|
||
|
||
/// No description provided for @adminUsersDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manage users directly from the profile page.'**
|
||
String get adminUsersDescription;
|
||
|
||
/// No description provided for @adminDowngradeToUser.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Downgrade to user'**
|
||
String get adminDowngradeToUser;
|
||
|
||
/// No description provided for @adminUpgradeToAdmin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Upgrade to admin'**
|
||
String get adminUpgradeToAdmin;
|
||
|
||
/// No description provided for @adminSortNewest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort: Newest'**
|
||
String get adminSortNewest;
|
||
|
||
/// No description provided for @adminSortOldest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort: Oldest'**
|
||
String get adminSortOldest;
|
||
|
||
/// No description provided for @adminSortNameAsc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort: Name A-Z'**
|
||
String get adminSortNameAsc;
|
||
|
||
/// No description provided for @adminSortNameDesc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort: Name Z-A'**
|
||
String get adminSortNameDesc;
|
||
|
||
/// No description provided for @adminSortCategoryAsc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort: Category A-Z'**
|
||
String get adminSortCategoryAsc;
|
||
|
||
/// No description provided for @adminSortCategoryDesc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort: Category Z-A'**
|
||
String get adminSortCategoryDesc;
|
||
|
||
/// No description provided for @adminSearchProduct.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search product'**
|
||
String get adminSearchProduct;
|
||
|
||
/// No description provided for @adminShowDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show deleted'**
|
||
String get adminShowDeleted;
|
||
|
||
/// No description provided for @adminOnlyUncategorized.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Only uncategorized'**
|
||
String get adminOnlyUncategorized;
|
||
|
||
/// No description provided for @adminBulkSetCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bulk: set category'**
|
||
String get adminBulkSetCategory;
|
||
|
||
/// No description provided for @adminProductsUpdated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Products updated.'**
|
||
String get adminProductsUpdated;
|
||
|
||
/// No description provided for @adminNoAiSuggestions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No AI suggestions to show.'**
|
||
String get adminNoAiSuggestions;
|
||
|
||
/// No description provided for @adminMergeProducts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Merge products'**
|
||
String get adminMergeProducts;
|
||
|
||
/// No description provided for @adminMergeSelectSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select which product should be moved into the other:'**
|
||
String get adminMergeSelectSource;
|
||
|
||
/// No description provided for @adminMergeSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Source: '**
|
||
String get adminMergeSource;
|
||
|
||
/// No description provided for @adminMergeTarget.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Target: '**
|
||
String get adminMergeTarget;
|
||
|
||
/// No description provided for @adminMergeAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Merge'**
|
||
String get adminMergeAction;
|
||
|
||
/// No description provided for @adminDeleteProduct.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete product'**
|
||
String get adminDeleteProduct;
|
||
|
||
/// No description provided for @adminProductDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Product deleted.'**
|
||
String get adminProductDeleted;
|
||
|
||
/// No description provided for @adminProductsRestored.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Selected products restored.'**
|
||
String get adminProductsRestored;
|
||
|
||
/// No description provided for @adminProductRestored.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Product restored.'**
|
||
String get adminProductRestored;
|
||
|
||
/// No description provided for @adminNoPendingProducts.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No pending product suggestions.'**
|
||
String get adminNoPendingProducts;
|
||
|
||
/// No description provided for @adminCategoryPrefix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Category: '**
|
||
String get adminCategoryPrefix;
|
||
|
||
/// No description provided for @adminSuggestedByPrefix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Suggested by: '**
|
||
String get adminSuggestedByPrefix;
|
||
|
||
/// No description provided for @adminDatePrefix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Date: '**
|
||
String get adminDatePrefix;
|
||
|
||
/// No description provided for @adminApproveAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Approve'**
|
||
String get adminApproveAction;
|
||
|
||
/// No description provided for @adminRejectAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reject'**
|
||
String get adminRejectAction;
|
||
|
||
/// No description provided for @adminPendingDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Approve or reject pending product suggestions directly from the profile page.'**
|
||
String get adminPendingDescription;
|
||
|
||
/// No description provided for @adminAiDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Overview of AI functions exposed by the backend.'**
|
||
String get adminAiDescription;
|
||
|
||
/// No description provided for @adminPagePrefix.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Page: '**
|
||
String get adminPagePrefix;
|
||
|
||
/// No description provided for @adminNewProductLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New product'**
|
||
String get adminNewProductLabel;
|
||
|
||
/// No description provided for @adminPasswordMustChange.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The user must change their password at next login.'**
|
||
String get adminPasswordMustChange;
|
||
|
||
/// No description provided for @adminChangeRoleConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change {username} to {role}?'**
|
||
String adminChangeRoleConfirm(String username, String role);
|
||
|
||
/// No description provided for @adminGivePremiumConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Give Premium for {username}'**
|
||
String adminGivePremiumConfirm(String username);
|
||
|
||
/// No description provided for @adminRemovePremiumConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove Premium for {username}'**
|
||
String adminRemovePremiumConfirm(String username);
|
||
|
||
/// No description provided for @adminAllowSharingConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Allow recipe sharing for {username}'**
|
||
String adminAllowSharingConfirm(String username);
|
||
|
||
/// No description provided for @adminBlockSharingConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Block recipe sharing for {username}'**
|
||
String adminBlockSharingConfirm(String username);
|
||
|
||
/// No description provided for @adminResetPasswordContent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Generate a temporary password for {username}'**
|
||
String adminResetPasswordContent(String username);
|
||
|
||
/// No description provided for @adminPasswordTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Password for {username}'**
|
||
String adminPasswordTitle(String username);
|
||
|
||
/// No description provided for @adminChangeEmailTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change e-mail for {username}'**
|
||
String adminChangeEmailTitle(String username);
|
||
|
||
/// No description provided for @adminDeleteProductContent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete {name}? The product can be restored later.'**
|
||
String adminDeleteProductContent(String name);
|
||
|
||
/// No description provided for @adminAiAppliedCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AI suggestions applied to {count} products.'**
|
||
String adminAiAppliedCount(int count);
|
||
|
||
/// No description provided for @adminCategoryUpdated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Category updated for {name}'**
|
||
String adminCategoryUpdated(String name);
|
||
|
||
/// No description provided for @adminProductUpdated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Product updated for {name}'**
|
||
String adminProductUpdated(String name);
|
||
|
||
/// No description provided for @adminPremiumConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{action} Premium for {username}?'**
|
||
String adminPremiumConfirm(String action, String username);
|
||
|
||
/// No description provided for @adminSharingConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{action} recipe sharing for {username}?'**
|
||
String adminSharingConfirm(String action, String username);
|
||
|
||
/// No description provided for @adminResetPasswordConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Generate a temporary password for {username}?'**
|
||
String adminResetPasswordConfirm(String username);
|
||
|
||
/// No description provided for @adminTempPasswordForUser.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Password for {username}:'**
|
||
String adminTempPasswordForUser(String username);
|
||
|
||
/// No description provided for @adminEmailEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change e-mail for {username}'**
|
||
String adminEmailEditTitle(String username);
|
||
|
||
/// No description provided for @adminEmailAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change e-mail'**
|
||
String get adminEmailAction;
|
||
|
||
/// No description provided for @adminUserCreated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'User {username} created.'**
|
||
String adminUserCreated(String username);
|
||
|
||
/// No description provided for @adminCreateUserTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create user'**
|
||
String get adminCreateUserTitle;
|
||
|
||
/// No description provided for @adminMinChars2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At least 2 characters'**
|
||
String get adminMinChars2;
|
||
|
||
/// No description provided for @adminMinChars8.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At least 8 characters'**
|
||
String get adminMinChars8;
|
||
|
||
/// No description provided for @adminPasswordLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Password'**
|
||
String get adminPasswordLabel;
|
||
|
||
/// No description provided for @adminRoleLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Role'**
|
||
String get adminRoleLabel;
|
||
|
||
/// No description provided for @adminCreateAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create'**
|
||
String get adminCreateAction;
|
||
|
||
/// No description provided for @adminMergeProductsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Merge products'**
|
||
String get adminMergeProductsTitle;
|
||
|
||
/// No description provided for @adminMergeProductsHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select which product should be moved into the other:'**
|
||
String get adminMergeProductsHint;
|
||
|
||
/// No description provided for @adminMerge2Selected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Merge 2 selected'**
|
||
String get adminMerge2Selected;
|
||
|
||
/// No description provided for @adminProductsMerged.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Products merged.'**
|
||
String get adminProductsMerged;
|
||
|
||
/// No description provided for @adminDeleteProductTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete product'**
|
||
String get adminDeleteProductTitle;
|
||
|
||
/// No description provided for @adminDeleteProductConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete {name}? The product can be restored later.'**
|
||
String adminDeleteProductConfirm(String name);
|
||
|
||
/// No description provided for @adminAiSuggestionsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AI suggestions'**
|
||
String get adminAiSuggestionsTitle;
|
||
|
||
/// No description provided for @adminAiApplied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AI suggestions applied to {count} products.'**
|
||
String adminAiApplied(int count);
|
||
|
||
/// No description provided for @adminApplySelected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Apply ({count})'**
|
||
String adminApplySelected(int count);
|
||
|
||
/// No description provided for @adminUpdateSelected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update selected ({count})'**
|
||
String adminUpdateSelected(int count);
|
||
|
||
/// No description provided for @adminAiCategorizeAll.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AI-categorize uncategorized'**
|
||
String get adminAiCategorizeAll;
|
||
|
||
/// No description provided for @adminAiCategorizeSelected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AI-categorize selected ({count})'**
|
||
String adminAiCategorizeSelected(int count);
|
||
|
||
/// No description provided for @adminRestoreSelected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Restore selected ({count})'**
|
||
String adminRestoreSelected(int count);
|
||
|
||
/// No description provided for @adminShowUncategorized.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Uncategorized only'**
|
||
String get adminShowUncategorized;
|
||
|
||
/// No description provided for @adminRemoveCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove category'**
|
||
String get adminRemoveCategory;
|
||
|
||
/// No description provided for @adminNoProductsFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No products match the filter.'**
|
||
String get adminNoProductsFound;
|
||
|
||
/// No description provided for @adminInlineCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Category (inline)'**
|
||
String get adminInlineCategory;
|
||
|
||
/// No description provided for @adminNoCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No category'**
|
||
String get adminNoCategory;
|
||
|
||
/// No description provided for @adminRestoreAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Restore'**
|
||
String get adminRestoreAction;
|
||
|
||
/// No description provided for @profileDeleteConfirmTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Confirm deletion'**
|
||
String get profileDeleteConfirmTitle;
|
||
|
||
/// No description provided for @profileDeleteConfirmMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure you want to delete your profile? All your data will be permanently deleted.'**
|
||
String get profileDeleteConfirmMessage;
|
||
|
||
/// No description provided for @profileDeleteAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete my profile'**
|
||
String get profileDeleteAction;
|
||
|
||
/// No description provided for @profileDeletedMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your profile has been deleted.'**
|
||
String get profileDeletedMessage;
|
||
|
||
/// No description provided for @profileDatabaseDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The database tab covers your main areas for inventory and products.'**
|
||
String get profileDatabaseDescription;
|
||
}
|
||
|
||
class _AppLocalizationsDelegate
|
||
extends LocalizationsDelegate<AppLocalizations> {
|
||
const _AppLocalizationsDelegate();
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) {
|
||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||
}
|
||
|
||
@override
|
||
bool isSupported(Locale locale) =>
|
||
<String>['en', 'sv'].contains(locale.languageCode);
|
||
|
||
@override
|
||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||
}
|
||
|
||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||
// Lookup logic when only language code is specified.
|
||
switch (locale.languageCode) {
|
||
case 'en':
|
||
return AppLocalizationsEn();
|
||
case 'sv':
|
||
return AppLocalizationsSv();
|
||
}
|
||
|
||
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.');
|
||
}
|