# 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",
},
}