From 3daaf92e0ad08ef7e01aaa165253ec7f3a1ccf55 Mon Sep 17 00:00:00 2001 From: Michael Brunner Date: Tue, 14 Jul 2026 11:24:39 +0200 Subject: [PATCH 1/4] feat: Add language enum and update utility controller for localization support --- docs/documentation/enums.md | 7 ++++ src/cadwork/__init__.pyi | 2 ++ src/cadwork/language.pyi | 50 +++++++++++++++++++++++++++++ src/utility_controller/__init__.pyi | 22 +++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 src/cadwork/language.pyi diff --git a/docs/documentation/enums.md b/docs/documentation/enums.md index 7bf7546..ddb5fc7 100644 --- a/docs/documentation/enums.md +++ b/docs/documentation/enums.md @@ -120,3 +120,10 @@ rendering: show_root_heading: false show_source: true + +## Language + +::: cadwork.language + rendering: + show_root_heading: false + show_source: true diff --git a/src/cadwork/__init__.pyi b/src/cadwork/__init__.pyi index 9afa4fe..621ac99 100644 --- a/src/cadwork/__init__.pyi +++ b/src/cadwork/__init__.pyi @@ -74,6 +74,7 @@ from .hundegger_machine_type import hundegger_machine_type as hundegger_machine_ from .ifc_2x3_element_type import ifc_2x3_element_type as ifc_2x3_element_type from .ifc_element_combine_behaviour import ifc_element_combine_behaviour as ifc_element_combine_behaviour from .ifc_predefined_type import ifc_predefined_type as ifc_predefined_type +from .language import language as language from .multi_layer_cover_type import multi_layer_cover_type as multi_layer_cover_type from .multi_layer_subtype import multi_layer_subtype as multi_layer_subtype from .multi_layer_type import multi_layer_type as multi_layer_type @@ -153,6 +154,7 @@ __all__ = [ "ifc_2x3_element_type", "ifc_element_combine_behaviour", "ifc_predefined_type", + "language", "multi_layer_cover_type", "multi_layer_subtype", "multi_layer_type", diff --git a/src/cadwork/language.pyi b/src/cadwork/language.pyi new file mode 100644 index 0000000..092347a --- /dev/null +++ b/src/cadwork/language.pyi @@ -0,0 +1,50 @@ +from enum import IntEnum, unique + + +@unique +class language(IntEnum): + """ Available cadwork UI languages for set_language(). + + The values match the ISO codes returned by get_language(). + + Examples: + >>> cadwork.language.german + german + """ + english = 0 + """en""" + german = 1 + """de""" + french = 2 + """fr""" + italian = 3 + """it""" + spanish = 4 + """es""" + czech = 5 + """cs""" + finnish = 6 + """fi""" + russian = 7 + """ru""" + polish = 8 + """pl""" + romanian = 9 + """ro""" + norwegian = 10 + """no""" + chinese = 11 + """zh""" + portuguese = 12 + """pt""" + estonian = 13 + """et""" + japanese = 14 + """ja""" + dutch = 15 + """nl""" + swedish = 16 + """sv""" + + def __int__(self) -> int: + return self.value diff --git a/src/utility_controller/__init__.pyi b/src/utility_controller/__init__.pyi index b26465c..c0a2b42 100644 --- a/src/utility_controller/__init__.pyi +++ b/src/utility_controller/__init__.pyi @@ -13,6 +13,7 @@ from cadwork.point_3d import point_3d from cadwork.window_geometry import window_geometry from cadwork.shortcut_key import shortcut_key from cadwork.shortcut_key_modifier import shortcut_key_modifier +from cadwork.language import language def get_3d_version() -> int: @@ -65,6 +66,27 @@ def get_language() -> str: """ +def set_language(language: language) -> None: + """Sets the 3D language and refreshes the UI. + + Examples: + >>> import utility_controller as uc + >>> import cadwork + >>> uc.set_language(cadwork.language.german) + + Parameters: + language: The language to set. + """ + + +def get_language_enum() -> language: + """Gets the 3D language as a typed enum. + + Returns: + The active language. + """ + + def print_message(message: str, row: int, column: int) -> None: """Prints a message that will be visualized in the bottom toolbar of the 3D view. You can arrange the message in the desired position by specifying the row and column. From 2475011e49afca7c9bf68a678a071d9ebaeb4a1d Mon Sep 17 00:00:00 2001 From: Michael Brunner Date: Tue, 14 Jul 2026 11:26:16 +0200 Subject: [PATCH 2/4] bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 574356e..a07ca45 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cwapi3d" -version = "33.300.0" +version = "33.307.0" authors = [{ name = "Cadwork", email = "it@cadwork.ca" }] requires-python = ">= 3.14" description = 'Python bindings for CwAPI3D' From 5b68f859cb4067f3669e6193a641e1a92dff30be Mon Sep 17 00:00:00 2001 From: Michael Brunner <71121348+Brunner246@users.noreply.github.com> Date: Tue, 14 Jul 2026 11:57:07 +0200 Subject: [PATCH 3/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/utility_controller/__init__.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utility_controller/__init__.pyi b/src/utility_controller/__init__.pyi index c0a2b42..7fd2517 100644 --- a/src/utility_controller/__init__.pyi +++ b/src/utility_controller/__init__.pyi @@ -66,7 +66,7 @@ def get_language() -> str: """ -def set_language(language: language) -> None: +def set_language(lang: language) -> None: """Sets the 3D language and refreshes the UI. Examples: @@ -75,7 +75,7 @@ def set_language(language: language) -> None: >>> uc.set_language(cadwork.language.german) Parameters: - language: The language to set. + lang: The language to set. """ From 2880b1b90afe2eda79251380620b68403bf525c0 Mon Sep 17 00:00:00 2001 From: Michael Brunner <71121348+Brunner246@users.noreply.github.com> Date: Tue, 14 Jul 2026 11:57:44 +0200 Subject: [PATCH 4/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/cadwork/language.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cadwork/language.pyi b/src/cadwork/language.pyi index 092347a..41b6d5d 100644 --- a/src/cadwork/language.pyi +++ b/src/cadwork/language.pyi @@ -3,9 +3,9 @@ from enum import IntEnum, unique @unique class language(IntEnum): - """ Available cadwork UI languages for set_language(). + """Available cadwork UI languages for set_language(). - The values match the ISO codes returned by get_language(). + The numeric values are cadwork language IDs; each member is documented with the ISO code returned by get_language(). Examples: >>> cadwork.language.german