Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

43 deepl fix #44

Merged
merged 1 commit into from
Nov 5, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 70 additions & 62 deletions Deepl-Trad/Deepl-Trad.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# Listes des couleur

def colored_text(text, color_code):
return f"\033[{color_code}{text}\033[0m"
return f"\033[{color_code}{text}\033[0m"

# print(colored_text("Texte en Gris", "90m"))
# print(colored_text("Texte en Rouge", "91m"))
Expand All @@ -24,20 +24,24 @@ def colored_text(text, color_code):

# Fonction pour récupérer la valeur du compteur de caractères
def get_character_count(count_file):
if os.path.exists(count_file):
with open(count_file, "r") as f:
data = json.load(f)
character_count = data.get("character_count", 0)
return character_count
else:
# Si le fichier n'existe pas, le compteur est à zéro
return 0
if os.path.exists(count_file):
with open(count_file, "r") as f:
data = json.load(f)
character_count = data.get("character_count", 0)
return character_count
else:
# Si le fichier n'existe pas, le compteur est à zéro
return 0

# Fonction pour obtenir le répertoire d'origine du script
def get_origin_path():
return os.path.dirname(os.path.realpath(__file__))

# Fonction pour traduire un texte avec DeepL
def translate_with_deepl(text, source_lang, target_lang, auth_key):
translator = deepl.Translator(auth_key)
result = translator.translate_text(text, source_lang=source_lang, target_lang=target_lang)
return result.text
translator = deepl.Translator(auth_key)
result = translator.translate_text(text, source_lang=source_lang, target_lang=target_lang)
return result.text

# Fonction pour traduire un fichier
def translate_file(input_file, source_lang, target_lang, auth_key, count_file, shell_script):
Expand All @@ -57,11 +61,15 @@ def translate_file(input_file, source_lang, target_lang, auth_key, count_file, s
# Extraire le nom du fichier (sans extension) ou du répertoire
file_name, _ = os.path.splitext(os.path.basename(input_file))

# Créer le chemin du répertoire de résultat
result_dir = os.path.expanduser('~/Deepl/Result')
# Obtenez le répertoire d'origine du script
script_origin_path = get_origin_path()

# Créer le chemin du répertoire de résultat dans le répertoire d'origine
result_dir = os.path.join(script_origin_path, "result")

os.makedirs(result_dir, exist_ok=True) # Créer le répertoire s'il n'existe pas

# Créer le nom du fichier traduit
# Créer le nom du fichier traduit dans le répertoire de résultat
output_file = os.path.join(result_dir, f"{file_name}_{target_lang}.md")

# Écrire le texte traduit dans le fichier de sortie
Expand All @@ -80,7 +88,7 @@ def translate_file(input_file, source_lang, target_lang, auth_key, count_file, s
# Affiche la sortie d'erreur standard (stderr) de la commande
print(colored_text("Erreur de la commande Shell:", "91m"))
print(result.stderr)

print("Nombre de caractères utilisés:", character_count)
print("Nombre de caractères restants:", current_character_count)
else:
Expand All @@ -89,51 +97,51 @@ def translate_file(input_file, source_lang, target_lang, auth_key, count_file, s
print("Nombre de caractères disponibles:", current_character_count)

def main():
# Chemin du fichier de clé API DeepL
deepl_api_key_path = os.path.expanduser("~/.config/Deepl/Key.txt")

if os.path.isfile(deepl_api_key_path):
with open(deepl_api_key_path, 'r') as f:
DEEPL_AUTH_KEY = f.read().strip()
else:
print(colored_text("Erreur : Le fichier Key.txt est introuvable dans ~/.config/Deepl/", "91m"))
print(colored_text("Veuillez créer un fichier Key.txt dans ce répertoire avec votre clé API DeepL.", "91m"))
return # Arrêter le script en cas d'erreur

# Chemin du fichier de compteur
count_file = os.path.expanduser("~/.config/Deepl/Deepl-Count.json")

# Chemin vers le script Shell
shell_script = "~/Deepl/Count.sh"

# Demander la langue source
# source_lang = input("Langue source (par exemple, FR, EN, DE) : ")
source_lang_prompt = "Langue source (par exemple, FR, EN, DE) : "
source_lang_prompt = re.sub(r'\bsource\b', colored_text('source','93m'), source_lang_prompt)
source_lang = input(source_lang_prompt)

# Demander la langue cible
# target_lang = input("Langue cible (par exemple, FR, EN, DE) : ")
target_lang_prompt = "Langue cible (par exemple, FR, EN, DE) : "
target_lang_prompt = re.sub(r'\bcible\b', colored_text('cible','93m'), target_lang_prompt)
target_lang = input(target_lang_prompt)
# Passer en revue les fichiers dans le répertoire ou traiter le fichier d'entrée
input_path_prompt = "Entrez le chemin vers le fichier ou le répertoire INPUT : "
input_path_prompt = re.sub(r'\bINPUT\b', colored_text('INPUT','91m'), input_path_prompt)
input_path = input(input_path_prompt)

if os.path.isfile(input_path):
# Si c'est un fichier, traduire le fichier
translate_file(input_path, source_lang, target_lang, DEEPL_AUTH_KEY, count_file, shell_script)
elif os.path.isdir(input_path):
# Si c'est un répertoire, parcourir les fichiers et traduire chaque fichier texte
for root, _, files in os.walk(input_path):
for file in files:
if file.endswith(".md"):
translate_file(os.path.join(root, file), source_lang, target_lang, DEEPL_AUTH_KEY, count_file, shell_script)
else:
print(colored_text("Le chemin spécifié n'existe pas.", "91m"))
# Chemin du fichier de clé API DeepL
deepl_api_key_path = os.path.expanduser("~/.config/Deepl/Key.txt")

if os.path.isfile(deepl_api_key_path):
with open(deepl_api_key_path, 'r') as f:
DEEPL_AUTH_KEY = f.read().strip()
else:
print(colored_text("Erreur : Le fichier Key.txt est introuvable dans ~/.config/Deepl/", "91m"))
print(colored_text("Veuillez créer un fichier Key.txt dans ce répertoire avec votre clé API DeepL.", "91m"))
return # Arrêter le script en cas d'erreur

# Chemin du fichier de compteur
count_file = os.path.expanduser("~/.config/Deepl/Deepl-Count.json")

# Chemin vers le script Shell
shell_script = "~/Deepl/Count.sh"

# Demander la langue source
source_lang_prompt = "Langue source (par exemple, FR, EN, DE) : "
source_lang_prompt = re.sub(r'\bsource\b', colored_text('source','93m'), source_lang_prompt)
source_lang = input(source_lang_prompt)


# Demander la langue cible
target_lang_prompt = "Langue cible (par exemple, FR, EN, DE) : "
target_lang_prompt = re.sub(r'\bcible\b', colored_text('cible','93m'), target_lang_prompt)
target_lang = input(target_lang_prompt)

# Passer en revue les fichiers dans le répertoire ou traiter le fichier d'entrée
input_path_prompt = "Entrez le chemin vers le fichier ou le répertoire INPUT : "
input_path_prompt = re.sub(r'\bINPUT\b', colored_text('INPUT','91m'), input_path_prompt)
input_path = input(input_path_prompt)

if os.path.isfile(input_path):
# Si c'est un fichier, traduire le fichier
translate_file(input_path, source_lang, target_lang, DEEPL_AUTH_KEY, count_file, shell_script)
elif os.path.isdir(input_path):
# Si c'est un répertoire, parcourir les fichiers et traduire chaque fichier texte
for root, _, files in os.walk(input_path):
for file in files:
if file.endswith(".md"):
translate_file(os.path.join(root, file), source_lang, target_lang, DEEPL_AUTH_KEY, count_file, shell_script)
else:
print(colored_text("Le chemin spécifié n'existe pas.", "91m"))

if __name__ == "__main__":
main()
main()