Edgewall Software

Ticket #6765: i18n_r6891_language_select.patch

File i18n_r6891_language_select.patch, 2.0 kB (added by jasminlapalme@…, 5 months ago)
  • trac/prefs/web_ui.py

     
    100100        locales = map(Locale.parse, get_available_locales()) 
    101101        #languages = sorted([locale.display_name for locale in locales], 
    102102        #                   key=unicode.lower) 
    103         languages = sorted([(str(locale), locale.display_name) 
     103        languages = sorted([(str(locale).replace('_','-'), locale.display_name) 
    104104                            for locale in locales]) 
    105105 
    106106        return 'prefs_%s.html' % (panel or 'general'), { 
  • trac/prefs/templates/prefs_language.html

     
    1313    <div class="field" py:with="session_language = settings.session.get('language')"> 
    1414      <label>Language: 
    1515      <select name="language"> 
    16         <option>Default language</option> 
     16        <option value="">Default language</option> 
    1717        <option py:for="locale, language in languages" 
    1818                selected="${session_language == locale or None}" 
    1919                value="$locale">$language</option> 
  • trac/web/main.py

     
    269269    def _get_locale(self, req): 
    270270        available = [locale_id.replace('_', '-') for locale_id in 
    271271                     translation.get_available_locales()] 
    272  
    273         return Locale.negotiate(req.session.get('language', req.languages), 
     272        prefered = req.session.get('language', req.languages) 
     273        if type(prefered) != type(list()): 
     274                prefered = [prefered] 
     275        return Locale.negotiate(prefered, 
    274276                                available, sep='-') 
    275277 
    276278    def _get_timezone(self, req):