Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/dist-packages/LanguageSelector/
Upload File :
Current File : //usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyc


2Oc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ	ddl
mZdefdYZ
edkrdZe
deZd	ejGHd
ejGHejGHejGHejGHejGHndS(iN(tgettext(tElementTreet
LocaleInfocBseZdZddgZdZdZdZdZdZdZ	e
e
d	Zd
ZdZ
dZd
ZRS(s< class with handy functions to parse the locale information s/etc/default/locales/etc/environmentcCsh||_tjj|d|}i|_i|_i|_tdd}|jd}xf|D]^}|j	d}d|j	kr|j	d}n
|j	d}||jkra||j|<qaqaWt
d|jd	<t
d
|jd<tdd}|jd
}xG|D]?}|j	d}|j	d}||jkr||j|<qqWtdd}|jd}xs|D]k}d|j	kr|j	d}	n
|j	d}	d|j	kr|j	d}n
|j	d}|	|j|<qvWx|t|D]n}
|
j}|j
ds|dkr%qn|jd}|djd}
d|d|j|
d<qWdS(Ntdatatfiles$/usr/share/xml/iso-codes/iso_639.xmlt
iso_639_entrytnametiso_639_1_codetiso_639_2T_codesChinese (simplified)szh-hanssChinese (traditional)szh-hants&/usr/share/xml/iso-codes/iso_639_3.xmltiso_639_3_entrytids%/usr/share/xml/iso-codes/iso_3166.xmltiso_3166_entrytcommon_nametalpha_2_codetalpha_3_codet#tt;it:s%si(t_datadirtostpathtjoint_langt_countryt
_languagelistRtgetiteratortattribt_topentstript
startswithtsplit(tselftlanguagelist_filetdatadirtLANGUAGELISTtettittelmtlangtcodetdescrtlinettmptwt	localeenv((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyt__init__sP				








cCs||jkr|j|SdS(s$ map language code to language name R(R(R!R)((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyR([scCs||jkr|j|SdS(s! map country code to country nameR(R(R!R)((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pytcountryascCsg}tjddgdtj}x|jdjdD]h}|j}|jddkrkq>ntj|j	|}|d}||kr>|j
|q>q>W|S(sR return a list of locales available on the system
            (running locale -a) tlocales-atstdoutis
s.utf8tLOCALE(t
subprocesstPopentPIPEtcommunicateR RtfindtmacrostLangpackMacrosRtappend(R!tlocalestpR+R,tmacrR1((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pytgenerated_localesgs 
cCsc||jkr[tjd|j|}||j|krWtjd|j|}n|S|SdS(sreturn translated languagetiso_639t	iso_639_3N(RRtdgettext(R!R(t	lang_name((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyttranslate_languagexscCs4||jkr,tjd|j|}|S|SdS(s
        return translated language and country of the given
        locale into the given locale, e.g. 
        (Deutsch, Deutschland) for de_DE
        tiso_3166N(RRRB(R!R0tcountry_name((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyttranslate_countrysc
sd}tj|j||tkr`d
}dtjkrLtjd}ndtjd<n|jd}|}tddkr|j	d}t
fd|j}|tkrt|dks|tkr|j
d}	|	rd	||f}qqntd
dkrRd|d
jdf}n|tkr|rt|tjd<qtjd=n|S(s4 get a locale code and output a human readable name RtLANGUAGER3tLCODEtCCODEics|jdS(NRI(R(tk(R>(s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyt<lambda>sis%s (%s)tVARIANTs%s - %ssUTF-8N(R9R:RtTruetNoneRtenvironRDtlenRGtfilterR?tFalseR0tencode(
R!R1tnativetallCountriest	returnValtcurrent_languageRCRFtlt	mycountry((R>s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyt	translates.* 
cCs|s
dStj|j|}|d}|d}||jkrR|j|}n%||krg|}nd||f}|jdp|dksd|}n|S(s input is a language code, output a string that can be put in
            the LANGUAGE enviroment variable.
            E.g: en_DK -> en_DK:en
        RRIR3s%s:%ss:entens%s:en(R9R:RRtendswith(R!R)R>tlangcodeR1tlanglist((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyt
makeEnvStrings

	
cCsd}d}g}tjjd}tjj|rtj|tjrxAt|D]0}tjd|}|rX|j	d}qXqXWndt
jdkrtjdrtj
d}ntjtjj}ytj}|jdd	}	tj|	d
d}
|
j|}|jd|}	tj|	d
d}
|
jdd
}t|dkr|
jdd}|j|}nWn0tk
r}
tj|
jdjdnXt|dkrdtj
krtj
d}nt|dkr#dtj
kr#tj
d}nt|dkrTdtj
krTtj
d}nt|dkrt|dkr|j|}n|j||j||S(NRs~/.pam_environmentsLANGUAGE=(.*)$isfontconfig-voodooit	SUDO_USERsorg.freedesktop.Accountss/org/freedesktop/Accountstdbus_interfacesorg.freedesktop.DBus.Propertiessorg.freedesktop.Accounts.Usert
FormatsLocaletLanguagesUTF-8RHtLC_NAMEtLANG( RRt
expandusertexiststaccesstR_OKRtretmatchtgrouptsystargvtgetenvRPtpwdtgetpwuidtgeteuidtpw_nametdbust	SystemBust
get_objectt	InterfacetFindUserByNametGetRQR`t	ExceptiontwarningstwarntargsRTR;(R!tformatstlanguagetresulttfnameR+tmatch_languaget	user_nametbustobjtifacet	user_patht
firstLanguagetmsg((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pytgetUserDefaultLanguagesL"!!!$

c
Csd}d}d}g}xR|jD]G}tjj|r"tj|tjr"xt|D]}|jdr|jdd}nt	j
d|}|r|jd}n|jdr|jdd}nt	j
d|}|r|jd}n|jdr"|jdd}nt	j
d	|}	|	r\|	jd}q\q\Wt|d
kriPqiq"q"Wt|d
krd}nt|d
kr|j
|}nt|d
kr|}n|j||j||S(NRRft"s
LANG=(.*)$itLC_TIMEs
LC_TIME=(.*)$RHsLANGUAGE=(.*)$isen_US.UTF-8(tenvironmentsRRRhRiRjRRtreplaceRkRlRmRQR`R;(
R!R(RRRRR+t
match_langt
match_formatsR((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pytgetSystemDefaultLanguagesD		

cCsUtj|jdtjs tSx.t|jdD]}|jdr4tSq4WtS(NisLC_TIME=(RRiRRjRSRRRN(R!R+((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pytisSetSystemFormats5s(t__name__t
__module__t__doc__RR/R(R0R?RDRGRSR[R`RRR(((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyRs	E				
	/		,	't__main__s/usr/share/language-selector/tlanguagelists)default system locale and languages: '%s's'default user locale and languages: '%s'(RkR4RRRqRnRuR|R9Rtxml.etree.ElementTreeRtobjectRRR#tliRRRRRR?(((s?/usr/lib/python2.7/dist-packages/LanguageSelector/LocaleInfo.pyt<module>s*-