feat: add localisation
This commit is contained in:
@@ -0,0 +1,239 @@
|
||||
{
|
||||
"@@locale": "en",
|
||||
"appTitle": "KoolTab",
|
||||
"barTabs": "Bar Tabs",
|
||||
"products": "Products",
|
||||
"addProduct": "Add product",
|
||||
"noProductsYet": "No products yet.",
|
||||
"addFirstProduct": "Add your first product to start selling.",
|
||||
"manageProducts": "Manage products",
|
||||
"tabHistory": "Tab history",
|
||||
"refresh": "Refresh",
|
||||
"settings": "Settings",
|
||||
"logout": "Logout",
|
||||
"openOrSelectTab": "Open or select a tab first.",
|
||||
"openNewTab": "Open new tab",
|
||||
"customerGroupName": "Customer / group name",
|
||||
"cancel": "Cancel",
|
||||
"openTab": "Open tab",
|
||||
"couldNotCreateTab": "Could not create tab: {error}",
|
||||
"@couldNotCreateTab": {"placeholders": {"error": {"type": "String"}}},
|
||||
"searchByName": "Search by name…",
|
||||
"allCustomers": "All customers",
|
||||
"customer": "Customer",
|
||||
"noClosedTabs": "No closed tabs yet",
|
||||
"settingsTitle": "Settings",
|
||||
"security": "Security",
|
||||
"pinRequired": "PIN Required",
|
||||
"changePin": "Change PIN",
|
||||
"appearance": "Appearance",
|
||||
"language": "Language",
|
||||
"languageSystem": "System default",
|
||||
"languageEnglish": "English",
|
||||
"languageDutch": "Dutch",
|
||||
"theme": "Theme",
|
||||
"system": "System",
|
||||
"light": "Light",
|
||||
"dark": "Dark",
|
||||
"ugly": "Ugly",
|
||||
"setPinCode": "Set PIN Code",
|
||||
"enterPin": "Enter PIN",
|
||||
"enterCurrentPin": "Enter Current PIN",
|
||||
"enterNewPin": "Enter New PIN",
|
||||
"fourDigits": "4 digits",
|
||||
"enterPinFourDigits": "Enter PIN (4 digits)",
|
||||
"confirm": "Confirm",
|
||||
"confirmPin": "Confirm PIN",
|
||||
"pinExactlyFour": "PIN must be exactly 4 digits",
|
||||
"couldNotSavePin": "Could not save PIN setting.",
|
||||
"editProduct": "Edit product",
|
||||
"productName": "Product name",
|
||||
"category": "Category",
|
||||
"price": "Price",
|
||||
"stock": "Stock",
|
||||
"lowStockThreshold": "Low stock threshold",
|
||||
"chooseProductImage": "Choose product image",
|
||||
"changeImage": "Change image",
|
||||
"deleteProduct": "Delete product?",
|
||||
"deleteProductDescription": "This will remove the product from the product list.",
|
||||
"delete": "Delete",
|
||||
"productNotFound": "Product not found.",
|
||||
"chooseImage": "Choose a product image.",
|
||||
"selectCategory": "Please select a category.",
|
||||
"enterProductName": "Enter a product name.",
|
||||
"version": "Version {version}",
|
||||
"@version": {"placeholders": {"version": {"type": "String"}}},
|
||||
"selectTabToAddItems": "Select a tab to add items",
|
||||
"openTabs": "Open tabs",
|
||||
"selectOrOpenTab": "Select or open a tab",
|
||||
"noOpenTabs": "No open tabs",
|
||||
"edit": "Edit",
|
||||
"close": "Close",
|
||||
"tabItemSummary": "{count, plural, =1 {1 item - {total}} other {{count} items - {total}}}",
|
||||
"@tabItemSummary": {"placeholders": {"count": {"type": "int"}, "total": {"type": "String"}}},
|
||||
"tabItemCount": "{count, plural, =1 {1 item} other {{count} items}}",
|
||||
"@tabItemCount": {"placeholders": {"count": {"type": "int"}}},
|
||||
"tapProductsToAdd": "Tap products to add them",
|
||||
"total": "Total",
|
||||
"closeTab": "Close tab",
|
||||
"productStockSummary": "{category} • {price} • Stock: {stock}",
|
||||
"@productStockSummary": {"placeholders": {"category": {"type": "String"}, "price": {"type": "String"}, "stock": {"type": "int"}}},
|
||||
"outOfStock": "OUT OF STOCK",
|
||||
"tabsYouCloseAppearHere": "Tabs you close will show up here.",
|
||||
"enterPinSubtitle": "You’ll use this to unlock the app",
|
||||
"confirmPinSubtitle": "Enter the same PIN again",
|
||||
"createPin": "Create a PIN",
|
||||
"pinsDidNotMatch": "PINs didn’t match. Try again.",
|
||||
"somethingWentWrong": "Something went wrong.",
|
||||
"incorrectPin": "Incorrect PIN.",
|
||||
"enterPrice": "Enter a price.",
|
||||
"enterValidPrice": "Enter a valid price.",
|
||||
"enterValidStock": "Enter a valid stock amount.",
|
||||
"enterValidThreshold": "Enter a valid threshold.",
|
||||
"couldNotLoadProduct": "Could not load product.",
|
||||
"couldNotSaveProduct": "Could not save product.",
|
||||
"couldNotDeleteProduct": "Could not delete product.",
|
||||
"paymentMethod": "Payment method",
|
||||
"cash": "Cash",
|
||||
"payconiq": "Payconiq",
|
||||
"closeTabForCustomer": "Close tab for {customerName}?",
|
||||
"@closeTabForCustomer": {"placeholders": {"customerName": {"type": "String"}}},
|
||||
"currentTotal": "Current total: {total}",
|
||||
"@currentTotal": {"placeholders": {"total": {"type": "String"}}},
|
||||
"couldNotCloseTab": "Could not close tab.",
|
||||
"closingTab": "Closing tab…",
|
||||
"slideToConfirmClosing": "Slide to confirm closing",
|
||||
"errorScreen": "Error Screen",
|
||||
"unexpectedError": "An unexpected error occurred.\nPlease try restarting the app.",
|
||||
"goToBarScreen": "Go to bar screen",
|
||||
"updates": "Updates",
|
||||
"checkingForUpdates": "Checking for updates…",
|
||||
"checkForUpdates": "Check for updates",
|
||||
"latestVersion": "You are already on the latest version.",
|
||||
"updateCheckFailed": "Update check failed.",
|
||||
"updateAvailable": "Update available",
|
||||
"versionAvailable": "Version {version} is available.",
|
||||
"@versionAvailable": {"placeholders": {"version": {"type": "String"}}},
|
||||
"later": "Later",
|
||||
"update": "Update",
|
||||
"updateReady": "Update ready",
|
||||
"updateReadyDescription": "The update has been downloaded and installed. Restart the app now to apply the changes.",
|
||||
"restartApp": "Restart app",
|
||||
"updateFailed": "Update failed",
|
||||
"retry": "Retry",
|
||||
"updating": "Updating",
|
||||
"installing": "Installing",
|
||||
"doNotCloseDuringUpdate": "Do not close the app during the update",
|
||||
"cancelUpdate": "Cancel update?",
|
||||
"cancelUpdateDescription": "The update is in progress. If you leave now, the app may become unstable.",
|
||||
"continueUpdate": "Continue update",
|
||||
"cancelUpdateAction": "Cancel update",
|
||||
"preparingDownload": "Preparing download…",
|
||||
"simulatedDownloadError": "Simulated download error (network timeout)",
|
||||
"downloadFailed": "Download failed",
|
||||
"downloading": "Downloading {percent}%",
|
||||
"@downloading": {"placeholders": {"percent": {"type": "String"}}},
|
||||
"installingUpdate": "Installing update…",
|
||||
"updateInstalledRestarting": "Update installed! Restarting…",
|
||||
"installationFailed": "Installation failed",
|
||||
"updateAlreadyInProgress": "Update already in progress",
|
||||
"updateAlreadyRunning": "Update already running",
|
||||
"genericError": "An unexpected error occurred.",
|
||||
"couldNotLoadBar": "Could not load bar screen.",
|
||||
"couldNotCreateTabMessage": "Could not create tab.",
|
||||
"productOutOfStock": "Product is out of stock.",
|
||||
"couldNotAddProductToTab": "Could not add product to tab.",
|
||||
"couldNotUpdateQuantity": "Could not update item quantity.",
|
||||
"couldNotReloadTabs": "Could not reload tabs.",
|
||||
"couldNotLoadHistory": "Could not load tab history.",
|
||||
"couldNotLoadMoreTabs": "Could not load more tabs.",
|
||||
"couldNotLoadProducts": "Could not load products.",
|
||||
"couldNotAddProduct": "Could not add product.",
|
||||
"couldNotUpdateProduct": "Could not update product.",
|
||||
"couldNotDeleteProductMessage": "Could not delete product.",
|
||||
"couldNotCheckPinStatus": "Could not check PIN status.",
|
||||
"couldNotVerifyPin": "Could not verify PIN.",
|
||||
"currentPinIncorrect": "Current PIN is incorrect.",
|
||||
"couldNotLoadSettings": "Could not load settings.",
|
||||
"couldNotSaveSettings": "Could not save settings.",
|
||||
"downloadFailedWithDetail": "Download failed.",
|
||||
"installationFailedWithDetail": "Installation failed.",
|
||||
"devMenu": "Dev Menu",
|
||||
"dataManagement": "Data Management",
|
||||
"clearOpenTabs": "Clear all open tabs",
|
||||
"clearClosedHistory": "Clear closed tab history",
|
||||
"seedDefaultProducts": "Seed default products",
|
||||
"onlySeedsWhenEmpty": "Only seeds if table is empty",
|
||||
"clearAndReseedProducts": "Clear & reseed products",
|
||||
"wipesAndReseeds": "Wipes all products, then seeds defaults",
|
||||
"clearAllProducts": "Clear all products",
|
||||
"clearProductImages": "Clear product images",
|
||||
"deletesProductImages": "Deletes images from product_images folder",
|
||||
"debugging": "Debugging",
|
||||
"resetPin": "Reset PIN",
|
||||
"removePinLock": "Remove PIN lock",
|
||||
"toggleDebugOverlay": "Toggle debug overlay",
|
||||
"showFpsMemoryWidgets": "Show FPS, memory, widget count",
|
||||
"errorScreenMenu": "Error screen",
|
||||
"viewErrorScreen": "View the error screen UI",
|
||||
"featureToggles": "Feature Toggles",
|
||||
"simulateUpdateDownload": "Simulate update download",
|
||||
"openDownloadProgress": "Open the download progress screen",
|
||||
"testingHelpers": "Testing Helpers",
|
||||
"createTestTab": "Create test tab",
|
||||
"addRandomItems": "Add tab with random items",
|
||||
"addTestProducts": "Add 100 test products",
|
||||
"stressTestGrid": "Stress test product grid",
|
||||
"simulateLowStock": "Simulate low stock",
|
||||
"setProductsBelowThreshold": "Set all products below threshold",
|
||||
"generateMockOrders": "Generate 100 mock orders",
|
||||
"randomCustomersItemsAmounts": "Random customers, items, and amounts",
|
||||
"performance": "Performance",
|
||||
"clearImageCache": "Clear image cache",
|
||||
"reloadProductImages": "Reload product images",
|
||||
"debugOverlay": "Debug Overlay",
|
||||
"debugOverlayDescription": "The debug overlay shows FPS, memory usage, and widget counts. Enable it via Flutter DevTools in debug mode.",
|
||||
"ok": "OK",
|
||||
"simulateUpdate": "Simulate update",
|
||||
"chooseSimulationMode": "Choose a simulation mode:",
|
||||
"successfulDownload": "Successful download",
|
||||
"progressThenInstall": "Progress 0→100%, then install, then done",
|
||||
"downloadError": "Download error",
|
||||
"failsWithNetworkTimeout": "Fails at 50% with a network timeout",
|
||||
"realDownloadWillFail": "Real download (will fail)",
|
||||
"attemptsFakeUrl": "Attempts real OTA with fake URL",
|
||||
"categoryBeer": "Beer",
|
||||
"categoryWine": "Wine",
|
||||
"categorySoftDrinks": "Soft drinks",
|
||||
"categoryCocktails": "Cocktails",
|
||||
"categorySnacks": "Snacks",
|
||||
"categoryCoffee": "Coffee",
|
||||
"categoryTea": "Tea",
|
||||
"categoryOther": "Other",
|
||||
"devActionClearedOpenTabs": "Cleared all open tabs",
|
||||
"devActionClearedHistory": "Cleared closed tab history",
|
||||
"devActionClearedProducts": "Cleared all products",
|
||||
"devActionSeededProducts": "Seeded {count} products",
|
||||
"@devActionSeededProducts": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionReseededProducts": "Cleared and reseeded {count} products",
|
||||
"@devActionReseededProducts": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionImagesCleared": "Product images cleared",
|
||||
"devActionResetPin": "PIN reset (no PIN required)",
|
||||
"devActionNoProducts": "No products available",
|
||||
"devActionImagesReloaded": "Product images reloaded",
|
||||
"devActionCacheCleared": "Image cache cleared (no-op in debug mode)",
|
||||
"devActionLowStock": "Simulated low stock for {count} products",
|
||||
"@devActionLowStock": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionTestTab": "Created test tab with {count} items",
|
||||
"@devActionTestTab": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionTestProducts": "Added {count} test products",
|
||||
"@devActionTestProducts": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionMockOrders": "Generated {orders} mock orders across {customers} customers",
|
||||
"@devActionMockOrders": {"placeholders": {"orders": {"type": "int"}, "customers": {"type": "int"}}},
|
||||
"devActionFailedImages": "Failed to clear images.",
|
||||
"devActionResetStock": "Reset stock for {count} products",
|
||||
"@devActionResetStock": {"placeholders": {"count": {"type": "int"}}},
|
||||
"paymentCash": "Cash",
|
||||
"paymentPayconiq": "Payconiq",
|
||||
"simulatedUpdateNotes": "Bug fixes and performance improvements."
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,723 @@
|
||||
// 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 => 'KoolTab';
|
||||
|
||||
@override
|
||||
String get barTabs => 'Bar Tabs';
|
||||
|
||||
@override
|
||||
String get products => 'Products';
|
||||
|
||||
@override
|
||||
String get addProduct => 'Add product';
|
||||
|
||||
@override
|
||||
String get noProductsYet => 'No products yet.';
|
||||
|
||||
@override
|
||||
String get addFirstProduct => 'Add your first product to start selling.';
|
||||
|
||||
@override
|
||||
String get manageProducts => 'Manage products';
|
||||
|
||||
@override
|
||||
String get tabHistory => 'Tab history';
|
||||
|
||||
@override
|
||||
String get refresh => 'Refresh';
|
||||
|
||||
@override
|
||||
String get settings => 'Settings';
|
||||
|
||||
@override
|
||||
String get logout => 'Logout';
|
||||
|
||||
@override
|
||||
String get openOrSelectTab => 'Open or select a tab first.';
|
||||
|
||||
@override
|
||||
String get openNewTab => 'Open new tab';
|
||||
|
||||
@override
|
||||
String get customerGroupName => 'Customer / group name';
|
||||
|
||||
@override
|
||||
String get cancel => 'Cancel';
|
||||
|
||||
@override
|
||||
String get openTab => 'Open tab';
|
||||
|
||||
@override
|
||||
String couldNotCreateTab(String error) {
|
||||
return 'Could not create tab: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get searchByName => 'Search by name…';
|
||||
|
||||
@override
|
||||
String get allCustomers => 'All customers';
|
||||
|
||||
@override
|
||||
String get customer => 'Customer';
|
||||
|
||||
@override
|
||||
String get noClosedTabs => 'No closed tabs yet';
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'Settings';
|
||||
|
||||
@override
|
||||
String get security => 'Security';
|
||||
|
||||
@override
|
||||
String get pinRequired => 'PIN Required';
|
||||
|
||||
@override
|
||||
String get changePin => 'Change PIN';
|
||||
|
||||
@override
|
||||
String get appearance => 'Appearance';
|
||||
|
||||
@override
|
||||
String get language => 'Language';
|
||||
|
||||
@override
|
||||
String get languageSystem => 'System default';
|
||||
|
||||
@override
|
||||
String get languageEnglish => 'English';
|
||||
|
||||
@override
|
||||
String get languageDutch => 'Dutch';
|
||||
|
||||
@override
|
||||
String get theme => 'Theme';
|
||||
|
||||
@override
|
||||
String get system => 'System';
|
||||
|
||||
@override
|
||||
String get light => 'Light';
|
||||
|
||||
@override
|
||||
String get dark => 'Dark';
|
||||
|
||||
@override
|
||||
String get ugly => 'Ugly';
|
||||
|
||||
@override
|
||||
String get setPinCode => 'Set PIN Code';
|
||||
|
||||
@override
|
||||
String get enterPin => 'Enter PIN';
|
||||
|
||||
@override
|
||||
String get enterCurrentPin => 'Enter Current PIN';
|
||||
|
||||
@override
|
||||
String get enterNewPin => 'Enter New PIN';
|
||||
|
||||
@override
|
||||
String get fourDigits => '4 digits';
|
||||
|
||||
@override
|
||||
String get enterPinFourDigits => 'Enter PIN (4 digits)';
|
||||
|
||||
@override
|
||||
String get confirm => 'Confirm';
|
||||
|
||||
@override
|
||||
String get confirmPin => 'Confirm PIN';
|
||||
|
||||
@override
|
||||
String get pinExactlyFour => 'PIN must be exactly 4 digits';
|
||||
|
||||
@override
|
||||
String get couldNotSavePin => 'Could not save PIN setting.';
|
||||
|
||||
@override
|
||||
String get editProduct => 'Edit product';
|
||||
|
||||
@override
|
||||
String get productName => 'Product name';
|
||||
|
||||
@override
|
||||
String get category => 'Category';
|
||||
|
||||
@override
|
||||
String get price => 'Price';
|
||||
|
||||
@override
|
||||
String get stock => 'Stock';
|
||||
|
||||
@override
|
||||
String get lowStockThreshold => 'Low stock threshold';
|
||||
|
||||
@override
|
||||
String get chooseProductImage => 'Choose product image';
|
||||
|
||||
@override
|
||||
String get changeImage => 'Change image';
|
||||
|
||||
@override
|
||||
String get deleteProduct => 'Delete product?';
|
||||
|
||||
@override
|
||||
String get deleteProductDescription =>
|
||||
'This will remove the product from the product list.';
|
||||
|
||||
@override
|
||||
String get delete => 'Delete';
|
||||
|
||||
@override
|
||||
String get productNotFound => 'Product not found.';
|
||||
|
||||
@override
|
||||
String get chooseImage => 'Choose a product image.';
|
||||
|
||||
@override
|
||||
String get selectCategory => 'Please select a category.';
|
||||
|
||||
@override
|
||||
String get enterProductName => 'Enter a product name.';
|
||||
|
||||
@override
|
||||
String version(String version) {
|
||||
return 'Version $version';
|
||||
}
|
||||
|
||||
@override
|
||||
String get selectTabToAddItems => 'Select a tab to add items';
|
||||
|
||||
@override
|
||||
String get openTabs => 'Open tabs';
|
||||
|
||||
@override
|
||||
String get selectOrOpenTab => 'Select or open a tab';
|
||||
|
||||
@override
|
||||
String get noOpenTabs => 'No open tabs';
|
||||
|
||||
@override
|
||||
String get edit => 'Edit';
|
||||
|
||||
@override
|
||||
String get close => 'Close';
|
||||
|
||||
@override
|
||||
String tabItemSummary(int count, String total) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count items - $total',
|
||||
one: '1 item - $total',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String tabItemCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count items',
|
||||
one: '1 item',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tapProductsToAdd => 'Tap products to add them';
|
||||
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get closeTab => 'Close tab';
|
||||
|
||||
@override
|
||||
String productStockSummary(String category, String price, int stock) {
|
||||
return '$category • $price • Stock: $stock';
|
||||
}
|
||||
|
||||
@override
|
||||
String get outOfStock => 'OUT OF STOCK';
|
||||
|
||||
@override
|
||||
String get tabsYouCloseAppearHere => 'Tabs you close will show up here.';
|
||||
|
||||
@override
|
||||
String get enterPinSubtitle => 'You’ll use this to unlock the app';
|
||||
|
||||
@override
|
||||
String get confirmPinSubtitle => 'Enter the same PIN again';
|
||||
|
||||
@override
|
||||
String get createPin => 'Create a PIN';
|
||||
|
||||
@override
|
||||
String get pinsDidNotMatch => 'PINs didn’t match. Try again.';
|
||||
|
||||
@override
|
||||
String get somethingWentWrong => 'Something went wrong.';
|
||||
|
||||
@override
|
||||
String get incorrectPin => 'Incorrect PIN.';
|
||||
|
||||
@override
|
||||
String get enterPrice => 'Enter a price.';
|
||||
|
||||
@override
|
||||
String get enterValidPrice => 'Enter a valid price.';
|
||||
|
||||
@override
|
||||
String get enterValidStock => 'Enter a valid stock amount.';
|
||||
|
||||
@override
|
||||
String get enterValidThreshold => 'Enter a valid threshold.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadProduct => 'Could not load product.';
|
||||
|
||||
@override
|
||||
String get couldNotSaveProduct => 'Could not save product.';
|
||||
|
||||
@override
|
||||
String get couldNotDeleteProduct => 'Could not delete product.';
|
||||
|
||||
@override
|
||||
String get paymentMethod => 'Payment method';
|
||||
|
||||
@override
|
||||
String get cash => 'Cash';
|
||||
|
||||
@override
|
||||
String get payconiq => 'Payconiq';
|
||||
|
||||
@override
|
||||
String closeTabForCustomer(String customerName) {
|
||||
return 'Close tab for $customerName?';
|
||||
}
|
||||
|
||||
@override
|
||||
String currentTotal(String total) {
|
||||
return 'Current total: $total';
|
||||
}
|
||||
|
||||
@override
|
||||
String get couldNotCloseTab => 'Could not close tab.';
|
||||
|
||||
@override
|
||||
String get closingTab => 'Closing tab…';
|
||||
|
||||
@override
|
||||
String get slideToConfirmClosing => 'Slide to confirm closing';
|
||||
|
||||
@override
|
||||
String get errorScreen => 'Error Screen';
|
||||
|
||||
@override
|
||||
String get unexpectedError =>
|
||||
'An unexpected error occurred.\nPlease try restarting the app.';
|
||||
|
||||
@override
|
||||
String get goToBarScreen => 'Go to bar screen';
|
||||
|
||||
@override
|
||||
String get updates => 'Updates';
|
||||
|
||||
@override
|
||||
String get checkingForUpdates => 'Checking for updates…';
|
||||
|
||||
@override
|
||||
String get checkForUpdates => 'Check for updates';
|
||||
|
||||
@override
|
||||
String get latestVersion => 'You are already on the latest version.';
|
||||
|
||||
@override
|
||||
String get updateCheckFailed => 'Update check failed.';
|
||||
|
||||
@override
|
||||
String get updateAvailable => 'Update available';
|
||||
|
||||
@override
|
||||
String versionAvailable(String version) {
|
||||
return 'Version $version is available.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get later => 'Later';
|
||||
|
||||
@override
|
||||
String get update => 'Update';
|
||||
|
||||
@override
|
||||
String get updateReady => 'Update ready';
|
||||
|
||||
@override
|
||||
String get updateReadyDescription =>
|
||||
'The update has been downloaded and installed. Restart the app now to apply the changes.';
|
||||
|
||||
@override
|
||||
String get restartApp => 'Restart app';
|
||||
|
||||
@override
|
||||
String get updateFailed => 'Update failed';
|
||||
|
||||
@override
|
||||
String get retry => 'Retry';
|
||||
|
||||
@override
|
||||
String get updating => 'Updating';
|
||||
|
||||
@override
|
||||
String get installing => 'Installing';
|
||||
|
||||
@override
|
||||
String get doNotCloseDuringUpdate => 'Do not close the app during the update';
|
||||
|
||||
@override
|
||||
String get cancelUpdate => 'Cancel update?';
|
||||
|
||||
@override
|
||||
String get cancelUpdateDescription =>
|
||||
'The update is in progress. If you leave now, the app may become unstable.';
|
||||
|
||||
@override
|
||||
String get continueUpdate => 'Continue update';
|
||||
|
||||
@override
|
||||
String get cancelUpdateAction => 'Cancel update';
|
||||
|
||||
@override
|
||||
String get preparingDownload => 'Preparing download…';
|
||||
|
||||
@override
|
||||
String get simulatedDownloadError =>
|
||||
'Simulated download error (network timeout)';
|
||||
|
||||
@override
|
||||
String get downloadFailed => 'Download failed';
|
||||
|
||||
@override
|
||||
String downloading(String percent) {
|
||||
return 'Downloading $percent%';
|
||||
}
|
||||
|
||||
@override
|
||||
String get installingUpdate => 'Installing update…';
|
||||
|
||||
@override
|
||||
String get updateInstalledRestarting => 'Update installed! Restarting…';
|
||||
|
||||
@override
|
||||
String get installationFailed => 'Installation failed';
|
||||
|
||||
@override
|
||||
String get updateAlreadyInProgress => 'Update already in progress';
|
||||
|
||||
@override
|
||||
String get updateAlreadyRunning => 'Update already running';
|
||||
|
||||
@override
|
||||
String get genericError => 'An unexpected error occurred.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadBar => 'Could not load bar screen.';
|
||||
|
||||
@override
|
||||
String get couldNotCreateTabMessage => 'Could not create tab.';
|
||||
|
||||
@override
|
||||
String get productOutOfStock => 'Product is out of stock.';
|
||||
|
||||
@override
|
||||
String get couldNotAddProductToTab => 'Could not add product to tab.';
|
||||
|
||||
@override
|
||||
String get couldNotUpdateQuantity => 'Could not update item quantity.';
|
||||
|
||||
@override
|
||||
String get couldNotReloadTabs => 'Could not reload tabs.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadHistory => 'Could not load tab history.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadMoreTabs => 'Could not load more tabs.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadProducts => 'Could not load products.';
|
||||
|
||||
@override
|
||||
String get couldNotAddProduct => 'Could not add product.';
|
||||
|
||||
@override
|
||||
String get couldNotUpdateProduct => 'Could not update product.';
|
||||
|
||||
@override
|
||||
String get couldNotDeleteProductMessage => 'Could not delete product.';
|
||||
|
||||
@override
|
||||
String get couldNotCheckPinStatus => 'Could not check PIN status.';
|
||||
|
||||
@override
|
||||
String get couldNotVerifyPin => 'Could not verify PIN.';
|
||||
|
||||
@override
|
||||
String get currentPinIncorrect => 'Current PIN is incorrect.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadSettings => 'Could not load settings.';
|
||||
|
||||
@override
|
||||
String get couldNotSaveSettings => 'Could not save settings.';
|
||||
|
||||
@override
|
||||
String get downloadFailedWithDetail => 'Download failed.';
|
||||
|
||||
@override
|
||||
String get installationFailedWithDetail => 'Installation failed.';
|
||||
|
||||
@override
|
||||
String get devMenu => 'Dev Menu';
|
||||
|
||||
@override
|
||||
String get dataManagement => 'Data Management';
|
||||
|
||||
@override
|
||||
String get clearOpenTabs => 'Clear all open tabs';
|
||||
|
||||
@override
|
||||
String get clearClosedHistory => 'Clear closed tab history';
|
||||
|
||||
@override
|
||||
String get seedDefaultProducts => 'Seed default products';
|
||||
|
||||
@override
|
||||
String get onlySeedsWhenEmpty => 'Only seeds if table is empty';
|
||||
|
||||
@override
|
||||
String get clearAndReseedProducts => 'Clear & reseed products';
|
||||
|
||||
@override
|
||||
String get wipesAndReseeds => 'Wipes all products, then seeds defaults';
|
||||
|
||||
@override
|
||||
String get clearAllProducts => 'Clear all products';
|
||||
|
||||
@override
|
||||
String get clearProductImages => 'Clear product images';
|
||||
|
||||
@override
|
||||
String get deletesProductImages =>
|
||||
'Deletes images from product_images folder';
|
||||
|
||||
@override
|
||||
String get debugging => 'Debugging';
|
||||
|
||||
@override
|
||||
String get resetPin => 'Reset PIN';
|
||||
|
||||
@override
|
||||
String get removePinLock => 'Remove PIN lock';
|
||||
|
||||
@override
|
||||
String get toggleDebugOverlay => 'Toggle debug overlay';
|
||||
|
||||
@override
|
||||
String get showFpsMemoryWidgets => 'Show FPS, memory, widget count';
|
||||
|
||||
@override
|
||||
String get errorScreenMenu => 'Error screen';
|
||||
|
||||
@override
|
||||
String get viewErrorScreen => 'View the error screen UI';
|
||||
|
||||
@override
|
||||
String get featureToggles => 'Feature Toggles';
|
||||
|
||||
@override
|
||||
String get simulateUpdateDownload => 'Simulate update download';
|
||||
|
||||
@override
|
||||
String get openDownloadProgress => 'Open the download progress screen';
|
||||
|
||||
@override
|
||||
String get testingHelpers => 'Testing Helpers';
|
||||
|
||||
@override
|
||||
String get createTestTab => 'Create test tab';
|
||||
|
||||
@override
|
||||
String get addRandomItems => 'Add tab with random items';
|
||||
|
||||
@override
|
||||
String get addTestProducts => 'Add 100 test products';
|
||||
|
||||
@override
|
||||
String get stressTestGrid => 'Stress test product grid';
|
||||
|
||||
@override
|
||||
String get simulateLowStock => 'Simulate low stock';
|
||||
|
||||
@override
|
||||
String get setProductsBelowThreshold => 'Set all products below threshold';
|
||||
|
||||
@override
|
||||
String get generateMockOrders => 'Generate 100 mock orders';
|
||||
|
||||
@override
|
||||
String get randomCustomersItemsAmounts =>
|
||||
'Random customers, items, and amounts';
|
||||
|
||||
@override
|
||||
String get performance => 'Performance';
|
||||
|
||||
@override
|
||||
String get clearImageCache => 'Clear image cache';
|
||||
|
||||
@override
|
||||
String get reloadProductImages => 'Reload product images';
|
||||
|
||||
@override
|
||||
String get debugOverlay => 'Debug Overlay';
|
||||
|
||||
@override
|
||||
String get debugOverlayDescription =>
|
||||
'The debug overlay shows FPS, memory usage, and widget counts. Enable it via Flutter DevTools in debug mode.';
|
||||
|
||||
@override
|
||||
String get ok => 'OK';
|
||||
|
||||
@override
|
||||
String get simulateUpdate => 'Simulate update';
|
||||
|
||||
@override
|
||||
String get chooseSimulationMode => 'Choose a simulation mode:';
|
||||
|
||||
@override
|
||||
String get successfulDownload => 'Successful download';
|
||||
|
||||
@override
|
||||
String get progressThenInstall => 'Progress 0→100%, then install, then done';
|
||||
|
||||
@override
|
||||
String get downloadError => 'Download error';
|
||||
|
||||
@override
|
||||
String get failsWithNetworkTimeout => 'Fails at 50% with a network timeout';
|
||||
|
||||
@override
|
||||
String get realDownloadWillFail => 'Real download (will fail)';
|
||||
|
||||
@override
|
||||
String get attemptsFakeUrl => 'Attempts real OTA with fake URL';
|
||||
|
||||
@override
|
||||
String get categoryBeer => 'Beer';
|
||||
|
||||
@override
|
||||
String get categoryWine => 'Wine';
|
||||
|
||||
@override
|
||||
String get categorySoftDrinks => 'Soft drinks';
|
||||
|
||||
@override
|
||||
String get categoryCocktails => 'Cocktails';
|
||||
|
||||
@override
|
||||
String get categorySnacks => 'Snacks';
|
||||
|
||||
@override
|
||||
String get categoryCoffee => 'Coffee';
|
||||
|
||||
@override
|
||||
String get categoryTea => 'Tea';
|
||||
|
||||
@override
|
||||
String get categoryOther => 'Other';
|
||||
|
||||
@override
|
||||
String get devActionClearedOpenTabs => 'Cleared all open tabs';
|
||||
|
||||
@override
|
||||
String get devActionClearedHistory => 'Cleared closed tab history';
|
||||
|
||||
@override
|
||||
String get devActionClearedProducts => 'Cleared all products';
|
||||
|
||||
@override
|
||||
String devActionSeededProducts(int count) {
|
||||
return 'Seeded $count products';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionReseededProducts(int count) {
|
||||
return 'Cleared and reseeded $count products';
|
||||
}
|
||||
|
||||
@override
|
||||
String get devActionImagesCleared => 'Product images cleared';
|
||||
|
||||
@override
|
||||
String get devActionResetPin => 'PIN reset (no PIN required)';
|
||||
|
||||
@override
|
||||
String get devActionNoProducts => 'No products available';
|
||||
|
||||
@override
|
||||
String get devActionImagesReloaded => 'Product images reloaded';
|
||||
|
||||
@override
|
||||
String get devActionCacheCleared =>
|
||||
'Image cache cleared (no-op in debug mode)';
|
||||
|
||||
@override
|
||||
String devActionLowStock(int count) {
|
||||
return 'Simulated low stock for $count products';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionTestTab(int count) {
|
||||
return 'Created test tab with $count items';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionTestProducts(int count) {
|
||||
return 'Added $count test products';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionMockOrders(int orders, int customers) {
|
||||
return 'Generated $orders mock orders across $customers customers';
|
||||
}
|
||||
|
||||
@override
|
||||
String get devActionFailedImages => 'Failed to clear images.';
|
||||
|
||||
@override
|
||||
String devActionResetStock(int count) {
|
||||
return 'Reset stock for $count products';
|
||||
}
|
||||
|
||||
@override
|
||||
String get paymentCash => 'Cash';
|
||||
|
||||
@override
|
||||
String get paymentPayconiq => 'Payconiq';
|
||||
|
||||
@override
|
||||
String get simulatedUpdateNotes => 'Bug fixes and performance improvements.';
|
||||
}
|
||||
@@ -0,0 +1,157 @@
|
||||
import 'app_localizations.dart';
|
||||
|
||||
extension AppLocalizationsHelpers on AppLocalizations {
|
||||
String categoryLabel(String category) {
|
||||
return switch (category.trim().toLowerCase()) {
|
||||
'bier' || 'beer' => categoryBeer,
|
||||
'wijn' || 'wine' => categoryWine,
|
||||
'frisdrank' || 'soft drinks' => categorySoftDrinks,
|
||||
'cocktails' => categoryCocktails,
|
||||
'snacks' => categorySnacks,
|
||||
'coffee' || 'koffie' => categoryCoffee,
|
||||
'thee' || 'tea' => categoryTea,
|
||||
'other' || 'overig' => categoryOther,
|
||||
_ => category,
|
||||
};
|
||||
}
|
||||
|
||||
String localizedError(String? message) {
|
||||
return switch (message) {
|
||||
'Could not load bar screen.' => couldNotLoadBar,
|
||||
'Could not create tab.' => couldNotCreateTabMessage,
|
||||
'Product is out of stock.' => productOutOfStock,
|
||||
'Could not add product to tab.' => couldNotAddProductToTab,
|
||||
'Could not update item quantity.' => couldNotUpdateQuantity,
|
||||
'Could not close tab.' => couldNotCloseTab,
|
||||
'Could not reload tabs.' => couldNotReloadTabs,
|
||||
'Could not load tab history.' => couldNotLoadHistory,
|
||||
'Could not load more tabs.' => couldNotLoadMoreTabs,
|
||||
'Could not load products.' => couldNotLoadProducts,
|
||||
'Could not add product.' => couldNotAddProduct,
|
||||
'Could not update product.' => couldNotUpdateProduct,
|
||||
'Could not check PIN status.' => couldNotCheckPinStatus,
|
||||
'Could not save PIN.' => couldNotSavePin,
|
||||
'Incorrect PIN.' => incorrectPin,
|
||||
'Could not verify PIN.' => couldNotVerifyPin,
|
||||
'Current PIN is incorrect.' => currentPinIncorrect,
|
||||
'Could not load settings.' => couldNotLoadSettings,
|
||||
'Could not save settings.' => couldNotSaveSettings,
|
||||
'Could not load product.' => couldNotLoadProduct,
|
||||
'Could not save product.' => couldNotSaveProduct,
|
||||
'Could not delete product.' => couldNotDeleteProduct,
|
||||
'Update failed' => updateFailed,
|
||||
'Download failed' => downloadFailed,
|
||||
'Installation failed' => installationFailed,
|
||||
'Update already in progress' => updateAlreadyInProgress,
|
||||
_ => message ?? genericError,
|
||||
};
|
||||
}
|
||||
|
||||
String updateStatus(String status) {
|
||||
if (status.startsWith('Downloading ')) {
|
||||
return downloading(status.substring('Downloading '.length));
|
||||
}
|
||||
|
||||
return switch (status) {
|
||||
'Preparing download…' => preparingDownload,
|
||||
'Download failed' => downloadFailed,
|
||||
'Installing update…' => installingUpdate,
|
||||
'Update installed! Restarting…' => updateInstalledRestarting,
|
||||
'Installation failed' => installationFailed,
|
||||
'Update already running' => updateAlreadyRunning,
|
||||
_ => status,
|
||||
};
|
||||
}
|
||||
|
||||
String updateError(String? message) {
|
||||
if (message == null) return updateFailed;
|
||||
if (message.startsWith('Download failed')) return downloadFailedWithDetail;
|
||||
if (message.startsWith('Installation failed')) {
|
||||
return installationFailedWithDetail;
|
||||
}
|
||||
if (message == 'Simulated download error (network timeout)') {
|
||||
return simulatedDownloadError;
|
||||
}
|
||||
if (message == 'Update already in progress') return updateAlreadyInProgress;
|
||||
|
||||
return localizedError(message);
|
||||
}
|
||||
|
||||
String devAction(String? message) {
|
||||
if (message == null) return '';
|
||||
|
||||
final seeded = RegExp(
|
||||
r'Seeded (?:default products )?\((\d+) total\)',
|
||||
).firstMatch(message);
|
||||
if (seeded != null) {
|
||||
return devActionSeededProducts(int.parse(seeded.group(1)!));
|
||||
}
|
||||
|
||||
final reseeded = RegExp(
|
||||
r'Cleared and reseeded \((\d+) products\)',
|
||||
).firstMatch(message);
|
||||
if (reseeded != null) {
|
||||
return devActionReseededProducts(int.parse(reseeded.group(1)!));
|
||||
}
|
||||
|
||||
final resetStock = RegExp(
|
||||
r'Reset stock for (\d+) products',
|
||||
).firstMatch(message);
|
||||
if (resetStock != null) {
|
||||
return devActionResetStock(int.parse(resetStock.group(1)!));
|
||||
}
|
||||
|
||||
final seededDemo = RegExp(
|
||||
r'Seeded (\d+) demo products',
|
||||
).firstMatch(message);
|
||||
if (seededDemo != null) {
|
||||
return devActionSeededProducts(int.parse(seededDemo.group(1)!));
|
||||
}
|
||||
|
||||
final testTab = RegExp(
|
||||
r'Created test tab with (\d+) items',
|
||||
).firstMatch(message);
|
||||
if (testTab != null) {
|
||||
return devActionTestTab(int.parse(testTab.group(1)!));
|
||||
}
|
||||
|
||||
final testProducts = RegExp(
|
||||
r'Added (\d+) test products',
|
||||
).firstMatch(message);
|
||||
if (testProducts != null) {
|
||||
return devActionTestProducts(int.parse(testProducts.group(1)!));
|
||||
}
|
||||
|
||||
final lowStock = RegExp(
|
||||
r'Simulated low stock for (\d+) products',
|
||||
).firstMatch(message);
|
||||
if (lowStock != null) {
|
||||
return devActionLowStock(int.parse(lowStock.group(1)!));
|
||||
}
|
||||
|
||||
final mockOrders = RegExp(
|
||||
r'Generated (\d+) mock orders across (\d+) customers',
|
||||
).firstMatch(message);
|
||||
if (mockOrders != null) {
|
||||
return devActionMockOrders(
|
||||
int.parse(mockOrders.group(1)!),
|
||||
int.parse(mockOrders.group(2)!),
|
||||
);
|
||||
}
|
||||
|
||||
return switch (message) {
|
||||
'Cleared all open tabs' => devActionClearedOpenTabs,
|
||||
'Cleared closed tab history' => devActionClearedHistory,
|
||||
'Cleared all products' => devActionClearedProducts,
|
||||
'Product images cleared' => devActionImagesCleared,
|
||||
'PIN reset (no PIN required)' => devActionResetPin,
|
||||
'No products to add to test tab' => devActionNoProducts,
|
||||
'No products available — seed demo data first' => devActionNoProducts,
|
||||
'Product images reloaded' => devActionImagesReloaded,
|
||||
'Image cache cleared (no-op in debug mode)' => devActionCacheCleared,
|
||||
_ when message.startsWith('Failed to clear images') =>
|
||||
devActionFailedImages,
|
||||
_ => message,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,734 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Dutch Flemish (`nl`).
|
||||
class AppLocalizationsNl extends AppLocalizations {
|
||||
AppLocalizationsNl([String locale = 'nl']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'KoolTab';
|
||||
|
||||
@override
|
||||
String get barTabs => 'Poefs';
|
||||
|
||||
@override
|
||||
String get products => 'Producten';
|
||||
|
||||
@override
|
||||
String get addProduct => 'Product toevoegen';
|
||||
|
||||
@override
|
||||
String get noProductsYet => 'Nog geen producten.';
|
||||
|
||||
@override
|
||||
String get addFirstProduct => 'Voeg je eerste product toe om te beginnen.';
|
||||
|
||||
@override
|
||||
String get manageProducts => 'Producten beheren';
|
||||
|
||||
@override
|
||||
String get tabHistory => 'Geschiedenis';
|
||||
|
||||
@override
|
||||
String get refresh => 'Vernieuwen';
|
||||
|
||||
@override
|
||||
String get settings => 'Instellingen';
|
||||
|
||||
@override
|
||||
String get logout => 'Uitloggen';
|
||||
|
||||
@override
|
||||
String get openOrSelectTab => 'Open of selecteer eerst een poef.';
|
||||
|
||||
@override
|
||||
String get openNewTab => 'Nieuw poef openen';
|
||||
|
||||
@override
|
||||
String get customerGroupName => 'Naam klant / groep';
|
||||
|
||||
@override
|
||||
String get cancel => 'Annuleren';
|
||||
|
||||
@override
|
||||
String get openTab => 'Poef openen';
|
||||
|
||||
@override
|
||||
String couldNotCreateTab(String error) {
|
||||
return 'Poef kon niet worden aangemaakt: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get searchByName => 'Zoeken op naam…';
|
||||
|
||||
@override
|
||||
String get allCustomers => 'Alle klanten';
|
||||
|
||||
@override
|
||||
String get customer => 'Klant';
|
||||
|
||||
@override
|
||||
String get noClosedTabs => 'Nog geen gesloten poefs';
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'Instellingen';
|
||||
|
||||
@override
|
||||
String get security => 'Beveiliging';
|
||||
|
||||
@override
|
||||
String get pinRequired => 'PIN vereist';
|
||||
|
||||
@override
|
||||
String get changePin => 'PIN wijzigen';
|
||||
|
||||
@override
|
||||
String get appearance => 'Uiterlijk';
|
||||
|
||||
@override
|
||||
String get language => 'Taal';
|
||||
|
||||
@override
|
||||
String get languageSystem => 'Systeemstandaard';
|
||||
|
||||
@override
|
||||
String get languageEnglish => 'Engels';
|
||||
|
||||
@override
|
||||
String get languageDutch => 'Nederlands';
|
||||
|
||||
@override
|
||||
String get theme => 'Thema';
|
||||
|
||||
@override
|
||||
String get system => 'Systeem';
|
||||
|
||||
@override
|
||||
String get light => 'Licht';
|
||||
|
||||
@override
|
||||
String get dark => 'Donker';
|
||||
|
||||
@override
|
||||
String get ugly => 'Lelijk';
|
||||
|
||||
@override
|
||||
String get setPinCode => 'PIN instellen';
|
||||
|
||||
@override
|
||||
String get enterPin => 'PIN invoeren';
|
||||
|
||||
@override
|
||||
String get enterCurrentPin => 'Huidige PIN invoeren';
|
||||
|
||||
@override
|
||||
String get enterNewPin => 'Nieuwe PIN invoeren';
|
||||
|
||||
@override
|
||||
String get fourDigits => '4 cijfers';
|
||||
|
||||
@override
|
||||
String get enterPinFourDigits => 'PIN invoeren (4 cijfers)';
|
||||
|
||||
@override
|
||||
String get confirm => 'Bevestigen';
|
||||
|
||||
@override
|
||||
String get confirmPin => 'PIN bevestigen';
|
||||
|
||||
@override
|
||||
String get pinExactlyFour => 'PIN moet precies 4 cijfers bevatten';
|
||||
|
||||
@override
|
||||
String get couldNotSavePin => 'PIN-instelling kon niet worden opgeslagen.';
|
||||
|
||||
@override
|
||||
String get editProduct => 'Product bewerken';
|
||||
|
||||
@override
|
||||
String get productName => 'Productnaam';
|
||||
|
||||
@override
|
||||
String get category => 'Categorie';
|
||||
|
||||
@override
|
||||
String get price => 'Prijs';
|
||||
|
||||
@override
|
||||
String get stock => 'Voorraad';
|
||||
|
||||
@override
|
||||
String get lowStockThreshold => 'Drempel lage voorraad';
|
||||
|
||||
@override
|
||||
String get chooseProductImage => 'Productafbeelding kiezen';
|
||||
|
||||
@override
|
||||
String get changeImage => 'Afbeelding wijzigen';
|
||||
|
||||
@override
|
||||
String get deleteProduct => 'Product verwijderen?';
|
||||
|
||||
@override
|
||||
String get deleteProductDescription =>
|
||||
'Dit verwijdert het product uit de productlijst.';
|
||||
|
||||
@override
|
||||
String get delete => 'Verwijderen';
|
||||
|
||||
@override
|
||||
String get productNotFound => 'Product niet gevonden.';
|
||||
|
||||
@override
|
||||
String get chooseImage => 'Kies een productafbeelding.';
|
||||
|
||||
@override
|
||||
String get selectCategory => 'Selecteer een categorie.';
|
||||
|
||||
@override
|
||||
String get enterProductName => 'Voer een productnaam in.';
|
||||
|
||||
@override
|
||||
String version(String version) {
|
||||
return 'Versie $version';
|
||||
}
|
||||
|
||||
@override
|
||||
String get selectTabToAddItems => 'Selecteer een poef om items toe te voegen';
|
||||
|
||||
@override
|
||||
String get openTabs => 'Open poefs';
|
||||
|
||||
@override
|
||||
String get selectOrOpenTab => 'Selecteer of open een poef';
|
||||
|
||||
@override
|
||||
String get noOpenTabs => 'Geen open poefs';
|
||||
|
||||
@override
|
||||
String get edit => 'Bewerken';
|
||||
|
||||
@override
|
||||
String get close => 'Sluiten';
|
||||
|
||||
@override
|
||||
String tabItemSummary(int count, String total) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count items - $total',
|
||||
one: '1 item - $total',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String tabItemCount(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count items',
|
||||
one: '1 item',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tapProductsToAdd => 'Tik op producten om ze toe te voegen';
|
||||
|
||||
@override
|
||||
String get total => 'Totaal';
|
||||
|
||||
@override
|
||||
String get closeTab => 'Poef sluiten';
|
||||
|
||||
@override
|
||||
String productStockSummary(String category, String price, int stock) {
|
||||
return '$category • $price • Voorraad: $stock';
|
||||
}
|
||||
|
||||
@override
|
||||
String get outOfStock => 'UITVERKOCHT';
|
||||
|
||||
@override
|
||||
String get tabsYouCloseAppearHere => 'Gesloten poefs verschijnen hier.';
|
||||
|
||||
@override
|
||||
String get enterPinSubtitle => 'Je gebruikt dit om de app te ontgrendelen';
|
||||
|
||||
@override
|
||||
String get confirmPinSubtitle => 'Voer dezelfde PIN opnieuw in';
|
||||
|
||||
@override
|
||||
String get createPin => 'PIN aanmaken';
|
||||
|
||||
@override
|
||||
String get pinsDidNotMatch =>
|
||||
'PINs kwamen niet overeen. Probeer het opnieuw.';
|
||||
|
||||
@override
|
||||
String get somethingWentWrong => 'Er is iets misgegaan.';
|
||||
|
||||
@override
|
||||
String get incorrectPin => 'Onjuiste PIN.';
|
||||
|
||||
@override
|
||||
String get enterPrice => 'Voer een prijs in.';
|
||||
|
||||
@override
|
||||
String get enterValidPrice => 'Voer een geldige prijs in.';
|
||||
|
||||
@override
|
||||
String get enterValidStock => 'Voer een geldige voorraad in.';
|
||||
|
||||
@override
|
||||
String get enterValidThreshold => 'Voer een geldige drempel in.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadProduct => 'Product kon niet worden geladen.';
|
||||
|
||||
@override
|
||||
String get couldNotSaveProduct => 'Product kon niet worden opgeslagen.';
|
||||
|
||||
@override
|
||||
String get couldNotDeleteProduct => 'Product kon niet worden verwijderd.';
|
||||
|
||||
@override
|
||||
String get paymentMethod => 'Betaalmethode';
|
||||
|
||||
@override
|
||||
String get cash => 'Contant';
|
||||
|
||||
@override
|
||||
String get payconiq => 'Payconiq';
|
||||
|
||||
@override
|
||||
String closeTabForCustomer(String customerName) {
|
||||
return 'Poef van $customerName sluiten?';
|
||||
}
|
||||
|
||||
@override
|
||||
String currentTotal(String total) {
|
||||
return 'Huidig totaal: $total';
|
||||
}
|
||||
|
||||
@override
|
||||
String get couldNotCloseTab => 'Poef kon niet worden gesloten.';
|
||||
|
||||
@override
|
||||
String get closingTab => 'Poef sluiten…';
|
||||
|
||||
@override
|
||||
String get slideToConfirmClosing => 'Schuif om het sluiten te bevestigen';
|
||||
|
||||
@override
|
||||
String get errorScreen => 'Foutscherm';
|
||||
|
||||
@override
|
||||
String get unexpectedError =>
|
||||
'Er is een onverwachte fout opgetreden.\nProbeer de app opnieuw te starten.';
|
||||
|
||||
@override
|
||||
String get goToBarScreen => 'Naar barkassa';
|
||||
|
||||
@override
|
||||
String get updates => 'Updates';
|
||||
|
||||
@override
|
||||
String get checkingForUpdates => 'Controleren op updates…';
|
||||
|
||||
@override
|
||||
String get checkForUpdates => 'Controleren op updates';
|
||||
|
||||
@override
|
||||
String get latestVersion => 'Je gebruikt al de nieuwste versie.';
|
||||
|
||||
@override
|
||||
String get updateCheckFailed => 'Controleren op updates mislukt.';
|
||||
|
||||
@override
|
||||
String get updateAvailable => 'Update beschikbaar';
|
||||
|
||||
@override
|
||||
String versionAvailable(String version) {
|
||||
return 'Versie $version is beschikbaar.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get later => 'Later';
|
||||
|
||||
@override
|
||||
String get update => 'Updaten';
|
||||
|
||||
@override
|
||||
String get updateReady => 'Update klaar';
|
||||
|
||||
@override
|
||||
String get updateReadyDescription =>
|
||||
'De update is gedownload en geïnstalleerd. Start de app nu opnieuw om de wijzigingen toe te passen.';
|
||||
|
||||
@override
|
||||
String get restartApp => 'App opnieuw starten';
|
||||
|
||||
@override
|
||||
String get updateFailed => 'Update mislukt';
|
||||
|
||||
@override
|
||||
String get retry => 'Opnieuw proberen';
|
||||
|
||||
@override
|
||||
String get updating => 'Updaten';
|
||||
|
||||
@override
|
||||
String get installing => 'Installeren';
|
||||
|
||||
@override
|
||||
String get doNotCloseDuringUpdate => 'Sluit de app niet tijdens de update';
|
||||
|
||||
@override
|
||||
String get cancelUpdate => 'Update annuleren?';
|
||||
|
||||
@override
|
||||
String get cancelUpdateDescription =>
|
||||
'De update is bezig. Als je nu weggaat, kan de app instabiel worden.';
|
||||
|
||||
@override
|
||||
String get continueUpdate => 'Update voortzetten';
|
||||
|
||||
@override
|
||||
String get cancelUpdateAction => 'Update annuleren';
|
||||
|
||||
@override
|
||||
String get preparingDownload => 'Download voorbereiden…';
|
||||
|
||||
@override
|
||||
String get simulatedDownloadError =>
|
||||
'Gesimuleerde downloadfout (netwerktime-out)';
|
||||
|
||||
@override
|
||||
String get downloadFailed => 'Download mislukt';
|
||||
|
||||
@override
|
||||
String downloading(String percent) {
|
||||
return 'Downloaden $percent%';
|
||||
}
|
||||
|
||||
@override
|
||||
String get installingUpdate => 'Update installeren…';
|
||||
|
||||
@override
|
||||
String get updateInstalledRestarting =>
|
||||
'Update geïnstalleerd! Opnieuw starten…';
|
||||
|
||||
@override
|
||||
String get installationFailed => 'Installatie mislukt';
|
||||
|
||||
@override
|
||||
String get updateAlreadyInProgress => 'Update is al bezig';
|
||||
|
||||
@override
|
||||
String get updateAlreadyRunning => 'Update wordt al uitgevoerd';
|
||||
|
||||
@override
|
||||
String get genericError => 'Er is een onverwachte fout opgetreden.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadBar => 'Barkassa kon niet worden geladen.';
|
||||
|
||||
@override
|
||||
String get couldNotCreateTabMessage => 'Poef kon niet worden aangemaakt.';
|
||||
|
||||
@override
|
||||
String get productOutOfStock => 'Product is niet op voorraad.';
|
||||
|
||||
@override
|
||||
String get couldNotAddProductToTab =>
|
||||
'Product kon niet aan de poef worden toegevoegd.';
|
||||
|
||||
@override
|
||||
String get couldNotUpdateQuantity => 'Aantal kon niet worden bijgewerkt.';
|
||||
|
||||
@override
|
||||
String get couldNotReloadTabs => 'Poefs konden niet opnieuw worden geladen.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadHistory => 'Geschiedenis kon niet worden geladen.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadMoreTabs => 'Meer poefs konden niet worden geladen.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadProducts => 'Producten konden niet worden geladen.';
|
||||
|
||||
@override
|
||||
String get couldNotAddProduct => 'Product kon niet worden toegevoegd.';
|
||||
|
||||
@override
|
||||
String get couldNotUpdateProduct => 'Product kon niet worden bijgewerkt.';
|
||||
|
||||
@override
|
||||
String get couldNotDeleteProductMessage =>
|
||||
'Product kon niet worden verwijderd.';
|
||||
|
||||
@override
|
||||
String get couldNotCheckPinStatus =>
|
||||
'PIN-status kon niet worden gecontroleerd.';
|
||||
|
||||
@override
|
||||
String get couldNotVerifyPin => 'PIN kon niet worden gecontroleerd.';
|
||||
|
||||
@override
|
||||
String get currentPinIncorrect => 'Huidige PIN is onjuist.';
|
||||
|
||||
@override
|
||||
String get couldNotLoadSettings => 'Instellingen konden niet worden geladen.';
|
||||
|
||||
@override
|
||||
String get couldNotSaveSettings =>
|
||||
'Instellingen konden niet worden opgeslagen.';
|
||||
|
||||
@override
|
||||
String get downloadFailedWithDetail => 'Download mislukt.';
|
||||
|
||||
@override
|
||||
String get installationFailedWithDetail => 'Installatie mislukt.';
|
||||
|
||||
@override
|
||||
String get devMenu => 'Ontwikkelaarsmenu';
|
||||
|
||||
@override
|
||||
String get dataManagement => 'Databeheer';
|
||||
|
||||
@override
|
||||
String get clearOpenTabs => 'Alle open poefs wissen';
|
||||
|
||||
@override
|
||||
String get clearClosedHistory => 'Geschiedenis van gesloten poefs wissen';
|
||||
|
||||
@override
|
||||
String get seedDefaultProducts => 'Standaardproducten vullen';
|
||||
|
||||
@override
|
||||
String get onlySeedsWhenEmpty => 'Alleen vullen als de tabel leeg is';
|
||||
|
||||
@override
|
||||
String get clearAndReseedProducts => 'Producten wissen en opnieuw vullen';
|
||||
|
||||
@override
|
||||
String get wipesAndReseeds =>
|
||||
'Wist alle producten en vult de standaardproducten opnieuw';
|
||||
|
||||
@override
|
||||
String get clearAllProducts => 'Alle producten wissen';
|
||||
|
||||
@override
|
||||
String get clearProductImages => 'Productafbeeldingen wissen';
|
||||
|
||||
@override
|
||||
String get deletesProductImages =>
|
||||
'Verwijdert afbeeldingen uit de map product_images';
|
||||
|
||||
@override
|
||||
String get debugging => 'Debuggen';
|
||||
|
||||
@override
|
||||
String get resetPin => 'PIN resetten';
|
||||
|
||||
@override
|
||||
String get removePinLock => 'PIN-vergrendeling verwijderen';
|
||||
|
||||
@override
|
||||
String get toggleDebugOverlay => 'Debug-overlay in-/uitschakelen';
|
||||
|
||||
@override
|
||||
String get showFpsMemoryWidgets => 'FPS, geheugen en widgets tonen';
|
||||
|
||||
@override
|
||||
String get errorScreenMenu => 'Foutscherm';
|
||||
|
||||
@override
|
||||
String get viewErrorScreen => 'Het foutscherm bekijken';
|
||||
|
||||
@override
|
||||
String get featureToggles => 'Functieschakelaars';
|
||||
|
||||
@override
|
||||
String get simulateUpdateDownload => 'Updatedownload simuleren';
|
||||
|
||||
@override
|
||||
String get openDownloadProgress => 'Downloadvoortgang openen';
|
||||
|
||||
@override
|
||||
String get testingHelpers => 'Testhelpers';
|
||||
|
||||
@override
|
||||
String get createTestTab => 'Testtabblad maken';
|
||||
|
||||
@override
|
||||
String get addRandomItems => 'Tabblad met willekeurige items toevoegen';
|
||||
|
||||
@override
|
||||
String get addTestProducts => '100 testproducten toevoegen';
|
||||
|
||||
@override
|
||||
String get stressTestGrid => 'Productraster stresstesten';
|
||||
|
||||
@override
|
||||
String get simulateLowStock => 'Lage voorraad simuleren';
|
||||
|
||||
@override
|
||||
String get setProductsBelowThreshold =>
|
||||
'Alle producten onder de drempel instellen';
|
||||
|
||||
@override
|
||||
String get generateMockOrders => '100 testbestellingen genereren';
|
||||
|
||||
@override
|
||||
String get randomCustomersItemsAmounts =>
|
||||
'Willekeurige klanten, items en bedragen';
|
||||
|
||||
@override
|
||||
String get performance => 'Prestaties';
|
||||
|
||||
@override
|
||||
String get clearImageCache => 'Afbeeldingencache wissen';
|
||||
|
||||
@override
|
||||
String get reloadProductImages => 'Productafbeeldingen opnieuw laden';
|
||||
|
||||
@override
|
||||
String get debugOverlay => 'Debug-overlay';
|
||||
|
||||
@override
|
||||
String get debugOverlayDescription =>
|
||||
'De debug-overlay toont FPS, geheugengebruik en het aantal widgets. Schakel deze in via Flutter DevTools in debugmodus.';
|
||||
|
||||
@override
|
||||
String get ok => 'OK';
|
||||
|
||||
@override
|
||||
String get simulateUpdate => 'Update simuleren';
|
||||
|
||||
@override
|
||||
String get chooseSimulationMode => 'Kies een simulatiemodus:';
|
||||
|
||||
@override
|
||||
String get successfulDownload => 'Geslaagde download';
|
||||
|
||||
@override
|
||||
String get progressThenInstall =>
|
||||
'Voortgang 0→100%, daarna installeren en voltooien';
|
||||
|
||||
@override
|
||||
String get downloadError => 'Downloadfout';
|
||||
|
||||
@override
|
||||
String get failsWithNetworkTimeout =>
|
||||
'Mislukt bij 50% door een netwerktime-out';
|
||||
|
||||
@override
|
||||
String get realDownloadWillFail => 'Echte download (mislukt)';
|
||||
|
||||
@override
|
||||
String get attemptsFakeUrl => 'Probeert OTA met een valse URL';
|
||||
|
||||
@override
|
||||
String get categoryBeer => 'Bier';
|
||||
|
||||
@override
|
||||
String get categoryWine => 'Wijn';
|
||||
|
||||
@override
|
||||
String get categorySoftDrinks => 'Frisdrank';
|
||||
|
||||
@override
|
||||
String get categoryCocktails => 'Cocktails';
|
||||
|
||||
@override
|
||||
String get categorySnacks => 'Snacks';
|
||||
|
||||
@override
|
||||
String get categoryCoffee => 'Koffie';
|
||||
|
||||
@override
|
||||
String get categoryTea => 'Thee';
|
||||
|
||||
@override
|
||||
String get categoryOther => 'Overig';
|
||||
|
||||
@override
|
||||
String get devActionClearedOpenTabs => 'Alle open tabbladen gewist';
|
||||
|
||||
@override
|
||||
String get devActionClearedHistory =>
|
||||
'Geschiedenis van gesloten tabbladen gewist';
|
||||
|
||||
@override
|
||||
String get devActionClearedProducts => 'Alle producten gewist';
|
||||
|
||||
@override
|
||||
String devActionSeededProducts(int count) {
|
||||
return '$count producten toegevoegd';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionReseededProducts(int count) {
|
||||
return '$count producten gewist en opnieuw toegevoegd';
|
||||
}
|
||||
|
||||
@override
|
||||
String get devActionImagesCleared => 'Productafbeeldingen gewist';
|
||||
|
||||
@override
|
||||
String get devActionResetPin => 'PIN gereset (geen PIN vereist)';
|
||||
|
||||
@override
|
||||
String get devActionNoProducts => 'Geen producten beschikbaar';
|
||||
|
||||
@override
|
||||
String get devActionImagesReloaded => 'Productafbeeldingen opnieuw geladen';
|
||||
|
||||
@override
|
||||
String get devActionCacheCleared =>
|
||||
'Afbeeldingencache gewist (geen actie in debugmodus)';
|
||||
|
||||
@override
|
||||
String devActionLowStock(int count) {
|
||||
return 'Lage voorraad gesimuleerd voor $count producten';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionTestTab(int count) {
|
||||
return 'Testtabblad gemaakt met $count items';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionTestProducts(int count) {
|
||||
return '$count testproducten toegevoegd';
|
||||
}
|
||||
|
||||
@override
|
||||
String devActionMockOrders(int orders, int customers) {
|
||||
return '$orders testbestellingen gegenereerd voor $customers klanten';
|
||||
}
|
||||
|
||||
@override
|
||||
String get devActionFailedImages => 'Afbeeldingen konden niet worden gewist.';
|
||||
|
||||
@override
|
||||
String devActionResetStock(int count) {
|
||||
return 'Voorraad gereset voor $count producten';
|
||||
}
|
||||
|
||||
@override
|
||||
String get paymentCash => 'Contant';
|
||||
|
||||
@override
|
||||
String get paymentPayconiq => 'Payconiq';
|
||||
|
||||
@override
|
||||
String get simulatedUpdateNotes => 'Bugfixes en prestatieverbeteringen.';
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
{
|
||||
"@@locale": "nl",
|
||||
"appTitle": "KoolTab",
|
||||
"barTabs": "Poefs",
|
||||
"products": "Producten",
|
||||
"addProduct": "Product toevoegen",
|
||||
"noProductsYet": "Nog geen producten.",
|
||||
"addFirstProduct": "Voeg je eerste product toe om te beginnen.",
|
||||
"manageProducts": "Producten beheren",
|
||||
"tabHistory": "Geschiedenis",
|
||||
"refresh": "Vernieuwen",
|
||||
"settings": "Instellingen",
|
||||
"logout": "Uitloggen",
|
||||
"openOrSelectTab": "Open of selecteer eerst een poef.",
|
||||
"openNewTab": "Nieuw poef openen",
|
||||
"customerGroupName": "Naam klant / groep",
|
||||
"cancel": "Annuleren",
|
||||
"openTab": "Poef openen",
|
||||
"couldNotCreateTab": "Poef kon niet worden aangemaakt: {error}",
|
||||
"@couldNotCreateTab": {"placeholders": {"error": {"type": "String"}}},
|
||||
"searchByName": "Zoeken op naam…",
|
||||
"allCustomers": "Alle klanten",
|
||||
"customer": "Klant",
|
||||
"noClosedTabs": "Nog geen gesloten poefs",
|
||||
"settingsTitle": "Instellingen",
|
||||
"security": "Beveiliging",
|
||||
"pinRequired": "PIN vereist",
|
||||
"changePin": "PIN wijzigen",
|
||||
"appearance": "Uiterlijk",
|
||||
"language": "Taal",
|
||||
"languageSystem": "Systeemstandaard",
|
||||
"languageEnglish": "Engels",
|
||||
"languageDutch": "Nederlands",
|
||||
"theme": "Thema",
|
||||
"system": "Systeem",
|
||||
"light": "Licht",
|
||||
"dark": "Donker",
|
||||
"ugly": "Lelijk",
|
||||
"setPinCode": "PIN instellen",
|
||||
"enterPin": "PIN invoeren",
|
||||
"enterCurrentPin": "Huidige PIN invoeren",
|
||||
"enterNewPin": "Nieuwe PIN invoeren",
|
||||
"fourDigits": "4 cijfers",
|
||||
"enterPinFourDigits": "PIN invoeren (4 cijfers)",
|
||||
"confirm": "Bevestigen",
|
||||
"confirmPin": "PIN bevestigen",
|
||||
"pinExactlyFour": "PIN moet precies 4 cijfers bevatten",
|
||||
"couldNotSavePin": "PIN-instelling kon niet worden opgeslagen.",
|
||||
"editProduct": "Product bewerken",
|
||||
"productName": "Productnaam",
|
||||
"category": "Categorie",
|
||||
"price": "Prijs",
|
||||
"stock": "Voorraad",
|
||||
"lowStockThreshold": "Drempel lage voorraad",
|
||||
"chooseProductImage": "Productafbeelding kiezen",
|
||||
"changeImage": "Afbeelding wijzigen",
|
||||
"deleteProduct": "Product verwijderen?",
|
||||
"deleteProductDescription": "Dit verwijdert het product uit de productlijst.",
|
||||
"delete": "Verwijderen",
|
||||
"productNotFound": "Product niet gevonden.",
|
||||
"chooseImage": "Kies een productafbeelding.",
|
||||
"selectCategory": "Selecteer een categorie.",
|
||||
"enterProductName": "Voer een productnaam in.",
|
||||
"version": "Versie {version}",
|
||||
"@version": {"placeholders": {"version": {"type": "String"}}},
|
||||
"selectTabToAddItems": "Selecteer een poef om items toe te voegen",
|
||||
"openTabs": "Open poefs",
|
||||
"selectOrOpenTab": "Selecteer of open een poef",
|
||||
"noOpenTabs": "Geen open poefs",
|
||||
"edit": "Bewerken",
|
||||
"close": "Sluiten",
|
||||
"tabItemSummary": "{count, plural, =1 {1 item - {total}} other {{count} items - {total}}}",
|
||||
"@tabItemSummary": {"placeholders": {"count": {"type": "int"}, "total": {"type": "String"}}},
|
||||
"tabItemCount": "{count, plural, =1 {1 item} other {{count} items}}",
|
||||
"@tabItemCount": {"placeholders": {"count": {"type": "int"}}},
|
||||
"tapProductsToAdd": "Tik op producten om ze toe te voegen",
|
||||
"total": "Totaal",
|
||||
"closeTab": "Poef sluiten",
|
||||
"productStockSummary": "{category} • {price} • Voorraad: {stock}",
|
||||
"@productStockSummary": {"placeholders": {"category": {"type": "String"}, "price": {"type": "String"}, "stock": {"type": "int"}}},
|
||||
"outOfStock": "UITVERKOCHT",
|
||||
"tabsYouCloseAppearHere": "Gesloten poefs verschijnen hier.",
|
||||
"enterPinSubtitle": "Je gebruikt dit om de app te ontgrendelen",
|
||||
"confirmPinSubtitle": "Voer dezelfde PIN opnieuw in",
|
||||
"createPin": "PIN aanmaken",
|
||||
"pinsDidNotMatch": "PINs kwamen niet overeen. Probeer het opnieuw.",
|
||||
"somethingWentWrong": "Er is iets misgegaan.",
|
||||
"incorrectPin": "Onjuiste PIN.",
|
||||
"enterPrice": "Voer een prijs in.",
|
||||
"enterValidPrice": "Voer een geldige prijs in.",
|
||||
"enterValidStock": "Voer een geldige voorraad in.",
|
||||
"enterValidThreshold": "Voer een geldige drempel in.",
|
||||
"couldNotLoadProduct": "Product kon niet worden geladen.",
|
||||
"couldNotSaveProduct": "Product kon niet worden opgeslagen.",
|
||||
"couldNotDeleteProduct": "Product kon niet worden verwijderd.",
|
||||
"paymentMethod": "Betaalmethode",
|
||||
"cash": "Contant",
|
||||
"payconiq": "Payconiq",
|
||||
"closeTabForCustomer": "Poef van {customerName} sluiten?",
|
||||
"@closeTabForCustomer": {"placeholders": {"customerName": {"type": "String"}}},
|
||||
"currentTotal": "Huidig totaal: {total}",
|
||||
"@currentTotal": {"placeholders": {"total": {"type": "String"}}},
|
||||
"couldNotCloseTab": "Poef kon niet worden gesloten.",
|
||||
"closingTab": "Poef sluiten…",
|
||||
"slideToConfirmClosing": "Schuif om het sluiten te bevestigen",
|
||||
"errorScreen": "Foutscherm",
|
||||
"unexpectedError": "Er is een onverwachte fout opgetreden.\nProbeer de app opnieuw te starten.",
|
||||
"goToBarScreen": "Naar barkassa",
|
||||
"updates": "Updates",
|
||||
"checkingForUpdates": "Controleren op updates…",
|
||||
"checkForUpdates": "Controleren op updates",
|
||||
"latestVersion": "Je gebruikt al de nieuwste versie.",
|
||||
"updateCheckFailed": "Controleren op updates mislukt.",
|
||||
"updateAvailable": "Update beschikbaar",
|
||||
"versionAvailable": "Versie {version} is beschikbaar.",
|
||||
"@versionAvailable": {"placeholders": {"version": {"type": "String"}}},
|
||||
"later": "Later",
|
||||
"update": "Updaten",
|
||||
"updateReady": "Update klaar",
|
||||
"updateReadyDescription": "De update is gedownload en geïnstalleerd. Start de app nu opnieuw om de wijzigingen toe te passen.",
|
||||
"restartApp": "App opnieuw starten",
|
||||
"updateFailed": "Update mislukt",
|
||||
"retry": "Opnieuw proberen",
|
||||
"updating": "Updaten",
|
||||
"installing": "Installeren",
|
||||
"doNotCloseDuringUpdate": "Sluit de app niet tijdens de update",
|
||||
"cancelUpdate": "Update annuleren?",
|
||||
"cancelUpdateDescription": "De update is bezig. Als je nu weggaat, kan de app instabiel worden.",
|
||||
"continueUpdate": "Update voortzetten",
|
||||
"cancelUpdateAction": "Update annuleren",
|
||||
"preparingDownload": "Download voorbereiden…",
|
||||
"simulatedDownloadError": "Gesimuleerde downloadfout (netwerktime-out)",
|
||||
"downloadFailed": "Download mislukt",
|
||||
"downloading": "Downloaden {percent}%",
|
||||
"@downloading": {"placeholders": {"percent": {"type": "String"}}},
|
||||
"installingUpdate": "Update installeren…",
|
||||
"updateInstalledRestarting": "Update geïnstalleerd! Opnieuw starten…",
|
||||
"installationFailed": "Installatie mislukt",
|
||||
"updateAlreadyInProgress": "Update is al bezig",
|
||||
"updateAlreadyRunning": "Update wordt al uitgevoerd",
|
||||
"genericError": "Er is een onverwachte fout opgetreden.",
|
||||
"couldNotLoadBar": "Barkassa kon niet worden geladen.",
|
||||
"couldNotCreateTabMessage": "Poef kon niet worden aangemaakt.",
|
||||
"productOutOfStock": "Product is niet op voorraad.",
|
||||
"couldNotAddProductToTab": "Product kon niet aan de poef worden toegevoegd.",
|
||||
"couldNotUpdateQuantity": "Aantal kon niet worden bijgewerkt.",
|
||||
"couldNotReloadTabs": "Poefs konden niet opnieuw worden geladen.",
|
||||
"couldNotLoadHistory": "Geschiedenis kon niet worden geladen.",
|
||||
"couldNotLoadMoreTabs": "Meer poefs konden niet worden geladen.",
|
||||
"couldNotLoadProducts": "Producten konden niet worden geladen.",
|
||||
"couldNotAddProduct": "Product kon niet worden toegevoegd.",
|
||||
"couldNotUpdateProduct": "Product kon niet worden bijgewerkt.",
|
||||
"couldNotDeleteProductMessage": "Product kon niet worden verwijderd.",
|
||||
"couldNotCheckPinStatus": "PIN-status kon niet worden gecontroleerd.",
|
||||
"couldNotVerifyPin": "PIN kon niet worden gecontroleerd.",
|
||||
"currentPinIncorrect": "Huidige PIN is onjuist.",
|
||||
"couldNotLoadSettings": "Instellingen konden niet worden geladen.",
|
||||
"couldNotSaveSettings": "Instellingen konden niet worden opgeslagen.",
|
||||
"downloadFailedWithDetail": "Download mislukt.",
|
||||
"installationFailedWithDetail": "Installatie mislukt.",
|
||||
"devMenu": "Ontwikkelaarsmenu",
|
||||
"dataManagement": "Databeheer",
|
||||
"clearOpenTabs": "Alle open poefs wissen",
|
||||
"clearClosedHistory": "Geschiedenis van gesloten poefs wissen",
|
||||
"seedDefaultProducts": "Standaardproducten vullen",
|
||||
"onlySeedsWhenEmpty": "Alleen vullen als de tabel leeg is",
|
||||
"clearAndReseedProducts": "Producten wissen en opnieuw vullen",
|
||||
"wipesAndReseeds": "Wist alle producten en vult de standaardproducten opnieuw",
|
||||
"clearAllProducts": "Alle producten wissen",
|
||||
"clearProductImages": "Productafbeeldingen wissen",
|
||||
"deletesProductImages": "Verwijdert afbeeldingen uit de map product_images",
|
||||
"debugging": "Debuggen",
|
||||
"resetPin": "PIN resetten",
|
||||
"removePinLock": "PIN-vergrendeling verwijderen",
|
||||
"toggleDebugOverlay": "Debug-overlay in-/uitschakelen",
|
||||
"showFpsMemoryWidgets": "FPS, geheugen en widgets tonen",
|
||||
"errorScreenMenu": "Foutscherm",
|
||||
"viewErrorScreen": "Het foutscherm bekijken",
|
||||
"featureToggles": "Functieschakelaars",
|
||||
"simulateUpdateDownload": "Updatedownload simuleren",
|
||||
"openDownloadProgress": "Downloadvoortgang openen",
|
||||
"testingHelpers": "Testhelpers",
|
||||
"createTestTab": "Testtabblad maken",
|
||||
"addRandomItems": "Tabblad met willekeurige items toevoegen",
|
||||
"addTestProducts": "100 testproducten toevoegen",
|
||||
"stressTestGrid": "Productraster stresstesten",
|
||||
"simulateLowStock": "Lage voorraad simuleren",
|
||||
"setProductsBelowThreshold": "Alle producten onder de drempel instellen",
|
||||
"generateMockOrders": "100 testbestellingen genereren",
|
||||
"randomCustomersItemsAmounts": "Willekeurige klanten, items en bedragen",
|
||||
"performance": "Prestaties",
|
||||
"clearImageCache": "Afbeeldingencache wissen",
|
||||
"reloadProductImages": "Productafbeeldingen opnieuw laden",
|
||||
"debugOverlay": "Debug-overlay",
|
||||
"debugOverlayDescription": "De debug-overlay toont FPS, geheugengebruik en het aantal widgets. Schakel deze in via Flutter DevTools in debugmodus.",
|
||||
"ok": "OK",
|
||||
"simulateUpdate": "Update simuleren",
|
||||
"chooseSimulationMode": "Kies een simulatiemodus:",
|
||||
"successfulDownload": "Geslaagde download",
|
||||
"progressThenInstall": "Voortgang 0→100%, daarna installeren en voltooien",
|
||||
"downloadError": "Downloadfout",
|
||||
"failsWithNetworkTimeout": "Mislukt bij 50% door een netwerktime-out",
|
||||
"realDownloadWillFail": "Echte download (mislukt)",
|
||||
"attemptsFakeUrl": "Probeert OTA met een valse URL",
|
||||
"categoryBeer": "Bier",
|
||||
"categoryWine": "Wijn",
|
||||
"categorySoftDrinks": "Frisdrank",
|
||||
"categoryCocktails": "Cocktails",
|
||||
"categorySnacks": "Snacks",
|
||||
"categoryCoffee": "Koffie",
|
||||
"categoryTea": "Thee",
|
||||
"categoryOther": "Overig",
|
||||
"devActionClearedOpenTabs": "Alle open tabbladen gewist",
|
||||
"devActionClearedHistory": "Geschiedenis van gesloten tabbladen gewist",
|
||||
"devActionClearedProducts": "Alle producten gewist",
|
||||
"devActionSeededProducts": "{count} producten toegevoegd",
|
||||
"@devActionSeededProducts": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionReseededProducts": "{count} producten gewist en opnieuw toegevoegd",
|
||||
"@devActionReseededProducts": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionImagesCleared": "Productafbeeldingen gewist",
|
||||
"devActionResetPin": "PIN gereset (geen PIN vereist)",
|
||||
"devActionNoProducts": "Geen producten beschikbaar",
|
||||
"devActionImagesReloaded": "Productafbeeldingen opnieuw geladen",
|
||||
"devActionCacheCleared": "Afbeeldingencache gewist (geen actie in debugmodus)",
|
||||
"devActionLowStock": "Lage voorraad gesimuleerd voor {count} producten",
|
||||
"@devActionLowStock": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionTestTab": "Testtabblad gemaakt met {count} items",
|
||||
"@devActionTestTab": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionTestProducts": "{count} testproducten toegevoegd",
|
||||
"@devActionTestProducts": {"placeholders": {"count": {"type": "int"}}},
|
||||
"devActionMockOrders": "{orders} testbestellingen gegenereerd voor {customers} klanten",
|
||||
"@devActionMockOrders": {"placeholders": {"orders": {"type": "int"}, "customers": {"type": "int"}}},
|
||||
"devActionFailedImages": "Afbeeldingen konden niet worden gewist.",
|
||||
"devActionResetStock": "Voorraad gereset voor {count} producten",
|
||||
"@devActionResetStock": {"placeholders": {"count": {"type": "int"}}},
|
||||
"paymentCash": "Contant",
|
||||
"paymentPayconiq": "Payconiq",
|
||||
"simulatedUpdateNotes": "Bugfixes en prestatieverbeteringen."
|
||||
}
|
||||
Reference in New Issue
Block a user