Home | Trees | Indices | Help |
---|
|
1 # -*- coding: utf-8 -*- 2 # -*- test-case-name: pytils.test.templatetags.test_translit -*- 3 # pytils - simple processing for russian strings 4 # Copyright (C) 2006-2007 Yury Yurevich 5 # 6 # http://www.pyobject.ru/projects/pytils/ 7 # 8 # This program is free software; you can redistribute it and/or 9 # modify it under the terms of the GNU General Public License 10 # as published by the Free Software Foundation, version 2 11 # of the License. 12 # 13 # This program is distributed in the hope that it will be useful, 14 # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 # GNU General Public License for more details. 17 """ 18 pytils.translit templatetags for Django web-framework 19 """ 20 21 __id__ = __revision__ = "$Id: pytils_translit.py 102 2007-07-12 12:33:36Z the.pythy $" 22 __url__ = "$URL: https://pythy.googlecode.com/svn/tags/pytils/0_2_2/pytils/templatetags/pytils_translit.py $" 23 24 from django import template, conf 25 from pytils import translit, utils 26 27 register = template.Library() #: Django template tag/filter registrator 28 encoding = conf.settings.DEFAULT_CHARSET #: Current charset (sets in Django project's settings) 29 debug = conf.settings.DEBUG #: Debug mode (sets in Django project's settings) 30 show_value = getattr(conf.settings, 'PYTILS_SHOW_VALUES_ON_ERROR', False) #: Show values on errors (sets in Django project's settings) 31 32 # Если отладка, то показываем 'unknown+сообщение об ошибке'. 33 # Если отладка выключена, то можно чтобы при ошибках показывалось 34 # значение, переданное фильтру (PYTILS_SHOW_VALUES_ON_ERROR=True) 35 # либо пустая строка. 36 37 if debug: 38 default_value = "unknown: %(error)s" 39 default_uvalue = u"unknown: %(error)s" 40 elif show_value: 41 default_value = "%(value)s" 42 default_uvalue = u"%(value)s" 43 else: 44 default_value = "" 45 default_uvalue = u"" 46 47 48 # -- filters -- 4951 """Translify russian text""" 52 try: 53 res = translit.translify( 54 utils.provide_unicode( 55 stext, 56 encoding, 57 default=default_value 58 )) 59 except Exception, err: 60 # because filter must die silently 61 res = default_value % {'error': err, 'value': stext} 62 return res6365 """Detranslify russian text""" 66 try: 67 res = utils.provide_str( 68 translit.detranslify(stext), 69 encoding, 70 default=default_uvalue) 71 except Exception, err: 72 # because filter must die silently 73 res = default_value % {'error': err, 'value': stext} 74 return res7577 """Make slug from (russian) text""" 78 try: 79 res = translit.slugify( 80 utils.provide_unicode( 81 stext, 82 encoding, 83 default=default_value 84 )) 85 except Exception, err: 86 # because filter must die silently 87 res = default_value % {'error': err, 'value': stext} 88 return res89 90 # -- register filters 91 register.filter('translify', translify) 92 register.filter('detranslify', detranslify) 93 register.filter('slugify', slugify) 94
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0beta1 on Thu Jul 12 20:17:54 2007 | http://epydoc.sourceforge.net |