web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

commit 36cad3f1617dcfc9c8e3af1d21ef901bcddc4365
parent 4c4a3b3d4117caf2e3388e30df95472df78a66a6
Author: triesap <triesap@radroots.dev>
Date:   Thu, 20 Nov 2025 16:43:24 +0000

locales: add `en` localisations for backup import and export, expanding datastore and keystore labels with validation errors and success notifications

Diffstat:
Mlocales/src/messages/en/common.json | 13+++++++++++--
Mlocales/src/messages/en/error.json | 31+++++++++++++++++++++++++++++--
Mlocales/src/messages/en/notification.json | 13+++++++++++--
3 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/locales/src/messages/en/common.json b/locales/src/messages/en/common.json @@ -45,6 +45,7 @@ "business_type": "Business type", "cancel": "Cancel", "choose_a_profile_name": "Choose a profile name", + "choose_options": "Choose options", "choose_location": "Choose location", "choose_on_map": "Choose on map", "climate": "Climate", @@ -68,8 +69,10 @@ "create_product": "Create product", "current_location": "Current location", "dark": "Dark", + "datastore": "Datastore", "date_created": "Date created", "date_modified": "Date modified", + "default": "Default", "default_relays": "Default relays", "delete": "Delete", "describe_your_product": "Describe your product", @@ -105,6 +108,7 @@ "following": "Following", "from": "From", "general": "General", + "go_back": "Go back", "greeting_welcome": "Welcome!", "hex": "Hex", "hide_alerts": "Hide alerts", @@ -112,6 +116,9 @@ "home": "Home", "image": "Image", "images": "Images", + "import": "Import", + "import_app_state": "Import app state", + "import_backup": "Import backup", "inbox": "Inbox", "inflows": "Inflows", "invalid_key": "Invalid key", @@ -150,7 +157,9 @@ "no_items_to_display": "No items to display", "no_locations_saved": "No locations saved", "nostr": "Nostr", + "nostr_keystore": "Nostr keystore", "nostr_key": "Nostr key", + "nostr_nsec_hex": "nostr nsec/hex", "not_connected": "Not connected", "notifications": "Notifications", "npub": "Npub", @@ -184,6 +193,7 @@ "public_key": "Public key", "publish": "Publish", "quantity": "Quantity", + "radroots_app_state_filename_prefix": "radroots-app-state", "quit": "Quit", "reading": "Reading", "relay": "Relay", @@ -229,4 +239,4 @@ "your_email": "Your email", "your_name": "Your name", "zine": "Zine" -} -\ No newline at end of file +} diff --git a/locales/src/messages/en/error.json b/locales/src/messages/en/error.json @@ -1,4 +1,13 @@ { + "backup": { + "export_failure": "Unable to export app state. Please try again." + }, + "app": { + "export": { + "missing_datastore_config": "Missing datastore configuration for export.", + "missing_nostr_keystore_config": "Missing nostr keystore configuration for export." + } + }, "client": { "geolocation": { "location_unavailable": "The device location is unavailable", @@ -9,6 +18,7 @@ "http": { "request_failure": "There was a request failure" }, + "undefined_window": "The window context is unavailable", "nostr": { "missing_public_key": "There is no public key available", "sync_disabled": "The sync process is currently disabled" @@ -17,6 +27,24 @@ "default": { "failure": "The request was not succesful" }, + "configuration": { + "import": { + "database_format_mismatch": "Import file database backup format does not match metadata.", + "empty_file": "Import file is empty.", + "failure": "Unable to import app state. Please verify the file and try again.", + "invalid_file_contents": "Import file contents are invalid.", + "missing_required_sections": "Import file is missing required sections.", + "missing_version_metadata": "Import file is missing version metadata.", + "no_file_chosen": "Choose a backup file before continuing.", + "storage_mismatch": "Import failed: {{label}} storage mismatch (app={{app_database}}/{{app_store}}, backup={{backup_database}}/{{backup_store}}).", + "tangle_sql_version_mismatch": "Import file tangle-sql version does not match metadata.", + "tangle_store_key_mismatch": "Import failed: tangle DB store key mismatch (app={{app_store_key}}, backup={{backup_store_key}}).", + "unsupported_backup_version": "Unsupported backup version ({{backup_version}}); expected {{expected_version}}." + }, + "profile": { + "name_min_length": "Profile name must be at least 3 characters." + } + }, "init": { "configuration_failure": "There was an error configuring the device", "device_configuration_nostr_profile": "There was an error while configuring your profile", @@ -38,4 +66,4 @@ "util": { "parse_file_path_undefined": "There was an error reading the file path" } -} -\ No newline at end of file +} diff --git a/locales/src/messages/en/notification.json b/locales/src/messages/en/notification.json @@ -1,4 +1,14 @@ { + "backup": { + "import_success": "The application backup has been successfully imported." + }, + "configuration": { + "backup_file_invalid": "Not a valid backup file.", + "backup_file_valid": "The backup file is valid (version: {{backup_version}}).", + "clear_prior_session": "Clear the prior session?", + "import_description": "Choose a JSON export created by this app to restore configuration, nostr keys, and database information.", + "prior_session_pending": "Restoring a prior session is not available yet." + }, "device": { "reset": "You are about to reset this device, which will erase all data including keys, profiles, and personal files", "reset_complete": "The device has been reset" @@ -15,4 +25,4 @@ "handle_back_with_selected_photo_no_existing": "Do you want to use this photo or leave the page?", "update_name_confirmation": "Updating your username will result in public links on your profile being updated" } -} -\ No newline at end of file +}