Improvements
- Added Most UI Translations. - Improve Readability of the translation strings.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
@@ -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,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
@@ -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
@@ -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"))
|
||||||
Reference in New Issue
Block a user