From fbe5d88acf1f824f81e199f3917067bfca85fcdd Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@bioforsk.no> Date: Tue, 20 Oct 2015 14:01:31 +0200 Subject: [PATCH] Internationalized SITE_OWNER_NAME --- VIPSWeb/local_settings_sample.py | 2 +- VIPSWeb/templates/base.html | 4 ++-- VIPSWeb/templatetags/template_helper.py | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/VIPSWeb/local_settings_sample.py b/VIPSWeb/local_settings_sample.py index c95ad114..491df59b 100644 --- a/VIPSWeb/local_settings_sample.py +++ b/VIPSWeb/local_settings_sample.py @@ -108,7 +108,7 @@ VIPSCOREMANAGER_SSLCERT_PATH = None VIPSLOGIC_DATE_FORMAT = "%Y-%m-%d" # Site owner info -SITE_OWNER_NAME = "FooBar Inc" +SITE_OWNER_NAME = {"en":"FooBar Inc","nb":"ACME industrier"} SITE_OWNER_URL = "http://www.example.com/" # OpenLayers Map initial configuration diff --git a/VIPSWeb/templates/base.html b/VIPSWeb/templates/base.html index a673810d..edbff6cb 100644 --- a/VIPSWeb/templates/base.html +++ b/VIPSWeb/templates/base.html @@ -97,8 +97,8 @@ </div><!-- End contents container --> </div><!-- End row with sidebar and contents container --> <footer> - <p>© {% now "Y" %} <a href="{{settings.SITE_OWNER_URL}}" target="new">{{settings.SITE_OWNER_NAME}}</a></p> - {% get_footer_text_i18n %} + <p>© {% now "Y" %} <a href="{{settings.SITE_OWNER_URL}}" target="new">{% get_text_i18n settings.SITE_OWNER_NAME %}</a></p> + {% get_text_i18n settings.FOOTER_HTML%} </footer> </div> <!-- end contentwrapper--> diff --git a/VIPSWeb/templatetags/template_helper.py b/VIPSWeb/templatetags/template_helper.py index a402aaa2..2ba70f2a 100644 --- a/VIPSWeb/templatetags/template_helper.py +++ b/VIPSWeb/templatetags/template_helper.py @@ -76,6 +76,8 @@ def generate_main_menu(context): return menu_html # Get the footer text in correct language +# REPLACED WITH THE MORE FLEXIBLE get_text_i18(text_dict) BELOW +""" @register.simple_tag() def get_footer_text_i18n(): # Absolute fallback is the empty string @@ -91,6 +93,27 @@ def get_footer_text_i18n(): footer_html = settings.FOOTER_HTML[settings.FOOTER_HTML.keys()[0]] return footer_html if footer_html != None else "" +""" + +# Get text in correct language +# Assuming text is on format{"LANGCODE":"CONTENTS","LANGCODE":"CONTENTS"} +@register.simple_tag +def get_text_i18n(text_dict): + # If no dictionary, return as-is + if not isinstance(text_dict,dict): + return text_dict + text = None + # Languages in preferred order: user's selected language, default language of site, English + language_candidates = [translation.get_language(), settings.LANGUAGE_CODE, "en"] + for language_candidate in language_candidates: + if text_dict.get(language_candidate, None) != None: + text = text_dict.get(language_candidate, text_dict) + break + # Fallback: First item in list + if text == None and len(text_dict.keys()) > 0: + text = text_dict[text_dict.keys()[0]] + + return text if text != None else "" @register.simple_tag def get_system_time(format_string): -- GitLab