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:
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
+}