# Copyright (c) 2020 Bubble, Inc.  All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/
# suppress inspection "UnusedProperty" for whole file
# these labels are all used on the frontend
label_homepage_hello=Hello, {{account.user.name}}!

# Model Setup fields
form_title_model_setup=System Objects
field_label_entity_type=Object Type
button_label_upload_model=Upload Objects
field_label_upload_file=Objects File
field_description_upload_file=Must be a valid ZIP or TGZ archive file.
button_label_save_upload_model=Upload
button_label_close_upload_model=Cancel
button_label_add_entity=Add New
button_label_close_add_entity=Cancel
button_label_save_add_entity=Save
button_label_view_entity=View
button_label_close_view_entity=Close
button_label_edit_entity=Edit
button_label_save_edit_entity=Save
button_label_delete_entity=Delete

# Profile fields
field_label_url=URL
field_label_administrator=Administrator
field_label_suspended=Suspended
field_label_sendWelcomeEmail=Send Welcome Email
field_label_auto_update_policy=Auto-Update Policy
field_label_auto_update_drivers=Automatic Updates for App Drivers
field_label_auto_update_apps=Automatic Updates for Existing Apps
field_label_auto_update_app_data=Automatic Updates for App Data for Existing Apps
field_label_auto_update_new_drivers_and_apps=Automatic Updates for New Drivers and New Apps
button_label_update_profile=Update
link_label_change_password=Change Password
link_label_account_ssh_keys=Manage SSH Keys
link_label_account_policy=Account Policy and Contact Info
link_label_account_download=Request Account Data Download
link_label_account_payments=Payment Methods and Credits
link_label_account_bills=Bills
message_profile_update_success=Profile update was successful
downloading_notice=File download will start promptly...
downloading_failed=File download failed. Please retry from the start

# Account SSH key fields
form_title_ssh_keys=Account SSH Keys
form_title_add_ssh_key=Add SSH Key
field_label_ssh_key_name=Name
field_label_ssh_key_public_key=Public Key
field_label_ssh_key_expiration=Expiration
field_description_ssh_key_expiration=If omitted, the key will never expire
field_description_ssh_key_public_key=Enter a valid RSA public key. It should start with <code>ssh-rsa </code>
field_label_ssh_key_public_key_hash=Public Key Hash
date_format_ssh_key_expiration={{E}} {{M}} {{d}}, {{YYYY}}
message_ssh_key_no_expiration=No expiration
button_label_add_ssh_key=Add SSH Key
button_label_remove_ssh_key=Remove
button_label_remove_ssh_key_icon=fa fa-trash-alt

# Time duration fields
time_duration_options=minutes,hours,days
time_duration_minutes=minutes
time_duration_hours=hours
time_duration_days=days
time_duration_minutes_factor=60000
time_duration_hours_factor=3600000
time_duration_days_factor=86400000

# Policy fields
form_title_account_policy=Account Policy
field_label_account_download=Account Data Download
button_label_account_download=Request Download
field_label_account_download_requested_notice=We have received your request. Check your email inbox for required data.
field_label_policy_account_deletion=Account Deletion Policy
field_label_policy_account_deletion_options=full_delete,block_delete
account_deletion_name_full_delete=Full delete
account_deletion_description_full_delete=If you delete your account, it will be completely deleted. Another user could then register a new Account using your old username.
account_deletion_name_block_delete=Delete all data, block future registrations
account_deletion_description_block_delete=If you delete your account, all your account data and information will be deleted, but an empty stub Account with your username will remain. This prevents anyone from reusing your username in the future.
account_deletion_name_=Error loading deletion policy
account_deletion_description_=Error loading deletion policy
field_label_policy_account_operation_timeout=Account Operation Timeout
field_label_policy_account_operation_timeout_description=To ensure your Account security, certain operations (like downloading your Account data) require your approval. If no response is received before this timeout, the operation will not be allowed to proceed.
field_label_policy_node_operation_timeout=Bubble Operation Timeout
field_label_policy_node_operation_timeout_description=To ensure your Bubble security, certain operations (like stopping your Bubble) require your approval. If no response is received before this timeout, the operation will not be allowed to proceed.
field_label_policy_authenticator_timeout=Authenticator Timeout
field_label_policy_authenticator_timeout_description=After successfully verifying your account with your Authenticator app, you will be required to authenticate again after this amount of time has passed.
button_label_update_policy=Update

# Policy Contact fields
form_title_account_contacts=Contacts and Authorization
field_label_policy_contact_info=Contact Info
message_verify_authenticator_preamble=Install the Google Authenticator app on your device, then scan the QR code shown here and enter the code it displays.
message_verify_authenticator_backupCodes=Backup Codes
message_verify_authenticator_backupCodes_description=If you lose your device or don't have access to it, you can use one of these backup codes. Write them down in a safe place.
message_verify_authenticator_masked=Authenticator was set up elsewhere, cannot show setup/verification information here
field_label_policy_contact_requiredForNetworkOperations=Required for operations on your Bubble
field_label_policy_contact_requiredForNetworkOperations_icon=fa fa-cloud
field_label_policy_contact_requiredForAccountOperations=Required for operations on your Account
field_label_policy_contact_requiredForAccountOperations_icon=fa fa-user
field_label_policy_contact_receiveVerifyNotifications=Required for verification of newly added Contacts/Authorizations
field_label_policy_contact_receiveVerifyNotifications_icon=fa fa-question-circle
field_label_policy_contact_receiveLoginNotifications=Receive login notifications
field_label_policy_contact_receiveLoginNotifications_icon=fa fa-sign-in-alt
field_label_policy_contact_receivePasswordNotification=Receive change password notifications
field_label_policy_contact_receivePasswordNotification_icon=fa fa-key
field_label_policy_contact_receiveInformationalMessages=Receive informational messages
field_label_policy_contact_receiveInformationalMessages_icon=fa fa-info
field_label_policy_contact_receivePromotionalMessages=Receive promotional messages
field_label_policy_contact_receivePromotionalMessages_icon=fa fa-bullhorn
field_label_policy_contact_authFactors=not_required,required,sufficient
field_label_policy_contact_authFactor=Authentication Factor
field_label_policy_contact_authFactor_icon=fa fa-passport
field_label_policy_contact_authFactor_name_not_required=Not Required
field_label_policy_contact_authFactor_name_not_required_icon=fa fa-minus
field_label_policy_contact_authFactor_description_not_required=Not a required Auth Factor to approve any operation
field_label_policy_contact_authFactor_name_required=Required
field_label_policy_contact_authFactor_name_required_icon=fa fa-check-double
field_label_policy_contact_authFactor_description_required=Always a required Auth Factor to approve any operation
field_label_policy_contact_authFactor_name_sufficient=Sufficient
field_label_policy_contact_authFactor_name_sufficient_icon=fa fa-check
field_label_policy_contact_authFactor_description_sufficient=If an operation is approved via this method (in addition to approval by all Required Auth Factors, if any), then the operation will be allowed
field_label_policy_contact_value_enabled_icon=fa fa-check
field_label_policy_contact_value_enabled_name=Enabled
field_label_policy_contact_value_disabled_icon=fa fa-minus
field_label_policy_contact_value_disabled_name=Disabled
field_label_policy_contact_value_not_applicable_icon=fa fa-times-circle
field_label_policy_contact_value_not_applicable_name=N/A
button_label_edit_contact=Edit
button_label_edit_contact_icon=fa fa-edit
button_label_remove_contact=Remove
button_label_remove_contact_icon=fa fa-trash-alt
button_label_resend_verify_code=Resend Verification Code
button_label_resend_verify_code_icon=fa fa-sync
alert_resend_verification_success=Verification Code Successfully Sent

form_title_account_add_contact=Add New Contact/Authorization
button_label_add_contact=Add

# Inbound approve/deny via ActionPage -> PolicyPage
message_action_processing=Processing
message_inbound_approve=Approval
message_inbound_deny=Denial
message_inbound_invalid=Invalid request
message_inbound_success=was successful
message_inbound_failure=failed

# Accounts table
loading_accounts=Loading accounts...
table_title_accounts=Manage User Accounts
label_field_account_search=Search
label_field_account_admin=Admin
label_field_account_suspended=Suspended
label_field_account_locale=Locale
message_account_lastLogin_neverLoggedIn=Never logged in
label_field_account_lastLogin_format=Last login: {{YYYY}}-{{MM}}-{{dd}} @ {{h}}:{{m}}{{a}}
label_field_account_deleted_format=Deleted: {{YYYY}}-{{MM}}-{{dd}} @ {{h}}:{{m}}{{a}}
message_new_account=Add Account
message_empty_accounts=No Accounts

# Account page
title_account_new=New Account
title_account_manage=Manage Account
button_label_create_account=Create Account
button_label_delete_account=Delete
button_label_force_delete_account=Force Delete

# Networks table
loading_networks=Loading bubbles...
table_title_networks=Bubbles
label_field_networks_name=Name
label_field_networks_locale=Locale
label_field_networks_timezone=Time Zone
label_field_networks_object_state=State
button_label_new_network=Create Bubble
message_empty_networks=Create your first Bubble!

# Nodes table
label_field_nodes_name=Name
label_field_nodes_region=Region
label_field_nodes_state=State
label_field_nodes_ip4=IPv4
label_field_nodes_ip6=IPv6

# New Network page
message_no_contacts=No authorized contact info found
link_label_no_contacts=Add an email address or SMS-enabled phone number
message_no_verified_contacts=Please verify your email address
message_no_verified_contacts_subtext=Check your email and follow the link to verify your email address

form_title_new_network=New Bubble
field_label_network_name=Name
field_label_network_type=Bubble Type
field_label_network_type_regular=Regular
field_label_network_type_fork=Fork
field_label_network_fork_host=Fork Host
field_description_network_fork_host=The current Sage Launcher will be forked onto this host.
field_label_network_domain=Domain
field_label_plan=Plan
field_label_choose_plan=Choose Your Plan
message_plan_max_accounts=You can create up to {{max}} user accounts on this Bubble
message_plan_no_max_accounts=This plan supports an unlimited number of user accounts
field_label_show_advanced_plan_options=Customize Launch Options
field_label_region=Location
field_label_footprint=Footprint
field_label_network_ssh_key=SSH Key
field_description_network_ssh_key=You can SSH into the Bubble with this key
message_network_ssh_key_do_not_install=Do not install any SSH key
field_label_sync_password=Synchronize passwords
field_label_sync_password_description=Keeps your password synchronized between this site and your bubble. If you change your password here, it will be updated on your bubble, and vice-versa.
field_label_launch_lock=Lock Bubble
field_label_launch_lock_description=If set, you will need to unlock your Bubble before using it. Your bubble will send you the unlock key after it has completed setting itself up.
field_label_send_errors=Send error reports
field_label_send_errors_description=If your bubble crashes or encounters an unexpected error, send an error report to us. Error reports will identify your bubble but will not include any personal information.
field_label_send_metrics=Send anonymous usage statistics
field_label_send_metrics_description=Periodically send usage metrics to Bubble. Metrics include CPU, memory and disk utilization. Metric reports will identify your bubble but will not include any personal information.
msg_km_distance_away=km away
message_auto_detecting=Auto-Detecting... <small>(refresh page if this gets stuck)</small>
button_label_customize=Customize
button_label_use_default=Use Default
button_label_create_new_network=Launch Your Bubble!

message_plan_fork_apps=All app templates will be copied to fork
message_plan_node_apps=Your Bubble will include these apps:

# Network Page - Restore Keys
link_network_action_request_keys=Request Bubble Restore Key
message_network_action_keys_requested=Bubble Restore Key requested
message_network_action_retrieve_keys=Download Bubble Restore Key
message_network_keys=Bubble Restore Key
message_network_keys_description=Save this to a secure location. Keep it separate from the password you used to encrypt it.
field_network_key_download_code=Download Code
field_network_key_download_password=Encrypt with password
button_label_retrieve_keys=Download
err.retrieveNetworkKeys.notFound=Download Code Not Found

# Network Page - Danger Zone
title_network_danger_zone=Danger Zone
link_network_action_stop=Stop
link_network_action_stop_description=Stop this Bubble. If you have downloaded your restore key, you can later restore it.
link_network_action_delete=Delete
link_network_action_delete_description=Delete this Bubble and all backups. You will not be able to restore this Bubble. This action cannot be undone.

# Billing and Payment
title_bills=Bills
label_bill_plan=Plan
label_bill_status=Status
bill_status_paid=Paid
bill_status_unpaid=Unpaid
bill_status_partial_payment=Partial payment
bill_status_undefined=Unknown
bill_status_null=Unknown
bill_status_=Unknown
label_bill_period=Date
label_bill_period_start=From
label_bill_period_end=To
label_bill_total=Amount
label_bill_total_format={{messages['currency_symbol_'+currency.toUpperCase()]}}{{totalMajorUnits}}{{totalMinorUnits === 0 ? '' : totalMinorUnits < 10 ? '.0'+totalMinorUnits : '.'+totalMinorUnits}}
label_bill_refunded=refunded
label_payment_type=Type
label_payment_method=Paid By
label_payment_status=Status
label_payment_amount=Amount
label_payment_amount_format={{messages['currency_symbol_'+currency.toUpperCase()]}}{{amountMajorUnits}}{{amountMinorUnits === 0 ? '' : amountMinorUnits < 10 ? '.0'+amountMinorUnits : '.'+amountMinorUnits}}
label_payment_action=Action
button_label_close_bill_detail=Close

payment_method_credit=Credit/Debit Card
payment_method_code=Invitation Code
payment_method_free=Free!
payment_method_promotional_credit=Promotion
payment_method_undefined=
payment_method_null=
payment_method_=

payment_status_init=Created
payment_status_success=Success
payment_status_failure=Failure
payment_status_unknown=Unknown
payment_status_undefined=Unknown
payment_status_null=Unknown
payment_status_=Unknown

payment_type_payment=payment
payment_type_credit_applied=credit applied
payment_type_refund=refund

label_promotion_FirstMonthFree=First Month Free
label_promotion_FirstMonthFree_description=No charge for the first month of your plan!
label_promotion_ReferralMonthFree=Referral Bonus
label_promotion_ReferralMonthFree_description=An additional month of free service!
label_promotion_AccountCredit1=$1 Bonus
label_promotion_AccountCredit1_description=A $1 credit towards any plan
label_promotion_AccountCredit5=$5 Bonus
label_promotion_AccountCredit5_description=A $5 credit towards any plan
label_promotion_AccountCreditBill=Full Bill Bonus ($100 max value)
label_promotion_AccountCreditBill_description=An additional month of free service! ($100 max value)

title_account_payment_methods=Payment Methods
label_account_payment_method_type=Type
label_account_payment_method_info=Info
label_account_payment_method_added=Added
label_account_payment_method_added_format={{MMM}} {{d}}, {{YYYY}}
label_account_payment_method_current=Currently paying for
label_account_payment_method_remove=Delete
label_account_payment_method_set=Set as payment for plan
label_account_payment_add=Add New Payment Method
button_label_account_payment_delete=Remove

title_account_promotions=Promotional Credits
title_account_promotions_used=Used Promotional Credits
label_account_promotion_used=Used On
label_account_payment_method_used_format={{MMM}} {{d}}, {{YYYY}}

# Bubble Plans
plan_name_bubble=Bubble Standard
plan_description_bubble=Try this one first. Most users probably don't need anything more
plan_name_bubble_plus=Bubble Plus
plan_description_bubble_plus=Enhanced for faster performance
plan_name_bubble_pro=Bubble Pro
plan_description_bubble_pro=Two bubble nodes operate in concert to improve overall reliability
plan_name_bubble_super=Bubble Super
plan_description_bubble_super=A truly powerful bubble node

# Footprints
footprint_name_US=United States
footprint_description_US=Your Bubble will only run within the United States
footprint_name_EU=European Union
footprint_description_EU=Your Bubble will only run within European Union countries
footprint_name_Worldwide=World-wide
footprint_description_Worldwide=Your Bubble can run anywhere in the world

# Launch progress meter: pre-launch (standard) ticks
meter_tick_confirming_network_lock=Thinking about baking a pie
meter_tick_validating_node_network_and_plan=Grabbing the cookbook...
meter_tick_creating_node=Finding the best pie recipe ever...
meter_tick_launching_node=Cleaning the kitchen...
meter_tick_preparing_roles=Pre-heating the oven... 
meter_tick_preparing_install=Getting all the ingredients together...
meter_tick_starting_install=Peeling and slicing the apples...
meter_tick_copying_ansible=Rolling out the pie dough...
meter_tick_running_ansible=Whipping the batter...
#meter_tick_confirming_network_lock=Confirming network lock
#meter_tick_validating_node_network_and_plan=Verifying settings for Bubble
#meter_tick_creating_node=Creating Bubble node
#meter_tick_launching_node=Launching Bubble node
#meter_tick_preparing_roles=Preparing installation parameters
#meter_tick_preparing_install=Creating installation package
#meter_tick_starting_install=Connecting to node to install Bubble
#meter_tick_copying_ansible=Copying files required to install Bubble
#meter_tick_running_ansible=Starting Bubble installation

# Launch progress meter: install ticks
meter_tick_ansible_deps=Mixing the pie filling...
meter_tick_config_node=Filling the pie...
meter_tick_nginx_dhparam=Gently adding the lattice top crust...
meter_tick_nginx_dh_conf=Glazing the top crust...
meter_tick_nginx_certbot=Checking the temperature...
meter_tick_bubble_db=Putting pie into the oven...
meter_tick_algo_sh=Baking the pie...
meter_tick_restart_algo=Removing pie from the oven...
meter_tick_mitmproxy_set_cert=Letting the pie cool a bit...
meter_tick_touch_first_setup=Setting the table...
meter_tick_ssh_keys=Hey everybody, the pie is ready!
#meter_tick_ansible_deps=Installing installer dependencies
#meter_tick_config_node=Configuration installation
#meter_tick_nginx_dhparam=Securing SSL libraries
#meter_tick_nginx_dh_conf=Setting up web server
#meter_tick_nginx_certbot=Installing SSL certificate
#meter_tick_bubble_db=Writing bubble database
#meter_tick_algo_sh=Setting up VPN
#meter_tick_mitmproxy_set_cert=Installing CA certificate
#meter_tick_snapshot_ansible=Snapshotting installation
#meter_tick_touch_first_setup=Finalizing installation
#meter_tick_ssh_keys=Setting up SSH keys

# Launch progress meter: success marker
meter_completed=Bubble installation completed successfully! On to your Bubble!

# Launch progress meter: errors
meter_error_confirming_network_lock=Error confirming network lock
meter_error_network_not_ready_for_setup=Cannot launch Bubble when network is not in 'setup' state
meter_error_no_current_node_or_network=Current API does not have a node or network, cannot launch Bubble
meter_error_plan_not_enabled=Account plan is not enabled, cannot launch Bubble
meter_error_node_cloud_not_found=Compute cloud was not found, cannot launch Bubble
meter_error_bubble_jar_not_found=Bubble jar file was not found, cannot launch Bubble
meter_error_roles_not_found=Ansible roles were not found, cannot launch Bubble
meter_error_starting_node=Error starting node
meter_error_dns=Error setting DNS entries for node
meter_error_no_ip=Bubble node started, but does not have an IP address or SSH key, cannot install Bubble
meter_error_role_validation_errors=Validation of ansible roles failed, cannot install Bubble
meter_start_or_dns_error=Error starting node or writing DNS records

# Launch progress meter: catch-all for unknown/unmapped errors
meter_unknown_error=An unknown error occurred

# Help text shown during launch
title_launch_help_html=Next Steps

message_launch_help_html=<p>Your Bubble will take about 10 minutes to launch and configure itself.</p>
message_launch_help_apps=While you wait for your Bubble to be ready, please install the Bubble app on each of your devices.
message_launch_success_help_html=<p>Congratulations! Your Bubble is now running.</p>
message_launch_support=<p>Having trouble? Any questions? Check our our <a target="_blank" rel="noopener noreferrer" href="/support">{{messages.link_support}}</a> resources.</p>

message_launch_success_apps=Install the Bubble app on each of your devices and get connected to your Bubble!

# Network statuses
msg_network_state_created=initialized
msg_network_state_starting=starting
msg_network_state_restoring=restoring
msg_network_state_running=running
msg_network_state_stopping=stopping
msg_network_state_error_stopping=error stopping
msg_network_state_stopped=stopped

# Node states
msg_node_state_created=created
msg_node_state_starting=starting
msg_node_state_booting=booting
msg_node_state_booted=booted
msg_node_state_preparing_install=preparing installation
msg_node_state_installing=installing
msg_node_state_running=running
msg_node_state_stopping=stopping
msg_node_state_stopped=stopped
msg_node_state_unreachable=unreachable
msg_node_state_error_stopping=error stopping
msg_node_state_error_stopped=stopped with error
msg_node_state_unknown_error=unknown error

# Devices
loading_devices=Loading devices...
table_title_devices=Devices
label_field_device_name=Name
label_field_device_type=Type
label_field_device_app=App
label_field_device_certificate=Certificate
label_field_device_enabled=Enabled?
label_field_device_vpn_config=VPN
label_field_security_level=Security Level
label_field_device_ctime=Added
label_device_ctime_format={{MMM}} {{d}}, {{YYYY}} / {{h}}:{{m}}{{a}}
message_device_vpn_show_config=Show VPN connection info
message_device_vpn_download_conf=Download vpn.conf file
message_device_certificate=Download certificate
button_label_close_device_vpn_config=Close
label_field_device_help=Help
button_label_close_device_help=Close
message_no_devices=No Devices
form_title_add_device=Add Device
button_label_add_device=Add
button_label_remove_device=Remove
button_label_remove_device_icon=fa fa-trash-alt

message_download_ca_cert=Download Certificate
message_download_app=Download App

# Device types
device_type_uninitialized=Uninitialized
device_type_windows=Windows
device_type_macosx=Mac OS X
device_type_ios=iOS
device_type_android=Android
device_type_linux=Linux
device_type_other=Other
device_type_firefox=Firefox

addable_device_types=ios|android|windows|macosx|linux
cert_device_types=ios|android|windows|macosx|linux|firefox

# Device icons
device_type_icon_uninitialized=fas fas-question
device_type_icon_windows=fab fa-windows
device_type_icon_macosx=fab fa-apple
device_type_icon_ios=fab fa-apple
device_type_icon_android=fab fa-android
device_type_icon_linux=fab fa-linux
device_type_icon_other=fas fa-laptop-code
device_type_icon_firefox=fab fa-firefox

# VPN configuration button
button_label_vpn_config_download_conf=Download vpn.conf
button_label_vpn_config_show_qr_code=Show QR code
button_label_vpn_config_unavailable=N/A

# VPN configuration types
device_type_vpn_uninitialized=download_conf
device_type_vpn_windows=download_conf
device_type_vpn_macosx=download_conf
device_type_vpn_ios=show_qr_code
device_type_vpn_android=show_qr_code
device_type_vpn_linux=download_conf
device_type_vpn_other=download_conf
device_type_vpn_firefox=unavailable

message_device_vpn_unavailable=Error: no VPN config

# Device security levels
device_security_level_maximum=Maximum
device_security_level_maximum_description=Maximum protection. Unrecognized traffic is blocked. VPN apps enabled.
device_security_level_standard=Standard
device_security_level_standard_description=Standard protection. Unrecognized traffic is allowed. VPN apps enabled.
device_security_level_basic=Basic
device_security_level_basic_description=Basic protection. Unrecognized traffic is allowed. VPN apps disabled.
device_security_level_disabled=Off
device_security_level_disabled_description=No protection. Unrecognized traffic is allowed. VPN apps disabled.

# Cert types
message_os_uninitialized=Uninitialized
message_os_macosx=Mac OS X
message_os_ios=iOS
message_os_windows=Windows
message_os_android=Android
message_os_linux=Linux
message_os_firefox=Firefox (desktop)
message_os_other=Generic device

# Device help HTML
device_type_windows_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/device_setup/windows.md">How to connect a Windows system to your Bubble</a>
device_type_macosx_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/device_setup/macosx.md">How to connect a Mac OS X system to your Bubble</a>
device_type_ios_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/device_setup/ios.md">How to connect an Apple iOS device to your Bubble</a>
device_type_android_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/device_setup/android.md">How to connect an Android device to your Bubble</a>
device_type_linux_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/device_setup/linux.md">How to connect a Linux system to your Bubble</a>
device_type_other_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/device_setup">How to connect to your Bubble</a>
# should never be seen...
device_type_uninitialized_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/device_setup/README.md">How to connect to your Bubble</a>
device_type_firefox_help_html=<a target="_blank" rel="noopener noreferrer" href="https://github.com/bubblev/bubble-docs/blob/master/cert_instructions/firefox_cert.md">How to install your Bubble Certificate in Firefox</a>

# Apps
loading_apps=Loading apps...
table_title_apps=Apps
label_field_app_name=Name
label_field_app_description=Description
label_field_app_enabled=Enabled
button_label_app_enable=Enable
button_label_app_disable=Disable
message_no_apps=No Apps

# Single App page
loading_app=Loading app...
table_title_app_sites=Sites
label_field_app_site_name=Site
label_field_app_site_description=Description
label_field_app_site_url=URL
message_app_site_url_wildcard=All Sites
label_field_app_site_enabled=Enabled
button_label_app_site_enable=Enable
button_label_app_site_disable=Disable
message_no_sites=No Sites

# AppData
loading_app_data=Loading data...
table_title_app_views=App Views
date_format_app_data_epoch_time={{MM}}/{{dd}}/{{YYYY}} {{h}}:{{m}}{{a}}
date_format_app_data_expiration={{E}} {{MMM}} {{d}}, {{YYYY}}
message_app_data_no_expiration=None
button_label_app_data_delete_icon=fa fa-trash
message_app_data_previous_page=<< previous page <<
message_app_data_next_page=>> next page >>
message_data_results={{appData.totalCount}} total records, showing page {{query.pageNumber}} of {{numPages}}
message_data_actions=Actions
message_no_data=No Data
option_all_devices=All Devices
button_label_app_data_refresh=Search

# App Config
loading_app_config_data=Loading app configuration...
table_title_app_config_views=App Configuration
message_config_data_actions=Actions
message_no_config_data=No Configuration Information Found

# AppSite
loading_app_site=Loading site...
table_title_app_site_view=App Site Views

# Error messages from API server
err.action.required=No action provided
err.accountContactsJson.length=Account contacts length violation
err.accountOperationTimeout.required=Account operation timeout is required
err.accountOperationTimeout.tooLong=Account operation timeout cannot be longer than 3 days
err.accountOperationTimeout.tooShort=Account operation timeout cannot be shorter than 1 minute
err.accountPlan.callerCountryDisallowed=Your country is not currently supported by our platform
err.accountPlan.disabled=Account plan is not enabled
err.accountPlan.notFound=Account plan not found
err.accountPlan.noVerifiedContacts=Cannot proceed, no account contact information has yet been verified
err.admin.cannotRemoveAdminStatusFromSelf=You cannot remove admin status from your own account
err.allowedCountriesJson.length=Allowed countries list is too long
err.appMessages.length=App messages maximum length exceeded
err.assetId.invalid=App asset could not be retrieved
err.authenticator.cannotCreate=Cannot create authenticator
err.authenticator.configured=Only one authenticator can be configured
err.authenticator.invalid=Authenticator data is invalid
err.authenticator.notConfigured=Authenticator has not been configured
err.authenticatorTimeout.required=Authenticator timeout is required
err.authenticatorTimeout.tooLong=Authenticator timeout cannot be longer than 24 hours
err.authenticatorTimeout.tooShort=Authenticator timeout cannot be shorter than 1 minute
err.backup.cannotDelete=Cannot delete backup with its current status
err.backupCleaner.didNotRun=Backup cleaner did not run
err.backupCleaner.neverRun=Backup cleaner was never run
err.bound.invalid=Bound is invalid
err.bound.custom.invalid=Custom bound is invalid
err.bound.operation.invalid=Operator is invalid
err.bill.alreadyPaid=Bill has already been paid
err.cannotCreate=Create not allowed
err.cannotUpdate=Update not allowed
err.chargeName.required=Charge name is required
err.chargeName.length=Charge name is too long
err.cloud.publicDnsNotDns=DNS service has wrong cloud service type
err.cloudRegions.required=Cloud region is required
err.cloud.required=Cloud is required
err.cloudServiceType.required=Cloud type is required
err.cloudServiceType.invalid=Cloud type is invalid
err.cloudType.invalid=Cloud type is invalid
err.configJson.length=Configuration JSON is too long
err.contactType.required=Contact type is required
err.contact.authenticatorAuthFactorCannotBeChanged=Authenticator is always a required auth factor
err.contact.unverified=Cannot configure an unverified contact; verify first
err.country.invalid=Country is invalid, use a valid ISO 2-letter code
err.credentialsJson.length=Credentials JSON is too long
err.data.length=Data is too long
err.data.required=Data is required
err.data.invalid=Data is invalid
err.dataConfig.required=Data configuration is required
err.dataConfig.fields.required=Data configuration has presentation set but no fields are defined
err.dataConfig.views.required=Data configuration has presentation set but no views are defined
err.dataConfig.driver.required=Data configuration has presentation set but driver was not set
err.dataConfig.driver.invalid=Error initializing app data driver
err.dataConfig.configDriver.invalid=Error initializing app config driver
err.delegatedPayment.notDelegated=Error locating payment service
err.delegatedPayment.delegateNotFound=Error locating payment service
err.delete.cannotDeleteSelf=You cannot delete yourself (you've still got a chance to win)
err.delete.invalid=You cannot delete the account that owns the current network
err.delete.unpaidBills=Cannot delete account with unpaid bills
err.deletionPolicy.required=Deletion policy is required
err.description.length=Description is too long
err.deviceDir.notFound=Device status directory not found
err.deviceName.notUnique=Device name is already in use
err.deviceQRcode.qrCodeError=Error loading QR code
err.deviceQRcode.qrCodeFileNotFound=QR image file not found
err.deviceVpnConf.confError=Error loading VPN conf file
err.deviceVpnConf.confFileNotFound=VPN conf file not found
err.disallowedCountriesJson.length=Disallowed countries list is too long
err.dns.notFound=DNS cloud service not found
err.dns.required=DNS cloud service is required
err.domain.invalid=Network cannot be created in domain
err.domain.required=Domain is invalid
err.domainRole.alreadyExists=Cannot add role to domain, it is already included
err.download.error=Download error
err.download.noVerifiedContacts=Cannot download, no account contact information has yet been verified
err.driverClass.required=Driver class is required
err.driverConfigJson.length=Driver config JSON is too long
err.driver.required=Driver is required
err.email.invalid=Email address is invalid
err.email.required=Email address is required
err.expiration.cannotCreateSshKeyAlreadyExpired=Expiration date has already passed
err.footprint.required=Footprint is required
err.forkHost.notAllowed=Fork Host is not allowed
err.forkHost.invalid=Fork Host is not a valid hostname
err_forkHost_domainMismatch=Fork Host Domain was not selected domain
err.fqdn.domain.invalid=Domain not found for FQDN
err.fqdn.length=FQDN is too long
err.fqdn.network.invalid=network not found for FQDN
err.fqdn.outOfNetwork=FQDN is not in network
err.fqdn.invalid=FQDN is not valid
err.fqdn.plan.invalid=No plan found for network
err.fqdn.required=FQDN is required
err.geoService.unresolvable=Error resolving geo service
err.geoTimeService.notFound=GeoTime service not found
err.id.required=Parameter 'id' is required
err.info.invalid=Contact info is invalid (must be empty for authenticator)
err.info.required=Contact info is required
err.key.required=Key is required
err.label.invalid=Label is invalid
err.label.length=Label is too long
err.latlon.invalid=lat/lon is invalid
err.manageRules.errorFetchingUrl=Error retrieving URL
err.node.name.alreadyExists=A node already exists with the same FQDN
err.node.cannotStopLocalNode=Cannot stop local Bubble
err.nodeOperationTimeout.required=Node operation timeout is required
err.nodeOperationTimeout.tooLong=Node operation timeout cannot be longer than 3 days
err.nodeOperationTimeout.tooShort=Node operation timeout cannot be shorter than 1 minute
err.netlocation.invalid=Must specify both cloud and region, or neither
err.network.alreadyStarted=Network is already started
err.network.exists=A plan already exists for this network
err.networkKeys.noVerifiedContacts=Cannot download network keys, no account contact information has yet been verified
err.networkKeys.mustRequestFromSameNetwork=The current system is not your Bubble. Login to your Bubble and then make this request
err.networkKeys.invalid=Bubble Restore Key was not valid
err.networkName.required=Network name is required
err.network.cannotStartInCurrentState=Cannot proceed: network cannot be started in its current state
err.network.required=Network is required
err.network.restore.nodesExist=Cannot restore when active nodes exist
err.network.restore.notStopped=Cannot restore when network is running
err.nick.alreadyInUse=Nickname is already in use by another contact
err.nick.tooLong=Nickname cannot be longer than 100 characters
err.node.notInitialized=Node is not initialized
err.node.running=Node must be stopped before deleting
err.node.shutdownFailed=Node shutdown failed
err.node.stop.error=Error stopping node
err.currentPassword.invalid=Current password was invalid
err.paymentInfo.invalid=Payment information is invalid
err.paymentInfo.required=Payment information is required
err.paymentInfo.processingError=Processing payment information failed
err.paymentInfo.emailRequired=To use this payment method, please add an email address to your account
err.paymentInfo.verifiedEmailRequired=To use this payment method, please verify your email address
err.paymentMethod.required=Payment method is required
err.paymentMethod.notFound=Payment method not found
err.paymentMethod.cannotDeleteInUse=Cannot delete payment method that is currently in use
err.paymentMethodInfo.invalid=Payment method information is invalid
err.paymentMethodType.required=Payment method type is required
err.paymentMethodType.mismatch=Payment method type mismatch
err.paymentService.required=Payment service is required
err.paymentService.notPayment=Payment service is invalid
err.paymentService.notFound=Payment service is invalid
err.parent.notFound=Parent account does not exist
err.path.length=Path is too long
err.plan.required=Plan is required
err.plan.planMaxAccountLimit=No more accounts can be created. Please upgrade your plan to create more accounts.
err.price.invalid=Price is invalid
err.price.length=Price is too long
err.privateKeyHash.length=Private key hash is too long
err.privateKey.length=Private key is too long
err.purchase.accountMismatch=Invalid payment
err.purchase.amountMismatch=Payment amount does not match billed amount
err.purchase.authNotFound=Payment authorization was not found
err.purchase.billNotFound=Bill not found
err.purchase.cardError=Error processing credit card payment
err.purchase.cardProcessingError=Error processing credit card payment
err.purchase.cardUnknownError=Error processing credit card payment
err.purchase.chargePendingError=Error processing credit card payment, charge is pending
err.purchase.chargeFailedError=Error processing credit card payment, charge failed
err.purchase.chargeAmountMismatch=Charge amounts were mismatched, cannot purchase
err.purchase.currencyMismatch=Payment currency does not match bill currency
err.purchase.paymentMethodMismatch=Payment method cannot be used for this purchase
err.purchase.paymentMethodNotFound=Payment method not found
err.purchase.paymentMethodNotSet=Payment method not set on plan
err.purchase.planNotFound=Account Plan not found
err.purchase.priceInvalid=Price is not valid
err.purchase.tokenNotFound=Invite code not found
err.purchase.tokenExpired=Invite code has expired
err.purchase.tokenUsed=Invite code has already been used
err.purchase.tokenInvalid=Error reading invite code
err.purchase.tokenMismatch=Error reading invite code
err.purchase.underReview=Charge is currently under review
err.purchase.declined=Purchase was unsuccessful
err.quantity.length=Quantity is too long
err.region.required=Region is required
err.region.notFound=Region not found
err.referralFrom.invalid=Referral account name is invalid
err.referralFrom.unavailable=No referral program is currently available
err.referralFrom.configurationError=The referral program is not set up correctly
err.referralFrom.notApplied=The referral program is not applicable to this purchase
err.refund.billNotFound=Bill not found, cannot refund. Please contact support
err.refund.paymentMethodNotFound=Payment method used for most recent bill not found, cannot refund. Please contact support
err.refund.paymentNotFound=Payment not found for most recent bill, cannot refund. Please contact support
err.refund.periodError=Refund period could not be determined. Please contact support
err.refund.planNotFound=Plan not found, cannot refund. Please contact support
err.refund.processingError=Error processing credit card refund
err.refund.refundFailedError=Error processing credit card refund, refund failed
err.refund.refundPendingError=Error processing credit card refund, refund is pending
err.refund.unpaidBillHasPayment=Unpaid bill shows payment, not issuing refund. Please contact support
err.refund.noRefundsForPromotionalCredits=Cannot issue refund for promotional credit
err.refund.unknownError=An error occurred processing your refund. Please contact support
err.remoteHost.length=Remote host is too long
err.remoteHost.required=Remote host is required
err.removeList.cannotRemoveBuiltinList=Cannot remove the built-in filter list
err.removeRule.noCustomList=Built-in filter list was not found
err.removeRule.multipleCustomLists=More than one built-in filter list was found
err.request.invalid=Request is invalid
err.restoreKey.invalid=Restore key is invalid
err.restoreKey.required=Restore key is required
err.role.notFound=Role not found
err.role.exists=Role already exists with this name
err.role.invalid=Role name mismatch
err.roles.required=Roles field is required
err.rproxy.urlformat=Invalid URL format
err.rule.alreadyExists=Rule already exists
err.rule.required=Rule is required
err.rule.invalid=Rule was not valid
err.sageNode.notFound=Sage node not found
err.sageNode.required=Sage node is required
err.sendErrors.cannotDisable=Cannot disable error reports for now. Once Bubble is out of beta you can turn this off.
err.sendMetrics.cannotDisable=Cannot disable metrics for now. Once Bubble is out of beta you can turn this off.
err.size.required=Size is required
err.sshPublicKey.alreadyExists=An SSH public key already exists with this name and/or value
err.sshPublicKey.notFound=SSH public key not found
err.sshPublicKey.notRSA=SSH public key is not an RSA public key
err.sshPublicKey.invalidRSA=SSH public key is not a valid RSA public key
err.sshPublicKey.required=SSH public key is required
err.sshPublicKey.expired=SSH public key has expired
err.sshPublicKeyHash.required=SSH public key hash is required
err.storage.required=Storage is required
err.storage.unavailable=Storage is unavailable
err.suspended.cannotSuspendSelf=You cannot suspend yourself
err.tag.invalid=Tag is invalid
err.tagsJson.length=Too many tags
err.tagString.length=Too many tags
err.tgzB64.invalid.noRolesDir=No roles directory found in tgz
err.tgzB64.invalid.wrongNumberOfFiles=Wrong number of files in tgz base directory
err.tgzB64.invalid.missingTasksMainYml=No tasks/main.yml file found for role in tgz
err.tgzB64.invalid.writingToStorage=Error writing tgz to storage
err.tgzB64.invalid.readingFromStorage=Error reading tgz from storage
err.tgzB64.required=tgzB64 is required
err.totpKey.length=TOTP key is too long
err.type.notVerifiable=Type is not verifiable
err.type.invalid=Type is invalid
err.type.required=Type is required
err.url.length=URL is too long
err.contentTypeRegex.length=Content-Type regex is too long
err.userAgentRegex.required=User-Agent regex is required
err.userAgentRegex.length=User-Agent regex is too long
err.urlRegex.length=URL regex is too long
err.urlRegex.required=URL regex is required
err.url.required=URL is required
err.url.invalid=URL is invalid
err.url.alreadyExists=URL already exists
err.url.cannotSetOnBuiltinList=Cannot set URL on the built-in filter list
err.userAgent.required=User-Agent header is empty
err.value.required=Value is required
err.version.mismatch=Version in URL does not match version in object
err.entity.classInFilename.invalid=Type of object could not be determined from filename. The part before the first dot or underscore should be a valid type name
err.entity.filenameExtension.invalid=The object file must be a JSON file containing one or more objects, or a Model Archive File (ending in .zip, .tar.gz, or .tgz) containing a manifest and corresponding object files.
err.entity.fileZipFormat.invalid=The Model Archive File was not in a readable format
err.entity.manifest.required=No manifest.json file was found within the Model Archive File

# special values
msg.nextBillDate.pending=Pending
msg.nextBillDate.paymentsNotEnabled=Payments are not enabled on this system

# bblock app errors
err.testUrl.required=URL is required
err.testUrl.loadingTestDriver=Error loading test driver
err.testUrl.invalid=URL is invalid
err.testUrl.invalidHostname=URL did not have a valid hostname

# passthru app errors
err.addFqdn.passthruFqdnRequired=Domain or Hostname field is required
err.addFeed.feedUrlRequired=Feed URL is required
err.addFeed.emptyFqdnList=Feed URL was not found or contained no data

# analytics app errors
err.addFilter.analyticsFilterRequired=Filter pattern is required

# nodemanager errors
err.nodemanager.error=Error calling nodemanager
err.nodemanager.noPasswordSet=No nodemanager password is set
err.nodemanager.invalidPath=Path is invalid
err.nodemanager.nodeNotLocal=Target node must be this node