o
    /&h9                     @   s:   d dl mZ d dlZd dlmZmZmZ G dd dZdS )    )GoogleTranslatorN)ListDictUnionc                   @   sL   e Zd Zdd ZddededefddZdd	ee dedee fd
dZdS )TranslationServicec                 C   s
   i | _ d S )N)cache)self r	   )/var/www/html/server/api/api_translate.py__init__   s   
zTranslationService.__init__estexttarget_langreturnc                    sh    | j vri | j  < | j   v r| j    S t }|d  fddI d H }|| j   < |S )Nc                         t d dS Nauto)sourcetargetr   	translater	   r   r   r	   r
   <lambda>       z.TranslationService.translate.<locals>.<lambda>)r   asyncioget_running_looprun_in_executor)r   r   r   loop
translatedr	   r   r
   r   	   s   


zTranslationService.translate	text_listc                    s    | j vri | j  < g }|D ]/| j   v r | j    }nt }|d  fddI d H }|| j   < || q|S )Nc                      r   r   r   r	   r   r	   r
   r   %   r   z3TranslationService.translate_list.<locals>.<lambda>)r   r   r   r   append)r   r   r   translated_listr   r   r	   r   r
   translate_list   s   


z!TranslationService.translate_listN)r   )__name__
__module____qualname__r   strr   r   r"   r	   r	   r	   r
   r      s    $r   )deep_translatorr   r   typingr   r   r   r   r	   r	   r	   r
   <module>   s    