Browse Source

Merge pull request #295 from tracim/fix/141/frontend_t9n_access

Tracim 7 years ago
parent
commit
82829edef2

+ 23 - 7
tracim/tracim/lib/helpers.py View File

@@ -2,35 +2,51 @@
2 2
 
3 3
 """WebHelpers used in tracim."""
4 4
 
5
-#from webhelpers import date, feedgenerator, html, number, misc, text
5
+# from webhelpers import date, feedgenerator, html, number, misc, text
6 6
 
7 7
 import datetime
8 8
 
9
-import pytz
10
-import slugify
11 9
 from babel.dates import format_date
12 10
 from babel.dates import format_time
13 11
 from markupsafe import Markup
14
-
12
+import pytz
13
+import slugify
15 14
 import tg
16 15
 from tg import tmpl_context
17 16
 from tg.i18n import ugettext as _
18 17
 
19 18
 from tracim.lib import app_globals as plag
20
-
21 19
 from tracim.lib import CST
22 20
 from tracim.lib.base import logger
23 21
 from tracim.lib.content import ContentApi
24 22
 from tracim.lib.userworkspace import RoleApi
25 23
 from tracim.lib.workspace import WorkspaceApi
26
-
27
-from tracim.model.data import ContentStatus
28 24
 from tracim.model.data import Content
25
+from tracim.model.data import ContentStatus
29 26
 from tracim.model.data import ContentType
30 27
 from tracim.model.data import UserRoleInWorkspace
31 28
 from tracim.model.data import Workspace
32 29
 
33 30
 
31
+def get_lang() -> str:
32
+    """
33
+    Gets language code.
34
+
35
+    Provides the first language:
36
+    - asked by the request to the server,
37
+    - supported by Tracim.
38
+    """
39
+    # TODO - A.P - language code access from test environment
40
+    # try based workaround instead of raw get language call for test
41
+    # environment only, this should be set with tg.i18n.set_lang but
42
+    # I was unable to achieve that.
43
+    try:
44
+        result = tg.i18n.get_lang(all=False)[0]
45
+    except IndexError:
46
+        result = 'en'
47
+    return result
48
+
49
+
34 50
 def get_with_timezone(
35 51
         datetime_object: datetime.datetime,
36 52
         to_timezone: str='',

+ 1 - 1
tracim/tracim/templates/master_anonymous.mak View File

@@ -14,7 +14,7 @@
14 14
         <link href="${tg.url('/assets/dist/all.css')}" rel="stylesheet">
15 15
 
16 16
         <script>
17
-          globalTracimLang = 'fr_FR'
17
+          globalTracimLang = ${h.get_lang()}
18 18
         </script>
19 19
     </head>
20 20
 

+ 1 - 1
tracim/tracim/templates/master_authenticated.mak View File

@@ -19,7 +19,7 @@
19 19
             window.addEventListener("hashchange", shiftWindow);
20 20
             function load() { if (window.location.hash) shiftWindow(); }
21 21
 
22
-            globalTracimLang = 'fr_FR'
22
+            globalTracimLang = ${h.get_lang()}
23 23
         </script>
24 24
         <link rel="manifest" href="manifest.json?v=0.0.1" />
25 25
     </head>

+ 1 - 1
tracim/tracim/templates/master_no_toolbar_no_login.mak View File

@@ -29,7 +29,7 @@
29 29
         <![endif]-->
30 30
 
31 31
         <script>
32
-          globalTracimLang = 'fr_FR'
32
+          globalTracimLang = ${h.get_lang()}
33 33
         </script>
34 34
     </head>
35 35
 

+ 1 - 1
tracim/tracim/tests/__init__.py View File

@@ -197,7 +197,7 @@ class TestStandard(object):
197 197
         logger.debug(self, 'Load extra fixtures... -> done')
198 198
 
199 199
         self.app.get('/_test_vars')  # Allow to create fake context
200
-        tg.i18n.set_lang('en')  # Set a default lang
200
+        tg.i18n.set_lang(['en', ])  # Set a default lang
201 201
 
202 202
     def tearDown(self):
203 203
         transaction.commit()