Skip to content
This repository was archived by the owner on Jul 11, 2019. It is now read-only.

Commit 7ab4fd8

Browse files
committed
Using dict to process language mapping.
1 parent 8aa28a6 commit 7ab4fd8

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

bootstrap3_datetime/widgets.py

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,32 @@ def __iter__(self):
2424
lang = translation.get_language()
2525
if lang:
2626
lang = lang.lower()
27-
if lang.startswith('zh') and lang not in ('zh-cn', 'zh-tw',):
28-
if lang == 'zh-hk':
29-
lang = 'zh-tw'
30-
else:
31-
lang = 'zh-cn'
32-
elif len(lang) > 2 and lang not in ('ar-ma', 'en-au', 'en-ca', 'en-gb',
33-
'fa-ir', 'fr-ca', 'ms-my', 'pt-br',
34-
'rs-latin', 'tzm-la', ):
35-
lang = lang[:2]
36-
if lang != 'en':
27+
#There is language name that length>2 *or* contains uppercase.
28+
lang_map = {
29+
'ar-ma': 'ar-ma',
30+
'en-au': 'en-au',
31+
'en-ca': 'en-ca',
32+
'en-gb': 'en-gb',
33+
'en-us': 'en-us',
34+
'fa-ir': 'fa-ir',
35+
'fr-ca': 'fr-ca',
36+
'ms-my': 'ms-my',
37+
'pt-br': 'bt-BR',
38+
'rs-latin': 'rs-latin',
39+
'tzm-la': 'tzm-la',
40+
'tzm': 'tzm',
41+
'zh-cn': 'zh-CN',
42+
'zh-tw': 'zh-TW',
43+
'zh-hk': 'zh-TW',
44+
}
45+
if len(lang) > 2:
46+
lang = lang_map.get(lang, 'en-us')
47+
if lang not in ('en', 'en-us'):
3748
yield 'bootstrap3_datetime/js/locales/bootstrap-datetimepicker.%s.js' % (lang)
3849

3950
js = JsFiles()
4051
css = {'all': ('bootstrap3_datetime/css/bootstrap-datetimepicker.min.css',), }
41-
52+
4253
# http://momentjs.com/docs/#/parsing/string-format/
4354
# http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
4455
format_map = (('DDD', r'%j'),
@@ -67,15 +78,15 @@ def conv_datetime_format_js2py(cls, format):
6778
for js, py in cls.format_map:
6879
format = format.replace(js, py)
6980
return format
70-
81+
7182
html_template = '''
7283
<div%(div_attrs)s>
7384
<input%(input_attrs)s/>
7485
<span class="input-group-addon">
7586
<span%(icon_attrs)s></span>
7687
</span>
7788
</div>'''
78-
89+
7990
js_template = '''
8091
<script>
8192
$(function() {
@@ -128,3 +139,4 @@ def render(self, name, value, attrs=None):
128139
js = self.js_template % dict(picker_id=picker_id,
129140
options=json.dumps(self.options or {}))
130141
return mark_safe(force_text(html + js))
142+

0 commit comments

Comments
 (0)