
    qi(              	           d Z ddlZddlmZ ddlmZ ej                  dk  r G d dee      ZnddlmZ  G d	 d
e      Z		 dde	de
e	ef   dedefdZy)zLanguage code enumerations for Pipecat.

This module provides comprehensive language code constants following ISO 639
and BCP 47 standards, supporting both language-only and language-region
combinations for various speech and text processing services.
    N)Enum)logger)      c                       e Zd ZdZd Zy)StrEnumz>String enumeration base class for Python < 3.11 compatibility.c                 @    t         j                  | |      }||_        |S )z%Create a new instance of the StrEnum.)str__new___value_)clsvalueobjs      Q/opt/pipecat/venv/lib/python3.12/site-packages/pipecat/transcriptions/language.pyr   zStrEnum.__new__   s    ++c5)CCKJ    N)__name__
__module____qualname____doc__r    r   r   r   r      s
    L	r   r   )r   c                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvduZwdvZxdwZydxZzdyZ{dzZ|d{Z}d|Z~d}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2y1(2  LanguageaP  Language codes for speech and text processing services.

    Provides comprehensive language code constants following ISO 639 and BCP 47
    standards. Includes both language-only codes (e.g., 'en') and language-region
    combinations (e.g., 'en-US') to support various speech synthesis, recognition,
    and translation services.
    afzaf-ZAamzam-ETarzar-AEzar-BHzar-DZzar-EGzar-IQzar-JOzar-KWzar-LBzar-LYzar-MAzar-OMzar-QAzar-SAzar-SYzar-TNzar-XAzar-YEzar-001aszas-INastazzaz-AZbabezbe-BYbgzbg-BGbnzbn-BDzbn-INbobrbszbs-BAcazca-EScebzceb-PHcmnzcmn-CNcszcs-CZcyzcy-GBdazda-DKdezde-ATzde-CHzde-DEelzel-GRenzen-AUzen-CAzen-GBzen-GHzen-HKzen-IEzen-INzen-KEzen-NGzen-NZzen-PHzen-SGzen-TZzen-USzen-ZAeoeszes-ARzes-BOzes-CLzes-COzes-CRzes-CUzes-DOzes-ECzes-ESzes-GQzes-GTzes-HNzes-MXzes-NIzes-PAzes-PEzes-PRzes-PYzes-SVzes-USzes-UYzes-VEzes-419etzet-EEeuzeu-ESfazfa-IRfffizfi-FIfilzfil-PHfofrzfr-BEzfr-CAzfr-CHzfr-FRgazga-IEgdglzgl-ESguzgu-INhahawhezhe-ILhizhi-INhrzhr-HRhtzht-HThuzhu-HUhyzhy-AMidzid-IDigiszis-ISitzit-ITzit-CHziu-Cansz
iu-Cans-CAziu-Latnz
iu-Latn-CAjazja-JPjvzjv-IDzjv-JVjwkazka-GEkeakkzkk-KZkmzkm-KHknzkn-INkokzkok-INkozko-KRkukyzky-KGlazla-VAlbzlb-LUlnlozlo-LAltzlt-LTlgluolvzlv-LVmgzmg-MGmimkzmk-MKmaizmai-INmlzml-INmnzmn-MNmrzmr-INmszms-MYmtzmt-MTmyzmy-MMmymrnbznb-NOnonnznn-NOnezne-NPnlznl-BEznl-NLnsonyocorzor-INpazpa-INplzpl-PLpszps-AFptzpt-BRzpt-PTrozro-ROruzru-RUsasdzsd-INsizsi-LKskzsk-SKslzsl-SIsnsozso-SOsqzsq-ALsrzsr-RSzsr-Latnz
sr-Latn-RSsuzsu-IDsvzsv-SEswzsw-KEzsw-TZtazta-INzta-LKzta-MYzta-SGtezte-INtgthzth-THtktltrztr-TRttugukzuk-UAumburzur-INzur-PKuzzuz-UZvizvi-VNwowuuzwuu-CNyiyoyuezyue-CNzhzzh-CNzzh-CN-guangxizzh-CN-henanzzh-CN-liaoningzzh-CN-shaanxizzh-CN-shandongzzh-CN-sichuanzzh-HKzzh-TWzxh-ZAzuzzu-ZAN(3  r   r   r   r   AFAF_ZAAMAM_ETARAR_AEAR_BHAR_DZAR_EGAR_IQAR_JOAR_KWAR_LBAR_LYAR_MAAR_OMAR_QAAR_SAAR_SYAR_TNAR_XAAR_YEAR_001ASAS_INASTAZAZ_AZBABEBE_BYBGBG_BGBNBN_BDBN_INBOBRBSBS_BACACA_ESCEBCEB_PHCMNCMN_CNCSCS_CZCYCY_GBDADA_DKDEDE_ATDE_CHDE_DEELEL_GRENEN_AUEN_CAEN_GBEN_GHEN_HKEN_IEEN_INEN_KEEN_NGEN_NZEN_PHEN_SGEN_TZEN_USEN_ZAEOESES_ARES_BOES_CLES_COES_CRES_CUES_DOES_ECES_ESES_GQES_GTES_HNES_MXES_NIES_PAES_PEES_PRES_PYES_SVES_USES_UYES_VEES_419ETET_EEEUEU_ESFAFA_IRFFFIFI_FIFILFIL_PHFOFRFR_BEFR_CAFR_CHFR_FRGAGA_IEGDGLGL_ESGUGU_INHAHAWHEHE_ILHIHI_INHRHR_HRHTHT_HTHUHU_HUHYHY_AMIDID_IDIGISIS_ISITIT_ITIT_CHIU_CANS
IU_CANS_CAIU_LATN
IU_LATN_CAJAJA_JPJVJV_IDJV_JVJWKAKA_GEKEAKKKK_KZKMKM_KHKNKN_INKOKKOK_INKOKO_KRKUKYKY_KGLALA_VALBLB_LULNLOLO_LALTLT_LTLGLUOLVLV_LVMGMG_MGMIMKMK_MKMAIMAI_INMLML_INMNMN_MNMRMR_INMSMS_MYMTMT_MTMYMY_MMMY_MRNBNB_NONONNNN_NONENE_NPNLNL_BENL_NLNSONYOCOROR_INPAPA_INPLPL_PLPSPS_AFPTPT_BRPT_PTRORO_RORURU_RUSASDSD_INSISI_LKSKSK_SKSLSL_SISNSOSO_SOSQSQ_ALSRSR_RSSR_LATN
SR_LATN_RSSUSU_IDSVSV_SESWSW_KESW_TZTATA_INTA_LKTA_MYTA_SGTETE_INTGTHTH_THTKTLTRTR_TRTTUGUKUK_UAUMBURUR_INUR_PKUZUZ_UZVIVI_VNWOWUUWUU_CNYIYOYUEYUE_CNZHZH_CNZH_CN_GUANGXIZH_CN_HENANZH_CN_LIAONINGZH_CN_SHAANXIZH_CN_SHANDONGZH_CN_SICHUANZH_HKZH_TWXHZUZU_ZAr   r   r   r   r   !   s    
BE 
BE 
BEEEEEEEEEEEEEEEEEF 
BE C 
BE 
B 
BE 
BE 
BEE 
B 
B 
BE 
BE CF CF 
BE 
BE 
BE 
BEEE 
BE 
BEEEEEEEEEEEEEEE 
B 
BEEEEEEEEEEEEEEEEEEEEEEF 
BE 
BE 
BE 
B 
BE CF 
B 
BEEEE 
BE 
B 
BE 
BE 
B C 
BE 
BE 
BE 
BE 
BE 
BE 
BE 
B 
BE 
BEE GJGJ 
BE 
BEE	B 
BE C 
BE 
BE 
BE CF 
BE 
B 
BE 
BE 
BE 
B 
BE 
BE 
B C 
BE 
BE 
B 
BE CF 
BE 
BE 
BE 
BE 
BE 
BEE 
BE	B	BE 
BE 
BEE C 
B 
B 
BE 
BE 
BE 
BE 
BEE 
BE 
BE 
B 
BE 
BE 
BE 
BE 
B 
BE 
BE 
BEGJ 
BE 
BE 
BEE 
BEEEE 
BE 
B 
BE 
B 
B 
BE 
B 
B 
BE C 
BEE 
BE 
BE 
B CF 
B 
B CF 
BE#MK%N#M%N#MEE 
B 
BEr   r   languagelanguage_mapuse_base_codereturnc                 >   |j                  |       }||S t        | j                        }|rJ|j                  d      d   j	                         }t        j                  d| j                   d| d       |S t        j                  d| j                   d| d       |S )a  Resolve a Language enum to a service-specific language code.

    Checks the language map first, then falls back to extracting the appropriate
    code format with a warning if not found in the verified list.

    Args:
        language: The Language enum value to convert.
        language_map: Dictionary mapping Language enums to service language codes.
        use_base_code: If True, extracts base code (e.g., 'en' from 'en-US').
                      If False, uses full language code as-is.

    Returns:
        The resolved language code for the service.

    Examples::

        # Service expecting base codes (e.g., Cartesia)
        >>> LANGUAGE_MAP = {Language.EN: "en", Language.ES: "es"}
        >>> resolve_language(Language.EN_US, LANGUAGE_MAP, use_base_code=True)
        # Logs: "Language en-US not verified. Using base code 'en'."
        "en"

        # Service expecting full codes (e.g., AWS)
        >>> LANGUAGE_MAP = {Language.EN_US: "en-US", Language.ES_ES: "es-ES"}
        >>> resolve_language(Language.EN_GB, LANGUAGE_MAP, use_base_code=False)
        # Logs: "Language en-GB not verified. Using 'en-GB'."
        "en-GB"
    -r   z	Language z  not verified. Using base code 'z'.z not verified. Using ')getr
   r   splitlowerr   warning)r  r  r  resultlang_str	base_codes         r   resolve_languager  T  s    @ h'F 8>>"HNN3'*002	8>>"22RS\R]]_`a8>>"22H
RTUVr   )T)r   sysenumr   logurur   version_infor
   r   r   dictboolr  r   r   r   <module>r     sz      g#t  pw ph RV//&*8S=&9/JN//r   