301 lines
9.8 KiB
Python
301 lines
9.8 KiB
Python
#!/usr/bin/env python
|
||
# -*- coding: utf-8 -*-
|
||
|
||
"""
|
||
Localization module
|
||
本地化模块 - 提供UI文本的多语言支持
|
||
"""
|
||
import maya.cmds as cmds
|
||
import config
|
||
|
||
# 当前选择的语言
|
||
current_language = config.TOOL_LANG # 默认使用中文
|
||
|
||
# 语言字典
|
||
LANG = {
|
||
"zh_CN": {
|
||
# 主界面
|
||
"geometry": "几何体",
|
||
"rigging": "绑定",
|
||
"behaviour": "行为",
|
||
"definition": "定义",
|
||
|
||
# 几何体模块
|
||
"geometry_title": "几何模型",
|
||
"enter_model_name": "输入模型名称",
|
||
"load": " 加 载 ",
|
||
"load_model": "加载模型",
|
||
"auto_load_meshes": "自动加载模型",
|
||
"standardized_naming": "标准化命名",
|
||
"automatic_grouping": "自动分组",
|
||
"clear": " 清 理 ",
|
||
"clear_all_models": "清理所有模型",
|
||
"model_tools": "模型工具",
|
||
"topology_structure": "拓扑结构",
|
||
"select_lod": "选择LOD",
|
||
"all": "全部",
|
||
"create_lod": "创建LOD",
|
||
"separate_model": "模型分离",
|
||
"generate_face_components": "生成面部配件",
|
||
"fix_normals": "修复法线",
|
||
"fix_vertex_order": "修复点序",
|
||
"fix_seams": "修复接缝",
|
||
"optimize_scene": "优化场景",
|
||
|
||
# 绑定模块
|
||
"rigging_title": "绑定系统",
|
||
"presets": "预设",
|
||
"export_presets": "导出预设",
|
||
"import_presets": "导入预设",
|
||
"assets": "资产",
|
||
"project_path": "项目路径:",
|
||
"Presets DNA:": "预设 DNA:",
|
||
"descriptor": "描述",
|
||
"name": "名称:",
|
||
"archetype": "原型:",
|
||
"gender": "性别:",
|
||
"age": "年龄:",
|
||
"translation_unit": "平移单位:",
|
||
"rotation_unit": "旋转单位:",
|
||
"coordinate_system": "坐标系统:",
|
||
"lod_count": "LOD数量:",
|
||
"remove_all": "移除全部",
|
||
"import_skeleton": "导入骨骼",
|
||
"build_rigging": "创建绑定",
|
||
|
||
# 行为模块
|
||
"behaviour_title": "行为系统",
|
||
"search": "搜索...",
|
||
" Range - ": " 范围 - ",
|
||
" Range + ": " 范围 + ",
|
||
"Raw Control": "原始控制",
|
||
"Related BlendShapes": "相关形态混合",
|
||
"Add": "添加",
|
||
"Delete": "删除",
|
||
"Batch": "批量",
|
||
"Rebuild": "重建",
|
||
"Reposition": "重定位",
|
||
"Blend": "混合",
|
||
"Flip Target": "翻转目标",
|
||
"Mirror Target": "镜像目标",
|
||
"Find Flip Target": "查找翻转目标",
|
||
"Add BlendShape": "添加形态混合",
|
||
"Delete BlendShape": "删除形态混合",
|
||
"Batch BlendShape": "批量形态混合",
|
||
"Rebuild Select": "重建选择",
|
||
"Reposition Joints": "重定位关节",
|
||
"Blend Select": "混合选择",
|
||
"Reset Default": "重置默认",
|
||
"Find Select": "查找选择",
|
||
"Write Current": "写入当前",
|
||
"Controller Find": "查找控制器",
|
||
"Select Joint": "选择关节",
|
||
"Find Mirror": "查找镜像",
|
||
|
||
# 定义模块
|
||
"definition_title": "定义系统",
|
||
"define_lod_relations": "定义LOD关联",
|
||
"create_geometry": "创建几何体",
|
||
"Write Neutral Pose Joint Position": "写入中性Pose关节位置",
|
||
"Write Geometry": "写入几何体",
|
||
"Write Skin Weight": "写入蒙皮权重",
|
||
"Write Blendshape Target": "写入BS对象",
|
||
"Create Blendshapes For Mesh": "为模型创建Blendshape",
|
||
"Create Skin For Mesh": "为模型创建绑定蒙皮",
|
||
"Unbind Skin For Mesh": "为模型取消绑定蒙皮",
|
||
"Tools": "工具",
|
||
"New Head Netural Joint Transform": "重新定位头部关节",
|
||
"New Body Netural Joint Transform": "重新定位身体关节",
|
||
"New Netural Joint Transform": "重新定位全身关节",
|
||
"Quick Create Preset": "快速创建预设",
|
||
|
||
# 工具栏
|
||
"保存DNA": "保存DNA",
|
||
"打开DNA": "打开DNA",
|
||
"创建RL4节点": "创建RL4节点",
|
||
"删除RL4节点": "删除RL4节点",
|
||
"导入蒙皮": "导入蒙皮",
|
||
"导出蒙皮": "导出蒙皮",
|
||
"复制蒙皮": "复制蒙皮",
|
||
"切换语言": "切换语言",
|
||
"帮助": "帮助"
|
||
},
|
||
"en_US": {
|
||
# Main Interface
|
||
"geometry": "Geometry",
|
||
"rigging": "Rigging",
|
||
"behaviour": "Behaviour",
|
||
"definition": "Definition",
|
||
|
||
# Geometry Module
|
||
"geometry_title": "Geometry Model",
|
||
"enter_model_name": "Enter Model Name",
|
||
"load": "Load",
|
||
"load_model": "Load Model",
|
||
"auto_load_meshes": "Auto Load Meshes",
|
||
"standardized_naming": "Standardized Naming",
|
||
"automatic_grouping": "Automatic Grouping",
|
||
"clear": "Clear",
|
||
"clear_all_models": "Clear All Models",
|
||
"model_tools": "Model Tools",
|
||
"topology_structure": "Topology Structure",
|
||
"select_lod": "Select LOD",
|
||
"all": "All",
|
||
"create_lod": "Create LOD",
|
||
"separate_model": "Separate Model",
|
||
"generate_face_components": "Generate Face Components",
|
||
"fix_normals": "Fix Normals",
|
||
"fix_vertex_order": "Fix Vertex Order",
|
||
"fix_seams": "Fix Seams",
|
||
"optimize_scene": "Optimize Scene",
|
||
|
||
# Rigging Module
|
||
"rigging_title": "Rigging System",
|
||
"presets": "Presets",
|
||
"export_presets": "Export Presets",
|
||
"import_presets": "Import Presets",
|
||
"assets": "Assets",
|
||
"project_path": "Project Path:",
|
||
"Presets DNA:": "Presets DNA:",
|
||
"descriptor": "Descriptor",
|
||
"name": "Name:",
|
||
"archetype": "Archetype:",
|
||
"gender": "Gender:",
|
||
"age": "Age:",
|
||
"translation_unit": "Translation Unit:",
|
||
"rotation_unit": "Rotation Unit:",
|
||
"coordinate_system": "Coordinate System:",
|
||
"lod_count": "LOD Count:",
|
||
"remove_all": "Remove All",
|
||
"import_skeleton": "Import Skeleton",
|
||
"build_rigging": "Build Rigging",
|
||
|
||
# Behaviour Module
|
||
"behaviour_title": "Behaviour System",
|
||
"search": "Search...",
|
||
" Range - ": " Range - ",
|
||
" Range + ": " Range + ",
|
||
"Raw Control": "Raw Control",
|
||
"Related BlendShapes": "Related BlendShapes",
|
||
"Add": "Add",
|
||
"Delete": "Delete",
|
||
"Batch": "Batch",
|
||
"Rebuild": "Rebuild",
|
||
"Reposition": "Reposition",
|
||
"Blend": "Blend",
|
||
"Flip Target": "Flip Target",
|
||
"Mirror Target": "Mirror Target",
|
||
"Find Flip Target": "Find Flip Target",
|
||
"Add BlendShape": "Add BlendShape",
|
||
"Delete BlendShape": "Delete BlendShape",
|
||
"Batch BlendShape": "Batch BlendShape",
|
||
"Rebuild Select": "Rebuild Select",
|
||
"Reposition Joints": "Reposition Joints",
|
||
"Blend Select": "Blend Select",
|
||
"Reset Default": "Reset Default",
|
||
"Find Select": "Find Select",
|
||
"Write Current": "Write Current",
|
||
"Controller Find": "Controller Find",
|
||
"Select Joint": "Select Joint",
|
||
"Find Mirror": "Find Mirror",
|
||
|
||
# Definition Module
|
||
"definition_title": "Definition System",
|
||
"define_lod_relations": "Define LOD Relations",
|
||
"create_geometry": "Create Geometry",
|
||
"Write Neutral Pose Joint Position": "Write Neutral Pose Joint Position",
|
||
"Write Geometry": "Write Geometry",
|
||
"Write Skin Weight": "Write Skin Weight",
|
||
"Write Blendshape Target": "Write BlendShape Target",
|
||
"Create Blendshapes For Mesh": "Create BlendShapes For Mesh",
|
||
"Create Skin For Mesh": "Create Skin For Mesh",
|
||
"Unbind Skin For Mesh": "Unbind Skin For Mesh",
|
||
"Tools": "Tools",
|
||
"New Head Netural Joint Transform": "Relocate Head Joint",
|
||
"New Body Netural Joint Transform": "Relocate Body Joint",
|
||
"New Netural Joint Transform": "Relocate All Joints",
|
||
"Quick Create Preset": "Quick Create Preset",
|
||
|
||
# Toolbar
|
||
"保存DNA": "Save DNA",
|
||
"打开DNA": "Open DNA",
|
||
"创建RL4节点": "Create RL4 Node",
|
||
"删除RL4节点": "Delete RL4 Node",
|
||
"导入蒙皮": "Import Skin",
|
||
"导出蒙皮": "Export Skin",
|
||
"复制蒙皮": "Copy Skin",
|
||
"切换语言": "Switch Language",
|
||
"帮助": "Help"
|
||
}
|
||
}
|
||
|
||
def TEXT(key, default=None):
|
||
"""
|
||
获取当前语言的文本
|
||
|
||
Args:
|
||
key: 文本键名
|
||
default: 如果找不到对应文本,返回的默认值
|
||
|
||
Returns:
|
||
str: 当前语言对应的文本
|
||
"""
|
||
global current_language
|
||
if not default:
|
||
default = key
|
||
|
||
# 如果key在当前语言中存在,返回翻译文本
|
||
if key in LANG.get(current_language, {}):
|
||
return LANG[current_language][key]
|
||
|
||
# 如果只在英文中存在,返回英文
|
||
if key in LANG.get("en_US", {}):
|
||
return LANG["en_US"][key]
|
||
|
||
# 否则返回默认值
|
||
return default
|
||
|
||
def switch_language():
|
||
"""
|
||
切换当前语言
|
||
在中文和英文之间切换
|
||
|
||
Returns:
|
||
str: 切换后的语言代码
|
||
"""
|
||
global current_language
|
||
|
||
# 切换语言
|
||
if current_language == "zh_CN":
|
||
current_language = "en_US"
|
||
print("已切换到英文界面")
|
||
else:
|
||
current_language = "zh_CN"
|
||
print("已切换到中文界面")
|
||
|
||
return current_language
|
||
|
||
def get_current_language():
|
||
"""
|
||
获取当前语言代码
|
||
|
||
Returns:
|
||
str: 当前语言代码
|
||
"""
|
||
return current_language
|
||
|
||
def set_language(lang_code):
|
||
"""
|
||
设置当前语言
|
||
|
||
Args:
|
||
lang_code: 语言代码,如'zh_CN'或'en_US'
|
||
|
||
Returns:
|
||
bool: 是否设置成功
|
||
"""
|
||
global current_language
|
||
if lang_code in LANG:
|
||
current_language = lang_code
|
||
return True
|
||
return False |