diff options
| author | Glandos <bugs-github@antipoul.fr> | 2020-05-07 22:56:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-07 22:56:17 +0200 |
| commit | 981edd413acfdd4786faf5439d2a05d6d7e4649e (patch) | |
| tree | 3c1598baf52dd447fd806a5038e8b8f0c0e83fbc /ihatemoney/utils.py | |
| parent | 76911983af9e04e379853ab3c66804e73f5f16a0 (diff) | |
| download | ihatemoney-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.py | 17 |
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 |
