diff --git a/app.py b/app.py index f6c66c5..30d1c30 100644 --- a/app.py +++ b/app.py @@ -12,13 +12,16 @@ from flask import ( url_for, ) + cp = ConfigParser() app = Flask(__name__) def load_all_locales(): - locales = {} - locales_dir = "locales" + + locales_list = [] + locales_dict = {} + locales_dir = "locales" for filename in listdir(locales_dir): if filename.endswith(".ini"): @@ -26,12 +29,17 @@ def load_all_locales(): cp = ConfigParser() with open(path.join(locales_dir, filename), encoding="utf-8") as f: cp.read_file(f) - locales[lang] = {section: dict(cp[section]) for section in cp.sections()} - - return locales + locales_dict[lang] = {section: dict(cp[section]) for section in cp.sections()} + + for code, data in locales_dict.items(): + full_name = data.get("title", {}).get("language", code) + locales_list.append({"code": code, "name": full_name}) + + print(locales_list) + return locales_list, locales_dict -locales = load_all_locales() +locales_list, locales_dict = load_all_locales() @app.route("/favicon.ico") @@ -51,30 +59,32 @@ def home(): @app.route("/") def index(lang): - if lang not in locales: + if lang not in locales_dict: abort(404) return render_template( f"{lang}.html", - locale=locales[lang], - lang=lang, - year=date.today().year, - current=request.endpoint, + loc_list = locales_list, + locale = locales_dict[lang], + lang = lang, + year = date.today().year, + current = request.endpoint, ) @app.route("//download") def download_page(lang): - if lang not in locales: + if lang not in locales_dict: abort(404) return render_template( "tmpl/download.htm", - locale=locales[lang], - lang=lang, - year=date.today().year, - current=request.endpoint, + loc_list = locales_list, + locale = locales_dict[lang], + lang = lang, + year = date.today().year, + current = request.endpoint, ) diff --git a/templates/tmpl/_lang-dropdown.htm b/templates/tmpl/_lang-dropdown.htm index 33257db..d94fe0b 100644 --- a/templates/tmpl/_lang-dropdown.htm +++ b/templates/tmpl/_lang-dropdown.htm @@ -1,24 +1,27 @@
- {%- for l, lang in ( - ("en", "English"), - ("ru", "Русский"), - ("es", "Español"), - ("fr", "Français"), - ("de", "Deutsch"), - ("it", "Italiano"), - ("nl", "Nederlands") - ) %} - {%- if request.view_args['lang'] == l %} - - - {{ l }} - {{ lang }} + {%- for lang_item in loc_list %} + {% set lang_code = lang_item.code %} + {% set lang_name = lang_item.name %} + {%- if request.view_args["lang"] == lang_code %} + + + {{ lang_code }} + {{ lang_name }} + + + {%- else %} + + {{ lang_code }} + {{ lang_name }} - - {%- else %} - de{{ lang }} - {%- endif %} - {%- endfor %} + {%- endif %} + {%- endfor %}
-
+ \ No newline at end of file