Function Translations Complete
- Done Translations - Added self.reports for Atlas Materials. - Added self.reports for digitlgradelegs
This commit is contained in:
@@ -119,8 +119,8 @@ def prep_images_in_scene(context: Context) -> list[MaterialImageList]:
|
||||
class Atlas_Materials(Operator):
|
||||
|
||||
bl_idname = "avatar_toolkit.atlas_materials"
|
||||
bl_label = "Atlas Materials"
|
||||
bl_description = "Atlas materials to optimize the model"
|
||||
bl_label = t("TextureAtlas.atlas_materials")
|
||||
bl_description = t("TextureAtlas.atlas_materials_desc")
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
|
||||
@classmethod
|
||||
@@ -270,8 +270,10 @@ class Atlas_Materials(Operator):
|
||||
|
||||
mesh.materials.append(atlased_mat.material)
|
||||
|
||||
self.report({'INFO'}, t("TextureAtlas.atlas_completed"))
|
||||
return {"FINISHED"}
|
||||
except Exception as e:
|
||||
self.report({'ERROR'}, t("TextureAtlas.atlas_error"))
|
||||
raise e
|
||||
return {"FINISHED"}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ class CombineMaterials(Operator):
|
||||
def execute(self, context: Context) -> Set[str]:
|
||||
armature = get_selected_armature(context)
|
||||
if not armature:
|
||||
self.report({'WARNING'}, "No armature selected")
|
||||
self.report({'WARNING'}, t("Optimization.no_armature_selected"))
|
||||
return {'CANCELLED'}
|
||||
|
||||
context.view_layer.objects.active = armature
|
||||
@@ -79,7 +79,7 @@ class CombineMaterials(Operator):
|
||||
|
||||
meshes = get_all_meshes(context)
|
||||
if not meshes:
|
||||
self.report({'WARNING'}, "No meshes found for the selected armature")
|
||||
self.report({'WARNING'}, t("Optimization.no_meshes_found"))
|
||||
return {'CANCELLED'}
|
||||
|
||||
self.consolidate_materials(meshes)
|
||||
@@ -111,7 +111,7 @@ class CombineMaterials(Operator):
|
||||
else:
|
||||
mat_mapping[base_name] = mat
|
||||
|
||||
report_consolidated(self, num_combined)
|
||||
self.report({'INFO'}, t("Optimization.materials_combined").format(num_combined=num_combined))
|
||||
|
||||
def remove_unused_materials(self) -> None:
|
||||
for mat in bpy.data.materials:
|
||||
|
||||
@@ -32,7 +32,7 @@ class CreateDigitigradeLegs(bpy.types.Operator):
|
||||
digi2 = digi1.children[0]
|
||||
digi3 = digi2.children[0]
|
||||
except:
|
||||
print("bone format incorrect! Please select a chain of 4 continious bones!") #TODO: Show this to user. this is an error.
|
||||
self.report({'ERROR'}, t('Tools.digitigrade_legs.error.bone_format'))
|
||||
return {'CANCELLED'}
|
||||
digi4 = None
|
||||
try:
|
||||
@@ -114,4 +114,6 @@ class CreateDigitigradeLegs(bpy.types.Operator):
|
||||
digi1.name = re.compile(re.escape("<noik>"), re.IGNORECASE).sub("",digi1.name)+"<noik>"
|
||||
digi2.name = re.compile(re.escape("<noik>"), re.IGNORECASE).sub("",digi2.name)+"<noik>"
|
||||
#finally fully done!
|
||||
|
||||
self.report({'INFO'}, t('Tools.digitigrade_legs.success'))
|
||||
return {'FINISHED'}
|
||||
@@ -77,6 +77,7 @@ class ImportAnyModel(Operator, ImportHelper):
|
||||
print("importer error was:")
|
||||
print(e)
|
||||
|
||||
self.report({'INFO'}, t('Quick_Access.import_success'))
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ class JoinAllMeshes(Operator):
|
||||
|
||||
def join_all_meshes(self, context: Context) -> None:
|
||||
if not select_current_armature(context):
|
||||
self.report({'WARNING'}, "No armature selected")
|
||||
self.report({'WARNING'}, t("Optimization.no_armature_selected"))
|
||||
return
|
||||
|
||||
armature = get_selected_armature(context)
|
||||
@@ -41,9 +41,9 @@ class JoinAllMeshes(Operator):
|
||||
fix_uv_coordinates(context)
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
bpy.ops.object.select_all(action='DESELECT')
|
||||
self.report({'INFO'}, "Meshes joined successfully")
|
||||
self.report({'INFO'}, t("Optimization.meshes_joined"))
|
||||
else:
|
||||
self.report({'WARNING'}, "No mesh objects selected")
|
||||
self.report({'WARNING'}, t("Optimization.no_mesh_selected"))
|
||||
|
||||
context.view_layer.objects.active = armature
|
||||
|
||||
@@ -66,7 +66,7 @@ class JoinSelectedMeshes(Operator):
|
||||
selected_objects: List[Object] = [obj for obj in bpy.context.selected_objects if obj.type == 'MESH']
|
||||
|
||||
if len(selected_objects) < 2:
|
||||
self.report({'WARNING'}, "Please select at least two mesh objects")
|
||||
self.report({'WARNING'}, t("Optimization.select_at_least_two_meshes"))
|
||||
return
|
||||
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
@@ -82,7 +82,6 @@ class JoinSelectedMeshes(Operator):
|
||||
fix_uv_coordinates(context)
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
bpy.ops.object.select_all(action='DESELECT')
|
||||
self.report({'INFO'}, "Selected meshes joined successfully")
|
||||
self.report({'INFO'}, t("Optimization.selected_meshes_joined"))
|
||||
else:
|
||||
self.report({'WARNING'}, "No mesh objects selected")
|
||||
|
||||
self.report({'WARNING'}, t("Optimization.no_mesh_selected"))
|
||||
|
||||
@@ -6,7 +6,7 @@ from typing import List, Tuple, Optional, TypedDict
|
||||
from bpy.types import Material, Operator, Context, Object
|
||||
from ..core.register import register_wrap
|
||||
from ..core.common import get_selected_armature, is_valid_armature, select_current_armature, get_all_meshes
|
||||
|
||||
from ..functions.translations import t
|
||||
|
||||
class meshEntry(TypedDict):
|
||||
mesh: bpy.types.Object
|
||||
@@ -15,8 +15,8 @@ class meshEntry(TypedDict):
|
||||
@register_wrap
|
||||
class RemoveDoublesSafely(Operator):
|
||||
bl_idname = "avatar_toolkit.remove_doubles_safely"
|
||||
bl_label = "Remove Doubles Safely"
|
||||
bl_description = "Remove Doubles on all meshes, making sure to not fuse things like mouths together."
|
||||
bl_label = t("Optimization.remove_doubles_safely.label")
|
||||
bl_description = t("Optimization.remove_doubles_safely.desc")
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
objects_to_do: list[meshEntry] = []
|
||||
merge_distance: bpy.props.FloatProperty(default=0.0001)
|
||||
@@ -28,7 +28,7 @@ class RemoveDoublesSafely(Operator):
|
||||
|
||||
def execute(self, context: Context) -> set:
|
||||
if not select_current_armature(context):
|
||||
self.report({'WARNING'}, "No armature selected")
|
||||
self.report({'WARNING'}, t("Optimization.no_armature_selected"))
|
||||
return {'CANCELLED'}
|
||||
|
||||
armature = get_selected_armature(context)
|
||||
@@ -117,6 +117,7 @@ class RemoveDoublesSafely(Operator):
|
||||
mesh["mesh"].select_set(False)
|
||||
|
||||
else:
|
||||
self.report({'INFO'}, t("Optimization.remove_doubles_completed"))
|
||||
return {'FINISHED'}
|
||||
|
||||
return {'RUNNING_MODAL'}
|
||||
|
||||
@@ -22,7 +22,7 @@ class ConvertToResonite(Operator):
|
||||
def execute(self, context: Context) -> set:
|
||||
armature = get_selected_armature(context)
|
||||
if not armature:
|
||||
self.report({'WARNING'}, "No armature selected")
|
||||
self.report({'WARNING'}, t("Tools.no_armature_selected"))
|
||||
return {'CANCELLED'}
|
||||
|
||||
translate_bone_fails = 0
|
||||
@@ -107,8 +107,8 @@ class ConvertToResonite(Operator):
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
||||
if translate_bone_fails > 0:
|
||||
self.report({'INFO'}, "Failed to translate {translate_bone_fails} bones to humanoid names. Adding \"<noik>\" to their names.".format(translate_bone_fails=translate_bone_fails))
|
||||
self.report({'INFO'}, t("Tools.bones_translated_with_fails").format(translate_bone_fails=translate_bone_fails))
|
||||
else:
|
||||
self.report({'INFO'}, "Successfully translated all bones to humanoid names")
|
||||
self.report({'INFO'}, t("Tools.bones_translated_success"))
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
@@ -63,7 +63,6 @@ class AutoVisemeButton(bpy.types.Operator):
|
||||
print("Sorting shape keys...")
|
||||
common.sort_shape_keys(mesh)
|
||||
|
||||
print("Viseme creation completed.")
|
||||
self.report({'INFO'}, t('AutoVisemeButton.success'))
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user