Initial commit for Japanese translations

This commit is contained in:
Colin Basnett
2023-08-01 21:49:29 -07:00
parent 972067860a
commit 38a8dab100
8 changed files with 52 additions and 24 deletions

View File

@@ -16,6 +16,7 @@ if 'bpy' in locals():
importlib.reload(psx_data)
importlib.reload(psx_helpers)
importlib.reload(psx_types)
importlib.reload(psx_i18n)
importlib.reload(psk_data)
importlib.reload(psk_reader)
@@ -42,6 +43,7 @@ else:
from . import data as psx_data
from . import helpers as psx_helpers
from . import types as psx_types
from . import i18n as psx_i18n
from .psk import data as psk_data
from .psk import reader as psk_reader
from .psk import writer as psk_writer
@@ -99,6 +101,7 @@ def psa_import_menu_func(self, context):
def register():
for cls in classes:
bpy.utils.register_class(cls)
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_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.Action.psa_export = PointerProperty(type=psx_types.PSX_PG_action_export)
bpy.app.translations.register(__name__, psx_i18n.langs)
def unregister():
bpy.app.translations.unregister(__name__)
del bpy.types.Scene.psa_import
del bpy.types.Scene.psa_export
del bpy.types.Scene.psk_export

18
io_scene_psk_psa/i18n.py Normal file
View 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'): '大文字小文字を区別しない',
}
}

View File

@@ -246,19 +246,24 @@ class PSA_OT_export(Operator, ExportHelper):
layout = self.layout
pg = getattr(context.scene, 'psa_export')
flow = layout.grid_flow()
flow.use_property_split = True
flow.use_property_decorate = False
# 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':
layout.prop(pg, 'fps_custom', text='Custom')
fps_row.prop(pg, 'fps_custom', text='')
# SOURCE
layout.prop(pg, 'sequence_source', text='Source')
flow.prop(pg, 'sequence_source', text='Source')
if pg.sequence_source == 'TIMELINE_MARKERS':
# ANIMDATA SOURCE
layout.prop(pg, 'should_override_animation_data')
flow.prop(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
row = layout.row(align=True)

View File

@@ -85,7 +85,7 @@ class PSA_PG_export(PropertyGroup):
options=empty_set,
description='',
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 '
'be exported.'),
)
@@ -112,18 +112,18 @@ class PSA_PG_export(PropertyGroup):
description='Invert filtering (show hidden items, and vice versa)')
sequence_filter_asset: BoolProperty(
default=False,
name='Show assets',
name='Assets',
options=empty_set,
description='Show actions that belong to an asset library')
sequence_filter_pose_marker: BoolProperty(
default=True,
name='Show pose markers',
name='Pose Markers',
options=empty_set)
sequence_use_filter_sort_reverse: BoolProperty(default=True, options=empty_set)
sequence_filter_reversed: BoolProperty(
default=True,
options=empty_set,
name='Show Reversed',
name='Reversed',
description='Show reversed sequences'
)

View File

@@ -57,11 +57,11 @@ class PSA_PG_import(PropertyGroup):
'Recommended if you do not plan on editing the actions directly'
)
bone_mapping_mode: EnumProperty(
name='Bone Mapping',
name='Bone Name Mapping',
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=(
('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 '
'\'root\' can be mapped to the armature bone \'Root\')', 'CASE_INSENSITIVE', 1),
)

View File

@@ -11,7 +11,7 @@ class PSA_UL_sequences(UIList):
column = split.row(align=True)
column.alignment = 'LEFT'
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):
pg = getattr(context.scene, 'psa_import')

View File

@@ -54,13 +54,12 @@ class PSK_OT_import(Operator, ImportHelper):
)
should_import_mesh: BoolProperty(
default=True,
name='Import Mesh',
options=empty_set,
description='Import mesh'
name='Mesh',
options=empty_set
)
should_import_materials: BoolProperty(
default=True,
name='Import Materials',
name='Materials',
options=empty_set,
)
should_reuse_materials: BoolProperty(
@@ -71,9 +70,9 @@ class PSK_OT_import(Operator, ImportHelper):
)
should_import_skeleton: BoolProperty(
default=True,
name='Import Skeleton',
name='Armature',
options=empty_set,
description='Import skeleton'
description='Armature'
)
bone_length: FloatProperty(
default=1.0,
@@ -81,8 +80,8 @@ class PSK_OT_import(Operator, ImportHelper):
step=100,
soft_min=1.0,
name='Bone Length',
options=empty_set,
description='Length of the bones'
subtype='DISTANCE',
options=empty_set
)
should_import_shape_keys: BoolProperty(
default=True,

View File

@@ -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,
active_data: AnyType, active_property: str, index: int = 0, flt_flag: int = 0):
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')
@@ -19,8 +19,8 @@ class PSX_PG_bone_group_list_item(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')
key_quota: IntProperty(name='Key Quota', default=0, min=1, description='The minimum number of frames to be exported')
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='Keyframe Quota', default=0, min=1, description='The minimum number of keyframes to be exported')
class PSX_PT_action(Panel):