• R/O
  • SSH
  • HTTPS

提交

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

OmegaT のメニューバーにフォルダーツリー参照用のメニューを追加します。


Commit MetaInfo

修订版45 (tree)
时间2014-04-25 16:24:00
作者yu-tang

Log Message

プレビュー:MS-Word のインストール判定を改善
.docx のクラス名が "Word.Document." で始まっていなくても、とりあえずはじかないようにした。

更改概述

差异

--- trunk/src/jp/sourceforge/users/yutang/omegat/plugin/foldermenu/filepreview/WordPreview.java (revision 44)
+++ trunk/src/jp/sourceforge/users/yutang/omegat/plugin/foldermenu/filepreview/WordPreview.java (revision 45)
@@ -108,20 +108,24 @@
108108 //<-(\r\n)
109109 // -----------------------------------------------------
110110 // 末尾に空行が入るので注意。
111- if (s.toLowerCase().startsWith(".docx=word.document.")) {
112- String classString = s.substring(".docx=".length()).replaceAll("\\r\\n", "");
113- if (RET_OK == command.exec("reg", "query", "HKCR\\" + classString + "\\shell\\open\\command", "/ve")) {
114- s = command.getStdout();
115- // s's data example)
116- // -----------------------------------------------------
117- //<-(\r\n)
118- //HKEY_CLASSES_ROOT\Word.document.12\shell\open\command
119- //(既定) REG_SZ "C:\PROGRA~2\MICROS~4\OFFICE11\WINWORD.EXE" /n /dde
120- //<-(\r\n)
121- // -----------------------------------------------------
122- // 前後に空行が入るので注意。
123- return s.toUpperCase().indexOf("\\WINWORD.EXE") > -1;
124- }
111+ // 他のパターンとして、AOO/LO 環境で以下のようなケースもあり。
112+ //.docx=OpenOffice.Docx
113+ //.docx=LibreOffice.WriterDocument.1
114+ // 微妙なのは、クラス名称が変わっているからといって、最終的に
115+ // MS-Word に関連付けられていないとは言い切れないので、結局
116+ // shell\open の値は確認する必要がある。
117+ String classString = s.substring(".docx=".length()).replaceAll("\\r\\n", "");
118+ if (RET_OK == command.exec("reg", "query", "HKCR\\" + classString + "\\shell\\open\\command", "/ve")) {
119+ s = command.getStdout();
120+ // s's data example)
121+ // -----------------------------------------------------
122+ //<-(\r\n)
123+ //HKEY_CLASSES_ROOT\Word.document.12\shell\open\command
124+ //(既定) REG_SZ "C:\PROGRA~2\MICROS~4\OFFICE11\WINWORD.EXE" /n /dde
125+ //<-(\r\n)
126+ // -----------------------------------------------------
127+ // 前後に空行が入るので注意。
128+ return s.toUpperCase().indexOf("\\WINWORD.EXE") > -1;
125129 }
126130 }
127131 } catch (Exception ex) {