Skip to content

Commit

Permalink
Update the hardcoded language and appearance mode values to use mappi…
Browse files Browse the repository at this point in the history
…ngs from locale_utils.py
  • Loading branch information
Kielx committed Jul 8, 2023
1 parent 739227e commit 0876d94
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
10 changes: 7 additions & 3 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ def change_appearance_mode_event(new_appearance_mode):
customtkinter.set_appearance_mode(appearance_mode_mappings.inverse[new_appearance_mode])
update_config("appearance_mode", appearance_mode_mappings.inverse[new_appearance_mode])


def change_language_event(new_language):
"""Change appearance mode event handler for appearance mode menu.
@param new_language: new language - human-readable value with translation from language menu list.
Expand All @@ -45,7 +46,8 @@ class App(customtkinter.CTk):

def __init__(self):
super().__init__()
self.appearance_mode_variable = customtkinter.StringVar(value=appearance_mode_mappings[get_config_parameter_value("appearance_mode")])
self.appearance_mode_variable = customtkinter.StringVar(
value=appearance_mode_mappings[get_config_parameter_value("appearance_mode")])
customtkinter.set_appearance_mode(get_config_parameter_value("appearance_mode"))
self.geometry("720x520+0+0")
self.title("AnyGrabber")
Expand Down Expand Up @@ -117,17 +119,19 @@ def __init__(self):

self.appearance_mode_menu = customtkinter.CTkOptionMenu(self.navigation_frame,
text_color=("#eee", "#ccc"),
values=[_("Light"), _("Dark"), _("System")],
values=[appearance for appearance in
appearance_mode_mappings.values()],
command=change_appearance_mode_event,
variable=self.appearance_mode_variable)
self.appearance_mode_menu.grid(row=7, column=0, padx=20, pady=[0, 10], sticky="s")

self.lanuage_label = customtkinter.CTkLabel(self.navigation_frame, text_color=("#333", "#ccc"),
text=_("Language"))
self.lanuage_label.grid(row=8, column=0, padx=20, pady=0, sticky="n")

self.language_menu = customtkinter.CTkOptionMenu(self.navigation_frame,
text_color=("#eee", "#ccc"),
values=[_("English"), _("Polish")],
values=[lang for lang in language_mappings.values()],
command=change_language_event)
self.language_menu.grid(row=9, column=0, padx=20, pady=[0, 20], sticky="s")

Expand Down
10 changes: 9 additions & 1 deletion utils/locale_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,21 @@
from bidict import bidict
from utils.config_utils import get_config_parameter_value


# Get default locale from config file
default_locale = get_config_parameter_value("locale")

# Set up gettext for translation based on default locale
lang = gettext.translation("HomeFrame", localedir='locale', languages=[default_locale])
lang.install()
_ = lang.gettext

# Set up bidirectional mappings for language and appearance mode
# They are used throughout the application to convert between
# language/appearance mode codes and their human-readable names
# They are used in the language and appearance mode settings and menus
#
# **To add a new language/appearance mode, add a new entry to the mappings**
#
language_mappings = bidict({
"en-US": _("English"),
"pl-PL": _("Polish"),
Expand Down

0 comments on commit 0876d94

Please sign in to comment.