summaryrefslogtreecommitdiff
path: root/searx/data
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2024-02-16 20:46:18 +0000
committerMarkus Heiser <markus.heiser@darmarIT.de>2024-02-20 10:43:20 +0100
commited66ed758dbd1c926296aa227da8a82fff9166e1 (patch)
tree1e7f818ee5dab0d7c09bad09d3586f0f87231584 /searx/data
parent76845ea42c2c3484e30c118f07671b13ade07a29 (diff)
downloadsearxng-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__.py2
-rw-r--r--searx/data/locales.json69
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