]> git.lizzy.rs Git - torbrowser-launcher.git/commitdiff
Merge branch 'fix-hk-language-fallback' of https://github.com/yookoala/torbrowser...
authorMicah Lee <micah@micahflee.com>
Fri, 18 Jun 2021 21:58:27 +0000 (17:58 -0400)
committerMicah Lee <micah@micahflee.com>
Fri, 18 Jun 2021 21:58:27 +0000 (17:58 -0400)
1  2 
torbrowser_launcher/common.py

index 13b57348aed2680bbf8744a5cd61e3891ce12c46,60e7e1c4aad2615cc88eb02474decd5f6b916010..be4f554c586c8ccf217fb80e5e9d1691eee84830
@@@ -70,54 -69,25 +70,62 @@@ class Common(object)
      # discover the architecture and language
      def discover_arch_lang(self):
          # figure out the architecture
 -        self.architecture = 'x86_64' if '64' in platform.architecture()[0] else 'i686'
 +        self.architecture = "x86_64" if "64" in platform.architecture()[0] else "i686"
  
          # figure out the language
 -        available_languages = ['ar', 'ca', 'da', 'de', 'en-US', 'es-ES', 'fa', 'fr', 'ga-IE', 'he', 'id', 'is', 'it', 'ja', 'ko', 'nb-NO', 'nl', 'pl', 'pt-BR', 'ru', 'sv-SE', 'tr', 'vi', 'zh-CN', 'zh-TW']
 +        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",
 +        ]
+         # a list of manually configured language fallback overriding
+         language_overrides = {
 -            'zh-HK': 'zh-TW',
++            "zh-HK": "zh-TW",
+         }
          default_locale = locale.getlocale()[0]
          if default_locale is None:
 -            self.language = 'en-US'
 +            self.language = "en-US"
          else:
 -            self.language = default_locale.replace('_', '-')
 +            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]
 +                self.language = self.language.split("-")[0]
                  if self.language not in available_languages:
                      for l in available_languages:
                          if l[0:2] == self.language:
                  try:
                      os.mkdir(homedir, 0o700)
                  except:
 -                    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)
 +                    self.set_gui(
 +                        "error", _("Error creating {0}").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
 -            if self.architecture == 'x86_64':
 -                arch = 'linux64'
 +            if self.architecture == "x86_64":
 +                arch = "linux64"
              else:
 -                arch = 'linux32'
 +                arch = "linux32"
  
 -            if hasattr(self, 'settings') and self.settings['force_en-US']:
 -                language = 'en-US'
 +            if hasattr(self, "settings") and self.settings["force_en-US"]:
 +                language = "en-US"
              else:
                  language = self.language
 -            tarball_filename = 'tor-browser-' + arch + '-' + tbb_version + '_' + language + '.tar.xz'
 +            tarball_filename = (
 +                "tor-browser-" + arch + "-" + tbb_version + "_" + language + ".tar.xz"
 +            )
  
              # tarball
 -            self.paths['tarball_url'] = '{0}torbrowser/' + tbb_version + '/' + tarball_filename
 -            self.paths['tarball_file'] = tbb_cache + '/download/' + tarball_filename
 -            self.paths['tarball_filename'] = tarball_filename
 +            self.paths["tarball_url"] = (
 +                "{0}torbrowser/" + tbb_version + "/" + tarball_filename
 +            )
 +            self.paths["tarball_file"] = tbb_cache + "/download/" + tarball_filename
 +            self.paths["tarball_filename"] = tarball_filename
  
              # sig
 -            self.paths['sig_url'] = '{0}torbrowser/' + tbb_version + '/' + tarball_filename + '.asc'
 -            self.paths['sig_file'] = tbb_cache + '/download/' + tarball_filename + '.asc'
 -            self.paths['sig_filename'] = tarball_filename + '.asc'
 +            self.paths["sig_url"] = (
 +                "{0}torbrowser/" + tbb_version + "/" + tarball_filename + ".asc"
 +            )
 +            self.paths["sig_file"] = (
 +                tbb_cache + "/download/" + tarball_filename + ".asc"
 +            )
 +            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,
++                "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(os.path.dirname(SHARE), 'pixmaps/torbrowser.png'),
 -                'torproject_pem': os.path.join(SHARE, 'torproject.pem'),
 -                'signing_keys': {
 -                    'tor_browser_developers': os.path.join(SHARE, 'tor-browser-developers.asc')
 +                "old_data_dir": old_tbb_data,
 +                "tbl_bin": sys.argv[0],
 +                "icon_file": os.path.join(
 +                    os.path.dirname(SHARE), "pixmaps/torbrowser.png"
 +                ),
 +                "torproject_pem": os.path.join(SHARE, "torproject.pem"),
 +                "signing_keys": {
 +                    "tor_browser_developers": os.path.join(
 +                        SHARE, "tor-browser-developers.asc"
 +                    )
                  },
 -                'mirrors_txt': [os.path.join(SHARE, 'mirrors.txt'),
 -                                tbb_config + '/mirrors.txt'],
 -                'download_dir': tbb_cache + '/download',
 -                'gnupg_homedir': tbb_local + '/gnupg_homedir',
 -                'settings_file': tbb_config + '/settings.json',
 -                'settings_file_pickle': tbb_config + '/settings',
 -                'version_check_url': 'https://aus1.torproject.org/torbrowser/update_3/release/Linux_x86_64-gcc3/x/en-US',
 -                'version_check_file': tbb_cache + '/download/release.xml',
 -                'tbb': {
 -                    'changelog': tbb_local + '/tbb/' + self.architecture + '/tor-browser_' +
 -                                 self.language + '/Browser/TorBrowser/Docs/ChangeLog.txt',
 -                    'dir': tbb_local + '/tbb/' + self.architecture,
 -                    'dir_tbb': tbb_local + '/tbb/' + self.architecture + '/tor-browser_' + self.language,
 -                    'start': tbb_local + '/tbb/' + self.architecture + '/tor-browser_' +
 -                             self.language + '/start-tor-browser.desktop'
 +                "mirrors_txt": [
 +                    os.path.join(SHARE, "mirrors.txt"),
 +                    tbb_config + "/mirrors.txt",
 +                ],
 +                "download_dir": tbb_cache + "/download",
 +                "gnupg_homedir": tbb_local + "/gnupg_homedir",
 +                "settings_file": tbb_config + "/settings.json",
 +                "settings_file_pickle": tbb_config + "/settings",
 +                "version_check_url": "https://aus1.torproject.org/torbrowser/update_3/release/Linux_x86_64-gcc3/x/en-US",
 +                "version_check_file": tbb_cache + "/download/release.xml",
 +                "tbb": {
 +                    "changelog": tbb_local
 +                    + "/tbb/"
 +                    + self.architecture
 +                    + "/tor-browser_"
 +                    + self.language
 +                    + "/Browser/TorBrowser/Docs/ChangeLog.txt",
 +                    "dir": tbb_local + "/tbb/" + self.architecture,
 +                    "dir_tbb": tbb_local
 +                    + "/tbb/"
 +                    + self.architecture
 +                    + "/tor-browser_"
 +                    + self.language,
 +                    "start": tbb_local
 +                    + "/tbb/"
 +                    + self.architecture
 +                    + "/tor-browser_"
 +                    + self.language
 +                    + "/start-tor-browser.desktop",
                  },
              }