1. 程式人生 > >解決 Maya2018 for Mac 在Sierra 下無法顯示中文介面的問題

解決 Maya2018 for Mac 在Sierra 下無法顯示中文介面的問題

不知道為什麼自己明明下載的中文版的Maya,在mac安裝好卻成了英文的了。

在網上找了一圈,找到了解決辦法:原貼地址

儲存以下程式碼到:maya.py,檔案中

#encoding:utf-8

import os
import sys
import re

_CONTENTS_DIR = '/Applications/Autodesk/maya2018/Maya.app/Contents/'
# _CONTENTS_DIR = os.path.dirname(os.path.abspath(sys.argv[0])) + '/Maya.app/Contents/'

def replaceScripts(default_dir):
	exist_in_zh_count = 0
	for file_name in os.listdir(os.path.abspath(default_dir)):
		default_file_path = os.path.join(default_dir, file_name)
		zh_dir = _CONTENTS_DIR + 'Resources/zh_CN.lproj/scripts'
		zh_file_path = os.path.join(os.path.abspath(zh_dir), file_name)
		if os.path.exists(zh_file_path):
			new_default_file_path = default_file_path + '.old'
			new_zh_file_path = default_file_path

			cmd = 'mv ' + default_file_path + ' ' + new_default_file_path
			os.popen(cmd);
			cmd = 'cp ' + zh_file_path + ' ' + new_zh_file_path
			os.popen(cmd)
			exist_in_zh_count += 1

			default_file = open(new_default_file_path, 'rU')
			zh_file = open(new_zh_file_path, 'r+')
			try:
				default_lines = default_file.readlines()
				zh_lines = zh_file.readlines()
				if not len(default_lines) == len(zh_lines):
					# print '[info]: modify ' + new_zh_file_path
					for line in default_lines:
						pattern = re.compile(r'displayString\s-replace\s-value')
						match = pattern.match(line)
						if not match:
							if not line.startswith('//'):
								print 'Warning: 發現不能處理語句:' + line
							continue
						pattern = re.compile(r'(?<="\s).*?(?=;)')
						match = pattern.search(line)
						if not match:
							print 'Error: 錯誤的語句'
							break
						key = str(match.group())
						exist_in_zh = False
						for zh_line in zh_lines:
							pattern = re.compile(key)
							match = pattern.search(zh_line)
							if match:
								exist_in_zh = True
								break
						if not exist_in_zh:
							zh_file.write(line)
			except Exception as e:
				print str(e)
			finally:
				default_file.close()
				zh_file.close()

def replaceResource():
	default_file_path = _CONTENTS_DIR + 'Resources/MayaStrings'
	zh_file_path = _CONTENTS_DIR + 'Resources/zh_CN.lproj/MayaStrings'

	new_default_file_path = default_file_path + '.old'
	new_zh_file_path = default_file_path
	cmd = 'mv ' + default_file_path + ' ' + new_default_file_path
	os.popen(cmd)
	cmd = 'cp ' + zh_file_path + ' ' + new_zh_file_path
	os.popen(cmd)

	default_file = open(new_default_file_path, 'rU')
	zh_file = open(new_zh_file_path, 'r+')
	try:
		default_lines = default_file.readlines()
		zh_lines = zh_file.readlines()
		for line in default_lines:
			pattern = re.compile(r'^.*?(?=\s=\s")')
			match = pattern.match(line)
			if not match:
				if not line.startswith('//'):
					print 'Warning: 發現不能處理語句:' + line
				continue
			exist_in_zh = False
			for zh_line in zh_lines:
				if zh_line.startswith(str(match.group())):
					exist_in_zh = True
					zh_lines.remove(zh_line)
					break
			if not exist_in_zh:
				zh_file.write(line)
	except Exception as e:
		print str(e)
	finally:
		default_file.close()
		zh_file.close()


_SCRIPTS_DIR = _CONTENTS_DIR + 'scripts/'
replaceScripts(_SCRIPTS_DIR + 'startup')
replaceScripts(_SCRIPTS_DIR + 'shelves')
replaceScripts(_SCRIPTS_DIR + 'others')
replaceScripts(_SCRIPTS_DIR + 'AETemplates')

replaceResource()

然後開啟終端,輸入:

cd “maya.py所在位置”
sudo python maya.py
輸入系統登入密碼,開啟maya,成功!