Translation Popup now added.
Due to some werid thing in Blender 4.2+ where we just can't get descriptions to translate, we now tell the user some translations won't apply unto restart.
This commit is contained in:
@@ -13,6 +13,11 @@ def register():
|
||||
update=update_language
|
||||
)
|
||||
|
||||
bpy.types.Scene.avatar_toolkit_language_changed = bpy.props.BoolProperty(default=False)
|
||||
|
||||
def unregister():
|
||||
if hasattr(bpy.types.Scene, "avatar_toolkit_language"):
|
||||
del bpy.types.Scene.avatar_toolkit_language
|
||||
|
||||
if hasattr(bpy.types.Scene, "avatar_toolkit_language_changed"):
|
||||
del bpy.types.Scene.avatar_toolkit_language_changed
|
||||
|
||||
@@ -87,8 +87,10 @@ def update_language(self, context):
|
||||
print(f"Updating language to: {self.avatar_toolkit_language}") # Debug print
|
||||
save_preference("language", int(self.avatar_toolkit_language))
|
||||
load_translations()
|
||||
# Reload the addon
|
||||
bpy.ops.script.reload()
|
||||
# Set a flag to indicate that a language change has occurred
|
||||
context.scene.avatar_toolkit_language_changed = True
|
||||
# Show popup after language change
|
||||
bpy.ops.avatar_toolkit.translation_restart_popup('INVOKE_DEFAULT')
|
||||
|
||||
# Initial load of translations
|
||||
print("Performing initial load of translations") # Debug print
|
||||
|
||||
@@ -31,7 +31,11 @@
|
||||
"Tools.convert_to_resonite.desc": "Converts bone names on a model to names compatable with Resonite",
|
||||
"Settings.label": "Settings",
|
||||
"Settings.language.label": "Language",
|
||||
"Settings.language.desc": "Select the language for the addon's UI"
|
||||
"Settings.language.desc": "Select the language for the addon's UI",
|
||||
"Settings.translation_restart_popup.label": "Translation Update",
|
||||
"Settings.translation_restart_popup.description": "Information about translation updates",
|
||||
"Settings.translation_restart_popup.message1": "Some translations may not apply",
|
||||
"Settings.translation_restart_popup.message2": "until you restart Blender."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
"Tools.convert_to_resonite.desc": "モデルのボーン名をResoniteと互換性のある名前に変換します",
|
||||
"Settings.label": "設定",
|
||||
"Settings.language.label": "言語",
|
||||
"Settings.language.desc": "アドオンのUI言語を選択してください"
|
||||
"Settings.language.desc": "アドオンのUI言語を選択してください",
|
||||
"Settings.translation_restart_popup.label": "翻訳の更新",
|
||||
"Settings.translation_restart_popup.description": "翻訳の更新に関する情報",
|
||||
"Settings.translation_restart_popup.message1": "一部の翻訳は適用されない場合があります",
|
||||
"Settings.translation_restart_popup.message2": "Blenderを再起動するまで。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,3 +15,26 @@ class AvatarToolkitSettingsPanel(bpy.types.Panel):
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.prop(context.scene, "avatar_toolkit_language", text=t("Settings.language.label"))
|
||||
|
||||
@register_wrap
|
||||
class AVATAR_TOOLKIT_OT_translation_restart_popup(bpy.types.Operator):
|
||||
bl_idname = "avatar_toolkit.translation_restart_popup"
|
||||
bl_label = t("Settings.translation_restart_popup.label")
|
||||
bl_description = t("Settings.translation_restart_popup.description")
|
||||
bl_options = {'INTERNAL'}
|
||||
|
||||
def execute(self, context):
|
||||
if context.scene.avatar_toolkit_language_changed:
|
||||
# Reload the addon after the popup is closed
|
||||
bpy.ops.script.reload()
|
||||
context.scene.avatar_toolkit_language_changed = False
|
||||
return {'FINISHED'}
|
||||
|
||||
def invoke(self, context, event):
|
||||
return context.window_manager.invoke_props_dialog(self, width=300)
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.label(text=t("Settings.translation_restart_popup.message1"))
|
||||
layout.label(text=t("Settings.translation_restart_popup.message2"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user