
    )Jf^	                     *    d dl Z d dlmZmZ d Zd ZdS )    N)get_language	to_localec                    ddl m}  ||           }|                    d          }t          d |          }i }|D ]O}|                    d          \  }}}	|                    |g |	d          }
|
d                             |	           Pd|d	         d
<   d|d         d
<   d|d         d
<   d|d         d
<   d|d         d
<   |S )z
    Parses the FacebookLocales.xml file and builds a dict relating every
    available language ('en, 'es, 'zh', ...) with a list of available regions
    for that language ('en' -> 'US', 'EN') and an (arbitrary) default region.
    r   )parserepresentationc                 &    | j         d         j        S )Nr   )
childNodesdata)rs    r/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/facebook/locale.py<lambda>z%_build_locale_table.<locals>.<lambda>   s    a-     _)regsdefaultr   USenr   LAesCNzhFRfrPTpt)xml.dom.minidomr   getElementsByTagNamemap	partition
setdefaultappend)filename_or_filer   domrepslocs
locale_maploclangr   reglang_maps              r   _build_locale_tabler+   	   s    &%%%%%
% 
!
!C##$455D--t44DJ % %}}S))a((s/K/KLL$$$$ #'JtY"&JtY"&JtY"&JtY"&JtYr   c                      t           j                            t           j                            t                              } t           j                            | dd          }t          |          fd}|S )zP
    Wrapper function so that the default mapping is only built when needed
    r
   zFacebookLocales.xmlc                     d}t                      }|r`t          |          }|                    d          \  }}}                    |          }|!||d         v r	|dz   |z   }n|dz   |d         z   }|S )a  
        Guess an appropriate FB locale based on the active Django locale.
        If the active locale is available, it is returned. Otherwise,
        it tries to return another locale with the same language. If there
        isn't one available, 'en_US' is returned.
        en_USr   Nr   r   )r   r   r   get)	requestchosenlanguagelocaler(   r   r)   r*   
fb_localess	           r   default_localez3get_default_locale_callable.<locals>.default_locale1   s     >> 		>x((F!++C00LD!S!~~d++H#(6***!CZ#-FF!CZ(9*==Fr   )ospathdirnamerealpath__file__joinr+   )exec_dirxml_pathr5   r4   s      @r   get_default_locale_callabler>   (   sn     wrw//99::Hw||Hf.CDDH$X..J    * r   )r6   django.utils.translationr   r   r+   r>    r   r   <module>rA      sP    
			 < < < < < < < <  >    r   