3
%Go                 @   sF   d Z ddlZddlmZ dZdd ZdddZdd	d
Zg ae  dS )z
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
    N)	normalizez?(\[([a-zA-Z]+)(_[a-zA-Z]+)?(\.[a-zA-Z\-0-9]+)?(@[a-zA-Z]+)?\])?c             C   s   t | } d}d	}d
}d}| jd}|dkrL| |d  }| d | } ||O }nd}| jd}d}|dkrr| d | } | jd}|dkr| |d  }| d | } ||O }nd}| }	g }
x`t|d D ]P}|| @ s|	}||@ r||7 }||@  r||7 }||@ r||7 }|
j| qW |
j  |
S )N   r      @ ._r   r      )r   findrangeappendreverse)localeZCOMPONENT_CODESETZCOMPONENT_MODIFIERZCOMPONENT_TERRITORYmaskposZmodifierZcodesetZ	territorylanguageZretival r   ,/usr/lib/python3/dist-packages/xdg/Locale.py_expand_lang   sF    





 
 
 r   c             C   sp   | d kr6g } x(dD ] }t jj|}|r|jd} P qW g }x0| D ](}x"t|D ]}||krN|j| qNW q@W |S )NLANGUAGELC_ALLLC_MESSAGESLANG:)r   r   r   r   )osenvirongetsplitr   r   )Z	languagesZenvarr   ZnelangsZlangZnelangr   r   r   expand_languages3   s    


r    c             C   s   | rt | gant  ad S )N)r    langs)r   r   r   r   updateG   s    r"   )N)N)	__doc__r   r   r   Zregexr   r    r"   r!   r   r   r   r   <module>   s   %

