404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.224.30.216: ~ $
"""
Helper Module for Locale settings

This module is based on a ROX module (LGPL):

http://cvs.sourceforge.net/viewcvs.py/rox/ROX-Lib2/python/rox/i18n.py?rev=1.3&view=log
"""

import os
from locale import normalize

regex = "(\[([a-zA-Z]+)(_[a-zA-Z]+)?(\.[a-zA-Z\-0-9]+)?(@[a-zA-Z]+)?\])?"

def _expand_lang(locale):
    locale = normalize(locale)
    COMPONENT_CODESET   = 1 << 0
    COMPONENT_MODIFIER  = 1 << 1
    COMPONENT_TERRITORY = 1 << 2
    # split up the locale into its base components
    mask = 0
    pos = locale.find('@')
    if pos >= 0:
        modifier = locale[pos:]
        locale = locale[:pos]
        mask |= COMPONENT_MODIFIER
    else:
        modifier = ''
    pos = locale.find('.')
    codeset = ''
    if pos >= 0:
        locale = locale[:pos]
    pos = locale.find('_')
    if pos >= 0:
        territory = locale[pos:]
        locale = locale[:pos]
        mask |= COMPONENT_TERRITORY
    else:
        territory = ''
    language = locale
    ret = []
    for i in range(mask+1):
        if not (i & ~mask):  # if all components for this combo exist ...
            val = language
            if i & COMPONENT_TERRITORY: val += territory
            if i & COMPONENT_CODESET:   val += codeset
            if i & COMPONENT_MODIFIER:  val += modifier
            ret.append(val)
    ret.reverse()
    return ret

def expand_languages(languages=None):
    # Get some reasonable defaults for arguments that were not supplied
    if languages is None:
        languages = []
        for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'):
            val = os.environ.get(envar)
            if val:
                languages = val.split(':')
                break
    #if 'C' not in languages:
    #   languages.append('C')

    # now normalize and expand the languages
    nelangs = []
    for lang in languages:
        for nelang in _expand_lang(lang):
            if nelang not in nelangs:
                nelangs.append(nelang)
    return nelangs

def update(language=None):
    global langs
    if language:
        langs = expand_languages([language])
    else:
        langs = expand_languages()

langs = []
update()

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
BaseDirectory.py File 5.62 KB 0644
Config.py File 728 B 0644
DesktopEntry.py File 16.41 KB 0644
Exceptions.py File 1.49 KB 0644
IconTheme.py File 15.72 KB 0644
IniFile.py File 13.18 KB 0644
Locale.py File 2.11 KB 0644
Menu.py File 38.14 KB 0644
MenuEditor.py File 17.97 KB 0644
Mime.py File 15.64 KB 0644
RecentFiles.py File 5.99 KB 0644
__init__.py File 171 B 0644
util.py File 164 B 0644