Aras Innovator汉化(2023 Release 最新版本)

1,110 阅读4分钟

序言:最近在使用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。

  1. 001-IMPORT-I18N-CHANGES.BAT:此文件将运行简体中文语言项、zh-cn 区域设置项的解决方案导入以及处理 <姓氏> <个人名> 命名格式的几种方法。
  2. 003-RESTART-WEB-SERVICE.BAT:这将在本地计算机上重新启动万维网发布服务(应该与作为创新者服务器)
  3. 004-IMPORT-CHINESE_SIMP.BAT:这将加载简体中文翻译。

3.人工翻译

为什么是人工翻译?因为你打开Aras Innovator后会发现还是英语。这是什么原因呢?我们需要检查汉化文件:Action.xml,Activity Template Task.xml,Activity Template.xml..............会发现是这样的:image.png 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

未经授权严禁转载及使用