// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';

// ignore_for_file: type=lint

/// The translations for English (`en`).
class AppLocalizationsEn extends AppLocalizations {
  AppLocalizationsEn([String locale = 'en']) : super(locale);

  @override
  String get appTitle => 'Recipe App';

  @override
  String get retryAction => 'Retry';

  @override
  String get mealPlanTitle => 'Meal plan';

  @override
  String get mealPlanLoading => 'Loading meal plan...';

  @override
  String get mealPlanWeekPrevious => 'Previous week';

  @override
  String get mealPlanWeekNext => 'Next week';

  @override
  String get mealPlanWeekCurrent => 'Current week';

  @override
  String get mealPlanDayNoRecipe => 'Nothing planned';

  @override
  String get mealPlanSelectRecipe => 'Choose recipe';

  @override
  String get mealPlanViewRecipe => 'View recipe';

  @override
  String get mealPlanServingsLabel => 'Servings';

  @override
  String get mealPlanResetServings => 'Reset';

  @override
  String get mealPlanSaving => 'Saving...';

  @override
  String mealPlanPlannedRecipes(int count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '# recipes planned',
      one: '# recipe planned',
    );
    return '$_temp0';
  }

  @override
  String get mealPlanShoppingTitle => 'Shopping list';

  @override
  String get mealPlanPickRecipeHint =>
      'Choose recipes above to see the combined ingredient list.';

  @override
  String get mealPlanNoShoppingItems => 'No ingredients to show for this week.';

  @override
  String get mealPlanNoRecipesTitle => 'There are no recipes to plan yet.';

  @override
  String get mealPlanNoRecipesDescription =>
      'Create at least one recipe first, then add it to the meal plan.';

  @override
  String mealPlanMissingCount(int count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '# missing',
      one: '# missing',
    );
    return '$_temp0';
  }

  @override
  String mealPlanPartialCount(int count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '# partially at home',
      one: '# partially at home',
    );
    return '$_temp0';
  }

  @override
  String mealPlanEnoughCount(int count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '# at home',
      one: '# at home',
    );
    return '$_temp0';
  }

  @override
  String mealPlanPantryCount(int count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '# pantry staples',
      one: '# pantry staple',
    );
    return '$_temp0';
  }

  @override
  String get mealPlanAllAtHome => 'You already have everything at home.';

  @override
  String get mealPlanStatusMissing => 'Missing';

  @override
  String get mealPlanStatusPartial => 'Partially at home';

  @override
  String get mealPlanStatusEnough => 'At home';

  @override
  String get mealPlanStatusPantry => 'Pantry staple';

  @override
  String get loginTitle => 'Sign in';

  @override
  String get usernameLabel => 'Username';

  @override
  String get usernameRequired => 'Enter your username.';

  @override
  String get passwordLabel => 'Password';

  @override
  String get passwordRequired => 'Enter your password.';

  @override
  String get loginAction => 'Sign in';

  @override
  String get sessionExpiredError => 'Your session has expired. Sign in again.';

  @override
  String get forbiddenError =>
      'You do not have permission to use this feature.';

  @override
  String get serverError => 'A server error occurred. Try again in a moment.';

  @override
  String get networkError =>
      'Network error. Check your connection and try again.';

  @override
  String get unexpectedError => 'An unexpected error occurred.';

  @override
  String get cancelAction => 'Cancel';

  @override
  String get saveAction => 'Save';

  @override
  String get deleteAction => 'Delete';

  @override
  String get addAction => 'Add';

  @override
  String get editTooltip => 'Edit';

  @override
  String get deleteTooltip => 'Delete';

  @override
  String get loadingLabel => 'Loading...';

  @override
  String get cannotBeUndone => 'This action cannot be undone.';

  @override
  String get yesLabel => 'Yes';

  @override
  String get noLabel => 'No';

  @override
  String get commentLabel => 'Comment';

  @override
  String get commentOptionalLabel => 'Comment (optional)';

  @override
  String get openedLabel => 'Opened';

  @override
  String get quantityLabel => 'Quantity *';

  @override
  String get quantityHint => 'Enter quantity';

  @override
  String get invalidNumber => 'Invalid number';

  @override
  String get unitLabel => 'Unit *';

  @override
  String get selectDateLabel => 'Select date';

  @override
  String get locationOptionalLabel => 'Location (optional)';

  @override
  String get locationLabel => 'Location';

  @override
  String get brandOptionalLabel => 'Brand (optional)';

  @override
  String get brandLabel => 'Brand';

  @override
  String get enterPositiveNumber => 'Enter a positive number';

  @override
  String get inventoryTitle => 'Inventory';

  @override
  String get inventoryFilterAndSort => 'Filter and sorting';

  @override
  String get inventorySortLatest => 'Latest added';

  @override
  String get inventorySortNameAsc => 'Name A-Z';

  @override
  String get inventorySortBestBeforeAsc => 'Best before ascending';

  @override
  String get inventorySortBestBeforeDesc => 'Best before descending';

  @override
  String get inventorySortLabel => 'Sort';

  @override
  String get inventoryAllFilter => 'All';

  @override
  String get inventoryEmpty => 'Inventory is empty.';

  @override
  String get inventoryLoading => 'Loading inventory...';

  @override
  String get inventoryCreateTitle => 'Add inventory item';

  @override
  String get inventoryEditTitle => 'Edit inventory item';

  @override
  String get inventorySelectProduct => 'Select a product from the list.';

  @override
  String get inventoryDeleteTitle => 'Delete inventory item?';

  @override
  String get inventoryProductLabel => 'Product';

  @override
  String get inventoryQuantityDisplayLabel => 'Quantity';

  @override
  String get inventoryLocationDisplayLabel => 'Location';

  @override
  String get inventoryBrandDisplayLabel => 'Brand';

  @override
  String get inventoryPurchaseDateLabel => 'Purchase date';

  @override
  String get inventoryBestBeforeLabel => 'Best before';

  @override
  String get inventoryPurchaseDatePrefix => 'Purchase: ';

  @override
  String get inventoryBestBeforeDatePrefix => 'Best before: ';

  @override
  String get inventoryConsumeAction => 'Consume';

  @override
  String get inventoryHistoryAction => 'Consumption history';

  @override
  String get inventoryConsumeAmountLabel => 'Amount to consume *';

  @override
  String get inventoryHistoryLoading => 'Loading history...';

  @override
  String get inventoryHistoryEmpty => 'No consumption history exists.';

  @override
  String get inventoryRecipesAction => 'Recipes';

  @override
  String inventoryHistoryTitle(String name) {
    return 'History: $name';
  }

  @override
  String inventoryConsumeNameTitle(String name) {
    return 'Consume: $name';
  }

  @override
  String inventoryAvailableLabel(String quantity, String unit) {
    return 'Available: $quantity $unit';
  }

  @override
  String get pantryDescription => 'Products you always expect to have at home.';

  @override
  String get pantryLoading => 'Loading pantry...';

  @override
  String get pantryNoLocation => 'No location selected';

  @override
  String get pantryInvalidQuantity => 'Enter a valid quantity greater than 0.';

  @override
  String get pantryRemoveTitle => 'Remove from pantry?';

  @override
  String get pantryOtherCategory => 'Other';

  @override
  String get pantryGoToRecipesTooltip => 'Go to recipes';

  @override
  String pantryAddToInventoryTitle(String name) {
    return 'Add \"$name\" to inventory';
  }

  @override
  String pantryItemAdded(String name) {
    return '$name added to inventory.';
  }

  @override
  String pantryRemoveContent(String name) {
    return 'Do you want to remove \"$name\"?';
  }

  @override
  String get recipesLoading => 'Loading recipes...';

  @override
  String get recipesEmpty => 'No recipes found';

  @override
  String get recipesEmptyDescription => 'Add a recipe to get started.';

  @override
  String get recipesNewTooltip => 'New recipe';

  @override
  String get recipeDetailLoading => 'Loading recipe...';

  @override
  String get recipeDetailMakePrivate => 'Make private';

  @override
  String get recipeDetailMakePublic => 'Make public';

  @override
  String get recipeDetailShareWithUser => 'Share with user';

  @override
  String get recipeDetailGoToInventory => 'Go to inventory';

  @override
  String get recipeDetailShareTitle => 'Share recipe';

  @override
  String get recipeDetailUsernameLabel => 'Username';

  @override
  String get recipeDetailUsernameHint => 'e.g. anna';

  @override
  String get recipeDetailRemoveShare => 'Remove sharing';

  @override
  String get recipeDetailShareAction => 'Share';

  @override
  String get recipeDetailDeleteTitle => 'Delete recipe?';

  @override
  String get recipeDetailNowPublic => 'The recipe is now public.';

  @override
  String get recipeDetailNowPrivate => 'The recipe is now private.';

  @override
  String get recipeDetailServings => 'servings';

  @override
  String get recipeDetailIngredients => 'Ingredients';

  @override
  String get recipeDetailInstructions => 'Instructions';

  @override
  String get recipeDetailBackToList => 'Back to recipe list';

  @override
  String recipeDetailSharingRemoved(String user) {
    return 'Sharing removed for $user';
  }

  @override
  String recipeDetailSharedWith(String user) {
    return 'Recipe shared with $user';
  }

  @override
  String recipeDetailDeleteContent(String title) {
    return 'Do you want to delete \"$title\"? This action cannot be undone.';
  }

  @override
  String get recipeCreateTitle => 'New recipe';

  @override
  String get recipeCreateReviewIngredients => 'Review ingredients';

  @override
  String get recipeCreateMarkdownPlaceholder =>
      '# Recipe name\n\n## Ingredients\n- 500 g ground beef\n- 1 onion\n\n## Instructions\nFry the onion...';

  @override
  String get recipeCreateMarkdownHint =>
      'Paste or write a recipe in Markdown format.';

  @override
  String get recipeCreateNameRequired => 'Recipe name cannot be empty.';

  @override
  String get recipeCreateSaveAction => 'Save recipe';

  @override
  String get recipeCreateServingsLabel => 'Number of servings (optional)';

  @override
  String get recipeCreateIngredientsLabel => 'Ingredients';

  @override
  String get recipeCreateIngredientsHint =>
      'Check ingredients to include and select the right product.';

  @override
  String get recipeCreateNoProductFound =>
      'No product found — ingredient will be skipped.';

  @override
  String get recipeEditTitle => 'Edit recipe';

  @override
  String get recipeEditNameLabel => 'Recipe name';

  @override
  String get recipeEditNameRequired => 'Enter a recipe name.';

  @override
  String get recipeEditDescriptionLabel => 'Description (optional)';

  @override
  String get recipeEditServingsLabel => 'Number of servings (optional)';

  @override
  String get recipeEditServingsInvalid => 'Enter a whole number.';

  @override
  String get recipeEditInstructionsLabel => 'Instructions (optional)';

  @override
  String get recipeEditIngredientsLabel => 'Ingredients';

  @override
  String get recipeEditIngredientsHint =>
      'Select product, quantity and unit for each ingredient.';

  @override
  String get recipeEditNoIngredients => 'No ingredients added yet.';

  @override
  String get recipeEditIngredientPrefix => 'Ingredient ';

  @override
  String get recipeEditRemoveIngredient => 'Remove ingredient';

  @override
  String get recipeEditMinIngredients => 'At least one ingredient is required.';

  @override
  String get recipeEditSelectProduct => 'Select product for all ingredients.';

  @override
  String get recipeEditValidQuantity =>
      'Enter valid quantity for all ingredients.';

  @override
  String get recipeEditSelectUnit => 'Select unit for all ingredients.';

  @override
  String get recipeEditSaveChanges => 'Save changes';

  @override
  String get importTabDescription =>
      'Upload a PDF or image, or enter a recipe link — the recipe will be imported and opened directly in edit mode.';

  @override
  String get importFileTabLabel => 'File / PDF';

  @override
  String get importLinkTabLabel => 'Link';

  @override
  String get importChooseFileAction => 'Choose file (PDF, PNG, JPG, WEBP, BMP)';

  @override
  String get importFileAction => 'Import file';

  @override
  String get importFileProcessing =>
      'Parsing recipe — this can take up to a minute...';

  @override
  String get importLinkAction => 'Import from link';

  @override
  String get importLinkLabel => 'Recipe link';

  @override
  String get importLinkHint => 'https://example.com/recipe/...';

  @override
  String get importWriteInstead => 'Write recipe instead';

  @override
  String get errorDialogTitle => 'Error';

  @override
  String get errorDialogClose => 'Close';

  @override
  String get errorDialogCopy => 'Copy';

  @override
  String get errorDialogCopied => 'Error message copied!';

  @override
  String get profileMyProfileTab => 'My profile';

  @override
  String get profileDatabaseTab => 'Database';

  @override
  String get profileUsersTab => 'Users';

  @override
  String get profilePendingTab => 'Suggestions';

  @override
  String get profileAiTab => 'AI';

  @override
  String get profileUsernameLabel => 'Username';

  @override
  String get profileEmailLabel => 'E-mail';

  @override
  String get profileEmailHint => 'Enter an e-mail address';

  @override
  String get profileEmailInvalid => 'Invalid e-mail address';

  @override
  String get profileFirstNameLabel => 'First name';

  @override
  String get profileLastNameLabel => 'Last name';

  @override
  String get profileSaveAction => 'Save changes';

  @override
  String get profileSaved => 'Profile saved!';

  @override
  String get profileInventoryTab => 'Inventory';

  @override
  String get profilePantryTab => 'Pantry';

  @override
  String get profileProductsTab => 'Products';

  @override
  String get profileAddInventoryItem => 'Add inventory item';

  @override
  String get profileOpenInventory => 'Open inventory';

  @override
  String get profileInventoryDescription =>
      'Update and consume items in your inventory.';

  @override
  String get profileOpenPantry => 'Open pantry';

  @override
  String get profilePantryDescription =>
      'Manage items you always expect to have at home.';

  @override
  String get adminChangeRole => 'Change role';

  @override
  String get adminGivePremium => 'Give Premium';

  @override
  String get adminRemovePremium => 'Remove Premium';

  @override
  String get adminAllowSharing => 'Allow recipe sharing';

  @override
  String get adminBlockSharing => 'Block recipe sharing';

  @override
  String get adminResetPassword => 'Reset password';

  @override
  String get adminTempPasswordTitle => 'Temporary password';

  @override
  String get adminCopyAction => 'Copy';

  @override
  String get adminCloseAction => 'Close';

  @override
  String get adminEmailLabel => 'E-mail';

  @override
  String get adminEmailInvalid => 'Invalid e-mail address.';

  @override
  String get adminEmailUpdated => 'E-mail updated.';

  @override
  String get adminDeleteUser => 'Delete user';

  @override
  String get adminDeleteUserConfirm =>
      'Delete permanently? This cannot be undone.';

  @override
  String get adminConfirmAction => 'Confirm';

  @override
  String get adminNewUser => 'New user';

  @override
  String get adminNoUsers => 'No users found.';

  @override
  String get adminAdminRole => 'Admin';

  @override
  String get adminUserRole => 'User';

  @override
  String get adminPremiumLabel => 'Premium';

  @override
  String get adminFreeLabel => 'Free';

  @override
  String get adminSharingOn => 'Sharing: On';

  @override
  String get adminSharingOff => 'Sharing: Off';

  @override
  String get adminUsersDescription =>
      'Manage users directly from the profile page.';

  @override
  String get adminDowngradeToUser => 'Downgrade to user';

  @override
  String get adminUpgradeToAdmin => 'Upgrade to admin';

  @override
  String get adminSortNewest => 'Sort: Newest';

  @override
  String get adminSortOldest => 'Sort: Oldest';

  @override
  String get adminSortNameAsc => 'Sort: Name A-Z';

  @override
  String get adminSortNameDesc => 'Sort: Name Z-A';

  @override
  String get adminSortCategoryAsc => 'Sort: Category A-Z';

  @override
  String get adminSortCategoryDesc => 'Sort: Category Z-A';

  @override
  String get adminSearchProduct => 'Search product';

  @override
  String get adminShowDeleted => 'Show deleted';

  @override
  String get adminOnlyUncategorized => 'Only uncategorized';

  @override
  String get adminBulkSetCategory => 'Bulk: set category';

  @override
  String get adminProductsUpdated => 'Products updated.';

  @override
  String get adminNoAiSuggestions => 'No AI suggestions to show.';

  @override
  String get adminMergeProducts => 'Merge products';

  @override
  String get adminMergeSelectSource =>
      'Select which product should be moved into the other:';

  @override
  String get adminMergeSource => 'Source: ';

  @override
  String get adminMergeTarget => 'Target: ';

  @override
  String get adminMergeAction => 'Merge';

  @override
  String get adminDeleteProduct => 'Delete product';

  @override
  String get adminProductDeleted => 'Product deleted.';

  @override
  String get adminProductsRestored => 'Selected products restored.';

  @override
  String get adminProductRestored => 'Product restored.';

  @override
  String get adminNoPendingProducts => 'No pending product suggestions.';

  @override
  String get adminCategoryPrefix => 'Category: ';

  @override
  String get adminSuggestedByPrefix => 'Suggested by: ';

  @override
  String get adminDatePrefix => 'Date: ';

  @override
  String get adminApproveAction => 'Approve';

  @override
  String get adminRejectAction => 'Reject';

  @override
  String get adminPendingDescription =>
      'Approve or reject pending product suggestions directly from the profile page.';

  @override
  String get adminAiDescription =>
      'Overview of AI features exposed by the backend.';

  @override
  String get adminPagePrefix => 'Page: ';

  @override
  String get adminNewProductLabel => 'New product';

  @override
  String get adminPasswordMustChange =>
      'The user must change their password at next login.';

  @override
  String adminChangeRoleConfirm(String username, String role) {
    return 'Change $username to $role?';
  }

  @override
  String adminGivePremiumConfirm(String username) {
    return 'Give Premium for $username';
  }

  @override
  String adminRemovePremiumConfirm(String username) {
    return 'Remove Premium for $username';
  }

  @override
  String adminAllowSharingConfirm(String username) {
    return 'Allow recipe sharing for $username';
  }

  @override
  String adminBlockSharingConfirm(String username) {
    return 'Block recipe sharing for $username';
  }

  @override
  String adminResetPasswordContent(String username) {
    return 'Generate a temporary password for $username';
  }

  @override
  String adminPasswordTitle(String username) {
    return 'Password for $username';
  }

  @override
  String adminChangeEmailTitle(String username) {
    return 'Change e-mail for $username';
  }

  @override
  String adminDeleteProductContent(String name) {
    return 'Delete $name? The product can be restored later.';
  }

  @override
  String adminAiAppliedCount(int count) {
    return 'AI suggestions applied to $count products.';
  }

  @override
  String adminCategoryUpdated(String name) {
    return 'Category updated for $name';
  }

  @override
  String adminProductUpdated(String name) {
    return 'Product updated for $name';
  }

  @override
  String adminPremiumConfirm(String action, String username) {
    return '$action Premium for $username?';
  }

  @override
  String adminSharingConfirm(String action, String username) {
    return '$action recipe sharing for $username?';
  }

  @override
  String adminResetPasswordConfirm(String username) {
    return 'Generate a temporary password for $username?';
  }

  @override
  String adminTempPasswordForUser(String username) {
    return 'Password for $username:';
  }

  @override
  String adminEmailEditTitle(String username) {
    return 'Change e-mail for $username';
  }

  @override
  String get adminEmailAction => 'Change e-mail';

  @override
  String adminUserCreated(String username) {
    return 'User $username created.';
  }

  @override
  String get adminCreateUserTitle => 'Create user';

  @override
  String get adminMinChars2 => 'At least 2 characters';

  @override
  String get adminMinChars8 => 'At least 8 characters';

  @override
  String get adminPasswordLabel => 'Password';

  @override
  String get adminRoleLabel => 'Role';

  @override
  String get adminCreateAction => 'Create';

  @override
  String get adminMergeProductsTitle => 'Merge products';

  @override
  String get adminMergeProductsHint =>
      'Select which product should be moved into the other:';

  @override
  String get adminMerge2Selected => 'Merge 2 selected';

  @override
  String get adminProductsMerged => 'Products merged.';

  @override
  String get adminDeleteProductTitle => 'Delete product';

  @override
  String adminDeleteProductConfirm(String name) {
    return 'Delete $name? The product can be restored later.';
  }

  @override
  String get adminAiSuggestionsTitle => 'AI suggestions';

  @override
  String adminAiApplied(int count) {
    return 'AI suggestions applied to $count products.';
  }

  @override
  String adminApplySelected(int count) {
    return 'Apply ($count)';
  }

  @override
  String adminUpdateSelected(int count) {
    return 'Update selected ($count)';
  }

  @override
  String get adminAiCategorizeAll => 'AI-categorize uncategorized';

  @override
  String adminAiCategorizeSelected(int count) {
    return 'AI-categorize selected ($count)';
  }

  @override
  String adminRestoreSelected(int count) {
    return 'Restore selected ($count)';
  }

  @override
  String get adminShowUncategorized => 'Uncategorized only';

  @override
  String get adminRemoveCategory => 'Remove category';

  @override
  String get adminNoProductsFound => 'No products match the filter.';

  @override
  String get adminInlineCategory => 'Category (inline)';

  @override
  String get adminNoCategory => 'No category';

  @override
  String get adminRestoreAction => 'Restore';

  @override
  String get required => 'Required';

  @override
  String get logoutAction => 'Log out';

  @override
  String get profileDatabaseDescription =>
      'The database tab covers the same main areas as in recipe-frontend.';
}
