Index: web/main.py
===================================================================
--- web/main.py	(revision 7937)
+++ web/main.py	(working copy)
@@ -285,7 +285,8 @@
             available = [locale_id.replace('_', '-') for locale_id in
                 translation.get_available_locales()]
 
-            preferred = req.session.get('language', req.languages)
+            lang = self.env.config.get('trac', 'lang')
+            preferred = req.session.get('language', (lang and ([lang,] + req.languages)) or req.languages)
             if not isinstance(preferred, list):
                 preferred = [preferred]
             return Locale.negotiate(preferred, available, sep='-')

