Package pytils :: Package templatetags :: Module pytils_translit
[hide private]
[frames] | no frames]

Source Code for Module pytils.templatetags.pytils_translit

 1  # -*- coding: utf-8 -*- 
 2  # License: GNU GPL2 
 3  # Author: Pythy <the.pythy@gmail.com> 
 4  """ 
 5  pytils.translit templatetags for Django web-framework 
 6  """ 
 7   
 8  __id__ = __revision__ = "$Id: pytils_translit.py 29 2006-10-21 08:28:27Z the.pythy $" 
 9  __url__ = "$URL: https://pythy.googlecode.com/svn/trunk/pytils/pytils/templatetags/pytils_translit.py $" 
10   
11  from django import template, conf 
12  from pytils import translit, utils 
13   
14  register = template.Library()  #: Django template tag/filter registrator 
15  encoding = conf.settings.DEFAULT_CHARSET  #: Current charset (sets in Django project's settings) 
16  debug = conf.settings.DEBUG  #: Debug mode (sets in Django project's settings) 
17  show_value = getattr(conf.settings, 'PYTILS_SHOW_VALUES_ON_ERROR', False)  #: Show values on errors (sets in Django project's settings) 
18   
19  # Если отладка, то показываем 'unknown+сообщение об ошибке'. 
20  # Если отладка выключена, то можно чтобы при ошибках показывалось 
21  # значение, переданное фильтру (PYTILS_SHOW_VALUES_ON_ERROR=True) 
22  # либо пустая строка. 
23   
24  if debug: 
25      default_value = "unknown: %(error)s" 
26      default_uvalue = u"unknown: %(error)s" 
27  elif show_value: 
28      default_value = "%(value)s" 
29      default_uvalue = u"%(value)s" 
30  else: 
31      default_value = "" 
32      default_uvalue = u"" 
33   
34   
35  # -- filters -- 
36   
37 -def translify(stext):
38 """Translify russian text""" 39 try: 40 res = translit.translify( 41 utils.provide_unicode( 42 stext, 43 encoding, 44 default=default_value 45 )) 46 except Exception, err: 47 # because filter must die silently 48 res = default_value % {'error': err, 'value': stext} 49 return res
50
51 -def detranslify(stext):
52 """Detranslify russian text""" 53 try: 54 res = utils.provide_str( 55 translit.detranslify(stext), 56 encoding, 57 default=default_uvalue) 58 except Exception, err: 59 # because filter must die silently 60 res = default_value % {'error': err, 'value': stext} 61 return res
62
63 -def slugify(stext):
64 """Make slug from (russian) text""" 65 try: 66 res = translit.slugify( 67 utils.provide_unicode( 68 stext, 69 encoding, 70 default=default_value 71 )) 72 except Exception, err: 73 # because filter must die silently 74 res = default_value % {'error': err, 'value': stext} 75 return res
76 77 # -- register filters 78 register.filter('translify', translify) 79 register.filter('detranslify', detranslify) 80 register.filter('slugify', slugify) 81