Merge branch 'develop' into gui_tests

This commit is contained in:
Miguel Jacq 2018-09-24 10:42:46 +10:00
commit 2a7adb2365
No known key found for this signature in database
GPG Key ID: EEA4341C6D97A0B6
4 changed files with 87 additions and 87 deletions

View File

@ -35,9 +35,9 @@ import subprocess
import requests import requests
def main(): def main():
dmg_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/8.0/TorBrowser-8.0-osx64_en-US.dmg' dmg_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/8.0.1/TorBrowser-8.0.1-osx64_en-US.dmg'
dmg_filename = 'TorBrowser-8.0-osx64_en-US.dmg' dmg_filename = 'TorBrowser-8.0.1-osx64_en-US.dmg'
expected_dmg_sha256 = '15603ae7b3a1942863c98acc92f509e4409db48fe22c9acae6b15c9cb9bf3088' expected_dmg_sha256 = 'fb1be2a0f850a65bae38747c3abbf9061742c5d7799e1693405078aaf38d2b08'
# Build paths # Build paths
root_path = os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) root_path = os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))

View File

@ -33,9 +33,9 @@ import subprocess
import requests import requests
def main(): def main():
exe_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/8.0/torbrowser-install-8.0_en-US.exe' exe_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/8.0.1/torbrowser-install-8.0.1_en-US.exe'
exe_filename = 'torbrowser-install-8.0_en-US.exe' exe_filename = 'torbrowser-install-8.0.1_en-US.exe'
expected_exe_sha256 = '0682b44eff5877dfc2fe2fdd5b46e678d47adad86d564e7cb6654c5f60eb1ed2' expected_exe_sha256 = 'bdf81d4282b991a6425c213c7b03b3f5c1f17bb02986b7fe9a1891e577e51639'
# Build paths # Build paths
root_path = os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) root_path = os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
working_path = os.path.join(os.path.join(root_path, 'build'), 'tor') working_path = os.path.join(os.path.join(root_path, 'build'), 'tor')

View File

@ -1,19 +1,19 @@
{ {
"config_onion_service": "Configuring onion service on port {0:d}.", "config_onion_service": "Setting up onion service on port {0:d}.",
"preparing_files": "Preparing files to share.", "preparing_files": "Compressing files.",
"give_this_url": "Give this address to the person you're sending the file to:", "give_this_url": "Give this address to the recipient:",
"give_this_url_stealth": "Give this address and HidServAuth line to the person you're sending the file to:", "give_this_url_stealth": "Give this address and HidServAuth line to the recipient:",
"give_this_url_receive": "Give this address to the people sending you files:", "give_this_url_receive": "Give this address to the sender:",
"give_this_url_receive_stealth": "Give this address and HidServAuth line to the people sending you files:", "give_this_url_receive_stealth": "Give this address and HidServAuth to the sender:",
"ctrlc_to_stop": "Press Ctrl+C to stop the server", "ctrlc_to_stop": "Press Ctrl+C to stop the server",
"not_a_file": "{0:s} is not a valid file.", "not_a_file": "{0:s} is not a valid file.",
"not_a_readable_file": "{0:s} is not a readable file.", "not_a_readable_file": "{0:s} is not a readable file.",
"no_available_port": "Could not start the Onion service as there was no available port.", "no_available_port": "Could not find an available port to start the onion service",
"other_page_loaded": "Address loaded", "other_page_loaded": "Address loaded",
"close_on_timeout": "Stopped because timer expired", "close_on_timeout": "Stopped because auto-stop timer ran out",
"closing_automatically": "Stopped because download finished", "closing_automatically": "Stopped because download finished",
"timeout_download_still_running": "Waiting for download to complete", "timeout_download_still_running": "Waiting for download to complete",
"large_filesize": "Warning: Sending large files could take hours", "large_filesize": "Warning: Sending a large share could take hours",
"systray_menu_exit": "Quit", "systray_menu_exit": "Quit",
"systray_download_started_title": "OnionShare Download Started", "systray_download_started_title": "OnionShare Download Started",
"systray_download_started_message": "A user started downloading your files", "systray_download_started_message": "A user started downloading your files",
@ -23,67 +23,67 @@
"systray_download_canceled_message": "The user canceled the download", "systray_download_canceled_message": "The user canceled the download",
"systray_upload_started_title": "OnionShare Upload Started", "systray_upload_started_title": "OnionShare Upload Started",
"systray_upload_started_message": "A user started uploading files to your computer", "systray_upload_started_message": "A user started uploading files to your computer",
"help_local_only": "Do not attempt to use Tor: For development only", "help_local_only": "Don't use Tor (only for development)",
"help_stay_open": "Keep onion service running after download has finished", "help_stay_open": "Keep sharing after first download",
"help_shutdown_timeout": "Shut down the onion service after N seconds", "help_shutdown_timeout": "Stop sharing after a given amount of seconds",
"help_stealth": "Create stealth onion service (advanced)", "help_stealth": "Use client authorization (advanced)",
"help_receive": "Receive files instead of sending them", "help_receive": "Receive shares instead of sending them",
"help_debug": "Log application errors to stdout, and log web errors to disk", "help_debug": "Log OnionShare errors to stdout, and web errors to disk",
"help_filename": "List of files or folders to share", "help_filename": "List of files or folders to share",
"help_config": "Path to a custom JSON config file (optional)", "help_config": "Custom JSON config file location (optional)",
"gui_drag_and_drop": "Drag and drop files and folders\nto start sharing", "gui_drag_and_drop": "Drag and drop files and folders\nto start sharing",
"gui_add": "Add", "gui_add": "Add",
"gui_delete": "Delete", "gui_delete": "Delete",
"gui_choose_items": "Choose", "gui_choose_items": "Choose",
"gui_share_start_server": "Start Sharing", "gui_share_start_server": "Start sharing",
"gui_share_stop_server": "Stop Sharing", "gui_share_stop_server": "Stop sharing",
"gui_share_stop_server_shutdown_timeout": "Stop Sharing ({}s remaining)", "gui_share_stop_server_shutdown_timeout": "Stop Sharing ({}s remaining)",
"gui_share_stop_server_shutdown_timeout_tooltip": "Share will expire automatically at {}", "gui_share_stop_server_shutdown_timeout_tooltip": "Auto-stop timer ends at {}",
"gui_receive_start_server": "Start Receive Mode", "gui_receive_start_server": "Start Receive Mode",
"gui_receive_stop_server": "Stop Receive Mode", "gui_receive_stop_server": "Stop Receive Mode",
"gui_receive_stop_server_shutdown_timeout": "Stop Receive Mode ({}s remaining)", "gui_receive_stop_server_shutdown_timeout": "Stop Receive Mode ({}s remaining)",
"gui_receive_stop_server_shutdown_timeout_tooltip": "Receive mode will expire automatically at {}", "gui_receive_stop_server_shutdown_timeout_tooltip": "Auto-stop timer ends at {}",
"gui_copy_url": "Copy Address", "gui_copy_url": "Copy Address",
"gui_copy_hidservauth": "Copy HidServAuth", "gui_copy_hidservauth": "Copy HidServAuth",
"gui_downloads": "Download History", "gui_downloads": "Download History",
"gui_no_downloads": "No downloads yet.", "gui_no_downloads": "No downloads yet.",
"gui_canceled": "Canceled", "gui_canceled": "Canceled",
"gui_copied_url_title": "Copied OnionShare address", "gui_copied_url_title": "Copied OnionShare Address",
"gui_copied_url": "The OnionShare address has been copied to clipboard", "gui_copied_url": "OnionShare address copied to clipboard",
"gui_copied_hidservauth_title": "Copied HidServAuth", "gui_copied_hidservauth_title": "Copied HidServAuth",
"gui_copied_hidservauth": "The HidServAuth line has been copied to clipboard", "gui_copied_hidservauth": "HidServAuth line copied to clipboard",
"gui_please_wait": "Starting… Click to cancel", "gui_please_wait": "Starting… Click to cancel.",
"gui_download_upload_progress_complete": "%p%, Time Elapsed: {0:s}", "gui_download_upload_progress_complete": "%p%, {0:s} elapsed.",
"gui_download_upload_progress_starting": "{0:s}, %p% (Computing ETA)", "gui_download_upload_progress_starting": "{0:s}, %p% (calculating)",
"gui_download_upload_progress_eta": "{0:s}, ETA: {1:s}, %p%", "gui_download_upload_progress_eta": "{0:s}, ETA: {1:s}, %p%",
"version_string": "OnionShare {0:s} | https://onionshare.org/", "version_string": "OnionShare {0:s} | https://onionshare.org/",
"gui_quit_title": "Transfer in Progress", "gui_quit_title": "Not so fast",
"gui_share_quit_warning": "You're in the process of sending files. Are you sure you want to quit OnionShare?", "gui_share_quit_warning": "You're in the process of sending files. Are you sure you want to quit OnionShare?",
"gui_receive_quit_warning": "You're in the process of receiving files. Are you sure you want to quit OnionShare?", "gui_receive_quit_warning": "You're in the process of receiving files. Are you sure you want to quit OnionShare?",
"gui_quit_warning_quit": "Quit", "gui_quit_warning_quit": "Quit",
"gui_quit_warning_dont_quit": "Cancel", "gui_quit_warning_dont_quit": "Cancel",
"error_rate_limit": "An attacker might be trying to guess your address. To prevent this, OnionShare has automatically stopped the server. To share the files you must start it again and share the new address.", "error_rate_limit": "Someone has made too many wrong attempts on your address, which means they could be trying to guess it, so OnionShare has stopped the server. Start sharing again and send the receipient a new address to share.",
"zip_progress_bar_format": "Compressing files: %p%", "zip_progress_bar_format": "Compressing: %p%",
"error_stealth_not_supported": "To create stealth onion services, you need at least Tor 0.2.9.1-alpha (or Tor Browser 6.5) and at least python3-stem 1.5.0.", "error_stealth_not_supported": "To use client authorization, you need at least both Tor 0.2.9.1-alpha (or Tor Browser 6.5) and python3-stem 1.5.0.",
"error_ephemeral_not_supported": "OnionShare requires at least Tor 0.2.7.1 and at least python3-stem 1.4.0.", "error_ephemeral_not_supported": "OnionShare requires at least both Tor 0.2.7.1 and python3-stem 1.4.0.",
"gui_settings_window_title": "Settings", "gui_settings_window_title": "Settings",
"gui_settings_whats_this": "<a href='{0:s}'>what's this?</a>", "gui_settings_whats_this": "<a href='{0:s}'>What's this?</a>",
"gui_settings_stealth_option": "Create stealth onion services (legacy)", "gui_settings_stealth_option": "Use client authorization (legacy)",
"gui_settings_stealth_hidservauth_string": "You have saved the private key for reuse, so your HidServAuth string is also reused.\nClick below to copy the HidServAuth.", "gui_settings_stealth_hidservauth_string": "Having saved your private key for reuse, means you can now\nclick to copy your HidServAuth.",
"gui_settings_autoupdate_label": "Check for upgrades", "gui_settings_autoupdate_label": "Check for new version",
"gui_settings_autoupdate_option": "Notify me when upgrades are available", "gui_settings_autoupdate_option": "Notify me when a new version is available",
"gui_settings_autoupdate_timestamp": "Last checked: {}", "gui_settings_autoupdate_timestamp": "Last checked: {}",
"gui_settings_autoupdate_timestamp_never": "Never", "gui_settings_autoupdate_timestamp_never": "Never",
"gui_settings_autoupdate_check_button": "Check For Upgrades", "gui_settings_autoupdate_check_button": "Check for New Version",
"gui_settings_general_label": "General settings", "gui_settings_general_label": "General settings",
"gui_settings_sharing_label": "Sharing settings", "gui_settings_sharing_label": "Sharing settings",
"gui_settings_close_after_first_download_option": "Stop sharing after first download", "gui_settings_close_after_first_download_option": "Stop sharing after first download",
"gui_settings_connection_type_label": "How should OnionShare connect to Tor?", "gui_settings_connection_type_label": "How should OnionShare connect to Tor?",
"gui_settings_connection_type_bundled_option": "Use the Tor version that is bundled with OnionShare", "gui_settings_connection_type_bundled_option": "Use the Tor version built into OnionShare",
"gui_settings_connection_type_automatic_option": "Attempt automatic configuration with Tor Browser", "gui_settings_connection_type_automatic_option": "Attempt auto-configuration with Tor Browser",
"gui_settings_connection_type_control_port_option": "Connect using control port", "gui_settings_connection_type_control_port_option": "Connect using control port",
"gui_settings_connection_type_socket_file_option": "Connect using socket file", "gui_settings_connection_type_socket_file_option": "Connect using socket file",
"gui_settings_connection_type_test_button": "Test Tor Settings", "gui_settings_connection_type_test_button": "Test Connection to Tor",
"gui_settings_control_port_label": "Control port", "gui_settings_control_port_label": "Control port",
"gui_settings_socket_file_label": "Socket file", "gui_settings_socket_file_label": "Socket file",
"gui_settings_socks_label": "SOCKS port", "gui_settings_socks_label": "SOCKS port",
@ -91,77 +91,77 @@
"gui_settings_authenticate_no_auth_option": "No authentication, or cookie authentication", "gui_settings_authenticate_no_auth_option": "No authentication, or cookie authentication",
"gui_settings_authenticate_password_option": "Password", "gui_settings_authenticate_password_option": "Password",
"gui_settings_password_label": "Password", "gui_settings_password_label": "Password",
"gui_settings_tor_bridges": "Tor Bridge support", "gui_settings_tor_bridges": "Tor bridge support",
"gui_settings_tor_bridges_no_bridges_radio_option": "Don't use bridges", "gui_settings_tor_bridges_no_bridges_radio_option": "Don't use bridges",
"gui_settings_tor_bridges_obfs4_radio_option": "Use built-in obfs4 pluggable transports", "gui_settings_tor_bridges_obfs4_radio_option": "Use built-in obfs4 pluggable transports",
"gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Use built-in obfs4 pluggable transports (requires obfs4proxy)", "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Use built-in obfs4 pluggable transports (requires obfs4proxy)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option": "Use built-in meek_lite (Azure) pluggable transports", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Use built-in meek_lite (Azure) pluggable transports",
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Use built-in meek_lite (Azure) pluggable transports (requires obfs4proxy)", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Use built-in meek_lite (Azure) pluggable transports (requires obfs4proxy)",
"gui_settings_meek_lite_expensive_warning": "Warning: the meek_lite bridges are very costly for the Tor Project to run!<br><br>You should only use meek_lite bridges if you are having trouble connecting to Tor directly, via obfs4 transports or other normal bridges.", "gui_settings_meek_lite_expensive_warning": "Warning: The meek_lite bridges are very costly for the Tor Project to run.<br><br>Only use them if unable to connect to Tor directly, via obfs4 transports, or other normal bridges.",
"gui_settings_tor_bridges_custom_radio_option": "Use custom bridges", "gui_settings_tor_bridges_custom_radio_option": "Use custom bridges",
"gui_settings_tor_bridges_custom_label": "You can get bridges from <a href=\"https://bridges.torproject.org/options\">https://bridges.torproject.org</a>", "gui_settings_tor_bridges_custom_label": "You can get bridges from <a href=\"https://bridges.torproject.org/options\">https://bridges.torproject.org</a>",
"gui_settings_tor_bridges_invalid": "None of the bridges you supplied seem to work.\nPlease try again by double-checking them or adding other ones.", "gui_settings_tor_bridges_invalid": "None of the bridges you added work.\nDouble-check them or add others.",
"gui_settings_button_save": "Save", "gui_settings_button_save": "Save",
"gui_settings_button_cancel": "Cancel", "gui_settings_button_cancel": "Cancel",
"gui_settings_button_help": "Help", "gui_settings_button_help": "Help",
"gui_settings_shutdown_timeout_checkbox": "Use auto-stop timer", "gui_settings_shutdown_timeout_checkbox": "Use auto-stop timer",
"gui_settings_shutdown_timeout": "Stop the share at:", "gui_settings_shutdown_timeout": "Stop the share at:",
"settings_saved": "Settings saved to {}", "settings_saved": "Settings saved in {}",
"settings_error_unknown": "Can't connect to Tor controller because the settings don't make sense.", "settings_error_unknown": "Can't connect to Tor controller because your settings don't make sense.",
"settings_error_automatic": "Can't connect to Tor controller. Is Tor Browser running in the background? If you don't have it you can get it from:\nhttps://www.torproject.org/.", "settings_error_automatic": "Could not connect to the Tor controller. Is Tor Browser (available from torproject.org) running in the background?",
"settings_error_socket_port": "Can't connect to Tor controller on {}:{}.", "settings_error_socket_port": "Can't connect to the Tor controller at {}:{}.",
"settings_error_socket_file": "Can't connect to Tor controller using socket file {}.", "settings_error_socket_file": "Can't connect to the Tor controller using socket file {}.",
"settings_error_auth": "Connected to {}:{}, but can't authenticate. Maybe this isn't a Tor controller?", "settings_error_auth": "Connected to {}:{}, but can't authenticate. Maybe this isn't a Tor controller?",
"settings_error_missing_password": "Connected to Tor controller, but it requires a password to authenticate.", "settings_error_missing_password": "Connected to Tor controller, but it requires a password to authenticate.",
"settings_error_unreadable_cookie_file": "Connected to Tor controller, but can't authenticate because your password may be wrong, and your user lacks permission to read the cookie file.", "settings_error_unreadable_cookie_file": "Connected to the Tor controller, but password may be wrong, or your user is not permitted to read the cookie file.",
"settings_error_bundled_tor_not_supported": "Use of the Tor version bundled with OnionShare is not supported when using developer mode on Windows or macOS.", "settings_error_bundled_tor_not_supported": "Using the Tor version that comes with OnionShare does not work in developer mode on Windows or macOS.",
"settings_error_bundled_tor_timeout": "Connecting to Tor is taking too long. Maybe your computer is offline, or your system clock isn't accurate.", "settings_error_bundled_tor_timeout": "Taking too long to connect to Tor. Maybe you aren't connected to the Internet, or have an inaccurate system clock?",
"settings_error_bundled_tor_broken": "OnionShare could not connect to Tor in the background:\n{}", "settings_error_bundled_tor_broken": "OnionShare could not connect to Tor in the background:\n{}",
"settings_test_success": "Congratulations, OnionShare can connect to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}\nSupports stealth onion services: {}", "settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports client authentication: {}.",
"error_tor_protocol_error": "There was an error with Tor: {}", "error_tor_protocol_error": "There was an error with Tor: {}",
"error_tor_protocol_error_unknown": "There was an unknown error with Tor", "error_tor_protocol_error_unknown": "There was an unknown error with Tor",
"error_invalid_private_key": "This private key type is unsupported", "error_invalid_private_key": "This private key type is unsupported",
"connecting_to_tor": "Connecting to the Tor network", "connecting_to_tor": "Connecting to the Tor network",
"update_available": "A new version of OnionShare is available. <a href='{}'>Click here</a> to download it.<br><br>Installed version: {}<br>Latest version: {}", "update_available": "New OnionShare out. <a href='{}'>Click here</a> to get it.<br><br>You are using {} and the latest is {}.",
"update_error_check_error": "Error checking for updates: Maybe you're not connected to Tor, or maybe the OnionShare website is down.", "update_error_check_error": "Could not check for new versions: The OnionShare website is saying the latest version is the unrecognizable '{}'…",
"update_error_invalid_latest_version": "Error checking for updates: The OnionShare website responded saying the latest version is '{}', but that doesn't appear to be a valid version string.", "update_error_invalid_latest_version": "Could not check for new version: Maybe you're not connected to Tor, or the OnionShare website is down?",
"update_not_available": "You are running the latest version of OnionShare.", "update_not_available": "You are running the latest OnionShare.",
"gui_tor_connection_ask": "Would you like to open OnionShare settings to troubleshoot connecting to Tor?", "gui_tor_connection_ask": "Open the settings to sort out connection to Tor?",
"gui_tor_connection_ask_open_settings": "Open Settings", "gui_tor_connection_ask_open_settings": "Yes",
"gui_tor_connection_ask_quit": "Quit", "gui_tor_connection_ask_quit": "Quit",
"gui_tor_connection_error_settings": "Try adjusting how OnionShare connects to the Tor network in Settings.", "gui_tor_connection_error_settings": "Try changing how OnionShare connects to the Tor network in the settings.",
"gui_tor_connection_canceled": "OnionShare could not connect to Tor.\n\nMake sure you're connected to the Internet, then re-open OnionShare to set up the Tor connection.", "gui_tor_connection_canceled": "Could not connect to Tor.\n\nEnsure you are connected to the Internet, then re-open OnionShare and set up its connection to Tor.",
"gui_tor_connection_lost": "Disconnected from Tor.", "gui_tor_connection_lost": "Disconnected from Tor.",
"gui_server_started_after_timeout": "The server started after your chosen auto-timeout.\nPlease start a new share.", "gui_server_started_after_timeout": "The auto-stop timer ran out before the server started.\nPlease make a new share.",
"gui_server_timeout_expired": "The chosen timeout has already expired.\nPlease update the timeout and then you may start sharing.", "gui_server_timeout_expired": "The auto-stop timer already ran out.\nPlease update it to start sharing.",
"share_via_onionshare": "Share via OnionShare", "share_via_onionshare": "OnionShare it",
"gui_use_legacy_v2_onions_checkbox": "Use legacy addresses", "gui_use_legacy_v2_onions_checkbox": "Use legacy addresses",
"gui_save_private_key_checkbox": "Use a persistent address (legacy)", "gui_save_private_key_checkbox": "Use a persistent address (legacy)",
"gui_share_url_description": "<b>Anyone</b> with this link can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />", "gui_share_url_description": "<b>Anyone</b> with this OnionShare address can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Anyone</b> with this link can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />", "gui_receive_url_description": "<b>Anyone</b> with this OnionShare address can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "This share will not expire automatically unless a timer is set.<br><br>Every share will have the same address (to use one-time addresses, disable persistence in Settings)", "gui_url_label_persistent": "This share will not auto-stop.<br><br>Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)",
"gui_url_label_stay_open": "This share will not expire automatically unless a timer is set.", "gui_url_label_stay_open": "This share will not auto-stop.",
"gui_url_label_onetime": "This share will expire after the first download", "gui_url_label_onetime": "This share will stop after first completion.",
"gui_url_label_onetime_and_persistent": "This share will expire after the first download<br><br>Every share will have the same address (to use one-time addresses, disable persistence in the Settings)", "gui_url_label_onetime_and_persistent": "This share will not auto-stop.<br><br>Every subsequent share will reuse the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)",
"gui_status_indicator_share_stopped": "Ready to Share", "gui_status_indicator_share_stopped": "Ready to share",
"gui_status_indicator_share_working": "Starting…", "gui_status_indicator_share_working": "Starting…",
"gui_status_indicator_share_started": "Sharing", "gui_status_indicator_share_started": "Sharing",
"gui_status_indicator_receive_stopped": "Ready to Receive", "gui_status_indicator_receive_stopped": "Ready to receive",
"gui_status_indicator_receive_working": "Starting…", "gui_status_indicator_receive_working": "Starting…",
"gui_status_indicator_receive_started": "Receiving", "gui_status_indicator_receive_started": "Receiving",
"gui_file_info": "{} Files, {}", "gui_file_info": "{} files, {}",
"gui_file_info_single": "{} File, {}", "gui_file_info_single": "{} file, {}",
"info_in_progress_downloads_tooltip": "{} download(s) in progress", "info_in_progress_downloads_tooltip": "{} download(s) in progress",
"info_completed_downloads_tooltip": "{} download(s) completed", "info_completed_downloads_tooltip": "{} download(s) completed",
"info_in_progress_uploads_tooltip": "{} upload(s) in progress", "info_in_progress_uploads_tooltip": "{} upload(s) in progress",
"info_completed_uploads_tooltip": "{} upload(s) completed", "info_completed_uploads_tooltip": "{} upload(s) completed",
"error_cannot_create_downloads_dir": "Error creating downloads folder: {}", "error_cannot_create_downloads_dir": "Could not create receive mode folder: {}",
"error_downloads_dir_not_writable": "The downloads folder isn't writable: {}", "error_downloads_dir_not_writable": "The receive mode folder is write protected: {}",
"receive_mode_downloads_dir": "Files people send you will appear in this folder: {}", "receive_mode_downloads_dir": "Files sent to you appear in this folder: {}",
"receive_mode_warning": "Warning: Receive mode lets someone else upload files to your computer. Some files can hack your computer if you open them! Only open files from people you trust, or if you know what you're doing.", "receive_mode_warning": "Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.",
"gui_receive_mode_warning": "<b>Some files can hack your computer if you open them!</b><br>Only open files from people you trust, or if you know what you're doing.", "gui_receive_mode_warning": "Receive mode lets people upload files to your computer.<br><br><b>Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.</b>",
"receive_mode_upload_starting": "Upload of total size {} is starting", "receive_mode_upload_starting": "Upload of total size {} is starting",
"receive_mode_received_file": "Received file: {}", "receive_mode_received_file": "Received: {}",
"gui_mode_share_button": "Share Files", "gui_mode_share_button": "Share Files",
"gui_mode_receive_button": "Receive Files", "gui_mode_receive_button": "Receive Files",
"gui_settings_receiving_label": "Receiving settings", "gui_settings_receiving_label": "Receiving settings",
@ -180,5 +180,5 @@
"gui_upload_in_progress": "Upload Started {}", "gui_upload_in_progress": "Upload Started {}",
"gui_upload_finished_range": "Uploaded {} to {}", "gui_upload_finished_range": "Uploaded {} to {}",
"gui_upload_finished": "Uploaded {}", "gui_upload_finished": "Uploaded {}",
"gui_open_folder_error_nautilus": "Cannot open folder the because nautilus is not available. You can find this file here: {}" "gui_open_folder_error_nautilus": "Cannot open folder because nautilus is not available. The file is here: {}"
} }

View File

@ -47,7 +47,7 @@ class TestLoadStrings:
self, common_obj, locale_en, sys_onionshare_dev_mode): self, common_obj, locale_en, sys_onionshare_dev_mode):
""" load_strings() loads English by default """ """ load_strings() loads English by default """
strings.load_strings(common_obj) strings.load_strings(common_obj)
assert strings._('preparing_files') == "Preparing files to share." assert strings._('preparing_files') == "Compressing files."
def test_load_strings_loads_other_languages( def test_load_strings_loads_other_languages(