Initial commit for Japanese translations
This commit is contained in:
@@ -16,6 +16,7 @@ if 'bpy' in locals():
|
|||||||
importlib.reload(psx_data)
|
importlib.reload(psx_data)
|
||||||
importlib.reload(psx_helpers)
|
importlib.reload(psx_helpers)
|
||||||
importlib.reload(psx_types)
|
importlib.reload(psx_types)
|
||||||
|
importlib.reload(psx_i18n)
|
||||||
|
|
||||||
importlib.reload(psk_data)
|
importlib.reload(psk_data)
|
||||||
importlib.reload(psk_reader)
|
importlib.reload(psk_reader)
|
||||||
@@ -42,6 +43,7 @@ else:
|
|||||||
from . import data as psx_data
|
from . import data as psx_data
|
||||||
from . import helpers as psx_helpers
|
from . import helpers as psx_helpers
|
||||||
from . import types as psx_types
|
from . import types as psx_types
|
||||||
|
from . import i18n as psx_i18n
|
||||||
from .psk import data as psk_data
|
from .psk import data as psk_data
|
||||||
from .psk import reader as psk_reader
|
from .psk import reader as psk_reader
|
||||||
from .psk import writer as psk_writer
|
from .psk import writer as psk_writer
|
||||||
@@ -99,6 +101,7 @@ def psa_import_menu_func(self, context):
|
|||||||
def register():
|
def register():
|
||||||
for cls in classes:
|
for cls in classes:
|
||||||
bpy.utils.register_class(cls)
|
bpy.utils.register_class(cls)
|
||||||
|
|
||||||
bpy.types.TOPBAR_MT_file_export.append(psk_export_menu_func)
|
bpy.types.TOPBAR_MT_file_export.append(psk_export_menu_func)
|
||||||
bpy.types.TOPBAR_MT_file_import.append(psk_import_menu_func)
|
bpy.types.TOPBAR_MT_file_import.append(psk_import_menu_func)
|
||||||
bpy.types.TOPBAR_MT_file_export.append(psa_export_menu_func)
|
bpy.types.TOPBAR_MT_file_export.append(psa_export_menu_func)
|
||||||
@@ -108,8 +111,11 @@ def register():
|
|||||||
bpy.types.Scene.psk_export = PointerProperty(type=psk_export_properties.PSK_PG_export)
|
bpy.types.Scene.psk_export = PointerProperty(type=psk_export_properties.PSK_PG_export)
|
||||||
bpy.types.Action.psa_export = PointerProperty(type=psx_types.PSX_PG_action_export)
|
bpy.types.Action.psa_export = PointerProperty(type=psx_types.PSX_PG_action_export)
|
||||||
|
|
||||||
|
bpy.app.translations.register(__name__, psx_i18n.langs)
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
|
bpy.app.translations.unregister(__name__)
|
||||||
del bpy.types.Scene.psa_import
|
del bpy.types.Scene.psa_import
|
||||||
del bpy.types.Scene.psa_export
|
del bpy.types.Scene.psa_export
|
||||||
del bpy.types.Scene.psk_export
|
del bpy.types.Scene.psk_export
|
||||||
|
|||||||
18
io_scene_psk_psa/i18n.py
Normal file
18
io_scene_psk_psa/i18n.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
langs = {
|
||||||
|
'ja_JP': {
|
||||||
|
('*', 'Bone Length'): 'ボーンの長さ',
|
||||||
|
('*', 'Extra UVs'): '追加のUV',
|
||||||
|
('*', 'Vertex Color Space'): '頂点カラーの色空間',
|
||||||
|
('*', 'Dependencies'): '依存関係',
|
||||||
|
('*', 'All dependencies are installed'): 'すべての依存関係がインストールされています',
|
||||||
|
('*', 'Reinstall'): '再インストール',
|
||||||
|
('*', 'Root Motion'): 'ルートモーション',
|
||||||
|
('*', 'Action Metadata'): 'アクションのメタデータ', # TODO: this should probably be removed in favor of directly using the values in the property groups
|
||||||
|
('*', 'PSA Export'): 'PSAエクスポート',
|
||||||
|
('*', 'Compression Ratio'): '圧縮率',
|
||||||
|
('*', 'Keyframe Quota'): 'キーフレームのクォータ',
|
||||||
|
('*', 'The minimum number of keyframes to be exported'): 'エクスポートするキーフレームの最小数',
|
||||||
|
('*', 'Select a PSA file'): 'PSAファイルを選択',
|
||||||
|
('*', 'Case Insensitive'): '大文字小文字を区別しない',
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -246,19 +246,24 @@ class PSA_OT_export(Operator, ExportHelper):
|
|||||||
layout = self.layout
|
layout = self.layout
|
||||||
pg = getattr(context.scene, 'psa_export')
|
pg = getattr(context.scene, 'psa_export')
|
||||||
|
|
||||||
|
flow = layout.grid_flow()
|
||||||
|
flow.use_property_split = True
|
||||||
|
flow.use_property_decorate = False
|
||||||
|
|
||||||
# FPS
|
# FPS
|
||||||
layout.prop(pg, 'fps_source', text='FPS')
|
fps_row = flow.row(align=True)
|
||||||
|
fps_row.prop(pg, 'fps_source', text='FPS')
|
||||||
if pg.fps_source == 'CUSTOM':
|
if pg.fps_source == 'CUSTOM':
|
||||||
layout.prop(pg, 'fps_custom', text='Custom')
|
fps_row.prop(pg, 'fps_custom', text='')
|
||||||
|
|
||||||
# SOURCE
|
# SOURCE
|
||||||
layout.prop(pg, 'sequence_source', text='Source')
|
flow.prop(pg, 'sequence_source', text='Source')
|
||||||
|
|
||||||
if pg.sequence_source == 'TIMELINE_MARKERS':
|
if pg.sequence_source == 'TIMELINE_MARKERS':
|
||||||
# ANIMDATA SOURCE
|
# ANIMDATA SOURCE
|
||||||
layout.prop(pg, 'should_override_animation_data')
|
flow.prop(pg, 'should_override_animation_data')
|
||||||
if pg.should_override_animation_data:
|
if pg.should_override_animation_data:
|
||||||
layout.prop(pg, 'animation_data_override', text='')
|
flow.prop(pg, 'animation_data_override', text='')
|
||||||
|
|
||||||
# SELECT ALL/NONE
|
# SELECT ALL/NONE
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ class PSA_PG_export(PropertyGroup):
|
|||||||
options=empty_set,
|
options=empty_set,
|
||||||
description='',
|
description='',
|
||||||
items=(
|
items=(
|
||||||
('ALL', 'All', 'All bones will be exported.'),
|
('ALL', 'All', 'All bones will be exported'),
|
||||||
('BONE_GROUPS', 'Bone Groups', 'Only bones belonging to the selected bone groups and their ancestors will '
|
('BONE_GROUPS', 'Bone Groups', 'Only bones belonging to the selected bone groups and their ancestors will '
|
||||||
'be exported.'),
|
'be exported.'),
|
||||||
)
|
)
|
||||||
@@ -112,18 +112,18 @@ class PSA_PG_export(PropertyGroup):
|
|||||||
description='Invert filtering (show hidden items, and vice versa)')
|
description='Invert filtering (show hidden items, and vice versa)')
|
||||||
sequence_filter_asset: BoolProperty(
|
sequence_filter_asset: BoolProperty(
|
||||||
default=False,
|
default=False,
|
||||||
name='Show assets',
|
name='Assets',
|
||||||
options=empty_set,
|
options=empty_set,
|
||||||
description='Show actions that belong to an asset library')
|
description='Show actions that belong to an asset library')
|
||||||
sequence_filter_pose_marker: BoolProperty(
|
sequence_filter_pose_marker: BoolProperty(
|
||||||
default=True,
|
default=True,
|
||||||
name='Show pose markers',
|
name='Pose Markers',
|
||||||
options=empty_set)
|
options=empty_set)
|
||||||
sequence_use_filter_sort_reverse: BoolProperty(default=True, options=empty_set)
|
sequence_use_filter_sort_reverse: BoolProperty(default=True, options=empty_set)
|
||||||
sequence_filter_reversed: BoolProperty(
|
sequence_filter_reversed: BoolProperty(
|
||||||
default=True,
|
default=True,
|
||||||
options=empty_set,
|
options=empty_set,
|
||||||
name='Show Reversed',
|
name='Reversed',
|
||||||
description='Show reversed sequences'
|
description='Show reversed sequences'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -57,11 +57,11 @@ class PSA_PG_import(PropertyGroup):
|
|||||||
'Recommended if you do not plan on editing the actions directly'
|
'Recommended if you do not plan on editing the actions directly'
|
||||||
)
|
)
|
||||||
bone_mapping_mode: EnumProperty(
|
bone_mapping_mode: EnumProperty(
|
||||||
name='Bone Mapping',
|
name='Bone Name Mapping',
|
||||||
options=empty_set,
|
options=empty_set,
|
||||||
description='The method by which bones from the incoming PSA file are mapped to the armature',
|
description='The method by which bones from the PSA file are mapped to the bones of the armature',
|
||||||
items=(
|
items=(
|
||||||
('EXACT', 'Exact', 'Bone names must match exactly.', 'EXACT', 0),
|
('EXACT', 'Exact', 'Bone names must match exactly', 'EXACT', 0),
|
||||||
('CASE_INSENSITIVE', 'Case Insensitive', 'Bones names must match, ignoring case (e.g., the bone PSA bone '
|
('CASE_INSENSITIVE', 'Case Insensitive', 'Bones names must match, ignoring case (e.g., the bone PSA bone '
|
||||||
'\'root\' can be mapped to the armature bone \'Root\')', 'CASE_INSENSITIVE', 1),
|
'\'root\' can be mapped to the armature bone \'Root\')', 'CASE_INSENSITIVE', 1),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class PSA_UL_sequences(UIList):
|
|||||||
column = split.row(align=True)
|
column = split.row(align=True)
|
||||||
column.alignment = 'LEFT'
|
column.alignment = 'LEFT'
|
||||||
column.prop(item, 'is_selected', icon_only=True)
|
column.prop(item, 'is_selected', icon_only=True)
|
||||||
column.label(text=getattr(item, 'action_name'))
|
column.label(text=getattr(item, 'action_name'), translate=False)
|
||||||
|
|
||||||
def draw_filter(self, context, layout):
|
def draw_filter(self, context, layout):
|
||||||
pg = getattr(context.scene, 'psa_import')
|
pg = getattr(context.scene, 'psa_import')
|
||||||
|
|||||||
@@ -54,13 +54,12 @@ class PSK_OT_import(Operator, ImportHelper):
|
|||||||
)
|
)
|
||||||
should_import_mesh: BoolProperty(
|
should_import_mesh: BoolProperty(
|
||||||
default=True,
|
default=True,
|
||||||
name='Import Mesh',
|
name='Mesh',
|
||||||
options=empty_set,
|
options=empty_set
|
||||||
description='Import mesh'
|
|
||||||
)
|
)
|
||||||
should_import_materials: BoolProperty(
|
should_import_materials: BoolProperty(
|
||||||
default=True,
|
default=True,
|
||||||
name='Import Materials',
|
name='Materials',
|
||||||
options=empty_set,
|
options=empty_set,
|
||||||
)
|
)
|
||||||
should_reuse_materials: BoolProperty(
|
should_reuse_materials: BoolProperty(
|
||||||
@@ -71,9 +70,9 @@ class PSK_OT_import(Operator, ImportHelper):
|
|||||||
)
|
)
|
||||||
should_import_skeleton: BoolProperty(
|
should_import_skeleton: BoolProperty(
|
||||||
default=True,
|
default=True,
|
||||||
name='Import Skeleton',
|
name='Armature',
|
||||||
options=empty_set,
|
options=empty_set,
|
||||||
description='Import skeleton'
|
description='Armature'
|
||||||
)
|
)
|
||||||
bone_length: FloatProperty(
|
bone_length: FloatProperty(
|
||||||
default=1.0,
|
default=1.0,
|
||||||
@@ -81,8 +80,8 @@ class PSK_OT_import(Operator, ImportHelper):
|
|||||||
step=100,
|
step=100,
|
||||||
soft_min=1.0,
|
soft_min=1.0,
|
||||||
name='Bone Length',
|
name='Bone Length',
|
||||||
options=empty_set,
|
subtype='DISTANCE',
|
||||||
description='Length of the bones'
|
options=empty_set
|
||||||
)
|
)
|
||||||
should_import_shape_keys: BoolProperty(
|
should_import_shape_keys: BoolProperty(
|
||||||
default=True,
|
default=True,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ class PSX_UL_bone_group_list(UIList):
|
|||||||
def draw_item(self, context: Context, layout: UILayout, data: AnyType, item: AnyType, icon: int,
|
def draw_item(self, context: Context, layout: UILayout, data: AnyType, item: AnyType, icon: int,
|
||||||
active_data: AnyType, active_property: str, index: int = 0, flt_flag: int = 0):
|
active_data: AnyType, active_property: str, index: int = 0, flt_flag: int = 0):
|
||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.prop(item, 'is_selected', text=getattr(item, 'name'))
|
row.prop(item, 'is_selected', text=item.name, translate=item.name == 'Unassigned')
|
||||||
row.label(text=str(getattr(item, 'count')), icon='BONE_DATA')
|
row.label(text=str(getattr(item, 'count')), icon='BONE_DATA')
|
||||||
|
|
||||||
|
|
||||||
@@ -19,8 +19,8 @@ class PSX_PG_bone_group_list_item(PropertyGroup):
|
|||||||
|
|
||||||
|
|
||||||
class PSX_PG_action_export(PropertyGroup):
|
class PSX_PG_action_export(PropertyGroup):
|
||||||
compression_ratio: FloatProperty(name='Compression Ratio', default=1.0, min=0.0, max=1.0, subtype='FACTOR', description='The key sampling ratio of the exported sequence.\n\nA compression ratio of 1.0 will export all frames, while a compression ratio of 0.5 will export half of the frames')
|
compression_ratio: FloatProperty(name='Compression Ratio', default=1.0, min=0.0, max=1.0, subtype='FACTOR', description='The keyframe sampling ratio of the exported sequence.\n\nA compression ratio of 1.0 will export all frames, while a compression ratio of 0.5 will export half of the frames')
|
||||||
key_quota: IntProperty(name='Key Quota', default=0, min=1, description='The minimum number of frames to be exported')
|
key_quota: IntProperty(name='Keyframe Quota', default=0, min=1, description='The minimum number of keyframes to be exported')
|
||||||
|
|
||||||
|
|
||||||
class PSX_PT_action(Panel):
|
class PSX_PT_action(Panel):
|
||||||
|
|||||||
Reference in New Issue
Block a user