custom template filter to help language display
parent
6a6ee190e4
commit
eaa69612e2
|
@ -0,0 +1,51 @@
|
||||||
|
"""
|
||||||
|
The truncatechars filter is part of Django dev, but we're on 1.3.1
|
||||||
|
The following is the filter and its dependencies
|
||||||
|
To use this filter, put "{% load truncatechars %}" at the beginning of your template,
|
||||||
|
then {{ myvariable|truncatechars:num }}
|
||||||
|
"""
|
||||||
|
import unicodedata
|
||||||
|
from django.template.base import Library
|
||||||
|
from django.template.defaultfilters import stringfilter
|
||||||
|
from django.utils.translation import get_language_info
|
||||||
|
|
||||||
|
register = Library()
|
||||||
|
|
||||||
|
custom_language_info = {'xx': {'name':'unknown', 'name_local':'unknown'},
|
||||||
|
'un': {'name':'??', 'name_local':'??'},
|
||||||
|
'zh': {'name':'chinese', 'name_local':u'\u4E2D\u6587'},
|
||||||
|
'la': {'name':'Latin', 'name_local':'latin'},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# need to not throw exceptions when no built-in lang yet
|
||||||
|
@register.filter()
|
||||||
|
@stringfilter
|
||||||
|
def ez_lang_name(value):
|
||||||
|
"""
|
||||||
|
returns language name without throwing exceptions.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
li = get_language_info( value )
|
||||||
|
except KeyError: # Invalid literal for int().
|
||||||
|
li = custom_language_info[ value ]
|
||||||
|
return li['name']
|
||||||
|
except KeyError:
|
||||||
|
return value
|
||||||
|
|
||||||
|
# need to not throw exceptions when no built-in lang yet
|
||||||
|
@register.filter()
|
||||||
|
@stringfilter
|
||||||
|
def ez_lang_name_local(value):
|
||||||
|
"""
|
||||||
|
returns language name in its language without throwing exceptions.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
li = get_language_info( value )
|
||||||
|
except KeyError: # Invalid literal for int().
|
||||||
|
li = custom_language_info[ value ]
|
||||||
|
return li['name_local']
|
||||||
|
except KeyError:
|
||||||
|
return value
|
Loading…
Reference in New Issue