#!/usr/bin/python # -*- coding: Utf-8 -*- # Script qui sert à copier (par exemple) ... # # locale/en_EN/LC_MESSAGES/ekd.mo et locale/en_EN/LC_MESSAGES/ekdDoc.mo vers # (par exemple) locale/en_AU/LC_MESSAGES/ekd.mo locale/en_AU/LC_MESSAGES/ekd.mo # (et ce pour tous les répertoires symbole langue dont la langue officielle est l'anglais) # # puis ... # # locale/es_ES/LC_MESSAGES/ekd.mo et locale/es_ES/LC_MESSAGES/ekdDoc.mo vers # (par exemple) locale/es_AR/LC_MESSAGES/ekd.mo locale/es_AR/LC_MESSAGES/ekd.mo # (et ce pour tous les répertoires symbole langue dont la langue officielle est l'espagnol). # # ATTENTION (!!!): les répertoires (et sous-répertoires): # # locale/en_EN/LC_MESSAGES, locale/es_ES/LC_MESSAGES, # locale/de_DE/LC_MESSAGES et locale/nl_NL/LC_MESSAGES # # ... ne doivent jamais être éliminés. # # Les nationalités et communautés gérées pour l'instant sont: # # pour l'anglais (autres que 'en_EN' ==> English): # # 'en_AG' => (Antigua and Barbuda), 'en_AI' => (Anguilla), 'en_AS' => (America Samoa), 'en_AU' => 'English (Australia)', # 'en_BB' => (Barbados), 'en_BE' => (Belgique), 'en_BM' => (Bermuda), 'en_BN' => (Brunei Darussalam), 'en_BS' => (Bahamas), # 'en_BW' => (Botswana), 'en_BZ' => (Belize), 'en_CA' => 'English (Canada)', 'en_GB' => 'English (United Kingdom)', # 'en_CK' => (Barbados), 'en_CM' => (Cameroon), 'en_DM' => (Dominica), 'en_FJ' => (Fiji), 'en_FK' => (Fakland Island), # 'en_FM' => (Micronesia), 'en_GD' => (Grenada), 'en_GI' => (Gibraltar), 'en_GY' => (Guyane), 'en_IL' => (Israel), # 'en_IO' => (British India Ocean Territory), 'en_KE' => (Kenya), 'en_KI' => (Kiribati), 'en_KN' => (Saint Kitts And Nevis), # 'en_KY' => (Cayman Islands), 'en_LC' => (Saint Lucia), 'en_LS' => (Lesotho), 'en_MH' => (Marshall Islands), # 'en_MS' => (Montserrat), 'en_MT' => (Malta), 'en_MU' => (Maritius), 'en_MW' => (Malawi), 'en_NA' => (Namibia), # 'en_NF' => (Norfolk Island), 'en_NG' => (Nigeria), 'en_NR' => (Nauru), 'en_PG' => (Papua New Guinea), 'en_PK' => (Pakistan), # 'en_PN' => (Pitcairn), 'en_PR' => (Puerto Rico), 'en_PW' => (Palau), 'en_RW' => (Rwanda), 'en_SB' => (Salomon Islands), # 'en_SC' => (Seychelles), 'en_SH' => (Saint Helena), 'en_SL' => (Sierra Leona), 'en_SZ' => (Swaziland), 'en_TC' => (Turks AND Caicos Islands), # 'en_TK' => (Tokulau), 'en_TO' => (Tonga), 'en_UG' => (Uganda), 'en_UM' => (United Minor Outlgings Islands), # 'en_VC' => (Saint Vincent and The Grenadines), 'en_VG' => (Virgin Islands, British), 'en_VI' => (Virgin Islands, US), 'en_WS' => (Samoa), # 'en_ZM' => (Zambia), 'en_ZW' => (Zimbabwe), 'en_HK' => 'English (Hong Kong SAR China)', 'en_IE' => 'English (Ireland)', 'en_IN' => 'English (India)', # 'en_JM' => 'English (Jamaica)', 'en_LR' => 'English (Liberia)', 'en_NZ' => 'English (New Zealand)', # 'en_PH' => 'English (Philippines)', 'en_SG' => 'English (Singapore)', 'en_TT' => 'English (Trinidad and Tobago)', # 'en_US' => 'English (United States)', 'en_ZA' => 'English (South Africa)'. # # pour l'espagnol (autres que 'es_ES' => Spanish): # # 'es_AR' => 'Spanish (Argentina)', 'es_BO' => 'Spanish (Bolivia)', 'es_CA' => 'Spanish (Canada)', # 'es_CL' => 'Spanish (Chile)', 'es_CO' => 'Spanish (Colombia)', 'es_CR' => 'Spanish (Costa Rica)', # 'es_CU' => 'Spanish (Cuba)', 'es_DO' => 'Spanish (Dominican Republic)', 'es_EC' => 'Spanish (Ecuador)', # 'es_GQ' => 'Spanish (Equatorial Guinea)', 'es_GT' => 'Spanish (Guatemala)', 'es_HN' => 'Spanish (Honduras)', # 'es_MX' => 'Spanish (Mexico)', 'es_NI' => 'Spanish (Nicaragua)', 'es_PA' => 'Spanish (Panama)', # 'es_PE' => 'Spanish (Peru)', 'es_PR' => 'Spanish (Puerto Rico)', 'es_PY' => 'Spanish (Paraguay)', # 'es_SV' => 'Spanish (El Salvador)', 'es_US' => 'Spanish (United States)', 'es_UY' => 'Spanish (Uruguay)', # 'es_VE' => 'Spanish (Venezuela)'. # # pour l'allemand (autres que 'de_DE' ==> Germany): # # 'de_AT' ==> 'German (Austria)', 'de_BE' (German Belgium), 'de_CH' ==> 'German (Switzerland)', 'de_FR' (German France), 'de_HU' (German Hungary), # 'de_IT' (German Italy), 'de_LI' (Liechtenstein), 'de_LU' ==> 'German (Luxembourg)', 'de_PL' (German Poland). # # pour le néerlandais (autres que 'nl_NL' ==> Dutch (Netherlands)): # # 'nl_BE' ==> 'Dutch (Belgium)', 'nl_AN' (Netherlands Antilles), 'nl_AW' (Arubia). # # pour le portugais (autres que 'pt_PT' ==> Portugais (Portugal)): # # 'pt_AO' (Angola), 'pt_BR' ==> (Brésil), 'pt_CV' (Costa Verde), 'pt_GW' (Ginea-Bissau), 'pt_MZ' (Mozambique), 'pt_ST' (Sao Tome And Principe), # 'pt_TL' (Timor oriental). import os, glob, shutil from PyQt4.QtCore import QLocale class GestionLangues(object): def __init__(self): # On liste tous les chemins possibles des nationalités (ou communautés) de langue anglaise, espagnole, allemande, portugaise et néerlandaise # (autres que: en_EN, es_ES, de_DE, pt_PT et nl_NL) ChemSymbLang_Nat = ['locale'+os.sep+'en_AG'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_AI'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_AS'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_AU'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_BB'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_BE'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_BM'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_BN'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_BS'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_BW'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_BZ'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_CA'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_CK'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_CM'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_DM'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_FJ'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_FK'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_GB'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_GD'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_GI'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_GY'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_HK'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_IE'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_IL'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_IN'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_IO'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_KE'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_KI'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_KN'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_KY'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_JM'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_LC'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_LR'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_LS'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_MH'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_MS'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_MT'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_MU'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_MW'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_NA'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_NF'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_NG'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_NR'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_NZ'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_PG'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_PH'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_PK'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_PN'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_PR'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_PW'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_RW'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_SB'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_SC'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_SH'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_SL'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_SZ'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_TC'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_TK'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_TO'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_TT'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_UG'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_UM'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_US'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_VC'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_VG'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_VI'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_WS'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_ZA'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'en_ZM'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'en_ZW'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_AR'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_BO'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'es_CA'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_CL'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_CO'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'es_CR'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_CU'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_GT'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'es_HN'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_MX'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_NI'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'es_PA'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_PE'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_US'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'es_UY'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'es_VE'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'de_AT'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'de_BE'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'de_CH'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'de_FR'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'de_HU'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'de_IT'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'de_LI'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'de_LU'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'de_PL'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'nl_AN'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'nl_AW'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'nl_BE'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'pt_AO'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'pt_BR'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'pt_CV'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'pt_GW'+os.sep+'LC_MESSAGES',\ 'locale'+os.sep+'pt_MZ'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'pt_ST'+os.sep+'LC_MESSAGES', 'locale'+os.sep+'pt_TL'+os.sep+'LC_MESSAGES'] # Ensuite on crée les répertoires (si les répertoires intermédiaires # n'existent pas, ils sont crées --aussi-- à la volée) for repNation_Nat in ChemSymbLang_Nat: # Si tous les répertoires existent déjà # il ne se passe rien ... if os.path.exists(repNation_Nat): pass # Autrement ils sont crées ... else: os.makedirs(repNation_Nat, 0755) # Liste récupérant les chemins sous la forme: locale/en_CA (Canada) et en excluant du lot: locale/en_EN contenu_locale_EN = [enX for enX in glob.glob('locale'+os.sep+'*') if enX[:-3] == 'locale'+os.sep+'en' and enX != 'locale'+os.sep+'en_EN'] # Liste récupérant les chemins sous la forme: locale/es_CU (Cuba) et en excluant du lot: locale/es_ES contenu_locale_ES = [esX for esX in glob.glob('locale'+os.sep+'*') if esX[:-3] == 'locale'+os.sep+'es' and esX != 'locale'+os.sep+'es_ES'] # Liste récupérant les chemins sous la forme: locale/de_LU (Luxembourg) et en excluant du lot: locale/de_DE contenu_locale_DE = [deX for deX in glob.glob('locale'+os.sep+'*') if deX[:-3] == 'locale'+os.sep+'de' and deX != 'locale'+os.sep+'de_DE'] # Liste récupérant les chemins sous la forme: locale/nl_BE (Belgique) et en excluant du lot: locale/nl_NL contenu_locale_NL = [nlX for nlX in glob.glob('locale'+os.sep+'*') if nlX[:-3] == 'locale'+os.sep+'nl' and nlX != 'locale'+os.sep+'nl_NL'] # Liste récupérant les chemins sous la forme: locale/pt_BR (Brésil) et en excluant du lot: locale/pt_PT contenu_locale_PT = [ptX for ptX in glob.glob('locale'+os.sep+'*') if ptX[:-3] == 'locale'+os.sep+'pt' and ptX != 'locale'+os.sep+'pt_PT'] # On vérifie si les fichiers ekd.mo et ekdDoc.mo sont déjà présents dans # les différents répertoires en_..., si c'est le cas ils sont éliminés. # Ensuite les fichiers .mo sont copiés dans chaque répertoire de langue # anglaise for parcEN in contenu_locale_EN: parc_EN = parcEN + os.sep + 'LC_MESSAGES' + os.sep if 'ekd.mo' in os.listdir(parc_EN): os.remove(parc_EN+'ekd.mo') shutil.copy('locale'+os.sep+'en_EN'+os.sep+'LC_MESSAGES'+os.sep+'ekd.mo', parc_EN) if 'ekdDoc.mo' in os.listdir(parc_EN): os.remove(parc_EN+'ekdDoc.mo') shutil.copy('locale'+os.sep+'en_EN'+os.sep+'LC_MESSAGES'+os.sep+'ekdDoc.mo', parc_EN) # Même chose qu'au dessus mais pour la langue espagnole for parcES in contenu_locale_ES: parc_ES = parcES + os.sep + 'LC_MESSAGES' + os.sep if 'ekd.mo' in os.listdir(parc_ES): os.remove(parc_ES+'ekd.mo') shutil.copy('locale'+os.sep+'es_ES'+os.sep+'LC_MESSAGES'+os.sep+'ekd.mo', parc_ES) if 'ekdDoc.mo' in os.listdir(parc_ES): os.remove(parc_ES+'ekdDoc.mo') shutil.copy('locale'+os.sep+'es_ES'+os.sep+'LC_MESSAGES'+os.sep+'ekdDoc.mo', parc_ES) # Même chose qu'au dessus mais pour la langue allemande # Attention ici (et pour l'instant) le ekdDoc.mo présent # est celui de langue anglaise for parcDE in contenu_locale_DE: parc_DE = parcDE + os.sep + 'LC_MESSAGES' + os.sep if 'ekd.mo' in os.listdir(parc_DE): os.remove(parc_DE+'ekd.mo') shutil.copy('locale'+os.sep+'de_DE'+os.sep+'LC_MESSAGES'+os.sep+'ekd.mo', parc_DE) if 'ekdDoc.mo' in os.listdir(parc_DE): os.remove(parc_DE+'ekdDoc.mo') shutil.copy('locale'+os.sep+'de_DE'+os.sep+'LC_MESSAGES'+os.sep+'ekdDoc.mo', parc_DE) # Même chose qu'au dessus mais pour la langue néerlandaise # Attention ici (et pour l'instant) le ekdDoc.mo présent # est celui de langue anglaise for parcNL in contenu_locale_NL: parc_NL = parcNL + os.sep + 'LC_MESSAGES' + os.sep if 'ekd.mo' in os.listdir(parc_NL): os.remove(parc_NL+'ekd.mo') shutil.copy('locale'+os.sep+'nl_NL'+os.sep+'LC_MESSAGES'+os.sep+'ekd.mo', parc_NL) if 'ekdDoc.mo' in os.listdir(parc_NL): os.remove(parc_NL+'ekdDoc.mo') shutil.copy('locale'+os.sep+'nl_NL'+os.sep+'LC_MESSAGES'+os.sep+'ekdDoc.mo', parc_NL) # Même chose qu'au dessus mais pour la langue portugaise # Attention ici (et pour l'instant) le ekdDoc.mo présent # est celui de langue anglaise for parcPT in contenu_locale_PT: parc_PT = parcPT + os.sep + 'LC_MESSAGES' + os.sep if 'ekd.mo' in os.listdir(parc_PT): os.remove(parc_PT+'ekd.mo') shutil.copy('locale'+os.sep+'pt_PT'+os.sep+'LC_MESSAGES'+os.sep+'ekd.mo', parc_PT) if 'ekdDoc.mo' in os.listdir(parc_PT): os.remove(parc_PT+'ekdDoc.mo') shutil.copy('locale'+os.sep+'pt_PT'+os.sep+'LC_MESSAGES'+os.sep+'ekdDoc.mo', parc_PT) # Détection de la langue self.langue_locale = str(QLocale.system().name()) # Liste des pays francophones et provinces d'outre-mer (dont au moins la 2ème langue parlée est le français). # fr_FR --> France métropolitaine, fr_BE --> Belgique, fr_CA --> Canada, fr_LU --> Luxembourg, fr_CH --> Suisse, fr_MC --> Monaco, # fr_TF --> French Southern and Antartics Lands, fr_Yt --> Myotte, fr_CF --> Centrafrique, fr_CI --> Côte d'Ivoire, fr_CM --> Cameroun, # fr fr_DZ --> Algérie, fr_GA --> Gabon, fr_GP --> Guadeloupe, fr_GQ --> Guinée Equatoriale, fr_GY --> Guyane, fr_HT --> Haïti, # fr_MG --> Madagascar, fr_ML --> Mali, fr_MQ --> Martinique, fr_BJ --> Bénin, fr_BF --> Burkina Faso, fr_DJ --> Djibouti, # fr_NE --> Niger, fr_CD --> Congo, fr_PF --> Polynésie Française, fr_PM -> St Pierre et Miquelon, fr_RE --> Réunion, # fr_SC --> Seychelles, fr_SN --> Sénégal, fr_RW --> Rwanda, fr_TD --> Tchad, fr_TG --> Togo # Si on a spécifiquement une locale en_EN ou es_ES, la # fonction n'est pas exécutée if self.langue_locale not in ['en_EN', 'es_ES', 'de_DE', 'nl_NL', 'pt_PT']: # De même si la langue française est détectée, la # fonction n'est pas exécutée if self.langue_locale[0:2] != 'fr': self.langue_autre() def langue_autre(self): # ------------------------------------------------------- # Cette fonction sert à afficher l'interface d'EKD en anglais pour toutes les langues non gérées par EKD # ------------------------------------------------------- # Détection des répertoires langue gérés par EKD listeRepLocale = [os.path.basename(parcLoc) for parcLoc in glob.glob('locale'+os.sep+'*') if '_' in parcLoc and len(parcLoc) == 12] listeRepLocale.sort() # Chemin interne langue d'EKD arborescence_nouvelle_langue = os.sep+'locale'+os.sep+self.langue_locale+os.sep+'LC_MESSAGES' # Supression du chemin du répertoire langue (avec lequel on travaille) if os.path.isdir(os.path.dirname(os.getcwd()+os.sep+arborescence_nouvelle_langue)) is True: shutil.rmtree(os.path.dirname(os.getcwd()+os.sep+arborescence_nouvelle_langue)) # L'arborescence de langue est crée os.makedirs(os.getcwd()+arborescence_nouvelle_langue, 0755) liste_langue_locale = [] for parcLocale in listeRepLocale: # Si les langues contenues dans self.langue_locale (les langues # officiellement gérées par EKD) sont différentes de la langue détectée ... if parcLocale != self.langue_locale: liste_langue_locale.append(self.langue_locale) # Si la liste contient au moins un élément, les fichiers .mo (compilés) sont copiés dans le nouveau répertoire langue # qui vient d'être crée. Cela permet d'afficher l'interface en anglais pour les langues non gérées par EKD. if len(liste_langue_locale) >= 1: shutil.copy(os.getcwd()+os.sep+'locale'+os.sep+'en_EN'+os.sep+'LC_MESSAGES'+os.sep+'ekd.mo', os.getcwd()+arborescence_nouvelle_langue+os.sep+'ekd.mo') shutil.copy(os.getcwd()+os.sep+'locale'+os.sep+'en_EN'+os.sep+'LC_MESSAGES'+os.sep+'ekdDoc.mo', os.getcwd()+arborescence_nouvelle_langue+os.sep+'ekdDoc.mo') # Appel de la classe main = GestionLangues()