Ticket #2603: 0001-Kepp-sugar-locale-in-.dmrc-instead-of-.i18n-2603.patch

File 0001-Kepp-sugar-locale-in-.dmrc-instead-of-.i18n-2603.patch, 3.4 KB (added by alsroot, 13 years ago)
  • bin/sugar.in

    From 83e09a2e89e44909fce82f875472c822b277e7f9 Mon Sep 17 00:00:00 2001
    From: Aleksey Lim <alsroot@activitycentral.org>
    Date: Mon, 11 Jul 2011 11:49:32 +0000
    Subject: [PATCH] Kepp sugar locale in ~/.dmrc instead of ~/.i18n #2603
    
    ---
     bin/sugar.in                           |    8 +++++-
     extensions/cpsection/language/model.py |   44 ++++++++++++++++++++++++++++++++
     2 files changed, 51 insertions(+), 1 deletions(-)
     mode change 100644 => 100755 bin/sugar.in
    
    diff --git a/bin/sugar.in b/bin/sugar.in
    old mode 100644
    new mode 100755
    index 9be4f9c..808a3f9
    a b if test "$SUGAR_EMULATOR" = "yes" -a "$(type gnome-keyring-daemon)"; then 
    7272fi
    7373
    7474# Source language settings and debug definitions
    75 if [ -f ~/.i18n ]; then
     75if [ -f ~/.dmrc ]; then
     76    dmrc_lang=$(grep -i '^Language *=' ~/.dmrc | awk -F= '{print $2}' | sed 's/[[:space:]]//g')
     77    if [ "${dmrc_lang}" ]; then
     78        LANG="${dmrc_lang}"
     79        LANGUAGE="${LANG}:$(grep -i '^ExtraLanguages *=' ~/.dmrc | awk -F= '{print $2}' | sed 's/[[:space:]]//g; s/;/:/g')"
     80    fi
     81elif [ -f ~/.i18n ]; then
    7682        . ~/.i18n
    7783fi
    7884if [ -f ~/.sugar/debug ]; then
  • extensions/cpsection/language/model.py

    diff --git a/extensions/cpsection/language/model.py b/extensions/cpsection/language/model.py
    index 17de6bb..06e945f 100644
    a b import os 
    2424import locale
    2525from gettext import gettext as _
    2626import subprocess
     27from ConfigParser import ConfigParser
    2728
    2829
    2930_default_lang = '%s.%s' % locale.getdefaultlocale()
    def _initialize(): 
    6869
    6970
    7071def _write_i18n(lang_env, language_env):
     72    dmrc_path = os.path.join(os.environ.get('HOME'), '.dmrc')
     73    if os.path.exists(dmrc_path):
     74        dmrc = ConfigParser()
     75        dmrc.optionxform = lambda x: str(x).capitalize()
     76        dmrc.read(dmrc_path)
     77
     78        if not dmrc.has_section('Desktop'):
     79            dmrc.add_section('Desktop')
     80        dmrc.set('Desktop', 'Language', lang_env)
     81        if not dmrc.has_section('Sugar'):
     82            dmrc.add_section('Sugar')
     83        langs = language_env.split(':')
     84        if len(langs) > 1:
     85            dmrc.set('Sugar', 'ExtraLanguages', ';'.join(langs[1:]))
     86        else:
     87            dmrc.set('Sugar', 'ExtraLanguages', '')
     88
     89        dmrc_file = file(dmrc_path, 'w')
     90        dmrc.write(dmrc_file)
     91        dmrc_file.close()
     92
     93        return
     94
    7195    path = os.path.join(os.environ.get('HOME'), '.i18n')
    7296    if not os.access(path, os.W_OK):
    7397        print _standard_msg
    def _write_i18n(lang_env, language_env): 
    83107
    84108
    85109def get_languages():
     110    dmrc_path = os.path.join(os.environ.get('HOME'), '.dmrc')
     111    if os.path.exists(dmrc_path):
     112        dmrc = ConfigParser()
     113        dmrc.read(dmrc_path)
     114
     115        langlist = []
     116        if dmrc.has_option('Desktop', 'Language'):
     117            lang = dmrc.get('Desktop', 'Language')
     118            if lang.capitalize() == 'C':
     119                lang = _default_lang
     120            langlist.append(lang)
     121
     122        if dmrc.has_option('Sugar', 'ExtraLanguages'):
     123            for lang in dmrc.get('Sugar', 'ExtraLanguages').split(';'):
     124                lang = lang.strip()
     125                if lang:
     126                    langlist.append(lang)
     127
     128        return langlist or [os.environ.get('LANG') or _default_lang]
     129
    86130    path = os.path.join(os.environ.get('HOME', ''), '.i18n')
    87131    if not os.access(path, os.R_OK):
    88132        print _standard_msg