Finale Translations
This commit is contained in:
@@ -10,10 +10,7 @@ from bpy.types import Material, Operator, Context, Object, Image, Mesh, MeshUVLo
|
|||||||
from ..core.register import register_wrap
|
from ..core.register import register_wrap
|
||||||
from ..core.common import SceneMatClass, material_list_bool
|
from ..core.common import SceneMatClass, material_list_bool
|
||||||
from ..core.packer.rectangle_packer import MaterialImageList, BinPacker
|
from ..core.packer.rectangle_packer import MaterialImageList, BinPacker
|
||||||
|
from ..functions.translations import t
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def scale_images_to_largest(images:list[Image]) -> set:
|
def scale_images_to_largest(images:list[Image]) -> set:
|
||||||
print([image.name for image in images])
|
print([image.name for image in images])
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
"Quick_Access.import_pmd": "Import PMD",
|
"Quick_Access.import_pmd": "Import PMD",
|
||||||
"Quick_Access.import_pmd.desc": "Import MMD PMD Model",
|
"Quick_Access.import_pmd.desc": "Import MMD PMD Model",
|
||||||
"Quick_Access.export_menu.label": "Export Menu",
|
"Quick_Access.export_menu.label": "Export Menu",
|
||||||
|
"Quick_Access.export_menu.desc": "Export to a supported format",
|
||||||
"Quick_Access.select_export.label": "Select Export Method",
|
"Quick_Access.select_export.label": "Select Export Method",
|
||||||
"Quick_Access.select_export_resonite.label": "Resonite",
|
"Quick_Access.select_export_resonite.label": "Resonite",
|
||||||
"Quick_Access.export_fbx.label": "Export FBX",
|
"Quick_Access.export_fbx.label": "Export FBX",
|
||||||
@@ -48,6 +49,8 @@
|
|||||||
"Optimization.processing_shapekey": "Processing shapekey \"{shapekeyname}\" on mesh \"{mesh_name}\"",
|
"Optimization.processing_shapekey": "Processing shapekey \"{shapekeyname}\" on mesh \"{mesh_name}\"",
|
||||||
"Optimization.processing_mesh_no_shapekeys": "Processing mesh with no shapekeys named \"{mesh_name}\"",
|
"Optimization.processing_mesh_no_shapekeys": "Processing mesh with no shapekeys named \"{mesh_name}\"",
|
||||||
"Optimization.remove_doubles_completed": "Remove doubles operation completed",
|
"Optimization.remove_doubles_completed": "Remove doubles operation completed",
|
||||||
|
"Optimization.select_armature": "Please select an armature",
|
||||||
|
"Tools.select_armature": "Please select an armature",
|
||||||
"Tools.label": "Tools",
|
"Tools.label": "Tools",
|
||||||
"Tools.tools_title.label": "Tools",
|
"Tools.tools_title.label": "Tools",
|
||||||
"Tools.convert_to_resonite.label": "Convert to Resonite",
|
"Tools.convert_to_resonite.label": "Convert to Resonite",
|
||||||
@@ -59,6 +62,7 @@
|
|||||||
"Tools.no_armature_selected": "No armature selected",
|
"Tools.no_armature_selected": "No armature selected",
|
||||||
"Tools.bones_translated_with_fails": "Failed to translate {translate_bone_fails} bones to humanoid names. Adding \"<noik>\" to their names.",
|
"Tools.bones_translated_with_fails": "Failed to translate {translate_bone_fails} bones to humanoid names. Adding \"<noik>\" to their names.",
|
||||||
"Tools.bones_translated_success": "Successfully translated all bones to humanoid names",
|
"Tools.bones_translated_success": "Successfully translated all bones to humanoid names",
|
||||||
|
"Tools.import_any_model.desc": "Import any supported model, FBX, SMD, DMX, GLTF, PMD, PMX and more.",
|
||||||
"TextureAtlas.label": "Texture Atlasing",
|
"TextureAtlas.label": "Texture Atlasing",
|
||||||
"TextureAtlas.material_list_label": "Texture Atlas Material List Material",
|
"TextureAtlas.material_list_label": "Texture Atlas Material List Material",
|
||||||
"TextureAtlas.reload_list": "Reload Texture Atlas Material List",
|
"TextureAtlas.reload_list": "Reload Texture Atlas Material List",
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
{
|
{
|
||||||
"authors": ["Avatar Toolkit Team"],
|
"authors": ["Avatar Toolkit チーム"],
|
||||||
"messages": {
|
"messages": {
|
||||||
"Language.auto": "自動",
|
"Language.auto": "自動",
|
||||||
"Language.en_US": "英語",
|
"Language.en_US": "English",
|
||||||
"Language.ja_JP": "日本語",
|
"Language.ja_JP": "日本語",
|
||||||
|
"AvatarToolkit.label": "アバターツールキット",
|
||||||
|
"AvatarToolkit.welcome": "アバターツールキットへようこそ、これは",
|
||||||
|
"AvatarToolkit.description": "Blenderでアバターを作成・編集するためのツールです。",
|
||||||
|
"AvatarToolkit.alpha_warning": "これは早期アルファ版なので、バグや問題が予想されます。",
|
||||||
"Quick_Access.label": "クイックアクセス",
|
"Quick_Access.label": "クイックアクセス",
|
||||||
"Quick_Access.import_export.label": "インポート/エクスポート",
|
"Quick_Access.import_export.label": "インポート/エクスポート",
|
||||||
"Quick_Access.options": "クイックアクセスオプション",
|
"Quick_Access.options": "クイックアクセスオプション",
|
||||||
@@ -16,10 +20,14 @@
|
|||||||
"Quick_Access.import_pmd": "PMDをインポート",
|
"Quick_Access.import_pmd": "PMDをインポート",
|
||||||
"Quick_Access.import_pmd.desc": "MMD PMDモデルをインポート",
|
"Quick_Access.import_pmd.desc": "MMD PMDモデルをインポート",
|
||||||
"Quick_Access.export_menu.label": "エクスポートメニュー",
|
"Quick_Access.export_menu.label": "エクスポートメニュー",
|
||||||
|
"Quick_Access.export_menu.desc": "サポートされているフォーマットにエクスポート",
|
||||||
"Quick_Access.select_export.label": "エクスポート方法を選択",
|
"Quick_Access.select_export.label": "エクスポート方法を選択",
|
||||||
"Quick_Access.select_export_resonite.label": "Resonite",
|
"Quick_Access.select_export_resonite.label": "Resonite",
|
||||||
|
"Quick_Access.export_fbx.label": "FBXをエクスポート",
|
||||||
|
"Quick_Access.export_fbx.desc": "モデルをFBXとしてエクスポート",
|
||||||
|
"Quick_Access.import_success": "モデルが正常にインポートされました",
|
||||||
"Export.resonite.label": "Resoniteにエクスポート",
|
"Export.resonite.label": "Resoniteにエクスポート",
|
||||||
"Export.resonite.desc": "すべてのアニメーションとマテリアルを含むGLBをエクスポート。アニメーションデータについては以下を参照:",
|
"Export.resonite.desc": "すべてのアニメーションとマテリアルを含むGLBをエクスポートします。アニメーションデータについては以下を参照:",
|
||||||
"Optimization.label": "最適化",
|
"Optimization.label": "最適化",
|
||||||
"Optimization.options.label": "最適化オプション",
|
"Optimization.options.label": "最適化オプション",
|
||||||
"Optimization.combine_materials.label": "マテリアルを結合",
|
"Optimization.combine_materials.label": "マテリアルを結合",
|
||||||
@@ -28,16 +36,66 @@
|
|||||||
"Optimization.join_all_meshes.desc": "すべてのメッシュを1つに結合",
|
"Optimization.join_all_meshes.desc": "すべてのメッシュを1つに結合",
|
||||||
"Optimization.join_selected_meshes.label": "選択したメッシュを結合",
|
"Optimization.join_selected_meshes.label": "選択したメッシュを結合",
|
||||||
"Optimization.join_selected_meshes.desc": "現在選択されているすべてのメッシュを1つに結合",
|
"Optimization.join_selected_meshes.desc": "現在選択されているすべてのメッシュを1つに結合",
|
||||||
|
"Optimization.remove_doubles_safely.label": "安全に重複頂点を削除",
|
||||||
|
"Optimization.remove_doubles_safely.desc": "口などの部分が融合しないように注意しながら、すべてのメッシュの重複頂点を削除",
|
||||||
|
"Optimization.no_armature_selected": "アーマチュアが選択されていません",
|
||||||
|
"Optimization.no_meshes_found": "選択されたアーマチュアにメッシュが見つかりません",
|
||||||
|
"Optimization.materials_combined": "{num_combined}個のマテリアルを結合しました",
|
||||||
|
"Optimization.meshes_joined": "メッシュが正常に結合されました",
|
||||||
|
"Optimization.no_mesh_selected": "メッシュオブジェクトが選択されていません",
|
||||||
|
"Optimization.select_at_least_two_meshes": "少なくとも2つのメッシュオブジェクトを選択してください",
|
||||||
|
"Optimization.selected_meshes_joined": "選択されたメッシュが正常に結合されました",
|
||||||
|
"Optimization.vertex_excluded": "シェイプキーのインデックス\"{index}\"の頂点が移動しているため、重複マージから除外しました!",
|
||||||
|
"Optimization.processing_shapekey": "メッシュ\"{mesh_name}\"のシェイプキー\"{shapekeyname}\"を処理中",
|
||||||
|
"Optimization.processing_mesh_no_shapekeys": "シェイプキーのないメッシュ\"{mesh_name}\"を処理中",
|
||||||
|
"Optimization.remove_doubles_completed": "重複頂点の削除が完了しました",
|
||||||
|
"Optimization.select_armature": "アーマチュアを選択してください",
|
||||||
|
"Tools.select_armature": "アーマチュアを選択してください",
|
||||||
|
"Tools.label": "ツール",
|
||||||
"Tools.tools_title.label": "ツール",
|
"Tools.tools_title.label": "ツール",
|
||||||
"Tools.convert_to_resonite.label": "Resoniteに変換",
|
"Tools.convert_to_resonite.label": "Resoniteに変換",
|
||||||
"Tools.convert_to_resonite.desc": "モデルのボーン名をResoniteと互換性のある名前に変換",
|
"Tools.convert_to_resonite.desc": "モデルのボーン名をResoniteと互換性のある名前に変換します",
|
||||||
|
"Tools.create_digitigrade_legs.label": "デジタイグレード脚を作成",
|
||||||
|
"Tools.create_digitigrade_legs.desc": "選択したボーンチェーンからデジタイグレード脚を作成",
|
||||||
|
"Tools.digitigrade_legs.error.bone_format": "ボーンフォーマットが正しくありません!4つの連続したボーンのチェーンを選択してください!",
|
||||||
|
"Tools.digitigrade_legs.success": "デジタイグレード脚が正常に作成されました",
|
||||||
|
"Tools.no_armature_selected": "アーマチュアが選択されていません",
|
||||||
|
"Tools.bones_translated_with_fails": "{translate_bone_fails}個のボーンをヒューマノイド名に変換できませんでした。それらの名前に\"<noik>\"を追加しています。",
|
||||||
|
"Tools.bones_translated_success": "すべてのボーンをヒューマノイド名に正常に変換しました",
|
||||||
|
"Tools.import_any_model.desc": "FBX、SMD、DMX、GLTF、PMD、PMXなど、サポートされているすべてのモデルをインポートします。",
|
||||||
|
"TextureAtlas.label": "テクスチャアトラス",
|
||||||
|
"TextureAtlas.material_list_label": "テクスチャアトラスマテリアルリストマテリアル",
|
||||||
|
"TextureAtlas.reload_list": "テクスチャアトラスマテリアルリストを再読み込み",
|
||||||
|
"TextureAtlas.loaded_list": "テクスチャアトラスマテリアルリストを読み込みました",
|
||||||
|
"TextureAtlas.atlas_materials": "アトラスマテリアル",
|
||||||
|
"TextureAtlas.atlas_materials_desc": "モデルを最適化するためにマテリアルをアトラス化",
|
||||||
|
"TextureAtlas.atlas_completed": "テクスチャアトラスの作成が完了しました",
|
||||||
|
"TextureAtlas.atlas_error": "テクスチャアトラスの作成中にエラーが発生しました",
|
||||||
"VisemePanel.label": "ビセーム",
|
"VisemePanel.label": "ビセーム",
|
||||||
|
"VisemePanel.select_mesh": "メッシュを選択",
|
||||||
|
"VisemePanel.mouth_a.label": "口 A",
|
||||||
|
"VisemePanel.mouth_a.desc": "'A'の口の形のシェイプキー",
|
||||||
|
"VisemePanel.mouth_o.label": "口 O",
|
||||||
|
"VisemePanel.mouth_o.desc": "'O'の口の形のシェイプキー",
|
||||||
|
"VisemePanel.mouth_ch.label": "口 CH",
|
||||||
|
"VisemePanel.mouth_ch.desc": "'CH'の口の形のシェイプキー",
|
||||||
|
"VisemePanel.shape_intensity": "シェイプの強度",
|
||||||
|
"VisemePanel.shape_intensity_desc": "ビセームシェイプキーの強度",
|
||||||
|
"VisemePanel.create_visemes": "ビセームを作成",
|
||||||
"VisemePanel.error.noMesh": "メッシュが選択されていません",
|
"VisemePanel.error.noMesh": "メッシュが選択されていません",
|
||||||
"VisemePanel.error.noShapekeys": "選択されたメッシュにシェイプキーがありません",
|
"VisemePanel.error.noShapekeys": "選択されたメッシュにシェイプキーがありません",
|
||||||
|
"VisemePanel.error.selectMesh": "ビセームを作成するメッシュを選択してください",
|
||||||
|
"VisemePanel.error.noArmature": "アーマチュアが選択されていません",
|
||||||
"VisemePanel.info.selectMesh": "ビセームを作成するメッシュを選択してください",
|
"VisemePanel.info.selectMesh": "ビセームを作成するメッシュを選択してください",
|
||||||
"VisemePanel.mouth_a.label": "口 A",
|
"VisemePanel.start_viseme_creation": "ビセーム作成を開始しています...",
|
||||||
"VisemePanel.mouth_o.label": "口 O",
|
"VisemePanel.selected_shapes": "選択されたシェイプ: A={shape_a}, O={shape_o}, CH={shape_ch}",
|
||||||
"VisemePanel.mouth_ch.label": "口 CH",
|
"VisemePanel.creating_viseme": "ビセームを作成中: {viseme_name}",
|
||||||
|
"VisemePanel.sorting_shapekeys": "シェイプキーをソート中...",
|
||||||
|
"VisemePanel.viseme_creation_completed": "ビセーム作成が完了しました。",
|
||||||
|
"VisemePanel.creating_viseme_detail": "ビセームを作成中: {viseme_name}",
|
||||||
|
"VisemePanel.removing_existing_viseme": "既存のビセームを削除中: {viseme_name}",
|
||||||
|
"VisemePanel.mixing_shape": "シェイプをミックス中: {shape_name} 値: {value}",
|
||||||
|
"VisemePanel.viseme_created_successfully": "ビセーム {viseme_name} が正常に作成されました",
|
||||||
"AutoVisemeButton.label": "ビセームを作成",
|
"AutoVisemeButton.label": "ビセームを作成",
|
||||||
"AutoVisemeButton.desc": "シェイプキーに基づいて自動的にビセームを作成",
|
"AutoVisemeButton.desc": "シェイプキーに基づいて自動的にビセームを作成",
|
||||||
"AutoVisemeButton.error.noShapekeys": "シェイプキーが見つかりません",
|
"AutoVisemeButton.error.noShapekeys": "シェイプキーが見つかりません",
|
||||||
@@ -45,10 +103,19 @@
|
|||||||
"AutoVisemeButton.success": "ビセームが正常に作成されました",
|
"AutoVisemeButton.success": "ビセームが正常に作成されました",
|
||||||
"Settings.label": "設定",
|
"Settings.label": "設定",
|
||||||
"Settings.language.label": "言語",
|
"Settings.language.label": "言語",
|
||||||
"Settings.language.desc": "アドオンのUI言語を選択してください",
|
"Settings.language.desc": "アドオンのUIの言語を選択",
|
||||||
"Settings.translation_restart_popup.label": "翻訳の更新",
|
"Settings.translation_restart_popup.label": "翻訳の更新",
|
||||||
"Settings.translation_restart_popup.description": "翻訳の更新に関する情報",
|
"Settings.translation_restart_popup.description": "翻訳の更新に関する情報",
|
||||||
"Settings.translation_restart_popup.message1": "一部の翻訳は適用されない場合があります",
|
"Settings.translation_restart_popup.message1": "一部の翻訳は適用されない場合があります",
|
||||||
"Settings.translation_restart_popup.message2": "Blenderを再起動するまで。"
|
"Settings.translation_restart_popup.message2": "Blenderを再起動するまで。",
|
||||||
|
"Importing.need_importer": "{extension}タイプに必要なインポーターがありません!インポーター検索用のウェブブラウザを開いています...",
|
||||||
|
"Importer.mmd_anim_importer.label": "MMDアニメーション",
|
||||||
|
"Importer.mmd_anim_importer.desc": "MMDアニメーション(.vmd)をインポート",
|
||||||
|
"Importing.importer_search_term": "https://search.brave.com/search?q=blender+{extension}+importer+addon&source=web",
|
||||||
|
"Importer.export_resonite.label": "Resoniteにエクスポート",
|
||||||
|
"Importer.export_resonite.desc": "GLTFとしてResoniteにエクスポートします。Blenderでモデルが正しいスケールであることを確認し、Resoniteでメートル単位でインポートしてください。",
|
||||||
|
"Importer.export_vrchat.label": "VRChatにエクスポート",
|
||||||
|
"Importer.export_vrchat.desc": "VRChatにエクスポートします。ChilloutVRでも動作する可能性があります。Catsのエクスポートに似ています。"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ class AvatarToolkitQuickAccessPanel(bpy.types.Panel):
|
|||||||
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 = t("Quick_Access.export_menu.label")
|
bl_label = t("Quick_Access.export_menu.label")
|
||||||
bl_description = t("Quick_Access.import_pmx.desc")
|
bl_description = t("Quick_Access.export_menu.desc")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def poll(cls, context):
|
def poll(cls, context):
|
||||||
|
|||||||
@@ -28,8 +28,6 @@ class AvatarToolkitToolsPanel(bpy.types.Panel):
|
|||||||
row.scale_y = 1.5
|
row.scale_y = 1.5
|
||||||
row.operator("avatar_toolkit.convert_to_resonite", text=t("Tools.convert_to_resonite.label"))
|
row.operator("avatar_toolkit.convert_to_resonite", text=t("Tools.convert_to_resonite.label"))
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.operator("avatar_toolkit.remove_doubles_safely", text=t("Tools.remove_doubles_safely.label"))
|
|
||||||
row = layout.row(align=True)
|
|
||||||
row.operator(CreateDigitigradeLegs.bl_idname, text=t("Tools.create_digitigrade_legs.label"))
|
row.operator(CreateDigitigradeLegs.bl_idname, text=t("Tools.create_digitigrade_legs.label"))
|
||||||
else:
|
else:
|
||||||
layout.label(text=t("Tools.select_armature"))
|
layout.label(text=t("Tools.select_armature"))
|
||||||
|
|||||||
Reference in New Issue
Block a user