Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.
| File tg-translate.diff,
1.5 KB
(added by cvogler, 5 years ago) |
|
|
-
|
old
|
new
|
|
| 35 | 35 | if attr is None:attr = turbogears.config.get("i18n.templateLocaleAttribute", "lang") |
| 36 | 36 | translate_all(item, item.get(attr), attr) |
| 37 | 37 | return item |
| 38 | | |
| 39 | | def translate_all(tree, lang, attr): |
| | 38 | |
| | 39 | def __translate_text(text, lang): |
| | 40 | prefix = '' |
| | 41 | postfix = '' |
| | 42 | if len(text) > 0 and text[0].isspace(): prefix = text[0] |
| | 43 | if len(text) > 1 and text[-1].isspace(): postfix = text[-1] |
| | 44 | return prefix + gettext(text.strip(), lang) + postfix |
| | 45 | |
| | 46 | def translate_all(tree, lang, attr, inroot=True): |
| 40 | 47 | """Recursive function to translate all text in child elements |
| 41 | 48 | @param tree: parent ElementTree element |
| 42 | 49 | @param lang: language setting |
| … |
… |
|
| 44 | 51 | """ |
| 45 | 52 | |
| 46 | 53 | if tree.text: |
| 47 | | tree.text = gettext(tree.text.strip(), lang) |
| | 54 | tree.text = __translate_text(tree.text, lang) |
| | 55 | if tree.tail and not inroot: |
| | 56 | # Don't translate tail of root. It is beyond the scope of the lang attr |
| | 57 | tree.tail = __translate_text(tree.tail, lang) |
| 48 | 58 | for element in tree: |
| 49 | 59 | # check overriding lang attribute |
| 50 | 60 | if element.get(attr):lang = element.get(attr) |
| 51 | | translate_all(element, lang, attr) |
| | 61 | translate_all(element, lang, attr, False) |
| 52 | 62 | |
| 53 | 63 | def i18n_filter(stream, template, locale=None): |
| 54 | 64 | """Kid template filter which calls translates all elements matching language |
Download in other formats: