Changeset 5718
- Timestamp:
- 11/18/08 16:47:23 (2 months ago)
- Files:
-
- branches/1.1/turbogears/i18n/__init__.py (modified) (1 diff)
- branches/1.1/turbogears/i18n/kidutils.py (modified) (6 diffs)
- branches/1.1/turbogears/i18n/sogettext/__init__.py (modified) (1 diff)
- branches/1.1/turbogears/i18n/tests/__init__.py (modified) (1 diff)
- branches/1.1/turbogears/i18n/tests/test_kidutils.py (modified) (1 diff)
- branches/1.1/turbogears/i18n/tests/test_tg_gettext.py (modified) (1 diff)
- branches/1.1/turbogears/view/base.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/1.1/turbogears/i18n/__init__.py
r5684 r5718 2 2 """ 3 3 4 from turbogears.i18n.tg_gettext import gettext, ngettext, install, \ 5 is_locale_supported, lazy_gettext, lazy_ngettext, plain_gettext 6 from turbogears.i18n.utils import get_locale, get_accept_languages, \ 7 set_session_locale, google_translate 8 from turbogears.i18n.format import get_countries, get_country, \ 9 get_month_names, get_abbr_month_names, get_weekday_names, \ 10 get_abbr_weekday_names, get_languages, format_date, format_number, \ 11 format_decimal, format_currency, parse_number, parse_decimal 12 # FIXME-dbr: we need to make kid-support pluggable or such. 13 try: 14 from turbogears.i18n.kidutils import translate, i18n_filter 15 except ImportError: 16 def i18n_filter(stream, template, locale=None): 17 raise Exception("the i18n_filter is currently KID-only") 4 from turbogears.i18n.tg_gettext import (gettext, ngettext, install, 5 is_locale_supported, lazy_gettext, lazy_ngettext, plain_gettext) 6 7 from turbogears.i18n.utils import (get_locale, get_accept_languages, 8 set_session_locale, google_translate) 9 10 from turbogears.i18n.format import (get_countries, get_country, 11 get_month_names, get_abbr_month_names, get_weekday_names, 12 get_abbr_weekday_names, get_languages, format_date, format_number, 13 format_decimal, format_currency, parse_number, parse_decimal) 14 branches/1.1/turbogears/i18n/kidutils.py
r5684 r5718 7 7 # use plain_gettext because Kid template's strings always evaluated immediately 8 8 from turbogears.i18n.tg_gettext import plain_gettext as gettext 9 from turbogears.i18n.utils import google_translate10 9 11 10 def translate(item, attr=None): … … 35 34 if attr is None: 36 35 attr = config.get("i18n.templateLocaleAttribute", "lang") 36 37 37 translate_all(item, item.get(attr), attr) 38 38 return item … … 41 41 prefix = '' 42 42 postfix = '' 43 if len(text) > 0 and text[0].isspace(): prefix = text[0] 44 if len(text) > 1 and text[-1].isspace(): postfix = text[-1] 43 if len(text) > 0 and text[0].isspace(): 44 prefix = text[0] 45 46 if len(text) > 1 and text[-1].isspace(): 47 postfix = text[-1] 48 45 49 return prefix + gettext(text.strip(), lang) + postfix 46 50 … … 54 58 if tree.text: 55 59 tree.text = __translate_text(tree.text, lang) 60 56 61 if tree.tail and not inroot: 57 62 # Don't translate tail of root. It is beyond the scope of the lang attr 58 63 tree.tail = __translate_text(tree.tail, lang) 64 59 65 for element in tree: 60 66 # check overriding lang attribute … … 63 69 64 70 def i18n_filter(stream, template, locale=None): 65 """Kid template filter which calls translates all elements matching language 66 attribute(set in configuration as i18n.templateLocaleAttribute, default 'lang') 71 """Kid template filter which calls translates all elements matching 72 language attribute(set in configuration as i18n.templateLocaleAttribute, 73 default 'lang') 67 74 """ 68 75 69 76 lang_attr = config.get("i18n.templateLocaleAttribute", "lang") 70 locales =[locale]77 locales = [locale] 71 78 72 79 for ev, item in stream: 73 80 74 if ev ==START:81 if ev == START: 75 82 l = item.get(lang_attr) 76 83 if l: 77 84 locale = l 78 85 locales.append(l) 79 elif ev==TEXT: 86 87 elif ev == TEXT: 80 88 prefix = '' 81 89 postfix = '' 82 if len(item) > 0 and item[0] == ' ': prefix =' ' 83 if len(item) > 1 and item[-1] == ' ': postfix =' ' 90 if len(item) > 0 and item[0] == ' ': 91 prefix = ' ' 92 93 if len(item) > 1 and item[-1] == ' ': 94 postfix = ' ' 84 95 85 96 text = item.strip() … … 87 98 item = gettext(text, locale) 88 99 item = prefix + item + postfix 89 elif ev==END: 100 101 elif ev == END: 90 102 if item.get(lang_attr): 91 103 locales.pop() branches/1.1/turbogears/i18n/sogettext/__init__.py
r5508 r5718 1 """ 2 SQLObject-based version of gettext 1 """SQLObject-based version of gettext 3 2 """ 4 3 import turbogears branches/1.1/turbogears/i18n/tests/__init__.py
r4124 r5718 6 6 7 7 def setup_module(): 8 """this method can be imported by tests to setup the test 9 module before running 10 """ 8 11 basedir = os.path.join(os.path.dirname(os.path.dirname( 9 12 os.path.dirname(os.path.abspath(__file__)))), "tests") branches/1.1/turbogears/i18n/tests/test_kidutils.py
r1507 r5718 8 8 template = """ 9 9 <?python 10 from turbogears.i18n import translate10 from turbogears.i18n.kidutils import translate 11 11 ?> 12 12 <html xmlns:py="http://purl.org/kid/ns#"> branches/1.1/turbogears/i18n/tests/test_tg_gettext.py
r1507 r5718 1 1 2 2 from turbogears.i18n.tg_gettext import * 3 from turbogears.i18n.tests import setup_module3 #from turbogears.i18n.tests import setup_module 4 4 5 5 def test_gettext(): branches/1.1/turbogears/view/base.py
r5716 r5718 19 19 import turbogears 20 20 from turbogears import identity, config 21 from turbogears.i18n import i18n_filter, get_locale, gettext 21 from turbogears.i18n.kidutils import i18n_filter as kid_i18n_filter 22 from turbogears.i18n import get_locale, gettext 23 22 24 from turbogears.util import (Bunch, adapt_call, get_template_encoding_default, 23 25 get_mime_type_for_format, mime_type_has_charset) … … 446 448 "kid.precompiled": get("kid.precompiled", False), 447 449 "kid.i18n.run_template_filter": get("i18n.run_template_filter", False), 448 "kid.i18n_filter": i18n_filter,450 "kid.i18n_filter": kid_i18n_filter, 449 451 "kid.sitetemplate": get("tg.sitetemplate", 450 452 "turbogears.view.templates.sitetemplate"),