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/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' 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..41b6d5d --- /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 numeric values are cadwork language IDs; each member is documented with the ISO code 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..7fd2517 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(lang: 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: + lang: 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.