o
    tf                     @  sp   d Z ddlmZ ddlZddlZddlmZ ddlZddlm	Z	 ddl
mZmZmZmZmZ G dd	 d	e	ZdS )
z
Translation handler.
    )annotationsN)partial   )SchemaHandler)
SYS_LOCALEget_language_packget_language_packsis_valid_locale
translatorc                   @  s$   e Zd ZdZejjd	d
ddZdS )TranslationsHandlerz An API handler for translations.Nlocale
str | NonereturnNonec                   s   i d}}zWt jj }|du r#|dtt|  dI dH \}}n9|p&t}|dkr-t}|dtt	|I dH \}}|i krS|sSt
|rLd| d}nd| d}n	t
|r\t| W n tyj   t }Y nw | d | t||d	 dS )
a6  
        Get installed language packs.

        If `locale` is equals to "default", the default locale will be used.

        Parameters
        ----------
        locale: str, optional
            If no locale is provided, it will list all the installed language packs.
            Default is `None`.
         N)Zdisplay_localedefaultzLanguage pack 'z' not installed!z' not valid!   )datamessage)tornadoZioloopZIOLoopcurrentrun_in_executorr   r   Zget_current_localer   r   r	   r
   Z
set_locale	Exception	traceback
format_excZ
set_statusfinishjsondumps)selfr   r   r   current_loop r    o/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/jupyterlab_server/translations_handler.pyget   s6   



zTranslationsHandler.get)N)r   r   r   r   )__name__
__module____qualname____doc__r   Zwebauthenticatedr"   r    r    r    r!   r      s    r   )r&   
__future__r   r   r   	functoolsr   r   Zsettings_utilsr   Ztranslation_utilsr   r   r   r	   r
   r   r    r    r    r!   <module>   s    	