Improvements

- Added Most UI Translations.
- Improve Readability of the translation strings.
This commit is contained in:
Yusarina
2024-07-05 13:47:09 +01:00
parent ce9cc9684f
commit b7026b2a41
9 changed files with 86 additions and 51 deletions
+2 -2
View File
@@ -59,8 +59,8 @@ def report_consolidated(self: Operator, num_combined: int) -> None:
@register_wrap @register_wrap
class CombineMaterials(Operator): class CombineMaterials(Operator):
bl_idname = "avatar_toolkit.combine_materials" bl_idname = "avatar_toolkit.combine_materials"
bl_label = t("Optimization.combinematerials.label") bl_label = t("Optimization.combine_materials.label")
bl_description = t("Optimization.combinematerials.desc") bl_description = t("Optimization.combine_materials.desc")
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}
@classmethod @classmethod
+5 -4
View File
@@ -3,12 +3,13 @@ from typing import List, Optional
from bpy.types import Operator, Context, Object from bpy.types import Operator, Context, Object
from ..core.register import register_wrap from ..core.register import register_wrap
from ..core.common import fix_uv_coordinates from ..core.common import fix_uv_coordinates
from ..functions.translations import t
@register_wrap @register_wrap
class JoinAllMeshes(Operator): class JoinAllMeshes(Operator):
bl_idname = "avatar_toolkit.join_all_meshes" bl_idname = "avatar_toolkit.join_all_meshes"
bl_label = "Join All Meshes" bl_label = t("Optimization.join_all_meshes.label")
bl_description = "Join all meshes in the scene" bl_description = t("Optimization.join_all_meshes.desc")
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}
@classmethod @classmethod
@@ -45,8 +46,8 @@ class JoinAllMeshes(Operator):
@register_wrap @register_wrap
class JoinSelectedMeshes(Operator): class JoinSelectedMeshes(Operator):
bl_idname = "avatar_toolkit.join_selected_meshes" bl_idname = "avatar_toolkit.join_selected_meshes"
bl_label = "Join Selected Meshes" bl_label = t("Optimization.join_selected_meshes.label")
bl_description = "Join selected meshes" bl_description = t("Optimization.join_selected_meshes.desc")
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}
@classmethod @classmethod
+3 -2
View File
@@ -5,12 +5,13 @@ import re
from bpy.types import Operator, Context, Object from bpy.types import Operator, Context, Object
from ..core.dictionaries import bone_names from ..core.dictionaries import bone_names
from ..core.common import get_armature, simplify_bonename from ..core.common import get_armature, simplify_bonename
from ..functions.translations import t
@register_wrap @register_wrap
class ConvertToResonite(Operator): class ConvertToResonite(Operator):
bl_idname = 'avatar_toolkit.convert_to_resonite' bl_idname = 'avatar_toolkit.convert_to_resonite'
bl_label = "Convert to Resonite" #t('Tools.convert_to_resonite.label') bl_label = t('Tools.convert_to_resonite.label')
bl_description = "Converts bone names on a model to names compatable with Resonite" #t('Tools.convert_to_resonite.desc') bl_description = t('Tools.convert_to_resonite.desc')
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}
@classmethod @classmethod
+26 -12
View File
@@ -1,19 +1,33 @@
{ {
"messages": { "messages": {
"Settings.label": "Settings", "Quick_Access.label": "Quick Access",
"Settings.language.label": "Language", "Quick_Access.import_export.label": "Import/Export",
"Settings.language.desc": "Select the language for the addon's UI", "Quick_Access.options": "Quick Access Options",
"Quick_Access.import_export.txt": "Import/Export",
"Quick_Access.import_menu.label": "Import Menu",
"Quick_Access.import": "Import",
"Quick_Access.export": "Export",
"Quick_Access.import_pmx": "Import PMX",
"Quick_Access.import_pmd": "Import PMD",
"Quick_Access.export_menu.label": "Export Menu",
"Quick_Access.select_export.label": "Select Export Method",
"Quick_Access.select_export_resonite.label": "Resonite",
"Export.resonite.label": "Export to Resonite", "Export.resonite.label": "Export to Resonite",
"Export.resonite.desc": "Export a GLB with all animations and materials. For animation data see:", "Export.resonite.desc": "Export a GLB with all animations and materials. For animation data see:",
"Optimization.combinematerials.label": "Combine Materials", "Optimization.label": "Optimization",
"Optimization.combinematerials.desc": "Combine similar materials to optimize the model", "Optimization.options.label": "Optimization Options",
"QuickAccess.label": "Quick Access", "Optimization.combine_materials.label": "Combine Materials",
"QuickAcess.importexport.txt": "Import/Export", "Optimization.combine_materials.desc": "Combine similar materials to optimize the model",
"QuickAccess.options": "Quick Access Options", "Optimization.join_all_meshes.label": "Join All Meshes",
"QuickAccess.importexport.txt": "Import/Export", "Optimization.join_all_meshes.desc": "Join all meshes into one",
"QuickAccess.import": "Import", "Optimization.join_selected_meshes.label": "Join Selected Mehses",
"QuickAccess.export": "Export" "Optimization.join_selected_meshes.desc": "Join all currntly Selected Mehses into one",
"Tools.tools_title.label": "Tools",
"Tools.convert_to_resonite.label": "Convert to Resonite",
"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"
} }
} }
+26 -11
View File
@@ -1,17 +1,32 @@
{ {
"messages": { "messages": {
"Settings.label": "設定", "Quick_Access.label": "クイックアクセス",
"Settings.language.label": "言語", "Quick_Access.import_export.label": "インポート/エクスポート",
"Settings.language.desc": "アドオンのUI言語を選択してください", "Quick_Access.options": "クイックアクセスオプション",
"Quick_Access.import_export.txt": "インポート/エクスポート",
"Quick_Access.import_menu.label": "インポートメニュー",
"Quick_Access.import": "インポート",
"Quick_Access.export": "エクスポート",
"Quick_Access.import_pmx": "PMXインポート",
"Quick_Access.import_pmd": "PMDインポート",
"Quick_Access.export_menu.label": "エクスポートメニュー",
"Quick_Access.select_export.label": "エクスポート方法を選択",
"Quick_Access.select_export_resonite.label": "Resonite",
"Export.resonite.label": "Resoniteにエクスポート", "Export.resonite.label": "Resoniteにエクスポート",
"Export.resonite.desc": "すべてのアニメーションとマテリアルを含むGLBをエクスポートします。アニメーションデータについては以下を参照してください:", "Export.resonite.desc": "すべてのアニメーションとマテリアルを含むGLBをエクスポートします。アニメーションデータについては以下を参照してください:",
"Optimization.combinematerials.label": "マテリアルを結合", "Optimization.label": "最適化",
"Optimization.combinematerials.desc": "類似したマテリアルを結合してモデルを最適化します", "Optimization.options.label": "最適化オプション",
"QuickAccess.label": "クイックアクセス", "Optimization.combine_materials.label": "マテリアルを結合",
"QuickAcess.importexport.txt": "インポート/エクスポート", "Optimization.combine_materials.desc": "類似したマテリアルを結合してモデルを最適化します",
"QuickAccess.options": "クイックアクセスオプション", "Optimization.join_all_meshes.label": "すべてのメッシュを結合",
"QuickAccess.importexport.txt": "インポート/エクスポート", "Optimization.join_all_meshes.desc": "すべてのメッシュを1つに結合します",
"QuickAccess.import": "インポート", "Optimization.join_selected_meshes.label": "選択したメッシュを結合",
"QuickAccess.export": "エクスポート" "Optimization.join_selected_meshes.desc": "現在選択されているすべてのメッシュを1つに結合します",
"Tools.tools_title.label": "ツール",
"Tools.convert_to_resonite.label": "Resoniteに変換",
"Tools.convert_to_resonite.desc": "モデルのボーン名をResoniteと互換性のある名前に変換します",
"Settings.label": "設定",
"Settings.language.label": "言語",
"Settings.language.desc": "アドオンのUI言語を選択してください"
} }
} }
+7 -5
View File
@@ -1,10 +1,11 @@
import bpy import bpy
from ..core.register import register_wrap from ..core.register import register_wrap
from .panel import AvatarToolkitPanel from .panel import AvatarToolkitPanel
from ..functions.translations import t
@register_wrap @register_wrap
class AvatarToolkitOptimizationPanel(bpy.types.Panel): class AvatarToolkitOptimizationPanel(bpy.types.Panel):
bl_label = "Optimization" bl_label = t("Optimization.label")
bl_idname = "OBJECT_PT_avatar_toolkit_optimization" bl_idname = "OBJECT_PT_avatar_toolkit_optimization"
bl_space_type = 'VIEW_3D' bl_space_type = 'VIEW_3D'
bl_region_type = 'UI' bl_region_type = 'UI'
@@ -13,18 +14,19 @@ class AvatarToolkitOptimizationPanel(bpy.types.Panel):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
layout.label(text="Optimization Options") layout.label(text=t("Optimization.options.label"))
row = layout.row() row = layout.row()
row.scale_y = 1.2 row.scale_y = 1.2
row.operator("avatar_toolkit.combine_materials", text="Combine Materials") row.operator("avatar_toolkit.combine_materials", text=t("Optimization.combine_materials.label"))
layout.separator(factor=0.5) layout.separator(factor=0.5)
row = layout.row(align=True) row = layout.row(align=True)
row.scale_y = 1.2 row.scale_y = 1.2
row.operator("avatar_toolkit.join_all_meshes", text="Join All Meshes") row.operator("avatar_toolkit.join_all_meshes", text=t("Optimization.join_all_meshes.label"))
row.operator("avatar_toolkit.join_selected_meshes", text="Join Selected Meshes") row.operator("avatar_toolkit.join_selected_meshes", text=t("Optimization.join_selected_meshes.label"))
# Add optimization options here # Add optimization options here
+1
View File
@@ -1,5 +1,6 @@
import bpy import bpy
from ..core.register import register_wrap from ..core.register import register_wrap
from ..functions.translations import t
@register_wrap @register_wrap
class AvatarToolkitPanel(bpy.types.Panel): class AvatarToolkitPanel(bpy.types.Panel):
+13 -13
View File
@@ -9,7 +9,7 @@ from ..core.import_pmd import import_pmd
@register_wrap @register_wrap
class AvatarToolkitQuickAccessPanel(bpy.types.Panel): class AvatarToolkitQuickAccessPanel(bpy.types.Panel):
bl_label = t("QuickAccesslabel") bl_label = t("Quick_Access.label")
bl_idname = "OBJECT_PT_avatar_toolkit_quick_access" bl_idname = "OBJECT_PT_avatar_toolkit_quick_access"
bl_space_type = 'VIEW_3D' bl_space_type = 'VIEW_3D'
bl_region_type = 'UI' bl_region_type = 'UI'
@@ -18,22 +18,22 @@ class AvatarToolkitQuickAccessPanel(bpy.types.Panel):
def draw(self, context: Context): def draw(self, context: Context):
layout = self.layout layout = self.layout
layout.label(text=t("QuickAccess.options")) layout.label(text=t("Quick_Access.options"))
row = layout.row() row = layout.row()
row.label(text=t("QuickAccess.importexport.txt"), icon='IMPORT') row.label(text=t("Quick_Access.import_export.label"), icon='IMPORT')
layout.separator(factor=0.5) layout.separator(factor=0.5)
row = layout.row(align=True) row = layout.row(align=True)
row.scale_y = 1.5 row.scale_y = 1.5
row.operator("avatar_toolkit.import_menu", text=t("QuickAccess.import")) row.operator("avatar_toolkit.import_menu", text=t("Quick_Access.import"))
row.operator("avatar_toolkit.export_menu", text=t("QuickAccess.export")) row.operator("avatar_toolkit.export_menu", text=t("Quick_Access.export"))
@register_wrap @register_wrap
class AVATAR_TOOLKIT_OT_import_menu(bpy.types.Operator): class AVATAR_TOOLKIT_OT_import_menu(bpy.types.Operator):
bl_idname = "avatar_toolkit.import_menu" bl_idname = "avatar_toolkit.import_menu"
bl_label = "Import Menu" bl_label = t("Quick_Access.import_menu.label")
def execute(self, context: Context): def execute(self, context: Context):
return {'FINISHED'} return {'FINISHED'}
@@ -45,13 +45,13 @@ class AVATAR_TOOLKIT_OT_import_menu(bpy.types.Operator):
def draw(self, context: Context): def draw(self, context: Context):
layout = self.layout layout = self.layout
layout.label(text="Select Import Method") layout.label(text="Select Import Method")
layout.operator("avatar_toolkit.import_pmx", text="Import PMX") layout.operator("avatar_toolkit.import_pmx", text=t("Quick_Access.import_pmx"))
layout.operator("avatar_toolkit.import_pmd", text="Import PMD") layout.operator("avatar_toolkit.import_pmd", text=t("Quick_Access.import_pmd"))
@register_wrap @register_wrap
class AVATAR_TOOLKIT_OT_export_menu(bpy.types.Operator): class AVATAR_TOOLKIT_OT_export_menu(bpy.types.Operator):
bl_idname = "avatar_toolkit.export_menu" bl_idname = "avatar_toolkit.export_menu"
bl_label = "Export Menu" bl_label = t("Quick_Access.export_menu.label")
def execute(self, context: Context): def execute(self, context: Context):
return {'FINISHED'} return {'FINISHED'}
@@ -62,13 +62,13 @@ class AVATAR_TOOLKIT_OT_export_menu(bpy.types.Operator):
def draw(self, context: Context): def draw(self, context: Context):
layout = self.layout layout = self.layout
layout.label(text="Select Export Method") layout.label(text=t("Quick_Access.select_export.label"))
layout.operator("avatar_toolkit.export_resonite", text="Export Resonite") layout.operator("avatar_toolkit.export_resonite", text=t("Quick_Access.select_export_resonite.label"))
@register_wrap @register_wrap
class AVATAR_TOOLKIT_OT_import_pmx(bpy.types.Operator): class AVATAR_TOOLKIT_OT_import_pmx(bpy.types.Operator):
bl_idname = "avatar_toolkit.import_pmx" bl_idname = "avatar_toolkit.import_pmx"
bl_label = "Import PMX" bl_label = t("Quick_Access.import_pmx")
filepath: bpy.props.StringProperty(subtype="FILE_PATH") filepath: bpy.props.StringProperty(subtype="FILE_PATH")
@@ -83,7 +83,7 @@ class AVATAR_TOOLKIT_OT_import_pmx(bpy.types.Operator):
@register_wrap @register_wrap
class AVATAR_TOOLKIT_OT_import_pmd(bpy.types.Operator): class AVATAR_TOOLKIT_OT_import_pmd(bpy.types.Operator):
bl_idname = "avatar_toolkit.import_pmd" bl_idname = "avatar_toolkit.import_pmd"
bl_label = "Import PMD" bl_label = t("Quick_Access.import_pmd")
filepath: bpy.props.StringProperty(subtype="FILE_PATH") filepath: bpy.props.StringProperty(subtype="FILE_PATH")
+3 -2
View File
@@ -2,6 +2,7 @@ import bpy
from ..core.register import register_wrap from ..core.register import register_wrap
from .panel import AvatarToolkitPanel from .panel import AvatarToolkitPanel
from bpy.types import Context from bpy.types import Context
from ..functions.translations import t
@register_wrap @register_wrap
class AvatarToolkitToolsPanel(bpy.types.Panel): class AvatarToolkitToolsPanel(bpy.types.Panel):
@@ -14,9 +15,9 @@ class AvatarToolkitToolsPanel(bpy.types.Panel):
def draw(self, context: Context): def draw(self, context: Context):
layout = self.layout layout = self.layout
layout.label(text="Tools") layout.label(text=t("Tools.tools_title.label"))
layout.separator(factor=0.5) layout.separator(factor=0.5)
row = layout.row(align=True) row = layout.row(align=True)
row.scale_y = 1.5 row.scale_y = 1.5
row.operator("avatar_toolkit.convert_to_resonite", text="Translate to Resonite") row.operator("avatar_toolkit.convert_to_resonite", text=t("Tools.convert_to_resonite.label"))