]> git.lizzy.rs Git - torbrowser-launcher.git/blobdiff - torbrowser_launcher/common.py
Fix pt_BR po file
[torbrowser-launcher.git] / torbrowser_launcher / common.py
index 2cad29ff84f59589dd782f0d201771d3c5fd23b6..7c1a42d10b8d133261d8111cdf35f3dcdb24e775 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,35 +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",
         ]
-        default_locale = locale.getlocale()[0]
+
+        # 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:
@@ -115,6 +135,14 @@ class Common(object):
             if self.language not in available_languages:
                 self.language = "en-US"
 
+    # get value of environment variable, if it is not set return the default value
+    @staticmethod
+    def get_env(var_name, default_value):
+        value = os.getenv(var_name)
+        if not value:
+            value = default_value
+        return value
+
     # build all relevant paths
     def build_paths(self, tbb_version=None):
         homedir = os.getenv("HOME")
@@ -127,12 +155,16 @@ 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}/.config/torbrowser".format(homedir)
-        tbb_cache = "{0}/.cache/torbrowser".format(homedir)
-        tbb_local = "{0}/.local/share/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:
@@ -167,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(
@@ -247,7 +283,7 @@ class Common(object):
         # Fetch key from wkd, as per https://support.torproject.org/tbb/how-to-verify-signature/
         p = subprocess.Popen(
             [
-                "/usr/bin/gpg2",
+                "gpg",
                 "--status-fd",
                 "2",
                 "--homedir",