Skip to content

Commit 0cfbb0f

Browse files
authored
Merge pull request #3 from Locktix/main
Add French language support and improve separator copying
2 parents adc569d + 403d072 commit 0cfbb0f

File tree

4 files changed

+78
-4
lines changed

4 files changed

+78
-4
lines changed

dialogs/change_language.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import strings.en_US, strings.ro_RO
1+
import strings.en_US, strings.ro_RO, strings.fr_FR
22
import tkinter as tk, strings, custom_ui
33
from tkinter import ttk
44
from utils import preferences
@@ -11,7 +11,7 @@ def show():
1111
window.title(strings.lang.change_language)
1212
window.configure(padx = preferences.get_scaled_value(16), pady = 0)
1313

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

1717
header = ttk.Frame(window)
@@ -22,6 +22,7 @@ def show():
2222

2323
custom_ui.Radiobutton(window, text = strings.lang.lang_system_default, value = "default", variable = language).pack(anchor = "w")
2424
custom_ui.Radiobutton(window, text = strings.en_US.language, value = "en_US", variable = language).pack(anchor = "w")
25+
custom_ui.Radiobutton(window, text = strings.fr_FR.language, value = "fr_FR", variable = language).pack(anchor = "w")
2526
custom_ui.Radiobutton(window, text = strings.ro_RO.language, value = "ro_RO", variable = language).pack(anchor = "w")
2627

2728
buttons = ttk.Frame(window)

strings/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ def load_language(language: str):
66

77
match language:
88
case "ro_RO": import strings.ro_RO; lang = strings.ro_RO
9+
case "fr_FR": import strings.fr_FR; lang = strings.fr_FR
910
case _: import strings.en_US; lang = strings.en_US

strings/fr_FR.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
from . import _info
2+
3+
# Informations sur la langue
4+
language = "Français"
5+
language_en = "French"
6+
author = "Locktix"
7+
8+
# Fenêtre principale
9+
choose_a_file = "Choisir un fichier"
10+
choose_a_folder = "Choisir un dossier"
11+
pin_to_taskbar_a_shortcut_to = "Épingler à la barre des tâches un raccourci vers :"
12+
a_file = "Un fichier"
13+
a_folder = "Un dossier"
14+
a_separator = "Un séparateur"
15+
file_desc = "Choisir un fichier et créer un raccourci"
16+
folder_desc = "Choisir un dossier et créer un raccourci"
17+
separator_desc = "Choisir un type de séparateur et créer un raccourci"
18+
pin_separator = "Épingler un séparateur"
19+
settings = "Paramètres"
20+
21+
# Fenêtre du séparateur
22+
choose_a_separator_type = "Choisir un type de séparateur :"
23+
vertical_line = "Ligne verticale"
24+
horizontal_line = "Ligne horizontale"
25+
transparent = "Transparent"
26+
create_the_shortcut = "Créer le raccourci"
27+
28+
# Fenêtre de personnalisation du raccourci
29+
customize_shortcut = "Personnaliser le raccourci"
30+
use_folder_icon = "Utiliser l'icône du dossier"
31+
change_icon = "Changer l'icône"
32+
illegal_characters = "\\, /, :, *, ?, <, >, |"
33+
illegal_names = "nul, con, prn, aux, com1, com2, com3, com4, com5, com6, com7, com8, com9, lpt1, lpt2, lpt3, lpt4, lpt5, lpt6, lpt7, lpt8, lpt9"
34+
shortcut_name_invalid = "Nom de raccourci invalide"
35+
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 (_)."
36+
37+
# Autre
38+
open_source_licenses = "Licences open source"
39+
change_language = "Changer la langue"
40+
change_theme = "Changer le thème"
41+
light_theme = "Thème clair"
42+
dark_theme = "Thème sombre"
43+
lang_system_default = "Paramètre système par défaut"
44+
ok = "OK"
45+
cancel = "Annuler"
46+
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."
47+
about_this_app = "À propos de cette application"
48+
about_title = "À propos de Files & Folders on Taskbar"
49+
version = f"Version {_info.version}"
50+
last_commit = f"(dernier commit : {_info.last_commit})"
51+
issues = "Problèmes / Bugs"
52+
latest_version = "Dernière version"
53+
copy_traceback = "Copier le traceback"
54+
license = "Licence"
55+
translation_made_by = "Traduction réalisée par %a"

utils/preferences.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,25 @@
2626
if not os.path.exists(working_folder + "shortcut"): os.mkdir(working_folder + "shortcut")
2727
if not os.path.exists(temp): os.mkdir(temp)
2828

29-
shutil.rmtree(working_folder + "separators")
30-
shutil.copytree(internal + "separators", working_folder + "separators")
29+
# Copy separators, handling permission errors
30+
try:
31+
if os.path.exists(working_folder + "separators"):
32+
shutil.rmtree(working_folder + "separators", ignore_errors=True)
33+
shutil.copytree(internal + "separators", working_folder + "separators")
34+
except (PermissionError, OSError):
35+
# If we can't remove/copy, try to update existing files
36+
if os.path.exists(internal + "separators"):
37+
for item in os.listdir(internal + "separators"):
38+
src = os.path.join(internal + "separators", item)
39+
dst = os.path.join(working_folder + "separators", item)
40+
try:
41+
if os.path.isdir(src):
42+
if not os.path.exists(dst):
43+
shutil.copytree(src, dst)
44+
else:
45+
shutil.copy2(src, dst)
46+
except (PermissionError, OSError):
47+
pass
3148

3249
theme, language = "default", "default"
3350

0 commit comments

Comments
 (0)