aboutsummaryrefslogtreecommitdiff
path: root/ihatemoney/utils.py
diff options
context:
space:
mode:
authorGlandos <bugs-github@antipoul.fr>2020-05-07 22:56:17 +0200
committerGitHub <noreply@github.com>2020-05-07 22:56:17 +0200
commit981edd413acfdd4786faf5439d2a05d6d7e4649e (patch)
tree3c1598baf52dd447fd806a5038e8b8f0c0e83fbc /ihatemoney/utils.py
parent76911983af9e04e379853ab3c66804e73f5f16a0 (diff)
downloadihatemoney-mirror-981edd413acfdd4786faf5439d2a05d6d7e4649e.zip
ihatemoney-mirror-981edd413acfdd4786faf5439d2a05d6d7e4649e.tar.gz
ihatemoney-mirror-981edd413acfdd4786faf5439d2a05d6d7e4649e.tar.bz2
Improve currencies (#604)
- Rename "No Currency" to ISO4217 "XXX" - Use Babel to render currency symbols and names in currency lists - Improve i18n in bill lists Fix #601 Fix #600
Diffstat (limited to 'ihatemoney/utils.py')
-rw-r--r--ihatemoney/utils.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/ihatemoney/utils.py b/ihatemoney/utils.py
index 7fdad61..175b762 100644
--- a/ihatemoney/utils.py
+++ b/ihatemoney/utils.py
@@ -9,8 +9,9 @@ import os
import re
from babel import Locale
+from babel.numbers import get_currency_name, get_currency_symbol
from flask import current_app, redirect, render_template
-from flask_babel import get_locale
+from flask_babel import get_locale, lazy_gettext as _
import jinja2
from werkzeug.routing import HTTPException, RoutingException
@@ -281,6 +282,20 @@ class FormEnum(Enum):
return str(self.value)
+def render_localized_currency(code, detailed=True):
+ if code == "XXX":
+ return _("No Currency")
+ locale = get_locale() or "en_US"
+ symbol = get_currency_symbol(code, locale=locale)
+ details = ""
+ if detailed:
+ details = f" − {get_currency_name(code, locale=locale)}"
+ if symbol == code:
+ return f"{code}{details}"
+ else:
+ return f"{code} − {symbol}{details}"
+
+
def render_localized_template(template_name_prefix, **context):
"""Like render_template(), but selects the right template according to the
current user language. Fallback to English if a template for the