feat: add localisation

This commit is contained in:
2026-07-31 21:46:05 +02:00
parent b58c9a8722
commit f5b2041612
30 changed files with 4099 additions and 326 deletions
+239
View File
@@ -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": "Youll use this to unlock the app",
"confirmPinSubtitle": "Enter the same PIN again",
"createPin": "Create a PIN",
"pinsDidNotMatch": "PINs didnt 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."
}