mirror of
https://github.com/DarklightGames/io_scene_psk_psa.git
synced 2025-03-02 23:13:18 +01:00
Updated localizations
This commit is contained in:
parent
7e1693dbb3
commit
ff090baffb
@ -5,7 +5,7 @@
|
||||
|
||||
This Blender addon allows you to import and export meshes and animations to and from the [PSK and PSA file formats](https://wiki.beyondunreal.com/PSK_%26_PSA_file_formats) used in many versions of the Unreal Engine.
|
||||
|
||||
## Compatibility
|
||||
# Compatibility
|
||||
|
||||
| Blender Version | Addon Version | Long Term Support |
|
||||
|--------------------------------------------------------------|--------------------------------------------------------------------------------|-------------------|
|
||||
|
2
extern/io_scene_psk_psa-translations
vendored
2
extern/io_scene_psk_psa-translations
vendored
@ -1 +1 @@
|
||||
Subproject commit 8d0fa8caf242a4475ed6ef7669224faaf136e6e3
|
||||
Subproject commit f1d4159ca30addc2d71778d2b71e1c18d7a5a505
|
@ -81,7 +81,7 @@ def check_bone_names(bone_names: Iterable[str]):
|
||||
message = bpy.app.translations.pgettext_iface(
|
||||
'The following bone names are invalid: {invalid_bone_names}.\n'
|
||||
'Bone names must only contain letters, numbers, spaces, hyphens and underscores.\n'
|
||||
'You can bypass this by disabling "Enforce Bone Name Restrictions" in the export settings.'
|
||||
'You can bypass this by disabling "Enforce Bone Name Restrictions" in the export settings'
|
||||
)
|
||||
raise RuntimeError(message.format(invalid_bone_names=str(invalid_bone_names)))
|
||||
|
||||
|
@ -34,11 +34,12 @@ langs = {'ja': {('*', 'Action Metadata'): 'アクションメタデータ',
|
||||
('*', 'Context'): 'コンテキスト',
|
||||
('*', 'Convert keyframes to read-only samples. Recommended if you do not plan on editing the actions directly'): 'キーフレームを読み取り専用サンプルに変換します。アクションを直接編集する予定がない場合におすすめです',
|
||||
('*', 'Convert to Samples'): 'サンプルに変換',
|
||||
('*', 'Custom FPS'): 'カスタム FPS',
|
||||
('*', 'Custom FPS'): 'カスタムFPS',
|
||||
('*', 'Deselect All'): 'すべて選択解除',
|
||||
('*', 'Deselect all bone collections'): 'すべてのボーンコレクションを選択解除',
|
||||
('*', 'Deselect all visible sequences'): '表示されているシーケンスをすべて選択解除',
|
||||
('*', 'Discarded {count} invalid face(s)'): '{count} 個の無効なフェースが廃棄されました',
|
||||
('*', 'Discarded {count} invalid face(s)'): '{count}個の無効なフェースが廃棄されました',
|
||||
('*', 'Duplicate action: {action_name}'): 'アクションが重複しています:{action_name}',
|
||||
('*', 'Each sequence name should be on a new line'): '各シーケンス名は新しい行にする必要があります',
|
||||
('*', 'Enforce Bone Name Restrictions'): 'ボーン名制限を強制',
|
||||
('*', 'Enforce that bone names must only contain letters, numbers, spaces, hyphens and underscores.\n\nDepending on the engine, improper bone names might not be referenced correctly by scripts'): 'ボーン名には文字、数字、スペース、ハイフン、アンダースコアのみを含めるようにしてください。\n'
|
||||
@ -46,26 +47,31 @@ langs = {'ja': {('*', 'Action Metadata'): 'アクションメタデータ',
|
||||
'エンジンによっては、不適切なボーン名がスクリプトで正しく参照されない場合があります',
|
||||
('*', 'Exact'): '正確',
|
||||
('*', 'Export'): 'エクスポート',
|
||||
('*', 'Export actions to PSA'): 'アクションを PSA にエクスポート',
|
||||
('*', 'Export actions to PSA'): 'アクションをPSAにエクスポート',
|
||||
('*', 'Export mesh and armature to PSK'): 'メッシュとアーマチュアを PSK にエクスポート',
|
||||
('*', 'Exported bone hierarchy must have a single root bone.\nThe bone hierarchy marked for export has {root_bone_count} root bones: {root_bone_names}.\nAdditional debugging information has been written to the console.'): 'エクスポートされたボーン階層にはルートボーンが '
|
||||
'1 '
|
||||
'つ必要です。\n'
|
||||
'エクスポート対象としてマークされたボーン階層には '
|
||||
'{root_bone_count} '
|
||||
'個のルートボーン '
|
||||
'({root_bone_names}) '
|
||||
'があります。\n'
|
||||
'追加のデバッグ情報がコンソールに書き込まれました。',
|
||||
('*', 'Extra UVs'): '追加のUV',
|
||||
('*', 'FPS Source'): 'FPS ソース',
|
||||
('*', 'Failed to read PSA config file: {error}'): 'PSA '
|
||||
'構成ファイルを読み込めませんでした:{error}',
|
||||
('*', 'FPS Source'): 'FPSソース',
|
||||
('*', 'Failed to read PSA config file: {error}'): 'PSA構成ファイルを読み込めませんでした:{error}',
|
||||
('*', 'Fake User'): 'フェイクユーザー',
|
||||
('*', 'File Path'): 'ファイルパス',
|
||||
('*', 'File path used for exporting the PSA file'): 'PSA '
|
||||
'ファイルのエクスポートに使用するファイルパス',
|
||||
('*', 'File path used for exporting the PSK file'): 'PSK '
|
||||
'ファイルのエクスポートに使用するファイルパス',
|
||||
('*', 'File path used for importing the PSA file'): 'PSA '
|
||||
'ファイルのインポートに使用するファイルパス',
|
||||
('*', 'File path used for exporting the PSA file'): 'PSAファイルのエクスポートに使用するファイルパス',
|
||||
('*', 'File path used for exporting the PSK file'): 'PSKファイルのエクスポートに使用するファイルパス',
|
||||
('*', 'File path used for importing the PSA file'): 'PSAファイルのインポートに使用するファイルパス',
|
||||
('*', 'Filter by Name'): '名前で絞り込む',
|
||||
('*', 'Filter using regular expressions'): '正規表現を使用してフィルタリングする',
|
||||
('*', 'Flags'): '国旗',
|
||||
('*', "If an action with a matching name already exists, the existing action will have it's data overwritten instead of a new action being created"): '一致する名前のアクションが既に存在する場合、新しいアクションが作成されるのではなく、既存のアクションのデータが上書きされます',
|
||||
('*', 'Import'): 'インポート',
|
||||
('*', 'Import Extra UVs'): '追加の UV をインポート',
|
||||
('*', 'Import Extra UVs'): '追加のUVをインポート',
|
||||
('*', 'Import Shape Keys'): 'シェイプキーをインポート',
|
||||
('*', 'Import Vertex Colors'): '頂点カラーをインポート',
|
||||
('*', 'Import Vertex Normals'): '頂点法線をインポート',
|
||||
@ -74,27 +80,30 @@ langs = {'ja': {('*', 'Action Metadata'): 'アクションメタデータ',
|
||||
('*', 'Import the selected animations into the scene as actions'): '選択したアニメーションをアクションとしてシーンにインポートします',
|
||||
('*', 'Import vertex colors, if available'): '頂点カラーをインポート (可能な場合)',
|
||||
('*', 'Import vertex normals, if available'): '頂点法線 (可能な場合) をインポートする',
|
||||
('*', 'Imported {action_count} action(s)'): 'インポートされた{action_count}アクション',
|
||||
('*', 'Imported {action_count} action(s) with {warning_count} warning(s)'): '{action_count}個のアクションが{warning_count}個の警告付きでインポートされました',
|
||||
('*', 'Invalid FPS source: {fps_source}'): 'FPSソースが無効です:{fps_source}',
|
||||
('*', 'Invert filtering (show hidden items, and vice versa)'): '反転フィルタリング '
|
||||
'(隠しアイテムを表示、その逆)',
|
||||
('*', 'Keyframe Quota'): 'キーフレームクォータ',
|
||||
('*', 'Load a PSK file'): 'PSK ファイルを読み込む',
|
||||
('*', 'Load a PSK file'): 'PSKファイルを読み込む',
|
||||
('*', 'Material name "{name}" contains characters that cannot be encoded in the Windows-1252 codepage'): 'マテリアル名「{name}」には、Windows-1252 '
|
||||
'コードページではエンコードできない文字が含まれています',
|
||||
('*', 'Material slot cannot be empty (index {index})'): 'マテリアルスロットを空にすることはできません '
|
||||
'(index '
|
||||
'{index})',
|
||||
'(インデックス{index})',
|
||||
('*', 'Materials'): 'マテリアル',
|
||||
('*', 'Mesh "{object_name}" must have at least one material'): 'メッシュ「{object_name}」には少なくとも1つのマテリアルが必要です',
|
||||
('*', 'Mesh "{object_name}" must have only one armature modifier'): 'メッシュ「{object_name}」にはアーマチュアモディファイヤが '
|
||||
'1 '
|
||||
'つだけ必要です',
|
||||
('*', 'Metadata'): 'メタデータ',
|
||||
('*', 'Modulate'): '変調する',
|
||||
('*', 'Move the selected material down one slot'): '選択したマテリアルを 1 '
|
||||
'スロット下に移動',
|
||||
('*', 'Move the selected material up one slot'): '選択したマテリアルを 1 '
|
||||
'つ上のスロットに移動',
|
||||
('*', 'NLA Track'): 'NLA トラック',
|
||||
('*', 'NLA Track Index'): 'NLA トラックインデックス',
|
||||
('*', 'NLA Track Strips'): 'NLA トラックストリップ',
|
||||
('*', 'No NLA track strips were selected for export'): 'エクスポート対象の NLA '
|
||||
'トラックストリップが選択されていません',
|
||||
('*', 'Move the selected material down one slot'): '選択したマテリアルを1スロット下に移動',
|
||||
('*', 'Move the selected material up one slot'): '選択したマテリアルを1つ上のスロットに移動',
|
||||
('*', 'NLA Track'): 'NLAトラック',
|
||||
('*', 'NLA Track Index'): 'NLAトラックインデックス',
|
||||
('*', 'NLA Track Strips'): 'NLAトラックストリップ',
|
||||
('*', 'No NLA track strips were selected for export'): 'エクスポート対象のNLAトラックストリップが選択されていません',
|
||||
('*', 'No Smooth'): 'スムーズなし',
|
||||
('*', 'No actions were selected for export'): 'エクスポートするアクションが選択されていません',
|
||||
('*', 'No animation data for object "{name}"'): 'オブジェクト「{name}」のアニメーションデータはありません',
|
||||
@ -105,36 +114,46 @@ langs = {'ja': {('*', 'Action Metadata'): 'アクションメタデータ',
|
||||
('*', 'No timeline markers were selected for export'): 'エクスポートするタイムラインマーカーが選択されていません',
|
||||
('*', 'Normal Two-Sided'): 'ノーマル両面',
|
||||
('*', 'Nothing to import'): 'インポートするものはありません',
|
||||
('*', 'Number of bones ({bone_count}) exceeds limit of {MAX_BONE_COUNT}'): 'ボーンの数({bone_count})が{MAX_BONE_COUNT}の制限を超えています',
|
||||
('*', 'Number of materials ({material_count}) exceeds limit of {MAX_MATERIAL_COUNT}'): 'マテリアルの数({material_count})が{MAX_MATERIAL_COUNT}の制限を超えています',
|
||||
('*', 'Number of wedges ({wedge_count}) exceeds limit of {MAX_WEDGE_COUNT}'): 'ウェッジの数({wedge_count})が{MAX_WEDGE_COUNT}の制限を超えています',
|
||||
('*', 'Numbers of vertices ({point_count}) exceeds limit of {MAX_POINT_COUNT}'): '頂点の数({point_count})が{MAX_POINT_COUNT}の制限を超えています',
|
||||
('*', 'Only Show Selected'): '選択したものだけを表示',
|
||||
('*', 'Only bones belonging to the selected bone collections and their ancestors will be exported'): '選択したボーンコレクションに属するボーンとその祖先だけがエクスポートされます',
|
||||
('*', "Only show items matching this name (use '*' as wildcard)"): 'この名前に一致するアイテムのみを表示 '
|
||||
'(ワイルドカードとして「*」を使用)',
|
||||
('*', 'Only show selected sequences'): '選択したシーケンスのみを表示',
|
||||
('*', 'Override Animation Data'): 'アニメーションデータをオーバーライドする',
|
||||
('*', 'PSA Export'): 'PSA エクスポート',
|
||||
('*', 'PSA export successful'): 'PSA のエクスポートが成功しました',
|
||||
('*', 'PSK Material'): 'PSK マテリアル',
|
||||
('*', 'PSK export successful'): 'PSK のエクスポートが成功しました',
|
||||
('*', 'PSK imported ({name})'): 'PSK がインポートされました ({name})',
|
||||
('*', 'PSK imported with {count} warning(s)'): 'PSK が {count} '
|
||||
'という警告とともにインポートされました',
|
||||
('*', 'PSA Export'): 'PSAエクスポート',
|
||||
('*', 'PSA bone {bone_index} ({bone_name}) could not be mapped to armature bone {armature_bone_index} ({armature_bone_name}) because the armature bone is already mapped to PSA bone {mapped_psa_bone_index} ({mapped_psa_bone_name})'): 'アーマチュアボーンは既に '
|
||||
'PSA '
|
||||
'ボーン{mapped_psa_bone_index}({mapped_psa_bone_name})にマップされているため、PSA '
|
||||
'ボーン{bone_index}({bone_name})をアーマチュアボーン{armature_bone_index}({mapped_psa_bone_name})にマッピングできませんでした',
|
||||
('*', 'PSA export successful'): 'PSAのエクスポートが成功しました',
|
||||
('*', 'PSK Material'): 'PSKマテリアル',
|
||||
('*', 'PSK export successful'): 'PSKのエクスポートが成功しました',
|
||||
('*', 'PSK export successful with {warning_count} warnings'): 'PSKエクスポートは成功しましたが、警告が{warning_count}件ありました',
|
||||
('*', 'PSK imported ({name})'): 'PSKがインポートされました ({name})',
|
||||
('*', 'PSK imported with {count} warning(s)'): 'PSKをインポートすると{count}つの警告が発生しました',
|
||||
('*', 'PSK/PSA Import/Export (.psk/.psa)'): 'PSK/PSA インポート/エクスポート '
|
||||
'(.psk/.psa)',
|
||||
('*', 'PSK/PSA Importer/Exporter'): 'PSK/PSA インポーター/エクスポーター',
|
||||
('*', 'Prefix Action Name'): 'プレフィックスアクション名',
|
||||
('*', 'Raw Mesh Data'): '未加工メッシュデータ',
|
||||
('*', 'Regular Expression'): '正規表現',
|
||||
('*', 'RemoveTracks'): 'トラックを削除',
|
||||
('*', 'RemoveTracks'): 'RemoveTracks',
|
||||
('*', 'Reversed'): '逆転しました',
|
||||
('*', 'Root Motion'): 'ルートモーション',
|
||||
('*', 'Root bone "{root_bone_name}" was included because {bone_name} was marked for export'): 'ルートボーン「{root_bone_name}」が含まれたのは、「{bone_name}」がエクスポート対象としてマークされているためです',
|
||||
('*', 'Select All'): 'すべて選択',
|
||||
('*', 'Select By Text List'): 'テキストリストで選択',
|
||||
('*', 'Select a PSA file'): 'PSA ファイルを選択',
|
||||
('*', 'Select a PSA file'): 'PSAファイルを選択',
|
||||
('*', 'Select all bone collections'): 'すべてのボーンコレクションを選択',
|
||||
('*', 'Select all visible sequences'): '表示されているシーケンスをすべて選択',
|
||||
('*', 'Select sequences by name from text list'): 'テキストリストから名前でシーケンスを選択',
|
||||
('*', 'Selected object "{object_name}" is not a mesh'): '選択したオブジェクト「{object_name}」はメッシュではありません',
|
||||
('*', 'Selected object must be an Armature'): '選択したオブジェクトはアーマチュアでなければなりません',
|
||||
('*', 'Selected {count} sequence(s)'): '選択した {count} シーケンス',
|
||||
('*', 'Selected {count} sequence(s)'): '選択した{count}シーケンス',
|
||||
('*', 'Sequence'): 'シーケンス',
|
||||
('*', 'Sequence name "{name}" contains characters that cannot be encoded in the Windows-1252 codepage'): 'シーケンス名「{name}」には、Windows-1252 '
|
||||
'コードページではエンコードできない文字が含まれています',
|
||||
@ -148,28 +167,25 @@ langs = {'ja': {('*', 'Action Metadata'): 'アクションメタデータ',
|
||||
('*', 'Show actions that belong to an asset library'): 'アセットライブラリに属するアクションを表示',
|
||||
('*', 'Show reversed sequences'): '逆のシーケンスを表示',
|
||||
('*', 'Source'): 'ソース',
|
||||
('*', 'Stash'): '保留',
|
||||
('*', 'Stash each imported action as a strip on a new non-contributing NLA track'): 'インポートした各アクションを、コントリビューションされていない新しい '
|
||||
'NLA '
|
||||
'トラックにストリップとして保存する',
|
||||
('*', 'The active object must be an armature'): 'アクティブオブジェクトはアーマチュアでなければなりません',
|
||||
('*', "The armature '{armature_name}' is missing {count} bones that exist in the PSA:\n{missing_bone_names}"): 'アーマチュア「{armature_name}」にはPSAに存在する{count}個のボーンがありません:\n'
|
||||
'{missing_bone_names}',
|
||||
('*', 'The following bone names are invalid: {invalid_bone_names}.\nBone names must only contain letters, numbers, spaces, hyphens and underscores.\nYou can bypass this by disabling "Enforce Bone Name Restrictions" in the export settings.'): '次のボーン名は無効です:{invalid_bone_names}\n'
|
||||
'ボーン名に使用できるのは、文字、数字、スペース、ハイフン、アンダースコアのみです。\n'
|
||||
'エクスポート設定で「ボーン名制限を強制」を無効にすることで、これを回避できます',
|
||||
('*', 'The frame rate of the exported sequence'): 'エクスポートされたシーケンスのフレームレート',
|
||||
('*', 'The frame rate to which the imported sequences will be resampled to'): 'インポートしたシーケンスをリサンプリングするときのフレームレート',
|
||||
('*', "The frame rate will be determined by action's FPS property found in the PSA Export panel.\n\nIf the Sequence Source is Timeline Markers, the lowest value of all contributing actions will be used"): 'フレームレートは、PSA '
|
||||
'Export '
|
||||
'パネルにあるアクションの '
|
||||
'FPS '
|
||||
'プロパティによって決まります。\n'
|
||||
('*', "The frame rate will be determined by action's FPS property found in the PSA Export panel.\n\nIf the Sequence Source is Timeline Markers, the lowest value of all contributing actions will be used"): 'フレームレートは、PSAエクスポートのパネルにあるアクションのFPSプロパティによって決まります。\n'
|
||||
'\n'
|
||||
'シーケンスソースがタイムラインマーカーの場合、関連するすべてのアクションのうち最も低い値が使用されます',
|
||||
('*', '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'): 'エクスポートされたシーケンスのキーフレームサンプリング比。\n'
|
||||
'\n'
|
||||
'圧縮率が '
|
||||
'1.0 '
|
||||
'の場合はすべてのフレームがエクスポートされ、圧縮率が '
|
||||
'0.5 '
|
||||
'の場合はフレームの半分がエクスポートされます',
|
||||
('*', 'The method by which bones from the PSA file are mapped to the bones of the armature'): 'PSA '
|
||||
'ファイルのボーンをアーマチュアのボーンにマッピングする方法',
|
||||
'圧縮率が1.0の場合はすべてのフレームがエクスポートされ、圧縮率が0.5の場合はフレームの半分がエクスポートされます',
|
||||
('*', 'The method by which bones from the PSA file are mapped to the bones of the armature'): 'PSAファイルのボーンをアーマチュアのボーンにマッピングする方法',
|
||||
('*', 'The minimum number of keyframes to be exported'): 'エクスポートするキーフレームの最小数',
|
||||
('*', 'The selected object must be an armature'): '選択したオブジェクトはアーマチュアでなければなりません',
|
||||
('*', 'The sequence frame rate matches the original frame rate'): 'シーケンスのフレームレートは元のフレームレートと一致します',
|
||||
@ -179,17 +195,16 @@ langs = {'ja': {('*', 'Action Metadata'): 'アクションメタデータ',
|
||||
('*', 'Translucent'): '半透明',
|
||||
('*', 'Triangle Bit Flags'): 'トライアングルビットフラグ',
|
||||
('*', 'Triangle Type'): 'トライアングルタイプ',
|
||||
('*', 'Unhandled section "{section_name}" at position {position}'): '{position}の位置にある未処理のセクション「{section_name}」',
|
||||
('*', 'Unhandled sequence source: {sequence_source}'): '未処理のシーケンスソース:{sequence_source}',
|
||||
('*', 'Unlit'): '明かりなし',
|
||||
('*', 'Unreal PSA (.psa)'): 'アンリアルスパ (.psa)',
|
||||
('*', 'Unreal PSA (.psa)'): 'アンリアルPSA (.psa)',
|
||||
('*', 'Unreal PSK (.psk)'): 'アンリアルPSK (.psk)',
|
||||
('*', 'Unreal PSK (.psk/.pskx)'): 'アンリアルPSK (.psk/.pskx)',
|
||||
('*', 'Unrecognized wedge format'): '認識されないウェッジフォーマット',
|
||||
('*', 'Use Config File'): '設定ファイルを使用',
|
||||
('*', 'Use the .config file that is sometimes generated when the PSA file is exported from UEViewer. This file contains options that can be used to filter out certain bones tracks from the imported actions'): 'PSA '
|
||||
'ファイルを '
|
||||
'UEViewer '
|
||||
'からエクスポートしたときに生成されることがある.config '
|
||||
'ファイルを使用してください。このファイルには、インポートしたアクションから特定のボーントラックを除外するためのオプションが含まれています',
|
||||
'ファイルをUEViewerからエクスポートしたときに生成されることがある.configファイルを使用してください。このファイルには、インポートしたアクションから特定のボーントラックを除外するためのオプションが含まれています',
|
||||
('*', 'Use the animation data from a different object instead of the selected object'): '選択したオブジェクトの代わりに別のオブジェクトのアニメーションデータを使用する',
|
||||
('*', 'Vertex Color Space'): '頂点カラースペース',
|
||||
('*', 'Vertex Colors'): '頂点カラー',
|
||||
|
@ -20,7 +20,6 @@ for file in glob.glob('../io_scene_psk_psa/**/*.py', recursive=True):
|
||||
if isinstance(node, ast.Constant) and isinstance(node.value, str):
|
||||
a = pathlib.Path(file).resolve()
|
||||
filepath = a.relative_to(root_path)
|
||||
print(filepath)
|
||||
if node.s not in strings:
|
||||
strings[node.s] = filepath, node.lineno, node.col_offset
|
||||
except UnicodeDecodeError as e:
|
||||
@ -43,8 +42,8 @@ string_keys = set(filter(lambda x: not x.islower() or ' ' in x, string_keys))
|
||||
# Remove any strings that are in SCREAMING_SNAKE_CASE.
|
||||
string_keys = set(filter(lambda x: not x.isupper(), string_keys))
|
||||
|
||||
# Remove any strings that have underscores.
|
||||
string_keys = set(filter(lambda x: '_' not in x, string_keys))
|
||||
# Remove any strings that have underscores and no spaces.
|
||||
string_keys = set(filter(lambda x: '_' not in x or ' ' in x, string_keys))
|
||||
|
||||
# Remove any string that starts with a newline.
|
||||
string_keys = set(filter(lambda x: not x.startswith('\n'), string_keys))
|
||||
|
Loading…
x
Reference in New Issue
Block a user