
    Til                         S SK Jr  S SKJr  S SKJr  SqSSSS.r\R                  5        V Vs0 s H  u  pUR                  5       U _M     snn r
S	 rS
 rS r\" SS9S 5       rS rS rSS jrgs  snn f )    )	lru_cache)	translate)DetectorNzpt-BRzzh-Hanszzh-Hant)pbzhztc                     [        U [        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ [        U [        5      (       d  U $ U R	                  5       n [
        R                  X 5      $ s  snf N)
isinstancelist	iso2modelstrlowerrev_aliasesget)langls     i/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/libretranslate/language.pyr   r      sY    $&*+d	!d++dC  ::<D??4&& ,s   A.c                 *   [        U [        5      (       a$  SU ;   a  [        U 5      n[        US   5      US'   U$ [        U [        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ U R	                  5       n [
        R                  X 5      $ s  snf )Nlanguage)r   dict	model2isor   r   aliasesr   )r   dr   s      r   r   r      s{    $*"4J!!J-0*	D$		&*+d	!d++::<D;;t"" ,s   Bc                  l    [         b  [        [         5      S:X  a  [        R                  " 5       q [         $ Nr   )__languageslenr   get_installed_languages     r   load_languagesr"   %   s*     c+.!3779r!   )maxsizec                  :    [        5       n [        S U  5       5      $ )Nc              3   8   #    U  H  oR                   v   M     g 7fr
   code.0r   s     r   	<genexpr>"load_lang_codes.<locals>.<genexpr>0   s     +A   )r"   tuple)	languagess    r   load_lang_codesr/   -   s     I++++r!   c                    ^ ^ [        U 4S jU 5       S 5      nUb  U$ S/S/S/S/S.nUR                  T / 5      nU H   m[        U4S jU 5       S 5      nUc  M  Us  $    g )Nc              3   J   >#    U  H  oR                   T:X  d  M  Uv   M     g 7fr
   r&   )r)   r   	lang_codes     r   r*   -get_language_with_fallback.<locals>.<genexpr>3   s     =Iq9)<I   #	#r   ptr   r   )r5   r   r   r   c              3   J   >#    U  H  oR                   T:X  d  M  Uv   M     g 7fr
   r&   )r)   r   fallback_codes     r   r*   r3   @   s     NAff6Maar4   )nextr   )r2   r.   r   language_variants	fallbacksfallback_langr7   s   `     @r   get_language_with_fallbackr<   2   s    =I=tDD ffff	 "%%i4I"NNPTU$   #
 r!   c                   ^^ [        U [        5      (       a  SnOSnU /n [        5       n/ nU  H\  n [        U5      R	                  U5      n[        [        U5      5       H  n[        U5      XV   l        M     UR                  U5        M^     [        S U 5       5      mU(       d  SSS./$ U(       a  / nU H  m[        [        U4S jU5      5      n	[        U	5      S:  aR  U	S	   n
[        S
 U	 5       5      [        U	5      -  U
l        [        S U	 5       5      U
l        UR                  U
5        M}  U	(       d  M  UR                  U	S	   5        M     U(       a  UnUR!                  U4S jSS9  U Vs/ s H  oR                  UR"                  S.PM     sn$ ! [         a   n[        [        U5      5         S nAGM  S nAff = fs  snf )NTFc              3   8   #    U  H  oR                   v   M     g 7fr
   text_length)r)   cs     r   r*   #detect_languages.<locals>.<genexpr>\   s     >:aMM:r,   g        en)
confidencer   c                 "   > U R                   T:H  $ r
   r&   )r   r2   s    r   <lambda>"detect_languages.<locals>.<lambda>i   s    qvv':r!      r   c              3   8   #    U  H  oR                   v   M     g 7fr
   )rD   r(   s     r   r*   rB   m   s     %?BqllBr,   c              3   8   #    U  H  oR                   v   M     g 7fr
   r?   r(   s     r   r*   rB   n   s     &Ab}}br,   c                 L   > TS:X  a  S$ U R                   U R                  -  T-  $ r   )rD   r@   )r   text_length_totals    r   rF   rG   z   s(    ,1aiq}}8TXi7iir!   )keyreverse)r   r   r/   r   detectranger   r@   extend	Exceptionprintr   sumfilterrD   appendsortr'   )textis_batch
lang_codes
candidatestr   ietemp_average_listlcr   r   r2   rL   s               @@r   detect_languagesra   F   s   $v "J J	$++A.A3q6]#&q6  #a   >:>> "566 #If:JGHB2w{!u"%%?B%?"?#b'"I#&&Ab&A#A !((.!((A/ $ *J OOisw   GQQj<<QVV<jQQK  	#a&MM	J Rs   AF7"G	
G&GGc                    U R                  5       n [        U 5      (       d  g[        U5      (       d  U $ U(       aI  U [        U 5      S-
     nU[        U5      S-
     n/ SQnXF;   a  XT:w  a  XV;   a  US S nX-  nO
XV;   a  US S nU(       a  [        U 5      S:  a  U R                  S5      S:X  ak  UR                  S5      S:  aV  UR                  5       n0 nU H  n	UR	                  U	S5      S-   X'   M     U H  n	X   [        U5      -  S:  d  M  US   n  O   U R                  5       (       a  UR                  5       $ U R                  5       (       a  UR                  5       $ [        U5      S:X  a  U $ U S   R                  5       (       a  US   R                  5       USS  -   $ U S   R                  5       (       a  US   R                  5       USS  -   $ U$ )	N rH   )!?.,;u   。    r      )	stripr   countsplitr   islowerr   isupperupper)
sourcetranslationimprove_punctuationremove_single_word_duplicatessource_last_chartranslation_last_charpunctuation_charsbowrn   words
             r   improve_translation_formattingr|      s   \\^Fv;;{!#f+/2 +C,<q,@ A<0$8(="-cr"2K/"7%cr*K
 %v;S 1Q 6;;L;LS;QTU;U##%CE#iia014  ;U+q0"%a&K 
 ~~  ""~~  ""
;1ay1~##%AB77ay1~##%AB77r!   )TT)	functoolsr   argostranslater   libretranslate.detectr   r   r   itemsr   r   r   r   r"   r/   r<   ra   r|   )kvs   00r   <module>r      s     $ *



 )08qwwy!|8'	# 4, ,(7Rt5e 9s   A0