0.12.1dev: enable a default language to be configured in TracIni.
Setting is `[trac] default_language` and the values are the usual Locale keys (e.g. `fr`, `zh_CN`, etc.)
Closes #8117.
diff -r ad544c480073 trac/web/main.py
|
a
|
b
|
class RequestDispatcher(Component): |
| 150 | 150 | default_timezone = Option('trac', 'default_timezone', '', |
| 151 | 151 | """The default timezone to use""") |
| 152 | 152 | |
| | 153 | default_language = Option('trac', 'default_language', '', |
| | 154 | """The preferred language to use if no user preference has been set. |
| | 155 | (''since 0.12.1'') |
| | 156 | """) |
| | 157 | |
| 153 | 158 | # Public API |
| 154 | 159 | |
| 155 | 160 | def authenticate(self, req): |
| … |
… |
class RequestDispatcher(Component): |
| 305 | 310 | if Locale: |
| 306 | 311 | available = [locale_id.replace('_', '-') for locale_id in |
| 307 | 312 | translation.get_available_locales()] |
| 308 | | |
| 309 | | preferred = req.session.get('language', req.languages) |
| 310 | | if not isinstance(preferred, list): |
| 311 | | preferred = [preferred] |
| | 313 | preferred = req.session.get('language') |
| | 314 | if preferred is None: |
| | 315 | preferred = self.env.config.get('trac', 'default_language') |
| | 316 | preferred = preferred and [preferred] or [] |
| | 317 | preferred.extend(req.languages) |
| 312 | 318 | negotiated = Locale.negotiate(preferred, available, sep='-') |
| 313 | 319 | self.log.debug("Negotiated locale: %s -> %s", |
| 314 | 320 | preferred, negotiated) |