
&zNc           @   s0  d  d l  Z  e  j d d e  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l Td  d l Td  d l Z d e f d     YZ e d	 k r,e d
 d  Z e j e j j    e j   GHn  d S(   iNt   ignores   apt API not stable yet(   t   gettext(   t
   LocaleInfo(   t   *t   LanguageSelectorBasec           B   sP   e  Z d  Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(	   s'    base class for language-selector code t    c         C   s+   | |  _  t d |  j   |  _ d  |  _ d  S(   Nt   languagelist(   t   _datadirR   t   _localeinfot   Nonet   _cache(   t   selft   datadir(    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt   __init__   s    	c         C   s   t  |  j |  |  _ d  S(   N(   t   LanguageSelectorPkgCacheR   R
   (   R   t   progress(    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt	   openCache%   s    c         C   s  g  } xq|  j  j   D]`} d | j } | |  j  k r |  j  | j sh |  j  | j sh |  j  | j r |  j  | j r | j |  j  j k rvx |  j  j | j D] \ } } | |  j  k r |  j  | j s |  j  | j s |  j  | j r |  j  | j r | |  j  k r |  j  | j r@|  j  | j r@|  j  | j sP|  j  | j r | | k r | j |  q q Wqvq q W|  j	 j
   d } t j |  j |  } | d } | d } d | } | |  j  k rW|  j  | j rW| | g 7} | |  j  j k rWxR |  j  j | D]= \ } } |  j  | j r|  j  | j r| j |  qqWqWn  t j |  j  |  }	 x> |	 D]6 }
 |
 |  j  k rs|  j  |
 j rs| j |
  qsqsW| |  j  j k rx|  j  j | D]\ } } d | k rx| j d  D] } |  j  | r|  j  | j s;|  j  | j s;|  j  | j r|  j  | j r| |  j  k r|  j  | j r|  j  | j r|  j  | j s|  j  | j r| | k r| j |  qqWq| |  j  k r|  j  | j s |  j  | j s |  j  | j r|  j  | j r| |  j  k r|  j  | j rS|  j  | j rS|  j  | j sc|  j  | j r| | k r| j |  qqWn  | S(   sh   
        return a list of language packs that are not installed
        but should be installed
        s   language-pack-%si    t   LOCALEt   PKGCODEt   |(   R
   t   getLanguageInformationt   languageCodet   is_installedt   marked_installt   marked_upgradet   marked_deletet   pkg_translationst   appendR   t   getSystemDefaultLanguaget   macrost   LangpackMacrosR   R   t   _getPkgListt   pkg_writingt   split(   R   t   missingt   langInfot   trans_packaget   pkgt   translationt   default_langt   macrt   pkgcodet   support_packagest   support_packaget   pull_pkgt   p(    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt   getMissingLangPacks(   s     


!c         C   sD   t  j   } | j d d  } t  j | d d } | j |  d S(   s5    write the system "LANG" variable (e.g. de_DE.UTF-8) s   com.ubuntu.LanguageSelectort   /t   dbus_interfaceN(   t   dbust	   SystemBust
   get_objectt	   Interfacet   SetSystemDefaultLangEnv(   R   t   sysLangt   bust   objt   iface(    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt   writeSysLangSetting   s    c         C   sD   t  j   } | j d d  } t  j | d d } | j |  d S(   s9    write the system "LANGUAGE" and "LC_MESSAGES" variables s   com.ubuntu.LanguageSelectorR/   R0   N(   R1   R2   R3   R4   t   SetSystemDefaultLanguageEnv(   R   t   sysLanguageR7   R8   R9   (    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt   writeSysLanguageSetting   s    c         C   sR   t  j j d  g } t j |  j |  } d } d | d } t | | |  d S(   s3    write the user "LANG" variable (e.g. de_DE.UTF-8) s
   ~/.profiles   export LANG=s   export LANG="%s"
t	   SYSLOCALEN(   t   ost   patht
   expanduserR   R   R   t   find_string_and_replace(   R   t   userLangt	   conffilesR(   t
   findStringt	   setString(    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt   writeUserLangSetting   s
    c         C   s~   t  j   } | d k r6 t j d t  j d   d St j   } | j d d |  } t j | d d } | j	 |  d S(	   s   
        write the user "LANGUAGE" variable (e.g. de:en_GB:en) and other
        language related environment variables (e.g. de_DE.UTF-8)
        i    s    No language saved for user '%s'.t   USERNs   org.freedesktop.Accountss    /org/freedesktop/Accounts/User%iR0   s   org.freedesktop.Accounts.User(
   R?   t   getuidt   warningst   warnt   getenvR1   R2   R3   R4   t   SetLanguage(   R   t   userLanguaget   uidR7   R8   R9   (    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt   writeUserLanguageSetting   s    	(
   t   __name__t
   __module__t   __doc__R   R   R.   R:   R=   RG   RP   (    (    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyR      s   		[			t   __main__R   s   ..(   RJ   t   filterwarningst   FutureWarningt   aptt   apt_pkgR1   R   R?   t   stringt   timet   threadt   syst
   FontConfigt   _R   t	   LangCachet   utilsR   t   objectR   RQ   t   lsbR   R   t
   OpProgresst   verifyPackageLists(    (    (    sE   /usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.pyt   <module>   s*   

