9541e3a385
Preloader: - Replace 3D wheel with smooth fade-in ticker queue - Bigger text (clamp 1.1–1.35rem), green/amber/red per check state - Previous items fade upward at decreasing opacity - Wider container (min(96vw,860px)) — no more awkward line-wrapping - JS already used ticker-item/state-ok/warn/error classes (CSS was missing) Shelf life — Asiago sottovuoto fix: - estimateSealedExpiryDaysPHP() and estimateExpiryDays() JS: asiago/fontina/emmental/gruyere/scamorza now grouped with hard cheeses (60d base) vacuum sealed: 60 × 2.5 = 150 days — correct for fridge + sottovuoto - Cleared stale opened_shelf_cache entry for 'Formaggio Asiago fresco' Kiosk wizard: - 5 languages: values-es/ and values-fr/ created (97 strings each) - values/, values-it/, values-de/: complete rewrite with new keys (ble_connecting, ble_connecting_to, summary_scale_ok/warn, Gemini/Bring step strings) stepDone hardcoded Italian → @string refs; screensaver nav → @string/setup_step_back/next - SetupActivity.kt: steps 0-8 fully implemented; ES/FR language selection; auto-skip Gemini/Bring if already configured; buildSummary() localised; finishSetup() sends gemini_api_key + bring_email/password; BLE connecting strings localised; scale summary lines use R.string
125 lines
9.8 KiB
XML
125 lines
9.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<resources>
|
|
<string name="app_name">EverShelf Kiosk</string>
|
|
|
|
<!-- ── Setup wizard ─────────────────────────────────────────────────── -->
|
|
<string name="setup_enter_url">Please enter a URL first</string>
|
|
<string name="setup_testing">Testing connection…</string>
|
|
<string name="setup_server_found">EverShelf server found and API active!</string>
|
|
<string name="setup_api_not_found">Server reachable but EverShelf API not found. Check the path.</string>
|
|
<string name="setup_unreachable">Cannot reach server</string>
|
|
<string name="setup_discover_btn">🔍 Search local network</string>
|
|
<string name="setup_perms_granted_next">✅ Permissions granted — Continue →</string>
|
|
<string name="setup_discovering">Scanning…</string>
|
|
<string name="setup_discovering_detail">Searching for EverShelf servers on the local network…</string>
|
|
<string name="setup_discover_not_found">No EverShelf server found automatically. Enter the URL manually.</string>
|
|
<string name="setup_exit_title">Exit setup?</string>
|
|
<string name="setup_exit_message">You can complete setup later when you reopen the app.</string>
|
|
<string name="setup_exit_confirm">Exit</string>
|
|
<string name="setup_exit_cancel">Continue</string>
|
|
<string name="setup_step_back">← Back</string>
|
|
<string name="setup_step_next">Next →</string>
|
|
<string name="setup_skip_later">Set up later</string>
|
|
<string name="setup_confirm">Confirm →</string>
|
|
|
|
<!-- ── Wizard Step 4: Smart scale ───────────────────────────────────── -->
|
|
<string name="wizard_step3_title">Smart Scale</string>
|
|
<string name="wizard_step3_description">EverShelf Kiosk includes a built-in Bluetooth gateway — no external app needed. Select your scale below.</string>
|
|
<string name="wizard_step3_question">Do you have a Bluetooth smart scale?</string>
|
|
<string name="wizard_step3_yes">✅ Yes, I have a scale</string>
|
|
<string name="wizard_step3_no">➡️ No, skip this step</string>
|
|
|
|
<!-- BLE scan / test feedback (previously hardcoded) -->
|
|
<string name="ble_scanning">🔍 Scanning…</string>
|
|
<string name="ble_connected">Connected! Place an object on the scale…</string>
|
|
<string name="ble_disconnected">Connection lost. Retry.</string>
|
|
<string name="ble_no_scale_found">No scale found. Make sure it is on and nearby, then retry.</string>
|
|
<string name="ble_select_from_list">Select your scale from the list.</string>
|
|
<string name="ble_not_confirmed">Scale not confirmed. Retry scan.</string>
|
|
<string name="ble_scan_again">🔄 Scan again</string>
|
|
<string name="ble_weight_received">Weight received — does it match the display?</string>
|
|
|
|
<!-- ── Gateway status messages ──────────────────────────────────────── -->
|
|
<string name="wizard_gateway_installed">Scale device saved ✅</string>
|
|
<string name="wizard_gateway_installed_detail">The integrated BLE gateway will connect automatically on startup.</string>
|
|
<string name="wizard_gateway_not_installed">No scale selected</string>
|
|
<string name="wizard_gateway_not_installed_detail">Scan for nearby BLE scales and tap one to select it.</string>
|
|
<string name="wizard_gateway_checking">Scanning for BLE scales…</string>
|
|
<string name="wizard_gateway_up_to_date">Scale BLE service ready.</string>
|
|
<string name="wizard_gateway_update_available">BLE scale found</string>
|
|
<string name="wizard_gateway_update_detail">Tap the scale in the list to connect.</string>
|
|
|
|
<!-- ── Install / download progress states ───────────────────────────── -->
|
|
<string name="install_downloading">Downloading…</string>
|
|
<string name="install_downloading_detail">Please wait, the file is being downloaded.</string>
|
|
<string name="install_installing">Installing…</string>
|
|
<string name="install_confirm_detail">Confirm the installation in the dialog that has opened.</string>
|
|
<string name="install_success">Installed successfully!</string>
|
|
<string name="install_success_detail">The app has been updated.</string>
|
|
<string name="install_error_download">Download failed</string>
|
|
<string name="install_error_download_detail">Check your connection and try again.</string>
|
|
<string name="install_error_install">Installation failed</string>
|
|
<string name="install_perm_detail">Enable \'Install unknown apps\' in settings, then come back here.</string>
|
|
<string name="install_btn_retry">↩ Retry</string>
|
|
|
|
<!-- ── Buttons ───────────────────────────────────────────────────────── -->
|
|
<string name="btn_back">Back</string>
|
|
<string name="btn_launch">🚀 Launch EverShelf</string>
|
|
<string name="btn_launch_no_scale">🚀 Launch without scale</string>
|
|
<string name="btn_download_gateway">📥 Install Scale Gateway</string>
|
|
<string name="btn_update_gateway">📥 Update Scale Gateway</string>
|
|
|
|
<!-- ── Server reachability check ────────────────────────────────────── -->
|
|
<string name="wizard_server_checking">Checking server connection…</string>
|
|
<string name="wizard_server_ok">Server reachable ✅</string>
|
|
<string name="wizard_server_ok_detail">Error reporting is active — install failures will be sent to GitHub Issues automatically.</string>
|
|
<string name="wizard_server_error">Server not reachable ⚠️</string>
|
|
<string name="wizard_server_error_detail">Install errors won\'t reach GitHub Issues. Check the URL entered in step 2.</string>
|
|
|
|
<!-- ── Step 5 — Features ─────────────────────────────────────────────── -->
|
|
<string name="setup_features_title">Features</string>
|
|
<string name="setup_features_desc">Enable the features you want to use. You can always change them later in the server settings.</string>
|
|
<string name="setup_screensaver_toggle_label">Clock screensaver</string>
|
|
<string name="setup_screensaver_toggle_hint">Shows a clock overlay after 5 min of inactivity.</string>
|
|
<string name="setup_prices_toggle_label">Shopping list prices</string>
|
|
<string name="setup_prices_toggle_hint">AI-powered automatic cost estimate for each item in the list.</string>
|
|
<string name="setup_mealplan_toggle_label">Meal plan</string>
|
|
<string name="setup_mealplan_toggle_hint">Plan the week\'s meals with recipes based on your pantry.</string>
|
|
<string name="setup_zerowaste_toggle_label">Zero-waste tips</string>
|
|
<string name="setup_zerowaste_toggle_hint">Show tips for reusing scraps (peels, cooking water, etc.) while cooking.</string>
|
|
|
|
<!-- ── Step 6 — Gemini AI key ─────────────────────────────────────────── -->
|
|
<string name="setup_gemini_title">Google Gemini AI</string>
|
|
<string name="setup_gemini_desc">EverShelf uses Google Gemini AI for recipe suggestions, smart shopping estimates and more.\n\nTo enable it, enter your free Gemini API key below.</string>
|
|
<string name="setup_gemini_how">Get your free key at: aistudio.google.com → \"Get API key\"</string>
|
|
<string name="setup_gemini_hint">Paste your API key here (starts with AIza…)</string>
|
|
|
|
<!-- ── Step 7 — Bring! credentials ──────────────────────────────────── -->
|
|
<string name="setup_bring_title">Bring! Shopping List</string>
|
|
<string name="setup_bring_desc">EverShelf can sync your shopping list with the Bring! app.\n\nEnter your Bring! account credentials to enable this integration.</string>
|
|
<string name="setup_bring_email_hint">Bring! email address</string>
|
|
<string name="setup_bring_pass_hint">Bring! password</string>
|
|
|
|
<!-- ── Step 8 — Done ─────────────────────────────────────────────────── -->
|
|
<string name="setup_done_title">All set!</string>
|
|
<string name="setup_done_desc">Setup is complete. Press the button below to launch EverShelf in kiosk mode.</string>
|
|
<string name="setup_done_summary_label">CONFIGURATION SUMMARY</string>
|
|
|
|
<!-- ── Summary lines ─────────────────────────────────────────────────── -->
|
|
<string name="summary_lang">Language</string>
|
|
<string name="summary_scale_skip">Scale: not configured</string>
|
|
<string name="summary_screensaver_on">Screensaver: enabled</string>
|
|
<string name="summary_screensaver_off">Screen always on (screensaver disabled)</string>
|
|
<string name="summary_prices_on">Shopping list prices: enabled</string>
|
|
<string name="summary_mealplan_on">Meal plan: enabled</string>
|
|
<string name="summary_zerowaste_on">Zero-waste tips: enabled</string>
|
|
<string name="summary_gemini_set">Gemini AI: enabled</string>
|
|
<string name="summary_gemini_skip">Gemini AI: not configured</string>
|
|
<string name="summary_bring_set">Bring!: connected</string>
|
|
<string name="summary_bring_skip">Bring!: not configured</string>
|
|
<string name="ble_connecting_to">🔗 Connecting to %s…</string>
|
|
<string name="ble_connecting">🔗 Connecting…</string>
|
|
<string name="summary_scale_ok">Scale: %s</string>
|
|
<string name="summary_scale_warn">Scale: not confirmed</string>
|
|
</resources>
|