|
12 | 12 | import re |
13 | 13 |
|
14 | 14 | from flask import current_app as app |
| 15 | +from flask import g as flaskg |
15 | 16 | from emeraldtree import ElementTree as ET |
16 | 17 | from urllib.parse import urlencode |
| 18 | +from babel import Locale |
17 | 19 |
|
18 | 20 | from moin import wikiutil |
19 | 21 | from moin.i18n import _ |
|
22 | 24 | from moin.utils.tree import html, moin_page, xlink, xml |
23 | 25 | from moin.constants.contenttypes import CONTENTTYPE_NONEXISTENT, CHARSET |
24 | 26 | from moin.utils.mime import Type, type_moin_document |
| 27 | +from moin.constants.keys import LANGUAGE |
25 | 28 |
|
26 | 29 | from . import default_registry, ElementException |
27 | 30 |
|
@@ -65,6 +68,13 @@ def mark_item_as_transclusion(elem, href_or_item): |
65 | 68 | if isinstance(href_or_item, Item): |
66 | 69 | query = urlencode({'do': 'show'}, encoding=CHARSET) |
67 | 70 | href = Iri(scheme='wiki', authority='', path='/' + href_or_item.fqname.fullname, query=query) |
| 71 | + if hasattr(href_or_item, 'meta') and LANGUAGE in href_or_item.meta: |
| 72 | + elem.attrib[html.lang] = href_or_item.meta[LANGUAGE] |
| 73 | + elif hasattr(flaskg.user, LANGUAGE): |
| 74 | + elem.attrib[html.lang] = flaskg.user.language |
| 75 | + else: |
| 76 | + elem.attrib[html.lang] = app.cfg.language_default |
| 77 | + elem.attrib[html.dir] = Locale(elem.attrib[html.lang]).text_direction |
68 | 78 | else: # isinstance(href_or_item, Iri) |
69 | 79 | href = href_or_item |
70 | 80 | elem.attrib[html.data_href] = href |
|
0 commit comments