diff options
author | Micah Lee <micah@micahflee.com> | 2020-10-13 17:28:54 -0700 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2020-10-13 17:28:54 -0700 |
commit | b42f92d714145dcc6282773e61f68c00b4b79a28 (patch) | |
tree | ee4443ab3c5300db279a3cf0686380074d98c973 /desktop/src/onionshare/strings.py | |
parent | f4abcf1be9122a28005dc3e0949bf5952192e982 (diff) | |
download | onionshare-b42f92d714145dcc6282773e61f68c00b4b79a28.tar.gz onionshare-b42f92d714145dcc6282773e61f68c00b4b79a28.zip |
Move docs back to root, move onionshare_gui into briefcase app, and make modifications so briefcase app will work
Diffstat (limited to 'desktop/src/onionshare/strings.py')
-rw-r--r-- | desktop/src/onionshare/strings.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/desktop/src/onionshare/strings.py b/desktop/src/onionshare/strings.py new file mode 100644 index 00000000..ce9207da --- /dev/null +++ b/desktop/src/onionshare/strings.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +""" +OnionShare | https://onionshare.org/ + +Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +""" +import json +import locale +import os + +strings = {} +translations = {} + + +def load_strings(common, locale_dir): + """ + Loads translated strings and fallback to English + if the translation does not exist. + """ + global strings, translations + + # Load all translations + translations = {} + for locale in common.settings.available_locales: + filename = os.path.join(locale_dir, f"{locale}.json") + with open(filename, encoding="utf-8") as f: + translations[locale] = json.load(f) + + # Build strings + default_locale = "en" + current_locale = common.settings.get("locale") + strings = {} + for s in translations[default_locale]: + if s in translations[current_locale] and translations[current_locale][s] != "": + strings[s] = translations[current_locale][s] + else: + strings[s] = translations[default_locale][s] + + +def translated(k): + """ + Returns a translated string. + """ + return strings[k] + + +_ = translated |