mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-10-31 22:17:29 +00:00
458 lines
18 KiB
JSON
458 lines
18 KiB
JSON
{
|
|
"test": "en-test",
|
|
"locale": "en",
|
|
"basis": {
|
|
"_comment": "Basic interface elements",
|
|
"providers": "Providers",
|
|
"services": "Services",
|
|
"users": "Users",
|
|
"more": "More",
|
|
"next": "Next",
|
|
"got_it": "Got it",
|
|
"settings": "Settings",
|
|
"password": "Password",
|
|
"create": "Add new",
|
|
"confirmation": "Confirmation",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"close": "Close",
|
|
"connect": "Connect",
|
|
"domain": "Domain",
|
|
"saving": "Saving..",
|
|
"nickname": "Nickname",
|
|
"loading": "Loading...",
|
|
"later": "Skip to setup later",
|
|
"connect_to_existing": "Connect to an existing server",
|
|
"reset": "Reset",
|
|
"details": "Details",
|
|
"no_data": "No data",
|
|
"wait": "Wait",
|
|
"remove": "Remove",
|
|
"apply": "Apply",
|
|
"done": "Done"
|
|
},
|
|
"more": {
|
|
"_comment": "'More' tab",
|
|
"configuration_wizard": "Setup wizard",
|
|
"about_project": "About us",
|
|
"about_app": "About application",
|
|
"onboarding": "Onboarding",
|
|
"create_ssh_key": "Create SSH key",
|
|
"generate_key": "Generate key",
|
|
"generate_key_text": "You can generate ssh key",
|
|
"console": "Console",
|
|
"remove": "Remove",
|
|
"enable": "Enable",
|
|
"ok": "ok",
|
|
"continue": "Continue",
|
|
"ssh_key_exist_text": "You have generated ssh key",
|
|
"yes_delete": "Yes, delete my SSH key",
|
|
"share": "Share",
|
|
"copy_buffer": "Copy to buffer",
|
|
"copied_ssh": "SSH copied to clipboard",
|
|
"delete_ssh_text": "Delete SSH key?",
|
|
"about_app_page": {
|
|
"application_version_text": "Application version v.{}",
|
|
"api_version_text": "Server API version v.{}"
|
|
},
|
|
"settings": {
|
|
"title": "Application settings",
|
|
"1": "Dark Theme",
|
|
"2": "Change your the app theme",
|
|
"3": "Reset app config",
|
|
"4": "Reset api keys and root user",
|
|
"5": "Delete Server",
|
|
"6": "This removes the Server. It will be no longer accessible"
|
|
}
|
|
},
|
|
"ssh": {
|
|
"title": "SSH keys",
|
|
"create": "Create SSH key",
|
|
"delete": "Delete SSH key",
|
|
"delete_confirm_question": "Are you sure you want to delete SSH key?",
|
|
"subtitle_with_keys": "{} keys",
|
|
"subtitle_without_keys": "No keys",
|
|
"no_key_name": "Unnamed key",
|
|
"root": {
|
|
"title": "These are superuser keys",
|
|
"subtitle": "Owners of these keys get full access to the server and can do anything on it. Only add your own keys to the server."
|
|
},
|
|
"input_label": "Public ED25519 or RSA key"
|
|
},
|
|
"onboarding": {
|
|
"_comment": "Onboarding pages",
|
|
"page1_title": "Digital independence, available to all of us",
|
|
"page1_text": "Mail, VPN, Messenger, social network and much more on your private server, under your control.",
|
|
"page2_title": "SelfPrivacy — it's not a cloud, but your personal datacenter",
|
|
"page2_text": "SelfPrivacy works only with your provider accounts: Hetzner, Cloudflare, Backblaze. If you do not own those, we'll help you to create them"
|
|
},
|
|
"providers": {
|
|
"_comment": "'Providers' tab",
|
|
"page_title": "Your Data Center",
|
|
"server": {
|
|
"card_title": "Server",
|
|
"status": "Status — Good",
|
|
"bottom_sheet": {
|
|
"1": "It's a virtual computer, where all your services live.",
|
|
"2": "General information",
|
|
"3": "Location"
|
|
},
|
|
"chart": {
|
|
"month": "Month",
|
|
"day": "Day",
|
|
"hour": "Hour"
|
|
}
|
|
},
|
|
"domain": {
|
|
"card_title": "Domain",
|
|
"status": "Status — Good",
|
|
"bottom_sheet": {
|
|
"1": "It's your personal internet address that will point to the server and other services of yours."
|
|
},
|
|
"screen_title": "Domain and DNS",
|
|
"states": {
|
|
"ok": "Records are OK",
|
|
"error": "Problems found",
|
|
"error_subtitle": "Tap here to fix them",
|
|
"refreshing": "Refreshing status...",
|
|
"uninitialized": "Data is not retrieved yet"
|
|
},
|
|
"record_description": {
|
|
"root": "Root domain",
|
|
"api": "SelfPrivacy API",
|
|
"cloud": "File cloud",
|
|
"git": "Git server",
|
|
"meet": "Video conference",
|
|
"social": "Social network",
|
|
"password": "Password manager",
|
|
"vpn": "VPN",
|
|
"mx": "MX record",
|
|
"dmarc": "DMARC record",
|
|
"spf": "SPF record",
|
|
"dkim": "DKIM key"
|
|
},
|
|
"cards": {
|
|
"services": {
|
|
"title": "Services",
|
|
"subtitle": "Type “A” records required for each service."
|
|
},
|
|
"email": {
|
|
"title": "Email",
|
|
"subtitle": "Records necessary for secure email exchange."
|
|
}
|
|
}
|
|
},
|
|
"backup": {
|
|
"card_title": "Backup",
|
|
"status": "Status — Good",
|
|
"bottom_sheet": {
|
|
"1": "Will save your day in case of incident: hackers attack, server deletion, etc.",
|
|
"2": "3Gb/10Gb, last backup was yesterday {}"
|
|
},
|
|
"reuploadKey": "Force reupload key",
|
|
"reuploadedKey": "Key reuploaded",
|
|
"initialize": "Initialize",
|
|
"waitingForRebuild": "You will be able to create your first backup in a few minutes.",
|
|
"restore": "Restore from backup",
|
|
"no_backups": "There are no backups yet",
|
|
"create_new": "Create a new backup",
|
|
"creating": "Creating a new backup: {}%",
|
|
"restoring": "Restoring from backup",
|
|
"error_pending": "Server returned error, check it below",
|
|
"restore_alert": "You are about to restore from backup created on {}. All current data will be lost. Are you sure?",
|
|
"refresh": "Refresh status",
|
|
"refetchBackups": "Refetch backup list",
|
|
"refetchingList": "In a few minutes list will be updated"
|
|
},
|
|
"storage": {
|
|
"card_title": "Server Storage",
|
|
"status_ok": "Disk usage is OK",
|
|
"status_error": "Low disk space",
|
|
"disk_usage": "{} GB used",
|
|
"disk_total": "{} GB total · {}",
|
|
"gb": "{} GB",
|
|
"mb": "{} MB",
|
|
"kb": "{} KB",
|
|
"extend_volume_button": "Extend volume",
|
|
"extending_volume_title": "Extending volume",
|
|
"extending_volume_description": "Resizing volume will allow you to store more data on your server without extending the server itself. Volume can only be extended: shrinking is not possible.",
|
|
"extending_volume_price_info": "Price includes VAT and is estimated from pricing data provided by Hetzner.",
|
|
"size": "Size",
|
|
"euro": "Euro",
|
|
"data_migration_title": "Data migration",
|
|
"data_migration_notice": "During migration all services will be turned off.",
|
|
"start_migration_button": "Start migration"
|
|
}
|
|
},
|
|
"not_ready_card": {
|
|
"_comment": "Card shown when user skips initial setup",
|
|
"1": "Please finish application setup using ",
|
|
"2": "@:more.configuration_wizard",
|
|
"3": " for further work",
|
|
"in_menu": "Server is not set up yet. Please finish setup using setup wizard for further work."
|
|
},
|
|
"services": {
|
|
"_comment": "Вкладка сервисы",
|
|
"title": "Your personal, private and independent services.",
|
|
"mail": {
|
|
"title": "E-Mail",
|
|
"subtitle": "E-Mail for company and family.",
|
|
"login_info": "Use username and password from users tab. IMAP port is 143 with STARTTLS, SMTP port is 587 with STARTTLS.",
|
|
"bottom_sheet": {
|
|
"1": "To connect to the mailserver, please use {} domain alongside with username and password, that you created. Also feel free to invite",
|
|
"2": "new users"
|
|
}
|
|
},
|
|
"messenger": {
|
|
"title": "Messenger",
|
|
"subtitle": "Telegram or Signal not so private as Delta.Chat that uses your private server.",
|
|
"login_info": "Use the same username and password as for e-mail.",
|
|
"bottom_sheet": {
|
|
"1": "For connection, please use {} domain and credentials that you created."
|
|
}
|
|
},
|
|
"password_manager": {
|
|
"title": "Password Manager",
|
|
"subtitle": "Base of your security. Bitwarden will help you to create, store and move passwords between devices, as well as input them, when requested using autocompletion.",
|
|
"login_info": "You will have to create an account on the website.",
|
|
"bottom_sheet": {
|
|
"1": "You can connect to the service and create a user via this link:"
|
|
}
|
|
},
|
|
"video": {
|
|
"title": "Videomeet",
|
|
"subtitle": "Zoom and Google Meet are good, but Jitsi Meet is a worth alternative that also gives you confidence that you're not being listened.",
|
|
"login_info": "No account needed.",
|
|
"bottom_sheet": {
|
|
"1": "Using Jitsi as simple as just visiting this link:"
|
|
}
|
|
},
|
|
"cloud": {
|
|
"title": "Cloud Storage",
|
|
"subtitle": "Do not allow cloud services to read your data by using NextCloud.",
|
|
"login_info": "Login is admin, password is the same as with your main user. Create new accounts in Nextcloud interface.",
|
|
"bottom_sheet": {
|
|
"1": "You can connect and create a new user here:"
|
|
}
|
|
},
|
|
"social_network": {
|
|
"title": "Social Network",
|
|
"subtitle": "It's hard to believe, but it became possible to create your own social network, with your own rules and target audience.",
|
|
"login_info": "You will have to create an account on the website.",
|
|
"bottom_sheet": {
|
|
"1": "You can connect and create new social user here:"
|
|
}
|
|
},
|
|
"git": {
|
|
"title": "Git Server",
|
|
"subtitle": "Private alternative to the Github, that belongs to you, but not a Microsoft.",
|
|
"login_info": "You will have to create an account on the website. First user will become an admin.",
|
|
"bottom_sheet": {
|
|
"1": "You can connect and create a new user here:"
|
|
}
|
|
},
|
|
"vpn": {
|
|
"title": "VPN Server",
|
|
"subtitle": "Private VPN server",
|
|
"bottom_sheet": {
|
|
"1": "Openconnect VPN Server. Engine for secure and scalable VPN infrastructure"
|
|
}
|
|
},
|
|
"page": {
|
|
"up_and_running": "Up and running",
|
|
"resource_usage": "Resource usage",
|
|
"disk_used": "{} of disk space used",
|
|
"users": "Users",
|
|
"controlled_by": "Controlled by {}",
|
|
"apps": "Apps",
|
|
"settings": "Settings and maintenance"
|
|
}
|
|
},
|
|
"users": {
|
|
"_comment": "'Users' tab",
|
|
"add_new_user": "Add a first user",
|
|
"new_user": "New user",
|
|
"not_ready": "Please connect server, domain and DNS in the Providers tab, to be able to add a first user",
|
|
"nobody_here": "Nobody here",
|
|
"login": "Login",
|
|
"onboarding": "Onboarding",
|
|
"console": "Console",
|
|
"new_user_info_note": "New user will automatically be granted an access to all of the services",
|
|
"delete_confirm_question": "Are you sure?",
|
|
"reset_password": "Reset password",
|
|
"account": "Account",
|
|
"send_registration_data": "Share login credentials"
|
|
},
|
|
"initializing": {
|
|
"_comment": "initializing page",
|
|
"1": "Connect a server",
|
|
"2": "A place where your data and SelfPrivacy services will reside:",
|
|
"how": "How to obtain API token",
|
|
"hetzner_bad_key_error": "Hetzner API key is invalid",
|
|
"cloudflare_bad_key_error": "Cloudflare API key is invalid",
|
|
"backblaze_bad_key_error": "Backblaze storage information is invalid",
|
|
"3": "Connect CloudFlare",
|
|
"4": "To manage your domain's DNS",
|
|
"5": "CloudFlare API Token",
|
|
"6": "Connect Backblaze storage",
|
|
"7": "No connected domains at the moment",
|
|
"8": "Loading domains list",
|
|
"9": "Found more than one domain. For your own security, please be asked to delete unnecessary domains",
|
|
"10": "Save domain",
|
|
"final": "Final step",
|
|
"11": "Create server",
|
|
"what": "What does it mean?",
|
|
"13": "Server rebooted. Waiting for the last verification...",
|
|
"14": "Server started. It will be validated and rebooted now...",
|
|
"15": "Server created. DNS checks and server boot in progress...",
|
|
"16": "Until the next check: ",
|
|
"17": "Check",
|
|
"19": "1 Go via this link ",
|
|
"20": "\n",
|
|
"21": "One more restart to apply your security certificates.",
|
|
"22": "Create master account",
|
|
"23": "Enter a nickname and strong password",
|
|
"finish": "Everything is initialized",
|
|
"checks": "Checks have been completed \n{} out of {}"
|
|
},
|
|
"recovering": {
|
|
"recovery_main_header": "Connect to an existing server",
|
|
"domain_recovery_description": "Enter a server domain you want to get access for:",
|
|
"domain_recover_placeholder": "Your domain",
|
|
"domain_recover_error": "Server with such domain was not found",
|
|
"method_select_description": "Select a recovery method:",
|
|
"method_select_other_device": "I have access on another device",
|
|
"method_select_recovery_key": "I have a recovery key",
|
|
"method_select_nothing": "I don't have any of that",
|
|
"method_device_description": "Open the application on another device, then go to the devices page. Press \"Add device\" to receive your token.",
|
|
"method_device_button": "I have received my token",
|
|
"method_device_input_description": "Enter your authorization token",
|
|
"method_device_input_placeholder": "Token",
|
|
"method_recovery_input_description": "Enter your recovery key",
|
|
"fallback_select_description": "What exactly do you have? Pick the first available option:",
|
|
"fallback_select_token_copy": "Copy of auth token from other version of the application.",
|
|
"fallback_select_root_ssh": "Root SSH access to the server.",
|
|
"fallback_select_provider_console": "Access to the server console of my prodiver.",
|
|
"authorization_failed": "Couldn't log in with this key",
|
|
"fallback_select_provider_console_hint": "For example: Hetzner.",
|
|
"hetzner_connected": "Connect to Hetzner",
|
|
"hetzner_connected_description": "Communication established. Enter Hetzner token with access to {}:",
|
|
"hetzner_connected_placeholder": "Hetzner token",
|
|
"confirm_server": "Confirm server",
|
|
"confirm_server_description": "Found your server! Confirm it is correct.",
|
|
"confirm_server_accept": "Yes! That's it",
|
|
"confirm_server_decline": "Choose a different server",
|
|
"choose_server": "Choose your server",
|
|
"choose_server_description": "We couldn't figure out which server your are trying to connect to.",
|
|
"no_servers": "There is no available servers on your account.",
|
|
"domain_not_available_on_token": "Selected domain is not available on this token.",
|
|
"modal_confirmation_title": "Is it really your server?",
|
|
"modal_confirmation_description": "If you connect to a wrong server you may lose all your data.",
|
|
"modal_confirmation_dns_valid": "Reverse DNS is valid",
|
|
"modal_confirmation_dns_invalid": "Reverse DNS points to another domain",
|
|
"modal_confirmation_ip_valid": "IP is the same as in DNS record",
|
|
"modal_confirmation_ip_invalid": "IP is not the same as in DNS record",
|
|
"confirm_cloudflare": "Connect to CloudFlare",
|
|
"confirm_cloudflare_description": "Enter a Cloudflare token with access to {}:",
|
|
"confirm_backblaze": "Connect to Backblaze",
|
|
"confirm_backblaze_description": "Enter a Backblaze token with access to backup storage:"
|
|
},
|
|
"devices": {
|
|
"main_screen": {
|
|
"header": "Devices",
|
|
"description": "These devices have full access to the server via SelfPrivacy app.",
|
|
"this_device": "This device",
|
|
"other_devices": "Other devices",
|
|
"authorize_new_device": "Authorize new device",
|
|
"access_granted_on" : "Access granted on {}",
|
|
"tip": "Press on the device to revoke access."
|
|
},
|
|
"add_new_device_screen": {
|
|
"header": "Authorizing new device",
|
|
"description": "Enter the key on the device you want to authorize:",
|
|
"please_wait": "Please wait",
|
|
"tip": "The key is valid for 10 minutes.",
|
|
"expired": "The key has expired.",
|
|
"get_new_key": "Get new key"
|
|
},
|
|
"revoke_device_alert": {
|
|
"header": "Revoke access?",
|
|
"description": "The device {} will no longer have access to the server.",
|
|
"yes": "Revoke",
|
|
"no": "Cancel"
|
|
}
|
|
},
|
|
"recovery_key": {
|
|
"key_connection_error": "Couldn't connect to the server.",
|
|
"key_synchronizing": "Synchronizing...",
|
|
"key_main_header": "Recovery key",
|
|
"key_main_description": "Is needed for SelfPrivacy authorization when all your other authorized devices aren't available.",
|
|
"key_amount_toggle": "Limit by number of uses",
|
|
"key_amount_field_title": "Max number of uses",
|
|
"key_duedate_toggle": "Limit by time",
|
|
"key_duedate_field_title": "Due date of expiration",
|
|
"key_receive_button": "Receive key",
|
|
"key_valid": "Your key is valid",
|
|
"key_invalid": "Your key is no longer valid",
|
|
"key_valid_until": "Valid until {}",
|
|
"key_valid_for": "Valid for {} uses",
|
|
"key_creation_date": "Created on {}",
|
|
"key_replace_button": "Generate new key",
|
|
"key_receiving_description": "Write down this key and put to a safe place. It is used to restore full access to your server:",
|
|
"key_receiving_info": "The key will never ever be shown again, but you will be able to replace it with another one.",
|
|
"key_receiving_done": "Done!",
|
|
"generation_error": "Couldn't generate a recovery key. {}"
|
|
},
|
|
"modals": {
|
|
"_comment": "messages in modals",
|
|
"1": "Server with such name, already exist.",
|
|
"1_1": "Unexpected error during placement from the provider side.",
|
|
"2": "Destroy server and create a new one?",
|
|
"2_2": "Try again?",
|
|
"3": "Are you sure?",
|
|
"4": "Purge all authentication keys?",
|
|
"5": "Yes, purge all my tokens",
|
|
"6": "Delete the server and volume?",
|
|
"7": "Yes",
|
|
"8": "Remove task",
|
|
"9": "Reboot",
|
|
"10": "You cannot use this API for domains with such TLD.",
|
|
"yes": "Yes",
|
|
"no": "No"
|
|
},
|
|
"timer": {
|
|
"sec": "{} sec"
|
|
},
|
|
"jobs": {
|
|
"_comment": "Jobs list",
|
|
"title": "Jobs list",
|
|
"start": "Start",
|
|
"empty": "No jobs",
|
|
"createUser": "Create user",
|
|
"deleteUser": "Delete user",
|
|
"serviceTurnOff": "Turn off",
|
|
"serviceTurnOn": "Turn on",
|
|
"jobAdded": "Job added",
|
|
"runJobs": "Run jobs",
|
|
"rebootSuccess": "Server is rebooting",
|
|
"rebootFailed": "Couldn't reboot the server. Check the app logs.",
|
|
"configPullFailed": "Failed to pull configuration upgrade. Started software upgrade anyways.",
|
|
"upgradeSuccess": "Server upgrade started",
|
|
"upgradeFailed": "Failed to upgrade server",
|
|
"upgradeServer": "Upgrade server",
|
|
"rebootServer": "Reboot server",
|
|
"create_ssh_key": "Create SSH key for {}",
|
|
"delete_ssh_key": "Delete SSH key for {}"
|
|
},
|
|
"validations": {
|
|
"required": "Required.",
|
|
"invalid_format": "Invalid format.",
|
|
"root_name": "User name cannot be 'root'.",
|
|
"key_format": "Invalid key format.",
|
|
"length_not_equal": "Length is []. Should be {}.",
|
|
"length_longer": "Length is []. Should be shorter than or equal to {}.",
|
|
"user_already_exist": "This user already exists.",
|
|
"key_already_exists": "This key already exists."
|
|
}
|
|
}
|