use of com.ximpleware.XPathEvalException in project translationstudio8 by heartsome.
the class XLFHandler method saveAsHtml.
/**
* 存为HTML
* @param fileName
* @param out
* @param elementName
* @return ;
*/
public boolean saveAsHtml(String fileName, String out, String elementName) {
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(new FileOutputStream(out));
//$NON-NLS-1$
bos.write("<html>\n".getBytes());
//$NON-NLS-1$
bos.write(" <head>\n".getBytes());
//$NON-NLS-1$
bos.write(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n".getBytes());
//$NON-NLS-1$ //$NON-NLS-2$
bos.write((" <title>" + fileName + "</title>\n").getBytes());
//$NON-NLS-1$
bos.write(" </head>\n".getBytes());
//$NON-NLS-1$
bos.write("<body>\n".getBytes());
VTDNav vn = vnMap.get(fileName);
AutoPilot ap = new AutoPilot(vn);
VTDUtils vu = new VTDUtils(vn);
ap.selectXPath("/xliff/file");
while (ap.evalXPath() != -1) {
AutoPilot subAp = new AutoPilot(vn);
subAp.selectXPath("descendant::trans-unit[source/text()!='']");
while (subAp.evalXPath() != -1) {
if ("target".equals(elementName)) {
String approvedValue = vu.getValue("./@approved");
approvedValue = approvedValue == null ? "no" : approvedValue;
if (!"yes".equalsIgnoreCase(approvedValue)) {
// 未批准
continue;
}
}
String value = vu.getValue("./" + elementName + "/text()");
if (value != null) {
bos.write(("<p>" + value + "</p>\n").getBytes());
}
}
}
bos.write("</body>\n</html>\n".getBytes());
return true;
} catch (FileNotFoundException e) {
LOGGER.error("", e);
e.printStackTrace();
return false;
} catch (IOException e) {
LOGGER.error("", e);
e.printStackTrace();
return false;
} catch (NavException e) {
LOGGER.error("", e);
e.printStackTrace();
return false;
} catch (XPathParseException e) {
LOGGER.error("", e);
e.printStackTrace();
return false;
} catch (XPathEvalException e) {
LOGGER.error("", e);
e.printStackTrace();
return false;
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
LOGGER.error("", e);
e.printStackTrace();
}
}
}
}
use of com.ximpleware.XPathEvalException in project translationstudio8 by heartsome.
the class XLFHandler method getCaseTgtContent.
/** burke 为修改锁定行目标文本不能修改其大小写添加 getCaseTgtContent方法 */
/**
* 获取要改变大小写的target中的文本内容
* @param rowId
* @return
*/
public String getCaseTgtContent(String rowId) {
AutoPilot ap = new AutoPilot();
VTDNav vn = null;
vn = getVTDNavByRowId(rowId);
ap.bind(vn);
try {
String tuXPath = RowIdUtil.parseRowIdToXPath(rowId);
ap.selectXPath(tuXPath);
if (ap.evalXPath() != -1) {
int attrIndex = vn.getAttrVal("translate");
if (attrIndex != -1) {
String attrValue = vn.toString(attrIndex);
if (attrValue.equals("no")) {
return "no";
}
}
}
ap.resetXPath();
} catch (XPathEvalException e) {
LOGGER.error("", e);
e.printStackTrace();
} catch (NavException e) {
LOGGER.error("", e);
e.printStackTrace();
} catch (XPathParseException e) {
LOGGER.error("", e);
e.printStackTrace();
}
String tgt = getTgtContent(rowId);
return tgt;
}
use of com.ximpleware.XPathEvalException in project translationstudio8 by heartsome.
the class ProjectConfiger method getCurrentProjectConfig.
/**
* 获取项目配置信息
* @return 指定项目配置文件中的所有信息;
*/
public ProjectInfoBean getCurrentProjectConfig() {
ProjectInfoBean bean = new ProjectInfoBean();
vu.getVTDNav().push();
AutoPilot hsAp = new AutoPilot(vu.getVTDNav());
try {
hsAp.selectXPath("/projectDescription/hs");
if (hsAp.evalXPath() != -1) {
bean.setProjectName(getProjectName());
bean.setMapField(getFieldMap());
bean.setMapAttr(getAttrMap());
bean.setSourceLang(getSourceLanguage());
bean.setTargetLang(getTargetlanguages());
bean.setTmDb(getAllTmDbs());
bean.setTbDb(getTermBaseDbs(false));
}
} catch (XPathParseException e) {
logger.error("", e);
} catch (XPathEvalException e) {
logger.error("", e);
} catch (NavException e) {
logger.error("", e);
}
vu.getVTDNav().pop();
return bean;
}
use of com.ximpleware.XPathEvalException in project translationstudio8 by heartsome.
the class WebSearchPreferencStore method getConfig.
/**
* @param vu
* @param isDefault
* getCustomContent===false:返回所有内容 getCustomContent===true :返回非默认的内容
* @return ;
*/
private List<SearchEntry> getConfig(VTDUtils vu, boolean getCustomContent) {
VTDNav vn = vu.getVTDNav();
AutoPilot mainAp = new AutoPilot(vn);
AutoPilot uesedAp = new AutoPilot(vn);
AutoPilot nameAp = new AutoPilot(vn);
AutoPilot urlAp = new AutoPilot(vn);
List<SearchEntry> cache = new ArrayList<SearchEntry>();
try {
mainAp.selectXPath("/WebSearchInfo/Providers/ProviderInfo");
uesedAp.selectXPath("./Used");
nameAp.selectXPath("./Name");
urlAp.selectXPath("./Url");
SearchEntry temp = null;
while (mainAp.evalXPath() != -1) {
int attrVal = vn.getAttrVal("isDefault");
if (getCustomContent) {
if (-1 != attrVal) {
continue;
}
}
temp = new SearchEntry();
if (-1 != attrVal) {
temp.setDefault(true);
}
int idIndex = vn.getAttrVal("id");
if (-1 != idIndex) {
temp.setId(vn.toString(idIndex));
}
vn.push();
uesedAp.resetXPath();
if (uesedAp.evalXPath() != -1) {
int textIndex = vn.getText();
if (-1 != textIndex && null != temp) {
temp.setChecked("true".equalsIgnoreCase(vn.toString(textIndex)) ? true : false);
}
} else {
temp = null;
}
vn.pop();
vn.push();
nameAp.resetXPath();
if (nameAp.evalXPath() != -1) {
int textIndex = vn.getText();
if (-1 != textIndex && null != temp) {
temp.setSearchName(TextUtil.resetSpecialString(vn.toString(textIndex)));
}
} else {
temp = null;
}
vn.pop();
vn.push();
urlAp.resetXPath();
if (urlAp.evalXPath() != -1) {
int textIndex = vn.getText();
if (-1 != textIndex && null != temp) {
temp.setSearchUrl((TextUtil.resetSpecialString(vn.toString(textIndex))));
}
} else {
temp = null;
}
vn.pop();
if (null != temp) {
cache.add(temp);
}
}
} catch (XPathEvalException e) {
e.printStackTrace();
logger.error("", e);
} catch (NavException e) {
e.printStackTrace();
logger.error("", e);
} catch (XPathParseException e) {
e.printStackTrace();
logger.error("", e);
}
return cache;
}
use of com.ximpleware.XPathEvalException in project translationstudio8 by heartsome.
the class PreferenceUtil method initProductEdition.
public static void initProductEdition() {
System.getProperties().put("TSVersion", "89");
Location configArea = Platform.getInstallLocation();
if (configArea == null) {
System.getProperties().put("TSEdition", "");
System.getProperties().put("TSVersion", "");
return;
}
URL location = null;
try {
VTDGen vg = new VTDGen();
AutoPilot ap = new AutoPilot();
location = new URL(configArea.getURL().toExternalForm() + "features");
String featureFolderName = location.getFile();
File featureFolder = new File(featureFolderName);
// 遍历 features 目录
if (featureFolder.isDirectory()) {
boolean isU = false;
boolean isF = false;
boolean isP = false;
boolean isL = false;
String strUVersion = null;
String strFVersion = null;
String strPVersion = null;
String strLVersion = null;
for (File f : featureFolder.listFiles()) {
String name = f.getName();
if (name.startsWith("net.heartsome.cat.ts.edition_")) {
if (vg.parseFile(f.getAbsolutePath() + File.separator + "feature.xml", true)) {
VTDNav vn = vg.getNav();
ap.bind(vn);
ap.selectXPath("/feature");
if (ap.evalXPath() != -1) {
int idIndex = vn.getAttrVal("id");
int versionIndex = vn.getAttrVal("version");
if (idIndex == -1 || versionIndex == -1) {
System.getProperties().put("TSEdition", "");
return;
}
String id = vn.toRawString(idIndex);
String version = vn.toRawString(versionIndex);
if (name.equals(id + "_" + version)) {
// 由于 feature 可以包含,因此要遍历所有以 net.heartsome.cat.ts.edition_ 开头的目录,找到版本最高的
if (id.equals("net.heartsome.cat.ts.edition_ultimate.feature")) {
isU = true;
strUVersion = version;
break;
} else if (id.equals("net.heartsome.cat.ts.edition_professional.feature")) {
isF = true;
strFVersion = version;
continue;
} else if (id.equals("net.heartsome.cat.ts.edition_personal.feature")) {
isP = true;
strPVersion = version;
continue;
} else if (id.equals("net.heartsome.cat.ts.edition_lite.feature")) {
isL = true;
strLVersion = version;
continue;
}
} else {
System.getProperties().put("TSEdition", "");
return;
}
} else {
System.getProperties().put("TSEdition", "");
}
} else {
System.getProperties().put("TSEdition", "");
}
}
}
if (isU) {
System.getProperties().put("TSEdition", "U");
System.getProperties().put("TSVersionDate", strUVersion);
} else if (isF) {
System.getProperties().put("TSEdition", "F");
System.getProperties().put("TSVersionDate", strFVersion);
} else if (isP) {
System.getProperties().put("TSEdition", "P");
System.getProperties().put("TSVersionDate", strPVersion);
} else if (isL) {
System.getProperties().put("TSEdition", "L");
System.getProperties().put("TSVersionDate", strLVersion);
} else {
System.getProperties().put("TSEdition", "");
System.getProperties().put("TSVersionDate", "");
}
} else {
System.getProperties().put("TSEdition", "");
}
location = new URL(configArea.getURL().toExternalForm() + "plugins");
String pluginsFolderName = location.getFile();
File pluginsFolder = new File(pluginsFolderName);
// 遍历 plugins 目录
if (pluginsFolder.isDirectory()) {
List<String> lstPluginName = new ArrayList<String>();
for (File f : pluginsFolder.listFiles()) {
String name = f.getName();
if (name.endsWith(".jar") && (name.startsWith("net.heartsome.cat.ts.ui.plugin_") || name.startsWith("net.heartsome.cat.ts.ui.advanced_") || name.startsWith("net.heartsome.cat.ts.fuzzyTranslation_") || name.startsWith("net.heartsome.cat.converter.ui_") || name.startsWith("net.heartsome.cat.ts.ui.docx_") || name.startsWith("net.heartsome.cat.ts.ui.qa_") || name.startsWith("net.heartsome.cat.database.ui_") || name.startsWith("net.heartsome.cat.database.hsql_") || name.startsWith("net.heartsome.cat.database.oracle_") || name.startsWith("net.heartsome.cat.ts.importproject_") || name.startsWith("net.heartsome.cat.ts.exportproject_") || name.startsWith("net.heartsome.cat.ts.handlexlf_") || name.startsWith("net.heartsome.cat.ts.lockrepeat_") || name.startsWith("net.heartsome.cat.ts.jumpsegment_"))) {
String pluginName = name.substring(0, name.indexOf("_"));
// 更新后原来的插件会保留在 plugins 目录下,应此 lstPluginName 会有重复添加 pluginName 的情况,所以在此处添加判断。
if (!lstPluginName.contains(pluginName)) {
lstPluginName.add(pluginName);
}
}
}
String edition = System.getProperty("TSEdition");
if (lstPluginName.size() == 14 && lstPluginName.indexOf("net.heartsome.cat.ts.ui.plugin") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.ui.advanced") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.fuzzyTranslation") != -1 && lstPluginName.indexOf("net.heartsome.cat.converter.ui") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.ui.docx") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.ui.qa") != -1 && lstPluginName.indexOf("net.heartsome.cat.database.ui") != -1 && lstPluginName.indexOf("net.heartsome.cat.database.hsql") != -1 && lstPluginName.indexOf("net.heartsome.cat.database.oracle") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.importproject") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.exportproject") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.handlexlf") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.lockrepeat") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.jumpsegment") != -1) {
if (!(edition != null && (edition.equals("U") || edition.equals("F")))) {
System.getProperties().put("TSEdition", "");
}
} else if (lstPluginName.size() == 6 && lstPluginName.indexOf("net.heartsome.cat.converter.ui") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.ui.qa") != -1 && lstPluginName.indexOf("net.heartsome.cat.database.ui") != -1 && lstPluginName.indexOf("net.heartsome.cat.database.hsql") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.importproject") != -1 && lstPluginName.indexOf("net.heartsome.cat.ts.jumpsegment") != -1) {
if (!(edition != null && edition.equals("P"))) {
System.getProperties().put("TSEdition", "");
}
} else if (lstPluginName.size() == 0) {
if (!(edition != null && edition.equals("L"))) {
System.getProperties().put("TSEdition", "");
}
} else {
System.getProperties().put("TSEdition", "");
}
} else {
System.getProperties().put("TSEdition", "");
}
// if (System.getProperty("TSEdition").equals("")) {
// return;
// }
// String product = Platform.getProduct().getName();
// if (Util.isMac()) {
// location = new URL(configArea.getURL().toExternalForm() + product + ".app" + File.separator
// + "Contents" + File.separator + "MacOS" + File.separator + product + ".ini");
// } else {
// location = new URL(configArea.getURL().toExternalForm() + product + ".ini");
// }
// String fileName = location.getFile();
// BufferedReader in = new BufferedReader(new FileReader(fileName));
// String line = null;
// String tsVersion = null;
// String tsSerial = null;
// while ((line = in.readLine()) != null) {
// if (line.startsWith("TSProductVersion")) {
// tsVersion = line.substring(line.indexOf("=") + 1);
// }
// if (line.startsWith("TSProductSerialNumber")) {
// tsSerial = line.substring(line.indexOf("=") + 1);
// }
// }
// if (tsVersion != null && tsSerial != null && tsVersion.length() == 16 && tsSerial.length() == 16) {
// String edition = System.getProperty("TSEdition");
// int[] arrValue = new int[16];
// for (int i = 0; i < tsVersion.length(); i++) {
// arrValue[i] = Integer.parseInt(Character.toString(tsVersion.charAt(i)));
// }
// int[] arrSerialNum = new int[16];
// for (int i = 0; i < tsSerial.length(); i++) {
// arrSerialNum[i] = Integer.parseInt(Character.toString(tsSerial.charAt(i)));
// }
// String strFullChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// boolean isU = ((arrValue[1] + arrValue[8]) * (arrValue[7] - arrValue[14])) == (strFullChar.indexOf("U") +
// 1);// 验证旗舰版的规则
// boolean isF = arrValue[4] != 0
// && (arrValue[2] - arrValue[9] + arrValue[15]) / arrValue[4] == (strFullChar.indexOf("F") + 1);
// boolean isP = arrValue[5] * (arrValue[3] + arrValue[10] + arrValue[12]) == (strFullChar.indexOf("P") +
// 1);
// boolean isL = (arrValue[0] + arrValue[6] + arrValue[11] + arrValue[13]) == (strFullChar.indexOf("L") +
// 1);
//
// boolean isUVersion = arrSerialNum[12] + arrSerialNum[13] == 8 && arrSerialNum[2] + arrSerialNum[3] ==
// 9;// 验证旗舰版是否满足
// boolean isFVersion = arrSerialNum[6] * arrSerialNum[15] == 8 && arrSerialNum[2] * arrSerialNum[5] == 9;//
// 验证专业版是否满足
// boolean isPVersion = arrSerialNum[3] * arrSerialNum[4] == 8 && arrSerialNum[0] * arrSerialNum[13] == 9;//
// 验证个人版是否满足
// boolean isLVersion = arrSerialNum[0] * arrSerialNum[3] == 8 && arrSerialNum[1] == 9;// 验证精简版是否满足
// if (edition.equals("U")) {
// // 验证 TSEdition
// if (!isU) {
// System.getProperties().put("TSEdition", "");
// } else {
// if (isF) {
// System.getProperties().put("TSEdition", "");
// } else if (isP) {
// System.getProperties().put("TSEdition", "");
// } else if (isL) {
// System.getProperties().put("TSEdition", "");
// }
// }
// // 验证序列号
// if (isUVersion) {
// if (!(isFVersion) && !(isPVersion) && !(isLVersion)) {
// System.getProperties().put("TSVersion", "89");
// } else {
// System.getProperties().put("TSVersion", "");
// }
// } else {
// System.getProperties().put("TSVersion", "");
// }
// } else if (edition.equals("F")) {
// if (!isF) {
// System.getProperties().put("TSEdition", "");
// } else {
// if (isU) {
// System.getProperties().put("TSEdition", "");
// } else if (isP) {
// System.getProperties().put("TSEdition", "");
// } else if (isL) {
// System.getProperties().put("TSEdition", "");
// }
// }
// if (isFVersion) {
// if (!(isUVersion) && !(isPVersion) && !(isLVersion)) {
// System.getProperties().put("TSVersion", "89");
// } else {
// System.getProperties().put("TSVersion", "");
// }
// } else {
// System.getProperties().put("TSVersion", "");
// }
// } else if (edition.equals("P")) {
// if (!isP) {
// System.getProperties().put("TSEdition", "");
// } else {
// if (isU) {
// System.getProperties().put("TSEdition", "");
// } else if (isF) {
// System.getProperties().put("TSEdition", "");
// } else if (isL) {
// System.getProperties().put("TSEdition", "");
// }
// }
// if (isPVersion) {
// if (!(isUVersion) && !(isFVersion) && !(isLVersion)) {
// System.getProperties().put("TSVersion", "89");
// } else {
// System.getProperties().put("TSVersion", "");
// }
// } else {
// System.getProperties().put("TSVersion", "");
// }
// } else if (edition.equals("L")) {
// if (!isL) {
// System.getProperties().put("TSEdition", "");
// } else {
// if (isU) {
// System.getProperties().put("TSEdition", "");
// } else if (isF) {
// System.getProperties().put("TSEdition", "");
// } else if (isP) {
// System.getProperties().put("TSEdition", "");
// }
// }
// if (isLVersion) {
// if (!(isUVersion) && !(isFVersion) && !(isPVersion)) {
// System.getProperties().put("TSVersion", "89");
// } else {
// System.getProperties().put("TSVersion", "");
// }
// } else {
// System.getProperties().put("TSVersion", "");
// }
// }
// } else {
// System.getProperties().put("TSEdition", "");
// System.getProperties().put("TSVersion", "");
// }
} catch (MalformedURLException e) {
e.printStackTrace();
LOGGER.error(Messages.getString("preference.PreferenceUtil.logger1"), e);
} catch (XPathEvalException e) {
e.printStackTrace();
LOGGER.error(Messages.getString("preference.PreferenceUtil.logger1"), e);
} catch (NavException e) {
e.printStackTrace();
LOGGER.error(Messages.getString("preference.PreferenceUtil.logger1"), e);
} catch (XPathParseException e) {
e.printStackTrace();
LOGGER.error(Messages.getString("preference.PreferenceUtil.logger1"), e);
}
}
Aggregations