]> git.lizzy.rs Git - torbrowser-launcher.git/commitdiff
Merge branch 'master' of github.com:micahflee/torbrowser-launcher
authorMicah Lee <micah@micahflee.com>
Fri, 18 Jun 2021 22:47:04 +0000 (18:47 -0400)
committerMicah Lee <micah@micahflee.com>
Fri, 18 Jun 2021 22:47:04 +0000 (18:47 -0400)
20 files changed:
.vscode/settings.json [new file with mode: 0644]
CHANGELOG.md
LICENSE
apparmor/torbrowser.Browser.firefox
po/be.po [new file with mode: 0644]
po/da.po [new file with mode: 0644]
po/de.po [new file with mode: 0644]
po/hr.po [new file with mode: 0644]
po/pt_BR.po [new file with mode: 0644]
po/sv.po [new file with mode: 0644]
po/zh_TW.po [new file with mode: 0644]
setup.py
share/applications/torbrowser-settings.desktop
share/applications/torbrowser.desktop
share/torbrowser-launcher/tor-browser-developers.asc
share/torbrowser-launcher/version
torbrowser_launcher/__init__.py
torbrowser_launcher/common.py
torbrowser_launcher/launcher.py
torbrowser_launcher/settings.py

diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644 (file)
index 0000000..de288e1
--- /dev/null
@@ -0,0 +1,3 @@
+{
+    "python.formatting.provider": "black"
+}
\ No newline at end of file
index 8e66bb14e6569b6d606eadd510583dc3e7f2a349..5d09f4e9d9b7d680fca383049e09080393978f83 100644 (file)
@@ -1,5 +1,11 @@
 # Tor Browser Launcher Changelog
 
+## 0.3.4
+
+* Ship with latest version of the Tor Browser Developers OpenPGP public key
+* Add several translations
+* Various small bug fixes
+
 ## 0.3.3
 
 * Switch to Web Key Directory to refresh signing key from torproject.org, because everything is broken
diff --git a/LICENSE b/LICENSE
index e25643d8872cca29c2b6a9af7eeec6a860578283..d279732e6c8861beb553989fac943ff715a10edb 100644 (file)
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
 Tor Browser Launcher
 https://github.com/micahflee/torbrowser-launcher/
 
-Copyright (c) 2013-2017 Micah Lee <micah@micahflee.com>
+Copyright (c) 2013-2021 Micah Lee <micah@micahflee.com>
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
index 57c03594bb7b19eff1855ba9fd156c645be1f661..6882f9d9ae186c129e4faa55529953c5ba81137b 100644 (file)
@@ -6,6 +6,8 @@
 profile torbrowser_firefox @{torbrowser_firefox_executable} {
   #include <abstractions/audio>
   #include <abstractions/gnome>
+  #include <abstractions/ibus>
+  #include if exists <abstractions/vulkan>
 
   # Uncomment the following lines if you want to give the Tor Browser read-write
   # access to most of your personal files.
@@ -36,6 +38,7 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
   /dev/ r,
   /dev/shm/ r,
 
+  owner @{PROC}/@{pid}/cgroup r,
   owner @{PROC}/@{pid}/environ r,
   owner @{PROC}/@{pid}/fd/ r,
   owner @{PROC}/@{pid}/mountinfo r,
@@ -99,6 +102,7 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
   /sys/devices/system/cpu/present r,
   /sys/devices/system/node/ r,
   /sys/devices/system/node/node[0-9]*/meminfo r,
+  /sys/fs/cgroup/cpu,cpuacct/{,user.slice/}cpu.cfs_quota_us r,
   deny /sys/devices/virtual/block/*/uevent r,
 
   # Should use abstractions/gstreamer instead once merged upstream
@@ -126,7 +130,6 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
   deny /sys/devices/system/cpu/*/cache/index[0-9]*/size r,
   deny /run/user/[0-9]*/dconf/user rw,
   deny /usr/bin/lsb_release x,
-  deny capability sys_admin,
 
   # Silence denial logs about PulseAudio
   deny /etc/pulse/client.conf r,
@@ -148,5 +151,11 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
   # Yubikey NEO also needs this:
   /sys/devices/**/hidraw/hidraw*/uevent r,
 
+  # Needed for Firefox sandboxing via unprivileged user namespaces
+  capability sys_admin,
+  capability sys_chroot,
+  owner @{PROC}/@{pid}/{gid,uid}_map w,
+  owner @{PROC}/@{pid}/setgroups w,
+
   #include <local/torbrowser.Browser.firefox>
 }
diff --git a/po/be.po b/po/be.po
new file mode 100644 (file)
index 0000000..df2dfa6
--- /dev/null
+++ b/po/be.po
@@ -0,0 +1,254 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-23 15:47-0700\n"
+"PO-Revision-Date: 2019-10-26 19:51+0300\n"
+"Last-Translator: Viktar Siarheichyk <vics@eq.by>\n"
+"Language-Team: Belarusian <debian-l10n-belarusian@lists.debian.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: __init__.py:65 launcher.py:470
+msgid "Tor Browser Launcher"
+msgstr "Запускальнік Tor Browser"
+
+#: __init__.py:66
+msgid "By Micah Lee, licensed under MIT"
+msgstr "Аўтар Micah Lee, ліцэнзія MIT"
+
+#: __init__.py:67
+#, python-brace-format
+msgid "version {0}"
+msgstr "версія {0}"
+
+#: common.py:100
+#, python-brace-format
+msgid "Error creating {0}"
+msgstr "Памылка падчас стварэння {0}"
+
+#: common.py:102 common.py:180
+#, python-brace-format
+msgid "{0} is not writable"
+msgstr "{0} не можа быць запісаны"
+
+#: common.py:177
+#, python-brace-format
+msgid "Cannot create directory {0}"
+msgstr "Не ўдалася стварыць каталог {0}"
+
+#: common.py:187
+msgid "Creating GnuPG homedir"
+msgstr "Ствараем хатні каталог GnuPG"
+
+#: common.py:254
+#, python-format
+msgid "Could not import key with fingerprint: %s."
+msgstr "Не ўдалося імпартаваць ключ з адбіткам: %s."
+
+#: common.py:259
+msgid "Not all keys were imported successfully!"
+msgstr "Не ўсе ключы імпартаваны паспяхова!"
+
+#: launcher.py:83
+msgid "Downloading Tor Browser for the first time."
+msgstr "Атрыманне Tor Browser упершыню."
+
+#: launcher.py:85
+msgid ""
+"Your version of Tor Browser is out-of-date. Downloading the newest version."
+msgstr "Ваша версія Tor Browser пратэрмінавана. Атрымліваем найноўшую версію."
+
+#: launcher.py:100
+msgid "Downloading over Tor"
+msgstr "Згружаем праз Tor"
+
+#: launcher.py:111
+msgid "Tor Browser"
+msgstr "Tor Browser"
+
+#: launcher.py:128
+msgid "Start"
+msgstr "Запуск"
+
+#: launcher.py:174
+msgid "Yes"
+msgstr "Так"
+
+#: launcher.py:178
+msgid "Exit"
+msgstr "Выйсці"
+
+#: launcher.py:192 settings.py:136
+msgid "Cancel"
+msgstr "Адмяніць"
+
+#: launcher.py:231 launcher.py:245 launcher.py:249 launcher.py:279
+#: launcher.py:281
+msgid "Downloading"
+msgstr "Згружаецца"
+
+#: launcher.py:238
+msgid "Latest version: {}"
+msgstr "Апошняя версія: {}"
+
+#: launcher.py:241
+msgid "Error detecting Tor Browser version."
+msgstr "Памылка падчас вызначэння версіі Tor Browser."
+
+#: launcher.py:256 launcher.py:357
+msgid "Verifying Signature"
+msgstr "Правяраецца подпіс"
+
+#: launcher.py:260
+msgid "Extracting"
+msgstr "Распакоўваецца"
+
+#: launcher.py:264
+msgid "Running"
+msgstr "Працуе"
+
+#: launcher.py:268
+msgid "Starting download over again"
+msgstr "Запускаем загрузку наноў"
+
+#: launcher.py:279 launcher.py:295
+msgid "(over Tor)"
+msgstr "(праз Tor)"
+
+#: launcher.py:293
+msgid "Downloaded"
+msgstr "Згружана"
+
+#: launcher.py:393
+msgid "Installing"
+msgstr "Усталяванне"
+
+#: launcher.py:401
+#, python-brace-format
+msgid "Tor Browser Launcher doesn't understand the file format of {0}"
+msgstr "Запускальнік Tor Browser не разумее фармат файла {0}"
+
+#: launcher.py:427
+msgid ""
+"The version of Tor Browser you have installed is earlier than it should be, "
+"which could be a sign of an attack!"
+msgstr ""
+"Гэта версія Tor Browser, якую вы паставілі, ёсць ранейшай, чым мае быць, што "
+"можа паказваць на атаку!"
+
+#: launcher.py:446
+msgid "Downloading Tor Browser over again."
+msgstr "Атрыманне Tor Browser ізноў."
+
+#: launcher.py:516 launcher.py:525 launcher.py:533
+msgid "Download Error:"
+msgstr "Памылка загрузкі:"
+
+#: launcher.py:517
+msgid "You are currently using a non-default mirror"
+msgstr "Зараз вы карыстаецеся не стандартным люстэркам"
+
+#: launcher.py:518
+msgid "Would you like to switch back to the default?"
+msgstr "Змяніць на стандартнае?"
+
+#: launcher.py:527
+msgid "Would you like to try the English version of Tor Browser instead?"
+msgstr "Паспрабаваць узамен ангельскую версію Tor Browser?"
+
+#: launcher.py:548
+#, python-brace-format
+msgid ""
+"Invalid SSL certificate for:\n"
+"{0}\n"
+"\n"
+"You may be under attack."
+msgstr ""
+"Няправільны сертыфікат SSL для:\n"
+"{0}\n"
+"\n"
+"Магчыма, вас атакуюць."
+
+#: launcher.py:550
+msgid "Try the download again using Tor?"
+msgstr "Зноў паспрабаваць згрузіць праз Tor?"
+
+#: launcher.py:559
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Trying to download over Tor. Are you sure Tor is configured correctly and "
+"running?"
+msgstr ""
+"Памылка падчас запуску загрузкі:\n"
+"\n"
+"{0}\n"
+"\n"
+"Спрабуем згрузіць праз Tor. Перакананыя, што Tor карэктна сканфігураваны і "
+"працуе?"
+
+#: launcher.py:563
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Are you connected to the internet?"
+msgstr ""
+"Памылка падчас запуску загрузкі:\n"
+"\n"
+"{0}\n"
+"\n"
+"Вы далучаны да інтэрнэта?"
+
+#: settings.py:46
+msgid "Tor Browser Launcher Settings"
+msgstr "Налады запускальніка Tor Browser"
+
+#: settings.py:50
+msgid "Download over system Tor"
+msgstr "Згрузіць праз сістэмны Tor"
+
+#: settings.py:57
+msgid "Force downloading English version of Tor Browser"
+msgstr "Прымусова згрузіць ангельскую версію Tor Browser"
+
+#: settings.py:66
+msgid "Tor server"
+msgstr "Сервер Tor"
+
+#: settings.py:82
+msgid "Status: Installed"
+msgstr "Стан: усталяваны"
+
+#: settings.py:84
+msgid "Status: Not Installed"
+msgstr "Стан: не ўсталяваны"
+
+#: settings.py:87
+msgid "Install Tor Browser"
+msgstr "Усталяваць Tor Browser"
+
+#: settings.py:92
+msgid "Reinstall Tor Browser"
+msgstr "Пераставіць Tor Browser"
+
+#: settings.py:115
+msgid "Mirror"
+msgstr "Люстэрка"
+
+#: settings.py:131
+msgid "Save && Exit"
+msgstr "Захаваць && выйсці"
diff --git a/po/da.po b/po/da.po
new file mode 100644 (file)
index 0000000..3680945
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,254 @@
+# Danish translation for Tor Browser Launcher.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# scootergrisen, 2018.
+msgid ""
+msgstr ""
+"Project-Id-Version: torbrowser-launcher\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-23 15:47-0700\n"
+"PO-Revision-Date: 2018-09-30 16:24+0200\n"
+"Last-Translator: scootergrisen\n"
+"Language-Team: Danish\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: __init__.py:65 launcher.py:470
+msgid "Tor Browser Launcher"
+msgstr "Tor Browser-opstarter"
+
+#: __init__.py:66
+msgid "By Micah Lee, licensed under MIT"
+msgstr "Af Micah Lee, licenseret under MIT"
+
+#: __init__.py:67
+#, python-brace-format
+msgid "version {0}"
+msgstr "version {0}"
+
+#: common.py:100
+#, python-brace-format
+msgid "Error creating {0}"
+msgstr "Fejl ved oprettelse af {0}"
+
+#: common.py:102 common.py:180
+#, python-brace-format
+msgid "{0} is not writable"
+msgstr "{0} er skrivebeskyttet"
+
+#: common.py:177
+#, python-brace-format
+msgid "Cannot create directory {0}"
+msgstr "Kan ikke oprette mappen {0}"
+
+#: common.py:187
+msgid "Creating GnuPG homedir"
+msgstr "Opretter GnuPG-hjemmemappe"
+
+#: common.py:254
+#, python-format
+msgid "Could not import key with fingerprint: %s."
+msgstr "Kunne ikke importere nøgle med fingeraftryk: %s."
+
+#: common.py:259
+msgid "Not all keys were imported successfully!"
+msgstr "Det lykkedes ikke at importere alle nøgler!"
+
+#: launcher.py:83
+msgid "Downloading Tor Browser for the first time."
+msgstr "Downloader Tor Browser for første gang."
+
+#: launcher.py:85
+msgid ""
+"Your version of Tor Browser is out-of-date. Downloading the newest version."
+msgstr "Din version af Tor Browser er forældet. Downloader den nyeste version."
+
+#: launcher.py:100
+msgid "Downloading over Tor"
+msgstr "Downloader over Tor"
+
+#: launcher.py:111
+msgid "Tor Browser"
+msgstr "Tor Browser"
+
+#: launcher.py:128
+msgid "Start"
+msgstr "Start"
+
+#: launcher.py:174
+msgid "Yes"
+msgstr "Ja"
+
+#: launcher.py:178
+msgid "Exit"
+msgstr "Afslut"
+
+#: launcher.py:192 settings.py:136
+msgid "Cancel"
+msgstr "Annuller"
+
+#: launcher.py:231 launcher.py:245 launcher.py:249 launcher.py:279
+#: launcher.py:281
+msgid "Downloading"
+msgstr "Downloader"
+
+#: launcher.py:238
+msgid "Latest version: {}"
+msgstr "Seneste version: {}"
+
+#: launcher.py:241
+msgid "Error detecting Tor Browser version."
+msgstr "Fejl ved registrering af Tor Browser-version."
+
+#: launcher.py:256 launcher.py:357
+msgid "Verifying Signature"
+msgstr "Verificerer signatur"
+
+#: launcher.py:260
+msgid "Extracting"
+msgstr "Udpakker"
+
+#: launcher.py:264
+msgid "Running"
+msgstr "Kører"
+
+#: launcher.py:268
+msgid "Starting download over again"
+msgstr "Starter download på ny"
+
+#: launcher.py:279 launcher.py:295
+msgid "(over Tor)"
+msgstr "(over Tor)"
+
+#: launcher.py:293
+msgid "Downloaded"
+msgstr "Downloadet"
+
+#: launcher.py:393
+msgid "Installing"
+msgstr "Installerer"
+
+#: launcher.py:401
+#, python-brace-format
+msgid "Tor Browser Launcher doesn't understand the file format of {0}"
+msgstr "Tor Browser-opstarter forstår ikke filformatet af {0}"
+
+#: launcher.py:427
+msgid ""
+"The version of Tor Browser you have installed is earlier than it should be, "
+"which could be a sign of an attack!"
+msgstr ""
+"Den version af Tor Browser som du har installeret er tidligere end den bør "
+"være, hvilket kan være tegn på angreb!"
+
+#: launcher.py:446
+msgid "Downloading Tor Browser over again."
+msgstr "Downloader Tor Browser på ny."
+
+#: launcher.py:516 launcher.py:525 launcher.py:533
+msgid "Download Error:"
+msgstr "Fejl ved download:"
+
+#: launcher.py:517
+msgid "You are currently using a non-default mirror"
+msgstr "Du bruger i øjeblikket et spejl som ikke er standard"
+
+#: launcher.py:518
+msgid "Would you like to switch back to the default?"
+msgstr "Vil du skifte tilbage til standarden?"
+
+#: launcher.py:527
+msgid "Would you like to try the English version of Tor Browser instead?"
+msgstr "Vil du i stedet prøve den engelske version af Tor Browser?"
+
+#: launcher.py:548
+#, python-brace-format
+msgid ""
+"Invalid SSL certificate for:\n"
+"{0}\n"
+"\n"
+"You may be under attack."
+msgstr ""
+"Ugyldigt SSL-certifikat for:\n"
+"{0}\n"
+"\n"
+"Du er måske under angreb."
+
+#: launcher.py:550
+msgid "Try the download again using Tor?"
+msgstr "Prøv downloaden igen med Tor?"
+
+#: launcher.py:559
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Trying to download over Tor. Are you sure Tor is configured correctly and "
+"running?"
+msgstr ""
+"Fejl ved start af download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Prøver at downloade over Tor. Er du sikker på, at Tor er konfigureret "
+"korrekt og kører?"
+
+#: launcher.py:563
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Are you connected to the internet?"
+msgstr ""
+"Fejl ved start af download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Har du forbindelse til internettet?"
+
+#: settings.py:46
+msgid "Tor Browser Launcher Settings"
+msgstr "Indstillinger for Tor Browser-opstarter"
+
+#: settings.py:50
+msgid "Download over system Tor"
+msgstr "Download over systemets Tor"
+
+#: settings.py:57
+msgid "Force downloading English version of Tor Browser"
+msgstr "Tving download af den engelske version af Tor Browser"
+
+#: settings.py:66
+msgid "Tor server"
+msgstr "Tor-server"
+
+#: settings.py:82
+msgid "Status: Installed"
+msgstr "Status: Installeret"
+
+#: settings.py:84
+msgid "Status: Not Installed"
+msgstr "Status: Ikke installeret"
+
+#: settings.py:87
+msgid "Install Tor Browser"
+msgstr "Installer Tor Browser"
+
+#: settings.py:92
+msgid "Reinstall Tor Browser"
+msgstr "Geninstaller Tor Browser"
+
+#: settings.py:115
+msgid "Mirror"
+msgstr "Spejl"
+
+#: settings.py:131
+msgid "Save && Exit"
+msgstr "Gem og afslut"
diff --git a/po/de.po b/po/de.po
new file mode 100644 (file)
index 0000000..81317cd
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,255 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-23 15:47-0700\n"
+"PO-Revision-Date: 2019-12-15 21:28+0100\n"
+"Last-Translator: René Mario Baumgartner <ned84@protonmail.com>\n"
+"Language-Team: \n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.4\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: __init__.py:65 launcher.py:470
+msgid "Tor Browser Launcher"
+msgstr "Tor Browser Launcher"
+
+#: __init__.py:66
+msgid "By Micah Lee, licensed under MIT"
+msgstr "Von Micah Lee, lizensiert unter MIT"
+
+#: __init__.py:67
+#, python-brace-format
+msgid "version {0}"
+msgstr "Version {0}"
+
+#: common.py:100
+#, python-brace-format
+msgid "Error creating {0}"
+msgstr "Fehler erzeugt {0}"
+
+#: common.py:102 common.py:180
+#, python-brace-format
+msgid "{0} is not writable"
+msgstr "{0} ist nicht schreibbar"
+
+#: common.py:177
+#, python-brace-format
+msgid "Cannot create directory {0}"
+msgstr "Kann Verzeichnis {0} nicht erzeugen"
+
+#: common.py:187
+msgid "Creating GnuPG homedir"
+msgstr "Erzeuge GnuPG Verzeichnis"
+
+#: common.py:254
+#, python-format
+msgid "Could not import key with fingerprint: %s."
+msgstr "Konnte Schlüssel mit folgendem Fingerabdruck nicht importieren: %s."
+
+#: common.py:259
+msgid "Not all keys were imported successfully!"
+msgstr "Nicht alle Schlüssel konnten erfolgreich importiert werden!"
+
+#: launcher.py:83
+msgid "Downloading Tor Browser for the first time."
+msgstr "Lade Tor Browser das erste mal herunter."
+
+#: launcher.py:85
+msgid ""
+"Your version of Tor Browser is out-of-date. Downloading the newest version."
+msgstr ""
+"Ihre Version des Tor Browsers ist nicht mehr aktuell. Lade die neueste "
+"Version herunter."
+
+#: launcher.py:100
+msgid "Downloading over Tor"
+msgstr "Lade über Tor herunter"
+
+#: launcher.py:111
+msgid "Tor Browser"
+msgstr "Tor Browser"
+
+#: launcher.py:128
+msgid "Start"
+msgstr "Start"
+
+#: launcher.py:174
+msgid "Yes"
+msgstr "Ja"
+
+#: launcher.py:178
+msgid "Exit"
+msgstr "Exit"
+
+#: launcher.py:192 settings.py:136
+msgid "Cancel"
+msgstr "Abbruch"
+
+#: launcher.py:231 launcher.py:245 launcher.py:249 launcher.py:279
+#: launcher.py:281
+msgid "Downloading"
+msgstr "Herunterladen"
+
+#: launcher.py:238
+msgid "Latest version: {}"
+msgstr "Aktuelle Version: {}"
+
+#: launcher.py:241
+msgid "Error detecting Tor Browser version."
+msgstr "Fehler bei dem Versuch die Tor Browser Version zu finden."
+
+#: launcher.py:256 launcher.py:357
+msgid "Verifying Signature"
+msgstr "Prüfe Signatur"
+
+#: launcher.py:260
+msgid "Extracting"
+msgstr "Extrahieren"
+
+#: launcher.py:264
+msgid "Running"
+msgstr "Läuft"
+
+#: launcher.py:268
+msgid "Starting download over again"
+msgstr "Starte download nochmals"
+
+#: launcher.py:279 launcher.py:295
+msgid "(over Tor)"
+msgstr "(über Tor)"
+
+#: launcher.py:293
+msgid "Downloaded"
+msgstr "Heruntergeladen"
+
+#: launcher.py:393
+msgid "Installing"
+msgstr "Installiere"
+
+#: launcher.py:401
+#, python-brace-format
+msgid "Tor Browser Launcher doesn't understand the file format of {0}"
+msgstr "Tor Browser versteht folgendes Datei Format nicht: {0}"
+
+#: launcher.py:427
+msgid ""
+"The version of Tor Browser you have installed is earlier than it should be, "
+"which could be a sign of an attack!"
+msgstr ""
+"Die Version ihres Tor Browsers ist neuer als sie sein sollte, was auf eine "
+"Attacke schließen lassen könnte!"
+
+#: launcher.py:446
+msgid "Downloading Tor Browser over again."
+msgstr "Lade Tor Browser nochmals herunter."
+
+#: launcher.py:516 launcher.py:525 launcher.py:533
+msgid "Download Error:"
+msgstr "Fehler beim herunterladen:"
+
+#: launcher.py:517
+msgid "You are currently using a non-default mirror"
+msgstr "Sie verwenden zur Zeit einen nicht voreingestellten Mirror."
+
+#: launcher.py:518
+msgid "Would you like to switch back to the default?"
+msgstr "Wollen sie zur Voreinstellung wechseln?"
+
+#: launcher.py:527
+msgid "Would you like to try the English version of Tor Browser instead?"
+msgstr ""
+"Wollen sie die englische Version des Tor Browsers stattdessen versuchen?"
+
+#: launcher.py:548
+#, python-brace-format
+msgid ""
+"Invalid SSL certificate for:\n"
+"{0}\n"
+"\n"
+"You may be under attack."
+msgstr ""
+"Ungültiges SSL Zertifikat für:\n"
+"{0}\n"
+"\n"
+"Möglicherweise werden sie angegriffen."
+
+#: launcher.py:550
+msgid "Try the download again using Tor?"
+msgstr "Wollen sie das herunterladen nochmals über Tor versuchen?"
+
+#: launcher.py:559
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Trying to download over Tor. Are you sure Tor is configured correctly and "
+"running?"
+msgstr ""
+"Fehler beim starten des Downloads:\n"
+"\n"
+"{0}\n"
+"\n"
+"Versuche über Tor herunterzuladen. Sind sie sicher das Tor richtig "
+"konfiguriert und aktiv ist?"
+
+#: launcher.py:563
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Are you connected to the internet?"
+msgstr ""
+"Fehler beim starten des Downloads:\n"
+"\n"
+"{0}\n"
+"\n"
+"Sind sie mit dem Internet verbunden?"
+
+#: settings.py:46
+msgid "Tor Browser Launcher Settings"
+msgstr "Tor Browser Launcher Einstellungen"
+
+#: settings.py:50
+msgid "Download over system Tor"
+msgstr "Herunterladen über system Tor"
+
+#: settings.py:57
+msgid "Force downloading English version of Tor Browser"
+msgstr "Herunterladen der englischen Version des Tor Browsers erzwingen"
+
+#: settings.py:66
+msgid "Tor server"
+msgstr "Tor server"
+
+#: settings.py:82
+msgid "Status: Installed"
+msgstr "Status: Installiert"
+
+#: settings.py:84
+msgid "Status: Not Installed"
+msgstr "Status: Nicht installiert"
+
+#: settings.py:87
+msgid "Install Tor Browser"
+msgstr "Tor Browser installieren"
+
+#: settings.py:92
+msgid "Reinstall Tor Browser"
+msgstr "Tor Browser nochmals installieren"
+
+#: settings.py:115
+msgid "Mirror"
+msgstr "Mirror"
+
+#: settings.py:131
+msgid "Save && Exit"
+msgstr "Speichern && Exit"
diff --git a/po/hr.po b/po/hr.po
new file mode 100644 (file)
index 0000000..f1dc9e6
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,258 @@
+# Croatian translation of Tor Browser Launcher.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Milo Ivir <mail@milotype.de>, 2020.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Tor Browser Launcher\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-23 15:47-0700\n"
+"PO-Revision-Date: 2020-01-22 13:20+0100\n"
+"Last-Translator: Milo Ivir <mail@milotype.de>\n"
+"Language-Team: \n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.12\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: __init__.py:65 launcher.py:470
+msgid "Tor Browser Launcher"
+msgstr "Pokretač Tor preglednika"
+
+#: __init__.py:66
+msgid "By Micah Lee, licensed under MIT"
+msgstr "Autor Micah Lee, MIT licenca"
+
+#: __init__.py:67
+#, python-brace-format
+msgid "version {0}"
+msgstr "verzija {0}"
+
+#: common.py:100
+#, python-brace-format
+msgid "Error creating {0}"
+msgstr "Greška prilikom stvaranja {0}"
+
+#: common.py:102 common.py:180
+#, python-brace-format
+msgid "{0} is not writable"
+msgstr "Nije moguće pisati u {0}"
+
+#: common.py:177
+#, python-brace-format
+msgid "Cannot create directory {0}"
+msgstr "Nije moguće stvoriti mapu {0}"
+
+#: common.py:187
+msgid "Creating GnuPG homedir"
+msgstr "Izrada početne mape za GnuPG"
+
+#: common.py:254
+#, python-format
+msgid "Could not import key with fingerprint: %s."
+msgstr "Nije bilo moguće uvesti ključ s otiskom prsta: %s."
+
+#: common.py:259
+msgid "Not all keys were imported successfully!"
+msgstr "Nisu svi ključevi uspješno uvezeni!"
+
+#: launcher.py:83
+msgid "Downloading Tor Browser for the first time."
+msgstr "Preuzimanje Tor preglednika po prvi put."
+
+#: launcher.py:85
+msgid ""
+"Your version of Tor Browser is out-of-date. Downloading the newest version."
+msgstr ""
+"Tvoja verzija Tor preglednika je zastarjela. Preuzima se najnovija verzija."
+
+#: launcher.py:100
+msgid "Downloading over Tor"
+msgstr "Preuzimanje preko Tora"
+
+#: launcher.py:111
+msgid "Tor Browser"
+msgstr "Tor preglednik"
+
+#: launcher.py:128
+msgid "Start"
+msgstr "Pokreni"
+
+#: launcher.py:174
+msgid "Yes"
+msgstr "Da"
+
+#: launcher.py:178
+msgid "Exit"
+msgstr "Zatvori"
+
+#: launcher.py:192 settings.py:136
+msgid "Cancel"
+msgstr "Odustani"
+
+#: launcher.py:231 launcher.py:245 launcher.py:249 launcher.py:279
+#: launcher.py:281
+msgid "Downloading"
+msgstr "Preuzimanje"
+
+#: launcher.py:238
+msgid "Latest version: {}"
+msgstr "Zadnja verzija: {}"
+
+#: launcher.py:241
+msgid "Error detecting Tor Browser version."
+msgstr "Greška prilikom otkrivanja verzije Tor preglednika."
+
+#: launcher.py:256 launcher.py:357
+msgid "Verifying Signature"
+msgstr "Potvrđivanje potpisa"
+
+#: launcher.py:260
+msgid "Extracting"
+msgstr "Otpakiravanje"
+
+#: launcher.py:264
+msgid "Running"
+msgstr "Izvršava se"
+
+#: launcher.py:268
+msgid "Starting download over again"
+msgstr "Pokreće se ponovno preuzimanje"
+
+#: launcher.py:279 launcher.py:295
+msgid "(over Tor)"
+msgstr "(preko Tora)"
+
+#: launcher.py:293
+msgid "Downloaded"
+msgstr "Preuzeto"
+
+#: launcher.py:393
+msgid "Installing"
+msgstr "Instaliranje"
+
+#: launcher.py:401
+#, python-brace-format
+msgid "Tor Browser Launcher doesn't understand the file format of {0}"
+msgstr "Pokretač Tor preglednika ne razumije format datoteke {0}"
+
+#: launcher.py:427
+msgid ""
+"The version of Tor Browser you have installed is earlier than it should be, "
+"which could be a sign of an attack!"
+msgstr ""
+"Tvoja verzija Tor preglednika je starija nego što bi trebala biti, što može "
+"biti znak napada!"
+
+#: launcher.py:446
+msgid "Downloading Tor Browser over again."
+msgstr "Ponovno preuzimanje Tor preglednika."
+
+#: launcher.py:516 launcher.py:525 launcher.py:533
+msgid "Download Error:"
+msgstr "Greška prilikom preuzimanja:"
+
+#: launcher.py:517
+msgid "You are currently using a non-default mirror"
+msgstr "Trenutačno koristiš nestandardno zrcalo"
+
+#: launcher.py:518
+msgid "Would you like to switch back to the default?"
+msgstr "Želiš li vratiti na standardno?"
+
+#: launcher.py:527
+msgid "Would you like to try the English version of Tor Browser instead?"
+msgstr "Želiš li umjesto toga isprobati englesku verziju Tor preglednika?"
+
+#: launcher.py:548
+#, python-brace-format
+msgid ""
+"Invalid SSL certificate for:\n"
+"{0}\n"
+"\n"
+"You may be under attack."
+msgstr ""
+"Neispravni SSL certifikat za:\n"
+"{0}\n"
+"\n"
+"Možda si napadnut/a."
+
+#: launcher.py:550
+msgid "Try the download again using Tor?"
+msgstr "Ponovo pokušati preuzeti pomoću Tora?"
+
+#: launcher.py:559
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Trying to download over Tor. Are you sure Tor is configured correctly and "
+"running?"
+msgstr ""
+"Greška prilikom pokretanja preuzimanja:\n"
+"\n"
+"{0}\n"
+"\n"
+"Pokušava se preuzeti preko Tora. Je li je Tor ispravno konfiguriran i "
+"pokrenut?"
+
+#: launcher.py:563
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Are you connected to the internet?"
+msgstr ""
+"Greška prilikom pokretanja preuzimanja:\n"
+"\n"
+"{0}\n"
+"\n"
+"Jesi li spojen/a na internet?"
+
+#: settings.py:46
+msgid "Tor Browser Launcher Settings"
+msgstr "Postavke pokretača Tor preglednika"
+
+#: settings.py:50
+msgid "Download over system Tor"
+msgstr "Preuzmi preko Tora sustava"
+
+#: settings.py:57
+msgid "Force downloading English version of Tor Browser"
+msgstr "Prisili preuzimanje engleske verzije Tor preglednika"
+
+#: settings.py:66
+msgid "Tor server"
+msgstr "Tor poslužitelj"
+
+#: settings.py:82
+msgid "Status: Installed"
+msgstr "Stanje: Instalirano"
+
+#: settings.py:84
+msgid "Status: Not Installed"
+msgstr "Stanje: Nije instalirano"
+
+#: settings.py:87
+msgid "Install Tor Browser"
+msgstr "Instaliraj Tor preglednik"
+
+#: settings.py:92
+msgid "Reinstall Tor Browser"
+msgstr "Ponovo instaliraj Tor preglednik"
+
+#: settings.py:115
+msgid "Mirror"
+msgstr "Zrcalo"
+
+#: settings.py:131
+msgid "Save && Exit"
+msgstr "Spremi i zatvori"
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644 (file)
index 0000000..735429d
--- /dev/null
@@ -0,0 +1,308 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-23 15:47-0700\n"
+"PO-Revision-Date: 2020-02-09 16:35-0300\n"
+"Language: pt_BR\n"
+"Language-Team: \n"
+"Last-Translator: João Vítor S. F. <jjoaovitor7@outlook.com.br>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.4\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+#: __init__.py:65 launcher.py:470
+msgid "Tor Browser Launcher"
+msgstr "Lançador do Navegador Tor"
+
+#: __init__.py:66
+msgid "By Micah Lee, licensed under MIT"
+msgstr "Por Micah Lee, licenciado sob o MIT"
+
+#: __init__.py:67
+#, python-brace-format
+msgid "version {0}"
+msgstr "versão {0}"
+
+#: common.py:100
+#, python-brace-format
+msgid "Error creating {0}"
+msgstr "Erro ao criar {0}"
+
+#: common.py:102 common.py:180
+#, python-brace-format
+msgid "{0} is not writable"
+msgstr "{0} não é gravável"
+
+#: common.py:177
+#, python-brace-format
+msgid "Cannot create directory {0}"
+msgstr "Não é possível criar o diretório {0}"
+
+#: common.py:187
+msgid "Creating GnuPG homedir"
+msgstr "Criando o diretório inicial do GnuPG"
+
+#: common.py:254
+#, python-format
+msgid "Could not import key with fingerprint: %s."
+msgstr "Não foi possível importar a chave com a impressão digital: %s."
+
+#: common.py:259
+msgid "Not all keys were imported successfully!"
+msgstr "Nem todas as chaves foram importadas com sucesso!"
+
+#: launcher.py:83
+#, fuzzy
+msgid "Downloading Tor Browser for the first time."
+msgstr "Baixando o Navegador Tor pela primeira vez."
+
+#: launcher.py:85
+#, fuzzy
+msgid "Your version of Tor Browser is out-of-date. Downloading the newest version."
+msgstr "Sua versão do Navegador Tor está desatualizada. Baixando a versão mais recente."
+
+#: launcher.py:100
+msgid "Downloading over Tor"
+msgstr "Baixando pelo Tor"
+
+#: launcher.py:111
+msgid "Tor Browser"
+msgstr "Navegador Tor"
+
+#: launcher.py:128
+msgid "Start"
+msgstr "Iniciar"
+
+#: launcher.py:174
+msgid "Yes"
+msgstr "Sim"
+
+#: launcher.py:178
+msgid "Exit"
+msgstr "Sair"
+
+#: launcher.py:192 settings.py:136
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: launcher.py:231 launcher.py:245 launcher.py:249 launcher.py:279
+#: launcher.py:281
+msgid "Downloading"
+msgstr "Baixando"
+
+#: launcher.py:238
+msgid "Latest version: {}"
+msgstr "Versão mais recente: {}"
+
+#: launcher.py:241
+msgid "Error detecting Tor Browser version."
+msgstr "Erro ao detectar a versão do Navegador Tor."
+
+#: launcher.py:256 launcher.py:357
+msgid "Verifying Signature"
+msgstr "Verificando Assinatura"
+
+#: launcher.py:260
+msgid "Extracting"
+msgstr "Extraindo"
+
+#: launcher.py:264
+msgid "Running"
+msgstr "Rodando"
+
+#: launcher.py:268
+msgid "Starting download over again"
+msgstr "Iniciando o download novamente"
+
+#: launcher.py:279 launcher.py:295
+msgid "(over Tor)"
+msgstr "(pelo Tor)"
+
+#: launcher.py:293
+msgid "Downloaded"
+msgstr "Baixado"
+
+#: launcher.py:393
+msgid "Installing"
+msgstr "Instalando"
+
+#: launcher.py:401
+#, python-brace-format
+msgid "Tor Browser Launcher doesn't understand the file format of {0}"
+msgstr "O Lançador do Navegador Tor não entende o formato do arquivo de {0}"
+
+#: launcher.py:427
+msgid ""
+"The version of Tor Browser you have installed is earlier than it should be, "
+"which could be a sign of an attack!"
+msgstr ""
+"A versão do Navegador Tor que você instalou é anterior ao que deveria ser,
+"o que poderia ser um sinal de ataque!"
+
+#: launcher.py:446
+#, fuzzy
+msgid "Downloading Tor Browser over again."
+msgstr "Baixando o Navegador Tor novamente.."
+
+#: launcher.py:516 launcher.py:525 launcher.py:533
+msgid "Download Error:"
+msgstr "Erro de Download:"
+
+#: launcher.py:517
+msgid "You are currently using a non-default mirror"
+msgstr "No momento você está usando espelho não-padrão"
+
+#: launcher.py:518
+msgid "Would you like to switch back to the default?"
+msgstr "Você gostaria de retornar para o padrão?"
+
+#: launcher.py:527
+msgid "Would you like to try the English version of Tor Browser instead?"
+msgstr "Você gostaria de experimentar a versão em inglês do Navegador Tor?"
+
+#: launcher.py:548
+#, python-brace-format
+msgid ""
+"Invalid SSL certificate for:\n"
+"{0}\n"
+"\n"
+"You may be under attack."
+msgstr ""
+"Certificado SSL inválido para:\n"
+"{0}\n"
+"\n"
+"Você pode estar sob ataque."
+
+#: launcher.py:550
+msgid "Try the download again using Tor?"
+msgstr "Tentar o download novamente usando o Tor?"
+
+#: launcher.py:559
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Trying to download over Tor. Are you sure Tor is configured correctly and "
+"running?"
+msgstr ""
+"Erro ao iniciar o download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Tentando fazer o download pelo Tor. Você tem certeza de que o Tor está configurado corretamente e "
+"e funcionando?"
+
+#: launcher.py:563
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Are you connected to the internet?"
+msgstr ""
+"Erro ao iniciar o download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Você está conectado à internet?"
+
+#: settings.py:46
+msgid "Tor Browser Launcher Settings"
+msgstr "Configurações do Lançador do Navegador Tor"
+
+#: settings.py:50
+msgid "Download over system Tor"
+msgstr "Download pelo sistema Tor"
+
+#: settings.py:57
+msgid "Force downloading English version of Tor Browser"
+msgstr "Forçar o download da versão em Inglês do Navegador Tor"
+
+#: settings.py:66
+msgid "Tor server"
+msgstr "Servidor Tor"
+
+#: settings.py:82
+msgid "Status: Installed"
+msgstr "Estado: Instalado"
+
+#: settings.py:84
+msgid "Status: Not Installed"
+msgstr "Estado: Não Instalado"
+
+#: settings.py:87
+msgid "Install Tor Browser"
+msgstr "Instalar o Navegador Tor"
+
+#: settings.py:92
+msgid "Reinstall Tor Browser"
+msgstr "Reinstalar o Navegador Tor"
+
+#: settings.py:115
+msgid "Mirror"
+msgstr "Espelho"
+
+#: settings.py:131
+#, fuzzy
+msgid "Save && Exit"
+msgstr "Salvar && Sair"
+
+#~ msgid ""
+#~ "The python-txsocksx package is missing, downloads will not happen over tor"
+#~ msgstr
+#~ "O pacote python-txsocksx está faltando, os downloads não acontecerão pelo tor"
+
+#~ msgid "DNS Lookup Error"
+#~ msgstr "Erro de Pesquisa de DNS"
+
+#~ msgid ""
+#~ "The SSL certificate served by https://www.torproject.org is invalid! You "
+#~ "may be under attack."
+#~ msgstr ""
+#~ "O certificado SSL fornecido por https://www.torproject.org é inválido! Você "
+#~ "pode estar sob ataque."
+
+#~ msgid "Error connecting to Tor at {0}"
+#~ msgstr "Erro ao conectar ao Tor em {0}"
+
+#~ msgid ""
+#~ "SIGNATURE VERIFICATION FAILED!\n"
+#~ "\n"
+#~ "You might be under attack, or there might just be a networking problem. "
+#~ "Click Start try the download again."
+#~ msgstr ""
+#~ "FALHA NA VERIFICAÇÃO DA ASSINATURA!\n"
+#~ "\n"
+#~ "Você pode estar sob ataque, ou pode haver apenas um problema de rede. "
+#~ "Clique em Iniciar para tentar baixar novamente."
+
+#~ msgid ""
+#~ "The python-pygame package is missing, the modem sound is unavailable."
+#~ msgstr ""
+#~ "O pacote python-pygame está faltando, o som do modem não está disponível."
+
+#~ msgid ""
+#~ "This option is only available when using a system wide Tor installation."
+#~ msgstr ""
+#~ "Esta opção está apenas disponível ao usar uma instalação Tor do sistema."
+
+#~ msgid "This option requires the python-txsocksx package."
+#~ msgstr "Esta opção precisa do pacote python-txsocksx"
+
+#~ msgid "Play modem sound, because Tor is slow :]"
+#~ msgstr "Reproduzir som do modem, porque o Tor é lento :]"
+
+#~ msgid "This option requires python-pygame to be installed"
+#~ msgstr "Esta opção precisa do pacote python-pygame"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644 (file)
index 0000000..385e2be
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,306 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-23 15:47-0700\n"
+"PO-Revision-Date: 2018-11-10 11:36+0100\n"
+"Last-Translator: Jonatan Nyberg <jonatan.nyberg.karl@gmail.com>\n"
+"Language-Team: Swedish\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: __init__.py:65 launcher.py:470
+msgid "Tor Browser Launcher"
+msgstr "Tor Browser Launcher"
+
+#: __init__.py:66
+msgid "By Micah Lee, licensed under MIT"
+msgstr "Av Mika Lee, licensierad under MIT"
+
+#: __init__.py:67
+#, python-brace-format
+msgid "version {0}"
+msgstr "version {0}"
+
+#: common.py:100
+#, python-brace-format
+msgid "Error creating {0}"
+msgstr "Ett fel uppstod vid skapande {0}"
+
+#: common.py:102 common.py:180
+#, python-brace-format
+msgid "{0} is not writable"
+msgstr "{0} är inte skrivbar"
+
+#: common.py:177
+#, python-brace-format
+msgid "Cannot create directory {0}"
+msgstr "Kan inte att skapa katalog {0}"
+
+#: common.py:187
+msgid "Creating GnuPG homedir"
+msgstr "Skapa GnuPG-homedir"
+
+#: common.py:254
+#, python-format
+msgid "Could not import key with fingerprint: %s."
+msgstr "Kunde inte importera nyckel med fingeravtryck: %s."
+
+#: common.py:259
+msgid "Not all keys were imported successfully!"
+msgstr "Inte alla nycklar importerades!"
+
+#: launcher.py:83
+msgid "Downloading Tor Browser for the first time."
+msgstr "Hämtar Tor Browser för första gången."
+
+#: launcher.py:85
+msgid ""
+"Your version of Tor Browser is out-of-date. Downloading the newest version."
+msgstr "Din version av Tor Browser är föråldrad. Hämta den senaste versionen."
+
+#: launcher.py:100
+msgid "Downloading over Tor"
+msgstr "Hämtar över Tor"
+
+#: launcher.py:111
+msgid "Tor Browser"
+msgstr "Tor Browser"
+
+#: launcher.py:128
+msgid "Start"
+msgstr "Börja"
+
+#: launcher.py:174
+msgid "Yes"
+msgstr "Ja"
+
+#: launcher.py:178
+msgid "Exit"
+msgstr "Avsluta"
+
+#: launcher.py:192 settings.py:136
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: launcher.py:231 launcher.py:245 launcher.py:249 launcher.py:279
+#: launcher.py:281
+msgid "Downloading"
+msgstr "Hämtar"
+
+#: launcher.py:238
+msgid "Latest version: {}"
+msgstr "Senaste versionen: {}"
+
+#: launcher.py:241
+msgid "Error detecting Tor Browser version."
+msgstr "Fel vid detektering av Tor Browser-versionen."
+
+#: launcher.py:256 launcher.py:357
+msgid "Verifying Signature"
+msgstr "Verifierar signaturen"
+
+#: launcher.py:260
+msgid "Extracting"
+msgstr "Packar upp"
+
+#: launcher.py:264
+msgid "Running"
+msgstr "Körs"
+
+#: launcher.py:268
+msgid "Starting download over again"
+msgstr "Börja hämtningen igen"
+
+#: launcher.py:279 launcher.py:295
+msgid "(over Tor)"
+msgstr "(över Tor)"
+
+#: launcher.py:293
+msgid "Downloaded"
+msgstr "Hämtad"
+
+#: launcher.py:393
+msgid "Installing"
+msgstr "Installerar"
+
+#: launcher.py:401
+#, python-brace-format
+msgid "Tor Browser Launcher doesn't understand the file format of {0}"
+msgstr "Tor Browser Launcher förstår inte filformatet {0}"
+
+#: launcher.py:427
+msgid ""
+"The version of Tor Browser you have installed is earlier than it should be, "
+"which could be a sign of an attack!"
+msgstr ""
+"Den version av Tor Browser du har installerat är tidigare än den borde vara, "
+"vilket kan vara ett tecken på en attack!"
+
+#: launcher.py:446
+msgid "Downloading Tor Browser over again."
+msgstr "Hämtar Tor Browser igen."
+
+#: launcher.py:516 launcher.py:525 launcher.py:533
+msgid "Download Error:"
+msgstr "Hämtningsfel:"
+
+#: launcher.py:517
+msgid "You are currently using a non-default mirror"
+msgstr "Du använder för närvarande en icke-standardspegel"
+
+#: launcher.py:518
+msgid "Would you like to switch back to the default?"
+msgstr "Vill du byta tillbaka till standard?"
+
+#: launcher.py:527
+msgid "Would you like to try the English version of Tor Browser instead?"
+msgstr "Vill du prova den engelska versionen av Tor Browser istället?"
+
+#: launcher.py:548
+#, python-brace-format
+msgid ""
+"Invalid SSL certificate for:\n"
+"{0}\n"
+"\n"
+"You may be under attack."
+msgstr ""
+"Ogiltigt SSL-certifikat för:\n"
+"{0}\n"
+"\n"
+"Du kan vara under attack."
+
+#: launcher.py:550
+msgid "Try the download again using Tor?"
+msgstr "Försök att hämta igen med Tor?"
+
+#: launcher.py:559
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Trying to download over Tor. Are you sure Tor is configured correctly and "
+"running?"
+msgstr ""
+"Fel vid start av hämtning:\n"
+"\n"
+"{0}\n"
+"\n"
+"Försöker att hämta över Tor. Är du säker på att Tor är korrekt konfigurerad "
+"och körs?"
+
+#: launcher.py:563
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Are you connected to the internet?"
+msgstr ""
+"Fel vid start av hämtning:\n"
+"\n"
+"{0}\n"
+"\n"
+"Är du ansluten till internet?"
+
+#: settings.py:46
+msgid "Tor Browser Launcher Settings"
+msgstr "Inställningar för Tor Browser Launcher"
+
+#: settings.py:50
+msgid "Download over system Tor"
+msgstr "Hämta över Tor-system"
+
+#: settings.py:57
+msgid "Force downloading English version of Tor Browser"
+msgstr "Tvinga att hämta engelsk version av Tor Browser"
+
+#: settings.py:66
+msgid "Tor server"
+msgstr "Tor-server"
+
+#: settings.py:82
+msgid "Status: Installed"
+msgstr "Tillstånd: Installerad"
+
+#: settings.py:84
+msgid "Status: Not Installed"
+msgstr "Tillstånd: Inte installerad"
+
+#: settings.py:87
+msgid "Install Tor Browser"
+msgstr "Installera Tor Browser"
+
+#: settings.py:92
+msgid "Reinstall Tor Browser"
+msgstr "Installera om Tor Browser"
+
+#: settings.py:115
+msgid "Mirror"
+msgstr "Spegel"
+
+#: settings.py:131
+msgid "Save && Exit"
+msgstr "Spara && avsluta"
+
+#~ msgid ""
+#~ "The python-txsocksx package is missing, downloads will not happen over tor"
+#~ msgstr ""
+#~ ""
+#~ "Python-txsocksx-paketet saknas, hämtningar kommer inte att hända över Tor."
+
+#~ msgid "DNS Lookup Error"
+#~ msgstr "DNS-uppsökningsfel"
+
+#~ msgid ""
+#~ "The SSL certificate served by https://www.torproject.org is invalid! You "
+#~ "may be under attack."
+#~ msgstr ""
+#~ "SSL-certifikatet som betjänas av https://www.torproject.org är ogiltig!"
+#~ "Du kan vara under attack."
+
+#~ msgid "Error connecting to Tor at {0}"
+#~ msgstr "Fel vid anslutning till Tor på {0}"
+
+#~ msgid ""
+#~ "SIGNATURE VERIFICATION FAILED!\n"
+#~ "\n"
+#~ "You might be under attack, or there might just be a networking problem. "
+#~ "Click Start try the download again."
+#~ msgstr ""
+#~ "SIGNATUR MISSLYCKADES!\n"
+#~ "\n"
+#~ "Du kan vara under attack, eller det kan bara vara ett nätverksproblem. "
+#~ "Klicka på Start för försöka hämta igen."
+
+#~ msgid ""
+#~ "The python-pygame package is missing, the modem sound is unavailable."
+#~ msgstr ""
+#~ "Python-pygame-paketet saknas, modemljudet är otillgängligt."
+
+#~ msgid ""
+#~ "This option is only available when using a system wide Tor installation."
+#~ msgstr ""
+#~ "Det här alternativet är endast tillgängligt när du använder en "
+#~ "systembredd Tor-installation."
+
+#~ msgid "This option requires the python-txsocksx package."
+#~ msgstr "Det här alternativet kräver python-txsocksx-paketet."
+
+#~ msgid "Play modem sound, because Tor is slow :]"
+#~ msgstr "Spela modemljud, eftersom Tor är långsamt :]"
+
+#~ msgid "This option requires python-pygame to be installed"
+#~ msgstr "Det här alternativet kräver att python-pygame installeras"
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644 (file)
index 0000000..aae7f26
--- /dev/null
@@ -0,0 +1,253 @@
+# Chinese translations for PACKAGE package
+# PACKAGE 套件的正體中文翻譯.
+# Copyright (C) 2020 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Koala Yeung <koalay@gmail.com>, 2020.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-23 15:47-0700\n"
+"PO-Revision-Date: 2020-04-22 23:31+0800\n"
+"Last-Translator: Koala Yeung <koalay@gmail.com>\n"
+"Language-Team: Chinese (traditional)\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.3\n"
+
+#: __init__.py:65 launcher.py:470
+msgid "Tor Browser Launcher"
+msgstr "Tor 瀏覽器啟動程式"
+
+#: __init__.py:66
+msgid "By Micah Lee, licensed under MIT"
+msgstr "由 Micah Lee 編寫,以 MIT 特許授權發佈"
+
+#: __init__.py:67
+#, python-brace-format
+msgid "version {0}"
+msgstr "{0} 版"
+
+#: common.py:100
+#, python-brace-format
+msgid "Error creating {0}"
+msgstr "生成 {0} 時發生問題"
+
+#: common.py:102 common.py:180
+#, python-brace-format
+msgid "{0} is not writable"
+msgstr "無法寫入 {0}"
+
+#: common.py:177
+#, python-brace-format
+msgid "Cannot create directory {0}"
+msgstr "無法生成 {0} 目錄"
+
+#: common.py:187
+msgid "Creating GnuPG homedir"
+msgstr "生成 GnuPG 目錄"
+
+#: common.py:254
+#, python-format
+msgid "Could not import key with fingerprint: %s."
+msgstr "無法以指紋匯入加密金鑰︰%s."
+
+#: common.py:259
+msgid "Not all keys were imported successfully!"
+msgstr "只有部份加密金鑰加入成功!"
+
+#: launcher.py:83
+msgid "Downloading Tor Browser for the first time."
+msgstr "第一次下載 Tor 瀏覽器。"
+
+#: launcher.py:85
+msgid ""
+"Your version of Tor Browser is out-of-date. Downloading the newest version."
+msgstr "你目前的 Tor 瀏覽器不是最新的,正下載最新版本。"
+
+#: launcher.py:100
+msgid "Downloading over Tor"
+msgstr "透過 Tor 網絡下載"
+
+#: launcher.py:111
+msgid "Tor Browser"
+msgstr "Tor 瀏覽器"
+
+#: launcher.py:128
+msgid "Start"
+msgstr "開始"
+
+#: launcher.py:174
+msgid "Yes"
+msgstr "是"
+
+#: launcher.py:178
+msgid "Exit"
+msgstr "離開"
+
+#: launcher.py:192 settings.py:136
+msgid "Cancel"
+msgstr "取消"
+
+#: launcher.py:231 launcher.py:245 launcher.py:249 launcher.py:279
+#: launcher.py:281
+msgid "Downloading"
+msgstr "下載中"
+
+#: launcher.py:238
+msgid "Latest version: {}"
+msgstr "最新版本︰{}"
+
+#: launcher.py:241
+msgid "Error detecting Tor Browser version."
+msgstr "偵測 Tor 瀏覽器版本時發生錯誤。"
+
+#: launcher.py:256 launcher.py:357
+msgid "Verifying Signature"
+msgstr "正在檢查數位簽章"
+
+#: launcher.py:260
+msgid "Extracting"
+msgstr "正在解開"
+
+#: launcher.py:264
+msgid "Running"
+msgstr "執行中"
+
+#: launcher.py:268
+msgid "Starting download over again"
+msgstr "從新開始下載"
+
+#: launcher.py:279 launcher.py:295
+msgid "(over Tor)"
+msgstr "(透過 Tor 網絡)"
+
+#: launcher.py:293
+msgid "Downloaded"
+msgstr "已下載"
+
+#: launcher.py:393
+msgid "Installing"
+msgstr "正在安裝"
+
+#: launcher.py:401
+#, python-brace-format
+msgid "Tor Browser Launcher doesn't understand the file format of {0}"
+msgstr "Tor 瀏覽器啟動程式不了解 {0} 的檔案格式"
+
+#: launcher.py:427
+msgid ""
+"The version of Tor Browser you have installed is earlier than it should be, "
+"which could be a sign of an attack!"
+msgstr "你已安裝的 Tor 瀏覽器版本比預期的版本早期,這表示你的電腦可能被入侵!"
+
+#: launcher.py:446
+msgid "Downloading Tor Browser over again."
+msgstr "重新下載 Tor 瀏覽器。"
+
+#: launcher.py:516 launcher.py:525 launcher.py:533
+msgid "Download Error:"
+msgstr "下載錯誤:"
+
+#: launcher.py:517
+msgid "You are currently using a non-default mirror"
+msgstr "你目前正在使用非預設的鏡像"
+
+#: launcher.py:518
+msgid "Would you like to switch back to the default?"
+msgstr "你想改為使用預設的嗎?"
+
+#: launcher.py:527
+msgid "Would you like to try the English version of Tor Browser instead?"
+msgstr "你要試試改為下載英文版 Tor 瀏覽器嗎?"
+
+#: launcher.py:548
+#, python-brace-format
+msgid ""
+"Invalid SSL certificate for:\n"
+"{0}\n"
+"\n"
+"You may be under attack."
+msgstr ""
+"以下網址的 SSL 證書不正確︰\n"
+"{0}\n"
+"\n"
+"你可能正被入侵。"
+
+#: launcher.py:550
+msgid "Try the download again using Tor?"
+msgstr "要試試改用 Tor 網絡重新下載嗎?"
+
+#: launcher.py:559
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Trying to download over Tor. Are you sure Tor is configured correctly and "
+"running?"
+msgstr ""
+"無法開始下載︰\n"
+"\n"
+"{0}\n"
+"\n"
+"請試試經由 Tor 網絡下載。你肯定你的 Tor 有正確被下載和執行嗎?"
+
+#: launcher.py:563
+#, python-brace-format
+msgid ""
+"Error starting download:\n"
+"\n"
+"{0}\n"
+"\n"
+"Are you connected to the internet?"
+msgstr ""
+"無法開始下載︰\n"
+"\n"
+"{0}\n"
+"\n"
+"請問你是否有連上互聯網?"
+
+#: settings.py:46
+msgid "Tor Browser Launcher Settings"
+msgstr "Tor 瀏覽器啟動程式設定"
+
+#: settings.py:50
+msgid "Download over system Tor"
+msgstr "透過系統的 Tor 網絡下載"
+
+#: settings.py:57
+msgid "Force downloading English version of Tor Browser"
+msgstr "強制下載英文版本的 Tor 瀏覽器"
+
+#: settings.py:66
+msgid "Tor server"
+msgstr "Tor 伺服器"
+
+#: settings.py:82
+msgid "Status: Installed"
+msgstr "狀態︰已安裝"
+
+#: settings.py:84
+msgid "Status: Not Installed"
+msgstr "狀態︰未安裝"
+
+#: settings.py:87
+msgid "Install Tor Browser"
+msgstr "安裝 Tor 瀏覽器"
+
+#: settings.py:92
+msgid "Reinstall Tor Browser"
+msgstr "重新安裝 Tor 瀏覽器"
+
+#: settings.py:115
+msgid "Mirror"
+msgstr "鏡像"
+
+#: settings.py:131
+msgid "Save && Exit"
+msgstr "儲存及離開"
index 1649eb4690fe581a44bb0641cc1fb4b09cbbd7d3..67e126e20a8b3c9e66b700d02f66f396dfffaeec 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -28,14 +28,14 @@ OTHER DEALINGS IN THE SOFTWARE.
 
 import os
 import sys
-import platform
+import distro
 import subprocess
 from distutils.core import setup
 
 SHARE = "share"
 
 # detect linux distribution
-distro = platform.dist()[0]
+distro = distro.linux_distribution()[0]
 
 
 def file_list(path):
@@ -52,7 +52,9 @@ def create_mo_files():
         return []
     domain = "torbrowser-launcher"
     mo_files = []
-    po_files = [f for f in next(os.walk(po_dir))[2] if os.path.splitext(f)[1] == ".po"]
+    po_files = sorted(
+        [f for f in next(os.walk(po_dir))[2] if os.path.splitext(f)[1] == ".po"]
+    )
     for po_file in po_files:
         filename, extension = os.path.splitext(po_file)
         mo_file = domain + ".mo"
index 4f12adb8f814d1055113bfd6928d6188b0b5aa70..2305ec8bff167fd028dd2ce96bdefb73b2aad667 100644 (file)
@@ -1,18 +1,28 @@
 [Desktop Entry]
 Name=Tor Browser Launcher Settings
+Name[cs]=Tor Browser Launcher nastavení
 Name[fr]=Tor Browser Launcher configurations
+Name[hr]=Tor preglednik – postavke pokretanja
 Name[hu]=Tor-böngésző indító beállításai
 Name[nl]=Tor Browser Launcher Instellingen
 Name[pt_BR]=Navegador Tor (Configurações do Lançador)
 Name[ru]=Tor Browser (настройки запуска)
+Name[sv]=Inställningar för Tor Browser Launcher
+Name[be]=Налады запускальніка Tor Browser
 GenericName=Tor Browser Launcher Settings
+GenericName[hr]=Tor preglednik – postavke pokretanja
 GenericName[hu]=Tor-böngésző indító beállításai
+GenericName[be]=Налады запускальніка Tor Browser
 Comment=Tor Browser Launcher Settings
+Comment[cs]=Tor Browser Launcher nastavení
 Comment[fr]=Tor Browser Launcher configurations
+Comment[hr]=Postavke za pokretanje Tor preglednika
 Comment[hu]=Tor-böngésző indító beállításai
 Comment[nl]=Tor Browser Launcher Instellingen
 Comment[pt_BR]=Navegador Tor (Configurações do Lançador)
 Comment[ru]=Tor Browser (настройки запуска)
+Comment[sv]=Inställningar för Tor Browser Launcher
+Comment[be]=Налады запускальніка Tor Browser
 Exec=torbrowser-launcher --settings
 Terminal=false
 Type=Application
index 7a25076be1c2d19c264132c401b01dcb630a3457..8cd868bb762d486a5308f5ddbcc2453217ac6720 100644 (file)
@@ -1,12 +1,25 @@
 [Desktop Entry]
 Name=Tor Browser
+Name[be]=Tor Browser
+Name[cs]=Tor Browser
+Name[da]=Tor Browser
+Name[hr]=Tor preglednik
 Name[hu]=Tor-böngésző
 Name[pt_BR]=Navegador Tor
+Name[sv]=Tor Browser
 GenericName=Tor browser
+GenericName[be]=Tor Browser
+GenericName[da]=Tor Browser
+GenericName[hr]=Tor preglednik
 GenericName[hu]=Tor böngésző indító
 Comment=Launch Tor Browser
+Comment[be]=Запуск Tor Browser
+Comment[cs]=Spustit Tor Browser
+Comment[hr]=Pokreni Tor preglednika
+Comment[da]=Start Tor Browser
 Comment[hu]=Tor böngésző indító
 Comment[pt_BR]=Navegador Tor
+Comment[sv]=Starta Tor Browser
 Exec=torbrowser-launcher %u
 Terminal=false
 Type=Application
index 796eda23f16306f3c4aacc8e0f3c9a523876afd9..9c2c4de0a099a5233386c13a40aeb88b746db3b4 100644 (file)
@@ -81,29 +81,29 @@ I2dKBBuEQMikQLgfuEoGF/5zueWJdLjEDESeZB9nXgWEaADwiH+nzcuUYivCYR2y
 szRpRTv2GwcUoYbT1Cb8L3Qy77xq21BiOxs5OWylfUS0yLZN9XOP/qwa5MDPmpS1
 kAw3IcBf9MA825PFxXQY/mv9rvd5gmip+vfwBT8F3ZvXzQHAWBF0bXTONmp/Cxuj
 jE1PkJBQ+mOg5x/wyYEVw+HkfZgSIwfVFFJ+MXkKYeXXVHg5+lubABEBAAGJBHIE
-GAEKACYCGwIWIQTvbiht2oXqKkun3mhOLG6HkymCkAUCXxep8QUJBNOafQJAwXQg
-BBkBCgAdFiEEEQd1tdEB+za8bJEb63dEkdn/BuIFAlsJ0HQACgkQ63dEkdn/BuLX
-vQ//RG+DS4F2seyco6N+rA9nqTgjVbDHa2mSuxvjApVXGhFNkU6IXUMTfeBnUOR/
-WNzN/B2kFlBsLvSCRovPZaltsFG2DpEhlA7nemwz7CZhE7ULg/4HIwn1t/xXbynM
-pOwFXeNTcAKna41Z+3vAjNSr/oAcd/pGBW+KSCUL5FxTEts4d1fMumAzwi3Oi0Pd
-QGr6Dru6bdUbUcLf/VFoD62q+uD+56ESOGILvnddiDPZWQeVFVWgzvgqhcLccrEK
-HACulPmUB+rBTC9y+86I8vhmwGK+Xjna1A4995/1cGBXstJCdLVbLzHQv6dwKU/w
-6IR0LcOllKBkp4UnVX7GyKz1XQHOz8+/hUf6zuym+bUCXsHCQ1dCTGfZyxrCzWUi
-5Ltx8Hqxt2Q00bEB5BI58Is4JYlTTWeLL81VFCIQSNuEJIwfCPUAR/oH6waCGaPk
-ER8J18Hbujh4Ku//FAImuLuDQWVgXKmdrFz+UeiM1BlkIAcDcC/9EJxsSgFDUkF1
-HZ/2hRDzpkm0dVtQpTiTf2NID9vx6pJBAHrL/Z2Q11bZWdeIz8CLxqPUUlBNfgr6
-PmkIbL/4BHbjWp94iavcm0xq/ZKuR+4PvZ1Q9sqjAV4qrczSnf3Xal6gfzY9WcuC
-wPu6FFNhuEtQ559gbwm+ii+eFAfpf1G8wRDdpnK9F+CQ3JEJEE4sboeTKYKQXBYP
-+QEP09XFYVMjc03VyBDLcBBPqUHcPYoX/J/tfq9f0IylwE1wPNA8PobHi99eKqQi
-ahxkeZgUujaDTDOGpsFKLCFFyXvEPwBv5iuvDrNRXLhwIXNFdpvz6gjo6kI2Sn8c
-THfX1wbGyN9GvtoI96agmLtv6jgmLC9j7Hf+gPM/VhybbL2MCFPG70B0kxnEyEFx
-j64e5kHKZLRzCOl+fiwTsaEX9L9z74Otx8uXOzh1ZHKtCpPk4N/Xfq99XgzmXVvU
-aH6FDSiado6GN+W08zCczPTlhBHFpVRQXSbexw/mSgq9E+FpihqLOmrQdAy2b6Qz
-36X8EVHy2NbNJbrjM9wzLxcxfjf8aeF9yS6/CDAdHiPRQKNLr+btFCAT3XZ9TYBC
-wT7YPduK1pXsLvj4xbS+bOZ67YXTNFUXLLPNehcnwID4vbpg6ybm1VT6+i3Mz7em
-6jYEgtZe0cO8S9AjxLHnsTIbak8lfGUtjuAl3j0mpRjc34tDLNiC7OmMTS4lJUDy
-nelBL8UX5qHmR/0q70PljoGScWRPz3200i/f46idUInEPw2F/A1jPH+EgOnVCXjF
-im4sXI02h3vYPcc1KoFIpAbEE9vJ/7ROoC8V65mIkBAKx/84LX89jy9mWBIx7rHU
-US1tzdMLm/wtVT8TAm3xciJOxq6lOdfosxhTnm1v5SVE
-=ODNf
+GAEKACYCGwIWIQTvbiht2oXqKkun3mhOLG6HkymCkAUCYL9srAUJBsp3OAJACRBO
+LG6HkymCkMF0IAQZAQoAHRYhBBEHdbXRAfs2vGyRG+t3RJHZ/wbiBQJbCdB0AAoJ
+EOt3RJHZ/wbi170P/0Rvg0uBdrHsnKOjfqwPZ6k4I1Wwx2tpkrsb4wKVVxoRTZFO
+iF1DE33gZ1Dkf1jczfwdpBZQbC70gkaLz2WpbbBRtg6RIZQO53psM+wmYRO1C4P+
+ByMJ9bf8V28pzKTsBV3jU3ACp2uNWft7wIzUq/6AHHf6RgVvikglC+RcUxLbOHdX
+zLpgM8ItzotD3UBq+g67um3VG1HC3/1RaA+tqvrg/uehEjhiC753XYgz2VkHlRVV
+oM74KoXC3HKxChwArpT5lAfqwUwvcvvOiPL4ZsBivl452tQOPfef9XBgV7LSQnS1
+Wy8x0L+ncClP8OiEdC3DpZSgZKeFJ1V+xsis9V0Bzs/Pv4VH+s7spvm1Al7BwkNX
+Qkxn2csaws1lIuS7cfB6sbdkNNGxAeQSOfCLOCWJU01niy/NVRQiEEjbhCSMHwj1
+AEf6B+sGghmj5BEfCdfB27o4eCrv/xQCJri7g0FlYFypnaxc/lHojNQZZCAHA3Av
+/RCcbEoBQ1JBdR2f9oUQ86ZJtHVbUKU4k39jSA/b8eqSQQB6y/2dkNdW2VnXiM/A
+i8aj1FJQTX4K+j5pCGy/+AR241qfeImr3JtMav2SrkfuD72dUPbKowFeKq3M0p39
+12peoH82PVnLgsD7uhRTYbhLUOefYG8JvoovnhQH6X9RvMEQ3aZyvRfgkNyR8MoP
+/ifP1xddz4quT5XNyrg8z1rwVVDogGigFm2IumnGh/UFNB/dL0JlXV4tmYNeLaKy
+/7YSmNMP1MnMWR+FbY8VWFreFZqWMcsk4AaN+fQXzMFJjZ9hbSyBSOpL1TZ20nnI
+w0Ant8cuH2LSFPJnlE+KZfzneN6n1o9Wo0lvFwswPxYpHJOkrDyDMeLrkDf6/Kfj
+Kq5QujlVJpfOOYgINXUDnvOTotHbOpqRULU6elaKGJbdRByB2cN0lbPJjcOx6GXs
+UNqAGO0VcS7CVn6KByxI0MFPbwmK8sZ/MUiJZnnUuB9x3X+Rf2UPRdOyIl3/jc/s
+8AAQcvWm7fuxcCOgqK6BPP4S7tpiuYaeI44MhW2H6ndwO49KI7jaoIf0Vk2c2OCy
+MsGf5G3djcDnZ70hEEQdr+2h2yaOPkr5j3oAxugA3pRG0rnX7SPol3xnsahkbexW
+VltWIA/ZR6RoZpYDT2nAh4vfTzDGCe7SeNMzhuZhvPvJS62XLQcz4zCBbz9LZgtq
+nRxpaYjCyY7RQXngVHzy98ImiNmdgfxw1FD+qW2FyC5cN2fgLU8X8hpql9/P68eu
+AIA7U6w7fVji3F3Uul0FuqERX6p9ZObfot2LsFZIUoYqUemNt2gqHuzKKZyIjt6Q
+3dAx5AUwZE27KZWfpfNbww/HaNtTPqD6ULtvRdQiXheV
+=GYln
 -----END PGP PUBLIC KEY BLOCK-----
index 1c09c74e221cd58f30240fbcfd9545ed19df54d7..42045acae20fc8d80f15174966be202f7d898d19 100644 (file)
@@ -1 +1 @@
-0.3.3
+0.3.4
index 800fe88fca578729f864876d66f99677ea22c131..bff3e8ea7f8974afc978cec50329743b2d6ee42f 100644 (file)
@@ -2,7 +2,7 @@
 Tor Browser Launcher
 https://github.com/micahflee/torbrowser-launcher/
 
-Copyright (c) 2013-2017 Micah Lee <micah@micahflee.com>
+Copyright (c) 2013-2021 Micah Lee <micah@micahflee.com>
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
index 94ae39c9ae4db06fdadb06cd8c704d0eb4fcac3b..c96d64e44c7a81d017868851f6b9e8dd75745e2b 100644 (file)
@@ -2,7 +2,7 @@
 Tor Browser Launcher
 https://github.com/micahflee/torbrowser-launcher/
 
-Copyright (c) 2013-2017 Micah Lee <micah@micahflee.com>
+Copyright (c) 2013-2021 Micah Lee <micah@micahflee.com>
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
@@ -76,36 +76,55 @@ class Common(object):
         available_languages = [
             "ar",
             "ca",
+            "cs",
             "da",
             "de",
+            "el",
             "en-US",
+            "es-AR",
             "es-ES",
             "fa",
             "fr",
             "ga-IE",
             "he",
+            "hu",
             "id",
             "is",
             "it",
             "ja",
+            "ka",
             "ko",
+            "lt",
+            "mk",
+            "ms",
+            "my",
             "nb-NO",
             "nl",
             "pl",
             "pt-BR",
+            "ro",
             "ru",
             "sv-SE",
+            "th",
             "tr",
             "vi",
             "zh-CN",
             "zh-TW",
         ]
-        locale.setlocale(locale.LC_MESSAGES, '')
+
+        # a list of manually configured language fallback overriding
+        language_overrides = {
+            "zh-HK": "zh-TW",
+        }
+
+        locale.setlocale(locale.LC_MESSAGES, "")
         default_locale = locale.getlocale(locale.LC_MESSAGES)[0]
         if default_locale is None:
             self.language = "en-US"
         else:
             self.language = default_locale.replace("_", "-")
+            if self.language in language_overrides:
+                self.language = language_overrides[self.language]
             if self.language not in available_languages:
                 self.language = self.language.split("-")[0]
                 if self.language not in available_languages:
@@ -136,13 +155,17 @@ class Common(object):
                     self.set_gui(
                         "error", _("Error creating {0}").format(homedir), [], False
                     )
-        if not os.access(homedir, os.W_OK):
-            self.set_gui("error", _("{0} is not writable").format(homedir), [], False)
 
-        tbb_config = '{0}/torbrowser'.format(self.get_env('XDG_CONFIG_HOME', '{0}/.config'.format(homedir)))
-        tbb_cache = '{0}/torbrowser'.format(self.get_env('XDG_CACHE_HOME', '{0}/.cache'.format(homedir)))
-        tbb_local = '{0}/torbrowser'.format(self.get_env('XDG_DATA_HOME', '{0}/.local/share'.format(homedir)))
-        old_tbb_data = '{0}/.torbrowser'.format(homedir)
+        tbb_config = "{0}/torbrowser".format(
+            self.get_env("XDG_CONFIG_HOME", "{0}/.config".format(homedir))
+        )
+        tbb_cache = "{0}/torbrowser".format(
+            self.get_env("XDG_CACHE_HOME", "{0}/.cache".format(homedir))
+        )
+        tbb_local = "{0}/torbrowser".format(
+            self.get_env("XDG_DATA_HOME", "{0}/.local/share".format(homedir))
+        )
+        old_tbb_data = "{0}/.torbrowser".format(homedir)
 
         if tbb_version:
             # tarball filename
@@ -176,7 +199,11 @@ class Common(object):
             self.paths["sig_filename"] = tarball_filename + ".asc"
         else:
             self.paths = {
-                "dirs": {"config": tbb_config, "cache": tbb_cache, "local": tbb_local,},
+                "dirs": {
+                    "config": tbb_config,
+                    "cache": tbb_cache,
+                    "local": tbb_local,
+                },
                 "old_data_dir": old_tbb_data,
                 "tbl_bin": sys.argv[0],
                 "icon_file": os.path.join(
index 67cee7745b3546988fc09b08f54241cc8333fff7..70f309eea8971b9e2157521b82600f5f1f9a8b28 100644 (file)
@@ -2,7 +2,7 @@
 Tor Browser Launcher
 https://github.com/micahflee/torbrowser-launcher/
 
-Copyright (c) 2013-2017 Micah Lee <micah@micahflee.com>
+Copyright (c) 2013-2021 Micah Lee <micah@micahflee.com>
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
@@ -551,12 +551,11 @@ class DownloadThread(QtCore.QThread):
         self.path = path
 
         # Use tor socks5 proxy, if enabled
-        if self.common.settings['download_over_tor']:
-            socks5_address = 'socks5h://{}'.format(self.common.settings['tor_socks_address'])
-            self.proxies = {
-                'https': socks5_address,
-                'http': socks5_address
-            }
+        if self.common.settings["download_over_tor"]:
+            socks5_address = "socks5h://{}".format(
+                self.common.settings["tor_socks_address"]
+            )
+            self.proxies = {"https": socks5_address, "http": socks5_address}
         else:
             self.proxies = None
 
index 1df645c96845182f5312c70d53e117d80262ae7f..11ab18a63f5a9ccada8253d8894d8675f6011473 100644 (file)
@@ -2,7 +2,7 @@
 Tor Browser Launcher
 https://github.com/micahflee/torbrowser-launcher/
 
-Copyright (c) 2013-2017 Micah Lee <micah@micahflee.com>
+Copyright (c) 2013-2021 Micah Lee <micah@micahflee.com>
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation