Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
5 changes: 3 additions & 2 deletions dialogs/change_language.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import strings.en_US, strings.ro_RO
import strings.en_US, strings.ro_RO, strings.fr_FR
import tkinter as tk, strings, custom_ui
from tkinter import ttk
from utils import preferences
Expand All @@ -11,7 +11,7 @@ def show():
window.title(strings.lang.change_language)
window.configure(padx = preferences.get_scaled_value(16), pady = 0)

languages = ["default", "en_US", "ro_RO"]
languages = ["default", "en_US", "ro_RO", "fr_FR"]
language = tk.StringVar(value = preferences.language if preferences.language in languages else "default")

header = ttk.Frame(window)
Expand All @@ -23,6 +23,7 @@ def show():
custom_ui.Radiobutton(window, text = strings.lang.lang_system_default, value = "default", variable = language).pack(anchor = "w")
custom_ui.Radiobutton(window, text = strings.en_US.language, value = "en_US", variable = language).pack(anchor = "w")
custom_ui.Radiobutton(window, text = strings.ro_RO.language, value = "ro_RO", variable = language).pack(anchor = "w")
custom_ui.Radiobutton(window, text = strings.fr_FR.language, value = "fr_FR", variable = language).pack(anchor = "w")

buttons = ttk.Frame(window)
buttons.pack(pady = preferences.get_scaled_value(16), fill = "x")
Expand Down
1 change: 1 addition & 0 deletions strings/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ def load_language(language: str):

match language:
case "ro_RO": import strings.ro_RO; lang = strings.ro_RO
case "fr_FR": import strings.fr_FR; lang = strings.fr_FR
case _: import strings.en_US; lang = strings.en_US
55 changes: 55 additions & 0 deletions strings/fr_FR.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from . import _info

# Informations sur la langue
language = "Français"
language_en = "French"
author = "Valer100"

# Fenêtre principale
choose_a_file = "Choisir un fichier"
choose_a_folder = "Choisir un dossier"
pin_to_taskbar_a_shortcut_to = "Épingler à la barre des tâches un raccourci vers :"
a_file = "Un fichier"
a_folder = "Un dossier"
a_separator = "Un séparateur"
file_desc = "Choisir un fichier et créer un raccourci"
folder_desc = "Choisir un dossier et créer un raccourci"
separator_desc = "Choisir un type de séparateur et créer un raccourci"
pin_separator = "Épingler un séparateur"
settings = "Paramètres"

# Fenêtre du séparateur
choose_a_separator_type = "Choisir un type de séparateur :"
vertical_line = "Ligne verticale"
horizontal_line = "Ligne horizontale"
transparent = "Transparent"
create_the_shortcut = "Créer le raccourci"

# Fenêtre de personnalisation du raccourci
customize_shortcut = "Personnaliser le raccourci"
use_folder_icon = "Utiliser l'icône du dossier"
change_icon = "Changer l'icône"
illegal_characters = "\\, /, :, *, ?, <, >, |"
illegal_names = "nul, con, prn, aux, com1, com2, com3, com4, com5, com6, com7, com8, com9, lpt1, lpt2, lpt3, lpt4, lpt5, lpt6, lpt7, lpt8, lpt9"
shortcut_name_invalid = "Nom de raccourci invalide"
shortcut_name_invalid_description = f"Le nom du raccourci contient des caractères interdits, comme {illegal_characters}, ou utilise un nom réservé au système, comme {illegal_names}.\n\nLes caractères interdits seront remplacés par un trait de soulignement (_) et les noms réservés seront suivis d'un trait de soulignement (_)."

# Autre
open_source_licenses = "Licences open source"
change_language = "Changer la langue"
change_theme = "Changer le thème"
light_theme = "Thème clair"
dark_theme = "Thème sombre"
lang_system_default = "Paramètre système par défaut"
ok = "OK"
cancel = "Annuler"
shortcut_created_message = "Le raccourci a été créé.\n\nMaintenant, faites glisser le raccourci depuis le dossier qui vient de s'ouvrir vers votre barre des tâches, puis fermez la fenêtre de l'Explorateur de fichiers.\n\nCette étape supplémentaire est nécessaire car il n'est pas aisé pour un programme tiers d'épingler un raccourci directement sur la barre des tâches de Windows 10 et 11."
about_this_app = "À propos de cette application"
about_title = "À propos de Files & Folders on Taskbar"
version = f"Version {_info.version}"
last_commit = f"(dernier commit : {_info.last_commit})"
issues = "Problèmes / Bugs"
latest_version = "Dernière version"
copy_traceback = "Copier le traceback"
license = "Licence"
translation_made_by = "Traduction réalisée par %a"
21 changes: 19 additions & 2 deletions utils/preferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,25 @@
if not os.path.exists(working_folder + "shortcut"): os.mkdir(working_folder + "shortcut")
if not os.path.exists(temp): os.mkdir(temp)

shutil.rmtree(working_folder + "separators")
shutil.copytree(internal + "separators", working_folder + "separators")
# Copy separators, handling permission errors
try:
if os.path.exists(working_folder + "separators"):
shutil.rmtree(working_folder + "separators", ignore_errors=True)
shutil.copytree(internal + "separators", working_folder + "separators")
except (PermissionError, OSError):
# If we can't remove/copy, try to update existing files
if os.path.exists(internal + "separators"):
for item in os.listdir(internal + "separators"):
src = os.path.join(internal + "separators", item)
dst = os.path.join(working_folder + "separators", item)
try:
if os.path.isdir(src):
if not os.path.exists(dst):
shutil.copytree(src, dst)
else:
shutil.copy2(src, dst)
except (PermissionError, OSError):
pass

theme, language = "default", "default"

Expand Down