diff options
author | Alexandre Flament <alex@al-f.net> | 2024-02-16 20:46:18 +0000 |
---|---|---|
committer | Markus Heiser <markus.heiser@darmarIT.de> | 2024-02-20 10:43:20 +0100 |
commit | ed66ed758dbd1c926296aa227da8a82fff9166e1 (patch) | |
tree | 1e7f818ee5dab0d7c09bad09d3586f0f87231584 /searx/data | |
parent | 76845ea42c2c3484e30c118f07671b13ade07a29 (diff) | |
download | searxng-ed66ed758dbd1c926296aa227da8a82fff9166e1.tar.gz searxng-ed66ed758dbd1c926296aa227da8a82fff9166e1.zip |
[mod] reduce memory footprint by not calling babel.Locale.parse at runtime
babel.Locale.parse loads more than 60MB in RAM. The only purpose is to get:
LOCALE_NAMES - searx.data.LOCALES["LOCALE_NAMES"]
RTL_LOCALES - searx.data.LOCALES["RTL_LOCALES"]
This commit calls babel.Locale.parse when the translations are update from
weblate and stored in::
searx/data/locales.json
This file can be build by::
./manage data.locales
By store these variables in searx.data when the translations are updated we save
round about 65MB (usually 4 worker = 260MB of RAM saved.
Suggested-by: https://github.com/searxng/searxng/discussions/2633#discussioncomment-8490494
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'searx/data')
-rw-r--r-- | searx/data/__init__.py | 2 | ||||
-rw-r--r-- | searx/data/locales.json | 69 |
2 files changed, 71 insertions, 0 deletions
diff --git a/searx/data/__init__.py b/searx/data/__init__.py index 0822f4ac8..c79d1042f 100644 --- a/searx/data/__init__.py +++ b/searx/data/__init__.py @@ -15,6 +15,7 @@ __all__ = [ 'EXTERNAL_BANGS', 'OSM_KEYS_TAGS', 'ENGINE_DESCRIPTIONS', + 'LOCALES', 'ahmia_blacklist_loader', ] @@ -50,3 +51,4 @@ EXTERNAL_BANGS = _load('external_bangs.json') OSM_KEYS_TAGS = _load('osm_keys_tags.json') ENGINE_DESCRIPTIONS = _load('engine_descriptions.json') ENGINE_TRAITS = _load('engine_traits.json') +LOCALES = _load('locales.json') diff --git a/searx/data/locales.json b/searx/data/locales.json new file mode 100644 index 000000000..cb45b1601 --- /dev/null +++ b/searx/data/locales.json @@ -0,0 +1,69 @@ +{ + "LOCALE_NAMES": { + "af": "Afrikaans", + "ar": "العربية (Arabic)", + "bg": "Български (Bulgarian)", + "bn": "বাংলা (Bangla)", + "bo": "བོད་སྐད་ (Tibetan)", + "ca": "Català (Catalan)", + "cs": "Čeština (Czech)", + "cy": "Cymraeg (Welsh)", + "da": "Dansk (Danish)", + "de": "Deutsch (German)", + "dv": "ދިވެހި (Dhivehi)", + "el-GR": "Ελληνικά, Ελλάδα (Greek, Greece)", + "en": "English", + "eo": "Esperanto", + "es": "Español (Spanish)", + "et": "Eesti (Estonian)", + "eu": "Euskara (Basque)", + "fa-IR": "فارسی, ایران (Persian, Iran)", + "fi": "Suomi (Finnish)", + "fil": "Filipino", + "fr": "Français (French)", + "gl": "Galego (Galician)", + "he": "עברית (Hebrew)", + "hr": "Hrvatski (Croatian)", + "hu": "Magyar (Hungarian)", + "ia": "Interlingua", + "id": "Indonesia (Indonesian)", + "it": "Italiano (Italian)", + "ja": "日本語 (Japanese)", + "ko": "한국어 (Korean)", + "lt": "Lietuvių (Lithuanian)", + "lv": "Latviešu (Latvian)", + "ml": "മലയാളം (Malayalam)", + "ms": "Melayu (Malay)", + "nb-NO": "Norsk bokmål, Norge (Norwegian bokmål, Norway)", + "nl": "Nederlands (Dutch)", + "nl-BE": "Nederlands, België (Dutch, Belgium)", + "oc": "Occitan", + "pa": "ਪੰਜਾਬੀ (Punjabi)", + "pap": "Papiamento", + "pl": "Polski (Polish)", + "pt": "Português (Portuguese)", + "pt-BR": "Português, Brasil (Portuguese, Brazil)", + "ro": "Română (Romanian)", + "ru": "Русский (Russian)", + "si": "සිංහල (Sinhala)", + "sk": "Slovenčina (Slovak)", + "sl": "Slovenščina (Slovenian)", + "sr": "Српски (Serbian)", + "sv": "Svenska (Swedish)", + "szl": "Ślōnski (Silesian)", + "ta": "தமிழ் (Tamil)", + "te": "తెలుగు (Telugu)", + "th": "ไทย (Thai)", + "tr": "Türkçe (Turkish)", + "uk": "Українська (Ukrainian)", + "vi": "Tiếng việt (Vietnamese)", + "zh-HK": "中文, 中國香港特別行政區 (Chinese, Hong Kong SAR China)", + "zh-Hans-CN": "中文, 中国 (Chinese, China)", + "zh-Hant-TW": "中文, 台灣 (Chinese, Taiwan)" + }, + "RTL_LOCALES": [ + "fa-IR", + "ar", + "he" + ] +}
\ No newline at end of file |