序言:最近在使用Aras Innovator,但是默认操作环境是英语,看着不是很习惯,所以决定进行汉化。
1.下载语言包
很庆幸,虽然官方版本没有简体中文,但是还是有简体中文语言包的,通过官网去下载语言包。
2.安装语言包
将此语言包导入生产环境之前,Aras 建议您创建数据库和代码树的备份。
这些是使用当前简体中文语言包和 zh-cn 语言环境设置计算机的通用说明。 请注意,简体中文语言包的安装适用于大多数用户将运行简体中文 Aras Innovator 的系统。
第 1 步 - 配置设置。
编辑SETUP-DEFAULTS.CMD
您需要定义以下每个变量:
前四个变量用于创建语言和区域设置,以及使用解决方案升级工具进行任何其他 AML 更改。
SERVER_URL = 用于连接到 Aras Innovator 的基本 URL
示例:默认安装中的 http://localhost/InnovatorServer,确保 URL 中不包含 /Client http://localhost/InnovatorServer/Client
DATABASE_ID = 这是 Aras Innovator 用于识别 Aras Innovator 数据库的 ID。该值可以在 Aras Innovator InnovatorServerConfig.xml 的 DB-connection 标记中找到。 (id="InnovatorSolutions")
INNOVATOR_LOGIN = 这是管理登录名,将用于创建语言和区域设置项以及进行必要的 AML 更改。新安装应该只使用“root”。
INNOVATOR_PASSWORD = 这是管理登录的密码,将用于创建语言和区域设置项以及进行必要的 AML 更改。“root”的默认密码是“innovator”
最后四个变量用于使用语言包管理实用程序导入语言值。
DB_SERVER = 安装 Aras Innovator 数据库的 SQL Server 实例的名称。该值可以在 Aras Innovator InnovatorServerConfig.xml 的 DB-connection 标记中找到。 (server="localhost")
DATABASE_NAME = SQL Server 中 Aras Innovator 数据库的名称。该值可以在 Aras Innovator InnovatorServerConfig.xml 的 DB-connection 标记中找到。 (database="InnovatorSolutions")
SQL_LOGIN = 分配给 SQL Server 中 Aras Innovator 数据库的 innovator 用户的登录名。该值可以在 Aras Innovator InnovatorServerConfig.xml 的 DB-connection 标记中找到。 (uid="innovator")
SQL_PASSWORD = 分配给 SQL Server 中 Aras Innovator 数据库的 innovator 用户的登录密码。该值可以在 Aras Innovator InnovatorServerConfig.xml 的 DB-connection 标记中找到。(pwd="innovator")
步骤 2 - 安装客户端 xml 目录。
将该目录下找到的\Innovator文件夹复制到服务器覆盖,Aras Innovator 安装文件夹中的 \Innovator 文件夹。这将在 Aras Innovator 代码树中创建新目录:
\OAuthServer\i18n\xml.zc
\Innovator\Client\xml.zc
\Innovator\Client\Solutions\PLM\xml.zc
\Innovator\Client\Modules\aras.innovator.core.EffectivityServices\xml.zc
\Innovator\Client\Modules\aras.innovator.DomainAccessControl\xml.zc
\Innovator\Client\Modules\aras.innovator.ExtendedClassification\xml.zc
\Innovator\Client\Modules\aras.innovator.MacPolicy\xml.zc
\Innovator\Client\Modules\aras.innovator.MassPromote\xml.zc
\Innovator\Client\Modules\aras.innovator.CMF\xml.zc
\Innovator\Client\Modules\aras.innovator.CUI\xml.zc
\Innovator\Client\Modules\aras.innovator.ES\xml.zc
\Innovator\Client\Modules\aras.innovator.Izenda\xml.zc
\Innovator\Client\Modules\aras.innovator.QueryBuilder\xml.zc
\Innovator\Client\Modules\aras.innovator.SSVC\xml.zc
\Innovator\Client\Modules\aras.innovator.TDF\xml.zc
\Innovator\Client\Modules\aras.innovator.TreeGridView\xml.zc
\Innovator\Client\Modules\aras.innovator.Viewers\xml.zc
\Innovator\Client\scripts\CodeEditor\xml.zc
\Innovator\Client\scripts\ReportTool\xml.zc
\Innovator\Client\scripts\SitePreference\xml.zc
系统可能会提示您覆盖多个文件,这是进行更改以正确查看简体中文标签所必需的。
第 3 步 - 运行批处理 scipts。
- 001-IMPORT-I18N-CHANGES.BAT:此文件将运行简体中文语言项、zh-cn 区域设置项的解决方案导入以及处理 <姓氏> <个人名> 命名格式的几种方法。
- 003-RESTART-WEB-SERVICE.BAT:这将在本地计算机上重新启动万维网发布服务(应该与作为创新者服务器)
- 004-IMPORT-CHINESE_SIMP.BAT:这将加载简体中文翻译。
3.人工翻译
为什么是人工翻译?因为你打开Aras Innovator后会发现还是英语。这是什么原因呢?我们需要检查汉化文件:Action.xml,Activity Template Task.xml,Activity Template.xml..............会发现是这样的:
zc里面全都是空的,每个文件都不例外。
唉,谁叫我们是用新版本的先行者(如果你们是用的老版本可以去网上查查资料,说不定有别人汉化好的),那只能手动汉化了,一个个敲上去是不可能的,那就通过代码来处理吧。
很久没用java了,所以这段处理我决定用java来写,当然你们可以用c/c++,c#,python...都是可以的。
这段代码每次只能处理一个文件,你们可以进行优化,逻辑改成遍历文件夹下的文件就好了。我这么处理是因为我用的是有道翻译,感觉不是那么准确,只需要汉化特定的文件就好了。不标准的地方就通过自己手动改咯。
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class XMLParserExample {
public static void main(String[] args) {
try {
Map<String, String> dict = new HashMap<>();
// 创建一个 DocumentBuilder 对象来解析 XML
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析 XML 文件
Document doc = builder.parse(new File("你的xml文件"));
// 获取根元素
Element root = doc.getDocumentElement();
// 获取所有 <Item> 标签
NodeList itemList = root.getElementsByTagName("Item");
// 遍历每个 <Item> 标签
for (int i = 0; i < itemList.getLength(); i++) {
Element item = (Element) itemList.item(i);
// 获取 <property> 标签
NodeList propertyList = item.getElementsByTagName("property");
// 遍历每个 <property> 标签
for (int j = 0; j < propertyList.getLength(); j++) {
Element property = (Element) propertyList.item(j);
// 获取 en 属性值
String enValue = property.getAttribute("en");
// 翻译,自己可以做优化。TranslateDemo.translate是我临时封装的一个工具方法,用的是有道的api,你们可以用Google或者Microsoft的
String translate = "";
if (dict.containsKey(enValue)){
translate = dict.get(enValue);
}else {
Thread.sleep(1000);
translate = TranslateDemo.translate(enValue);
dict.put(enValue, translate);
}
System.out.println(translate);
// 将 en 值写入 zc 属性
property.setAttribute("zc", translate);
}
}
// 保存更改后的文档到文件
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("output.xml"));
transformer.transform(source, result);
System.out.println("XML 文件解析并修改成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果需要汉化文件可以联系我的邮箱。
不过嘛,授人以鱼不如授人以渔,上面已经教过你们汉化步骤了,你们也可以自己操作。
吐槽:不明白为什么有人连这个汉化教程都要收费,难道是因为资料少就坑新人嘛?当然,我没去付费买他的教程,也不知道他是怎么汉化的,所以就吐槽一下咯,如果这篇文章对大家有用的话,希望能点个赞...
本文作者:小赞(clozer)
邮箱:clozer@foxmail.com
未经授权严禁转载及使用