• R/O
  • R/W (SSH)
  • R/W (HTTPS)

mergedoc: Commit


Commit MetaInfo

Revision1249 (tree)
Time2017-01-11 00:29:41
Authorcypher256

Log Message

(empty log message)

Change Summary

Incremental Difference

--- trunk/Pleiades/srctest/jp/sourceforge/mergedoc/pleiades/aspect/resource/RuntimeTranslationDictionaryTest.java (revision 1248)
+++ trunk/Pleiades/srctest/jp/sourceforge/mergedoc/pleiades/aspect/resource/RuntimeTranslationDictionaryTest.java (revision 1249)
@@ -52,6 +52,177 @@
5252
5353 public void testLookup() {
5454
55+ // [#14691] 文末の空白が除去される問題対応確認
56+ assertLookup("Sets the language module the spell checking engine should use when you enter a log message. ",
57+ "ログ・メッセージを入力する時にスペル・チェック・エンジンが使用すべき言語モジュールを設定します。 ");
58+ // [#14691] 文末のセミコロンが除去される問題対応確認
59+ assertLookup("assertion failed;", "アサーションに失敗しました。");
60+ // [#14691] 謎の空白
61+ assertLookup("{n,} - Greedy match >= n times", "{n,} - 正規表現による一致 n 回以上");
62+
63+ // [#14699] 末尾かっこ
64+ assertLookup(
65+ "Type named ''{0}'' is imported (single-type-import) in ''{1}'' (a compilation unit must not import and declare a type with the same name)",
66+ "''{0}'' という名前の型は ''{1}'' 内にインポート (単一の型のインポート) されています (コンパイル単位は同じ名前で型をインポートおよび宣言できません)");
67+ // [#14699] (s)
68+ assertLookup("Archive file ''{0}'' is referenced by the following project(s). Do you still want to delete it?",
69+ "アーカイブ・ファイル ''{0}'' は次のプロジェクトによって参照されます。削除しますか?");
70+
71+ // [#14700] 囲み文字
72+ assertLookup("\"Malformed file transmission received\"", "\"誤った形式のファイル伝送が受信されました\"");
73+ // [#14700] (s)
74+ assertLookup(
75+ "Problems tagging the resources. {0} project(s) successfully tagged and {1} project(s) with errors.",
76+ "リソースのタグ付けで問題が発生しました。{0} プロジェクトが正常にタグ付けされ、{1} プロジェクトにエラーがありました。");
77+ assertLookup("You have chosen to ignore {0} resources. Select what to add to the .cvsignore file(s).",
78+ "{0} 個のリソースを無視するよう選択しました。.cvsignore ファイルに追加するものを選択してください。");
79+
80+ // [#14796] 分割後の {1}.
81+ assertLookupFalse("{0}, Function: {1}.");
82+
83+ // & を含むパラメーター付き URL は翻訳不可
84+ assertLookupFalse("/aaa/bbb?xxx=1&yyy=2");
85+
86+ // [#14799]
87+ assertLookup("{0} does not exist.\nAre you sure you want to create it?", "{0} は存在しません。\nこれを作成しますか?");
88+
89+ // [#14801]
90+ assertLookup("Error copying file {0}: {1}", "ファイル {0} のコピー・エラー: {1}");
91+ assertLookup("Unable to initialize source location - directory does not exist: {0}",
92+ "ソース・ロケーションを初期化できません。ディレクトリー {0} がありません");
93+
94+ // [#14802]
95+ assertLookup("The selected enterprise bean cannot be deleted because it is involved in\n"
96+ + "relationships with other enterprise beans. You must first delete these\n"
97+ + "relationships before deleting the bean.",
98+ "別のエンタープライズ Bean との関係が含まれるため、\n" + "選択したエンタープライズ Bean は削除できません。\n" + "Bean を削除する前に、まず関係を削除する必要があります。");
99+
100+ // [#14837]
101+ assertLookupFalse("The resulting string is too long to fit in a DOMString: ''{0}''.");
102+
103+ // [#14840]
104+ assertLookup("Minimum VM Size (kB)", "最小 VM サイズ (kB)");
105+ assertLookupFalse("kB.");
106+
107+ // [#14841]
108+ assertLookup("&Enable annotation roll-over (on new editors)", "(新しいエディター上で) 注釈のロールオーバーを使用可能にする(&E)");
109+ assertLookup("Unable to locate JAR/zip in file system as specified by the driver definition: {0}.",
110+ "ドライバー定義で指定されたファイル・システム内に JAR/zip が見つかりません: {0}。");
111+
112+ // [#14842]
113+ assertLookup("'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?",
114+ "'?' をここに書くことはできません。もしかして '(?:' か '(?=' か '(?!' か '(?<' か '(?#' か '(?>' ですか?");
115+
116+ // [#14843]
117+ assertLookup("Invalid timeout! Timeout should be positive integer or -1 to disable.",
118+ "タイムアウト値が無効です! タイムアウト値は、正整数または -1 (使用不可にする場合) でなければなりません。");
119+
120+ // [#14844]
121+ assertLookup("none (no sides, default value)", "none (線なし、デフォルト値)");
122+ assertLookup("groups (between row groups)", "groups (行グループ間)");
123+
124+ // [#14845]
125+ assertLookup(
126+ "It is strongly recommended you restart {0} for the changes to take effect. For some add-ons, it may be possible to apply the changes you have made without restarting. Would you like to restart now?",
127+ "変更を反映させるために {0} の再始動を強くお勧めします。いくつかのアドオンでは、再始動しなくても変更が反映されている場合もあります。すぐに再始動しますか?");
128+
129+ // [#14862]
130+ assertLookup("Bundle symbolic name contains illegal characters. Legal characters are A-Z a-z 0-9 . _ -",
131+ "バンドルのシンボル名に正しくない文字が含まれています。正しい文字は A-Z a-z 0-9 . _ - です");
132+
133+ // [#14865]
134+ assertLookup("Unable to restore source location - class not found: {0}", "ソース・ロケーションを復元できません。{0} クラスが見つかりません");
135+
136+ // [#14866]
137+ assertLookup("Error: File not found.", "エラー: ファイルが見つかりません。");
138+
139+ // [#14867]
140+ assertLookup("Update the related faces config file. Are you sure?", "関連する faces 構成ファイルを更新します。よろしいですか?");
141+
142+ // [#14869]
143+ assertLookup("<details unavailable - not supported by VM>", "<詳細は使用不可 - VM によってサポートされていません>");
144+
145+ // [#14870]
146+ assertLookup(
147+ "Inclusion or exclusion patterns are disabled in project {1}, cannot selectively include or exclude from entry: ''{0}''",
148+ "包含または除外パターンはプロジェクト {1} 内で使用不可です。エントリー ''{0}'' から選択的に包含または除外できません");
149+
150+ // [#14883]
151+ assertLookup("Profile name is empty.", "プロファイル名が空です。");
152+
153+ // [#14887]
154+ assertLookup("An error has occurred: {0}. See error log for more details. Do you want to exit?",
155+ "エラーが発生しました: {0}。詳細については、エラー・ログを参照してください。終了しますか?");
156+
157+ // [#14888]
158+ assertLookup(
159+ "Select a set of UDDI businesses and click <strong>Add to Favorites</strong> to add these to the list of favorites. Click <strong>Add to UDDI Page</strong> to add these to the UDDI Page. Click <strong>Refresh</strong> to refresh the selections.",
160+ "UDDI ビジネスのセットを選択し、「<strong>お気に入りに追加</strong>」をクリックしてこれらのビジネスをお気に入りのリストに追加します。「<strong>UDDI ページに追加</strong>」をクリックしてこれらのビジネスを UDDI ページに追加します。「<strong>リフレッシュ</strong>」をクリックして選択をリフレッシュします。");
161+
162+ // [#14889]
163+ assertLookup("-- Java Generation :: Generating...", "-- Java の生成 :: 生成中...");
164+
165+ // [#14890]
166+ assertLookup(
167+ "Inclusion or exclusion patterns are disabled in project {1}, cannot selectively include or exclude from entry: ''{0}''",
168+ "包含または除外パターンはプロジェクト {1} 内で使用不可です。エントリー ''{0}'' から選択的に包含または除外できません");
169+
170+ // [#14891]
171+ assertLookup("CHKJ2017E: This interface must extend javax.ejb.EJBHome (EJB 2.0: 6.3, 7.10.6).",
172+ "CHKJ2017E: このインターフェースは javax.ejb.EJBHome を拡張しなければなりません (EJB 2.0: 6.3、7.10.6)。");
173+
174+ // [#14901]
175+ assertLookup("Warning: Invalid value for the initParam xpoweredBy. Will use the default value of \"false\"",
176+ "警告: Invalid value for the initParam xpoweredBy. デフォルト値 \"false\" を使用します");
177+ assertLookup("Problems encountered during code generation. Select detail entries for more information.",
178+ "コード生成中に問題が発生しました。Select detail entries for more information.");
179+ assertLookup(
180+ "No custom build file found in {0}. If you want to generate a new build file, temporarily disable the ''custom'' property. ",
181+ "{0} でカスタム・ビルド・ファイルが検出されませんでした。If you want to generate a new build file, temporarily disable the ''custom'' property. ");
182+
183+ // [#14902]
184+ assertLookup("Missing directory entry: {0}.", "欠落しているディレクトリー・エントリー: {0}.");
185+ assertLookup("Missing directory entry: {1}.", "欠落しているディレクトリー・エントリー: {1}.");
186+
187+ // [#14944]
188+ assertLookup("IO exception.", "IO 例外。");
189+ assertLookup("IO exception", "IO 例外");
190+
191+ // [#14946]
192+ assertLookup(
193+ "When selecting {0} compliance, make sure to have a compatible JRE installed and activated (Currently {1}). "
194+ + "Configure the <a href=\"1\" >Installed JREs</a> or change the JRE on the <a href=\"2\" >Java build path</a>.",
195+
196+ "{0} 準拠を選択する場合は、互換性がある JRE がインストール済みでアクティブにされていることを確認してください (現在は {1})。"
197+ + "<a href=\"1\" >インストール済み JRE</a> を構成するか、<a href=\"2\" >Java ビルド・パス</a> にある JRE を変更してください。");
198+
199+ // [#14947]
200+ assertLookup("Package: Generate Javadoc for all but private classes and members.",
201+ "Package: private のクラスおよびメンバー以外について Javadoc を生成します。");
202+ assertLookup("Package: Generate Jsdoc for all but private classes and members.",
203+ "Package: private のクラスおよびメンバー以外について Jsdoc を生成します。");
204+
205+ // [#14954]
206+ assertLookupFalse("visibility scope where Javadoc comments are not checked.");
207+ assertLookupFalse("A type.");
208+
209+ // [#14955]
210+ assertLookup("n/a", "なし");
211+ assertLookup("N/A", "なし");
212+
213+ // [#15186]
214+ assertLookupFalse("C&VS", "CVS(&V)");
215+
216+ // [#15193]
217+ assertLookupFalse("Policy on how to pad parentheses. nospace = do not pad (e.g. method(a, b)). space = ensure padding (e.g. method( a, b )).");
218+
219+ // [#15277]
220+ assertLookup(
221+ "Project Validator that validates the Spring Config files (e.g. class and property names, referenced beans etc.)",
222+ "Spring 構成ファイルを検証するプロジェクト・バリデーター (例 クラスとプロパティーの名前、 参照される bean など)");
223+
224+ // -----------------------------------------------------------------------------------------
225+
55226 // ノーマル
56227 assertLookup("Label", "ラベル");
57228
@@ -212,7 +383,7 @@
212383 assertLookup("Carriage Return ( \u00a4 )", "復帰");
213384 assertLookup("Line Feed ( ¶ )", "改行");
214385 assertLookup("Convert Line Delimiters to Windows (CRLF, \\r\\n, 0D0A, \u00A4¶)",
215- "行区切り文字を Windows に変換 (CRLF, \\r\\n, 0D0A, \u00A4¶)");
386+ "行区切り文字を Windows に変換 (CRLF, \\r\\n, 0D0A, \u00A4¶)");
216387
217388 //「参照 updates」になってしまう ⇒ 正規表現を修正
218389 assertLookup("Browsing for updates", "更新の参照");
@@ -228,187 +399,27 @@
228399
229400 // 正規表現取得は分割前 ⇒ 正規表現で記述する
230401 assertLookup(
231- "Displays the configuration model of root project 'a'. [incubating]",
232- "ルート・プロジェクト 'a' の構成モデルを表示します。");
402+ "Displays the configuration model of root project 'a'. [incubating]",
403+ "ルート・プロジェクト 'a' の構成モデルを表示します。");
233404 assertLookup(
234- "Displays the configuration model of root project 'a'.",
235- "ルート・プロジェクト 'a' の構成モデルを表示します。");
405+ "Displays the configuration model of root project 'a'.",
406+ "ルート・プロジェクト 'a' の構成モデルを表示します。");
236407 assertLookup(
237- "The file size (9666013 bytes) exceeds configured limit (2560000 bytes). Code insight features are not available.",
238- "ファイル・サイズ (9666013 バイト) が設定済みの制限 (2560000 バイト) を超えています。コード・インサイト機能は使用できません。");
408+ "The file size (9666013 bytes) exceeds configured limit (2560000 bytes). Code insight features are not available.",
409+ "ファイル・サイズ (9666013 バイト) が設定済みの制限 (2560000 バイト) を超えています。コード・インサイト機能は使用できません。");
239410
240411 // デフォルトは "拡張" とし、%IF% プレフィックスによるパッケージ条件で解決する
241412 assertLookup("Extensions", "拡張");
242413
243- // -----------------------------------------------------------------------------------------
244-
245- // [#14691] 文末の空白が除去される問題対応確認
246- assertLookup("Sets the language module the spell checking engine should use when you enter a log message. ",
247- "ログ・メッセージを入力する時にスペル・チェック・エンジンが使用すべき言語モジュールを設定します。 ");
248- // [#14691] 文末のセミコロンが除去される問題対応確認
249- assertLookup("assertion failed;", "アサーションに失敗しました。");
250- // [#14691] 謎の空白
251- assertLookup("{n,} - Greedy match >= n times", "{n,} - 正規表現による一致 n 回以上");
252-
253- // [#14699] 末尾かっこ
414+ // . が 。に誤変換されないか確認
254415 assertLookup(
255- "Type named ''{0}'' is imported (single-type-import) in ''{1}'' (a compilation unit must not import and declare a type with the same name)",
256- "''{0}'' という名前の型は ''{1}'' 内にインポート (単一の型のインポート) されています (コンパイル単位は同じ名前で型をインポートおよび宣言できません)");
257- // [#14699] (s)
258- assertLookup("Archive file ''{0}'' is referenced by the following project(s). Do you still want to delete it?",
259- "アーカイブ・ファイル ''{0}'' は次のプロジェクトによって参照されます。削除しますか?");
416+ "<html>\n<head>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\">\n</head>\n<body>\n\n\n <p>Using <span class=\"shortcut\">&shortcut:Generate;</span> (<span class=\"control\">Code | Generate</span>)\n in the editor, you can easily generate getter and setter methods for any fields of your class.</p>\n <p class=\"image\"><img src=\"images/alt_insert_in_editor.png\"></p>\n\n\n\n</body>\n</html>",
417+ "<html> <head> <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\"> </head> <body><p>エディターで <span class=\"shortcut\">&shortcut:Generate;</span> (<span class=\"control\">コード | 生成</span>) を使用すると、クラスの任意のフィールドの getter および setter メソッドを簡単に生成できます.</p><p class=\"image\"><img src=\"images/alt_insert_in_editor.png\"></p></body> </html>");
260418
261- // [#14700] 囲み文字
262- assertLookup("\"Malformed file transmission received\"", "\"誤った形式のファイル伝送が受信されました\"");
263- // [#14700] (s)
419+ // xxxxx
264420 assertLookup(
265- "Problems tagging the resources. {0} project(s) successfully tagged and {1} project(s) with errors.",
266- "リソースのタグ付けで問題が発生しました。{0} プロジェクトが正常にタグ付けされ、{1} プロジェクトにエラーがありました。");
267- assertLookup("You have chosen to ignore {0} resources. Select what to add to the .cvsignore file(s).",
268- "{0} 個のリソースを無視するよう選択しました。.cvsignore ファイルに追加するものを選択してください。");
269-
270- // [#14796] 分割後の {1}.
271- assertLookupFalse("{0}, Function: {1}.");
272-
273- // & を含むパラメーター付き URL は翻訳不可
274- assertLookupFalse("/aaa/bbb?xxx=1&yyy=2");
275-
276- // [#14799]
277- assertLookup("{0} does not exist.\nAre you sure you want to create it?", "{0} は存在しません。\nこれを作成しますか?");
278-
279- // [#14801]
280- assertLookup("Error copying file {0}: {1}", "ファイル {0} のコピー・エラー: {1}");
281- assertLookup("Unable to initialize source location - directory does not exist: {0}",
282- "ソース・ロケーションを初期化できません。ディレクトリー {0} がありません");
283-
284- // [#14802]
285- assertLookup("The selected enterprise bean cannot be deleted because it is involved in\n"
286- + "relationships with other enterprise beans. You must first delete these\n"
287- + "relationships before deleting the bean.",
288- "別のエンタープライズ Bean との関係が含まれるため、\n" + "選択したエンタープライズ Bean は削除できません。\n" + "Bean を削除する前に、まず関係を削除する必要があります。");
289-
290- // [#14837]
291- assertLookupFalse("The resulting string is too long to fit in a DOMString: ''{0}''.");
292-
293- // [#14840]
294- assertLookup("Minimum VM Size (kB)", "最小 VM サイズ (kB)");
295- assertLookupFalse("kB.");
296-
297- // [#14841]
298- assertLookup("&Enable annotation roll-over (on new editors)", "(新しいエディター上で) 注釈のロールオーバーを使用可能にする(&E)");
299- assertLookup("Unable to locate JAR/zip in file system as specified by the driver definition: {0}.",
300- "ドライバー定義で指定されたファイル・システム内に JAR/zip が見つかりません: {0}。");
301-
302- // [#14842]
303- assertLookup("'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?",
304- "'?' をここに書くことはできません。もしかして '(?:' か '(?=' か '(?!' か '(?<' か '(?#' か '(?>' ですか?");
305-
306- // [#14843]
307- assertLookup("Invalid timeout! Timeout should be positive integer or -1 to disable.",
308- "タイムアウト値が無効です! タイムアウト値は、正整数または -1 (使用不可にする場合) でなければなりません。");
309-
310- // [#14844]
311- assertLookup("none (no sides, default value)", "none (線なし、デフォルト値)");
312- assertLookup("groups (between row groups)", "groups (行グループ間)");
313-
314- // [#14845]
315- assertLookup(
316- "It is strongly recommended you restart {0} for the changes to take effect. For some add-ons, it may be possible to apply the changes you have made without restarting. Would you like to restart now?",
317- "変更を反映させるために {0} の再始動を強くお勧めします。いくつかのアドオンでは、再始動しなくても変更が反映されている場合もあります。すぐに再始動しますか?");
318-
319- // [#14862]
320- assertLookup("Bundle symbolic name contains illegal characters. Legal characters are A-Z a-z 0-9 . _ -",
321- "バンドルのシンボル名に正しくない文字が含まれています。正しい文字は A-Z a-z 0-9 . _ - です");
322-
323- // [#14865]
324- assertLookup("Unable to restore source location - class not found: {0}", "ソース・ロケーションを復元できません。{0} クラスが見つかりません");
325-
326- // [#14866]
327- assertLookup("Error: File not found.", "エラー: ファイルが見つかりません。");
328-
329- // [#14867]
330- assertLookup("Update the related faces config file. Are you sure?", "関連する faces 構成ファイルを更新します。よろしいですか?");
331-
332- // [#14869]
333- assertLookup("<details unavailable - not supported by VM>", "<詳細は使用不可 - VM によってサポートされていません>");
334-
335- // [#14870]
336- assertLookup(
337- "Inclusion or exclusion patterns are disabled in project {1}, cannot selectively include or exclude from entry: ''{0}''",
338- "包含または除外パターンはプロジェクト {1} 内で使用不可です。エントリー ''{0}'' から選択的に包含または除外できません");
339-
340- // [#14883]
341- assertLookup("Profile name is empty.", "プロファイル名が空です。");
342-
343- // [#14887]
344- assertLookup("An error has occurred: {0}. See error log for more details. Do you want to exit?",
345- "エラーが発生しました: {0}。詳細については、エラー・ログを参照してください。終了しますか?");
346-
347- // [#14888]
348- assertLookup(
349- "Select a set of UDDI businesses and click <strong>Add to Favorites</strong> to add these to the list of favorites. Click <strong>Add to UDDI Page</strong> to add these to the UDDI Page. Click <strong>Refresh</strong> to refresh the selections.",
350- "UDDI ビジネスのセットを選択し、「<strong>お気に入りに追加</strong>」をクリックしてこれらのビジネスをお気に入りのリストに追加します。「<strong>UDDI ページに追加</strong>」をクリックしてこれらのビジネスを UDDI ページに追加します。「<strong>リフレッシュ</strong>」をクリックして選択をリフレッシュします。");
351-
352- // [#14889]
353- assertLookup("-- Java Generation :: Generating...", "-- Java の生成 :: 生成中...");
354-
355- // [#14890]
356- assertLookup(
357- "Inclusion or exclusion patterns are disabled in project {1}, cannot selectively include or exclude from entry: ''{0}''",
358- "包含または除外パターンはプロジェクト {1} 内で使用不可です。エントリー ''{0}'' から選択的に包含または除外できません");
359-
360- // [#14891]
361- assertLookup("CHKJ2017E: This interface must extend javax.ejb.EJBHome (EJB 2.0: 6.3, 7.10.6).",
362- "CHKJ2017E: このインターフェースは javax.ejb.EJBHome を拡張しなければなりません (EJB 2.0: 6.3、7.10.6)。");
363-
364- // [#14901]
365- assertLookup("Warning: Invalid value for the initParam xpoweredBy. Will use the default value of \"false\"",
366- "警告: Invalid value for the initParam xpoweredBy. デフォルト値 \"false\" を使用します");
367- assertLookup("Problems encountered during code generation. Select detail entries for more information.",
368- "コード生成中に問題が発生しました。Select detail entries for more information.");
369- assertLookup(
370- "No custom build file found in {0}. If you want to generate a new build file, temporarily disable the ''custom'' property. ",
371- "{0} でカスタム・ビルド・ファイルが検出されませんでした。If you want to generate a new build file, temporarily disable the ''custom'' property. ");
372-
373- // [#14902]
374- assertLookup("Missing directory entry: {0}.", "欠落しているディレクトリー・エントリー: {0}.");
375- assertLookup("Missing directory entry: {1}.", "欠落しているディレクトリー・エントリー: {1}.");
376-
377- // [#14944]
378- assertLookup("IO exception.", "IO 例外。");
379- assertLookup("IO exception", "IO 例外");
380-
381- // [#14946]
382- assertLookup(
383- "When selecting {0} compliance, make sure to have a compatible JRE installed and activated (Currently {1}). "
384- + "Configure the <a href=\"1\" >Installed JREs</a> or change the JRE on the <a href=\"2\" >Java build path</a>.",
385-
386- "{0} 準拠を選択する場合は、互換性がある JRE がインストール済みでアクティブにされていることを確認してください (現在は {1})。"
387- + "<a href=\"1\" >インストール済み JRE</a> を構成するか、<a href=\"2\" >Java ビルド・パス</a> にある JRE を変更してください。");
388-
389- // [#14947]
390- assertLookup("Package: Generate Javadoc for all but private classes and members.",
391- "Package: private のクラスおよびメンバー以外について Javadoc を生成します。");
392- assertLookup("Package: Generate Jsdoc for all but private classes and members.",
393- "Package: private のクラスおよびメンバー以外について Jsdoc を生成します。");
394-
395- // [#14954]
396- assertLookupFalse("visibility scope where Javadoc comments are not checked.");
397- assertLookupFalse("A type.");
398-
399- // [#14955]
400- assertLookup("n/a", "なし");
401- assertLookup("N/A", "なし");
402-
403- // [#15186]
404- assertLookupFalse("C&VS", "CVS(&V)");
405-
406- // [#15193]
407- assertLookupFalse("Policy on how to pad parentheses. nospace = do not pad (e.g. method(a, b)). space = ensure padding (e.g. method( a, b )).");
408-
409- // [#15277]
410- assertLookup(
411- "Project Validator that validates the Spring Config files (e.g. class and property names, referenced beans etc.)",
412- "Spring 構成ファイルを検証するプロジェクト・バリデーター (例 クラスとプロパティーの名前、 参照される bean など)");
421+// "<html>\n<head>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\">\n</head>\n<body>\n\n\n <p>Did you know that you can close tabs in the editor and the tool windows of &productName; without actually\n using the context menu commands?\n It is enough to point with your mouse cursor to a tab to be closed, and click the middle mouse button, or just\n use the <span class=\"shortcut\">Shift+click</span> combination.</p>\n\n\n</body>\n</html>",
422+ "Did you know that you can close tabs in the editor and the tool windows of &productName; without actually using the context menu commands",
423+ "");
413424 }
414425 }
--- trunk/Pleiades/srctest/jp/sourceforge/mergedoc/pleiades/resource/TranslationStringTest.java (revision 1248)
+++ trunk/Pleiades/srctest/jp/sourceforge/mergedoc/pleiades/resource/TranslationStringTest.java (revision 1249)
@@ -64,13 +64,6 @@
6464 assertEquals("\" \"", t.toString());
6565 assertEquals("", t.trim());
6666
67- // 英語 かっこ + .
68- t = new TranslationString("10.5.2, 10.6.10).");
69- System.out.println(t.trim());
70- assertEquals("10.5.2, 10.6.10).", t.toString());
71- assertEquals("10.5.2, 10.6.10).", t.trim());
72- assertEquals("10.5.2, 10.6.10", t.trimForce());
73-
7467 // 英語 HTML タグ
7568 t = new TranslationString("<html><p style=\"font-family:Lucida Grande;\">OSGi, Web frameworks are detected in the project <a href=\"configure\">Configure</a></p></html>");
7669 System.out.println(t.trim());
@@ -87,6 +80,14 @@
8780 System.out.println(t.trim());
8881 assertEquals("zzz <b><a href=\"updates\">Updates</a></b> 000.", t.trim());
8982 assertEquals("zzz <b><a href=\"updates\">Updates</a></b> 000", t.trimForce());
83+
84+ // 英語 かっこ + .
85+ t = new TranslationString("10.5.2, 10.6.10).");
86+ System.out.println(t.trim());
87+ assertEquals("10.5.2, 10.6.10).", t.toString());
88+ assertEquals("10.5.2, 10.6.10).", t.trim());
89+ assertEquals("10.5.2, 10.6.10", t.trimForce());
90+ assertEquals("10.5.2, 10.6.10)。", t.revert());
9091 }
9192
9293 /** 分割 */
@@ -440,5 +441,12 @@
440441 assertEquals("There are two ways of closing all tabs in the editor, except the current one:", list.get(0).trim());
441442 assertEquals("First, right-click the editor tab, and choose <span class=\"control\">Close Others</span> on the context menu.", list.get(1).trim());
442443 assertEquals("Second, keeping the Alt key pressed, click <img src=\"images/close1.png\"/> on the editor tab.", list.get(2).trim());
444+
445+ // 英語 句点分割 HTML h1
446+ t = new TranslationString("<html>\n<head>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\">\n</head>\n<body>\n <h1>\n Welcome to <span class=\"product\">productName;</span> <span class=\"version\">&majorVersion;.&minorVersion;</span></h1>\n <p>\n You can quickly get familiar with the main features of the IDE by reading these tips. You may try out\n the features described in the tips while this dialog stays open on the screen. If you close the dialog,\n you can always get back to it from the <span class=\"control\">Help | Tip of the Day</span>\n main menu item.</p>\n</body>\n</html>");
447+ list = t.split();
448+ printEach(list);
449+ assertEquals(4, list.size());
450+ assertEquals("Welcome to <span class=\"product\">productName;</span> <span class=\"version\">&majorVersion;.&minorVersion;</span>", list.get(0).trim());
443451 }
444452 }
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/TranslationString.java (revision 1248)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/TranslationString.java (revision 1249)
@@ -181,7 +181,9 @@
181181 ) {
182182 // 完全な HTML の場合は空白や改行をまとめる (内容を書き換えるのは、この処理だけ) 現状 pre タグ未考慮
183183 if (body.matches("(?si)<html>(.+)</html>")) {
184- body = body.replaceAll("(?i)\\s*(</?(p|p\\s[^<>]*|ul|ol|li)>)\\s*", "$1"); // ブロックタグ前後の空白は除去
184+ // ブロックタグ前後の空白は除去
185+ body = body.replaceAll("(?i)\\s*(</?(p|p\\s[^<>]*|ul|ol|li|h[1-5])>)\\s*", "$1");
186+ // 空白をまとめる
185187 body = body.replaceAll("\\s+", " ");
186188 }
187189
@@ -218,7 +220,7 @@
218220 // 前後 br、p タグなどを除去 (タグが空白と隣接していないこと: 例えば "Wrap in <br>" は文のため br を除去しない)
219221 if (body.startsWith("<") || body.endsWith(">")) {
220222
221- final String TAGPAT = "((</?(br|p|p\\s+[^<>]+?|img|img\\s+[^<>]+?|ul|ol|li)/?>)*)";
223+ final String TAGPAT = "((</?(br|p|p\\s+[^<>]+?|img|img\\s+[^<>]+?|ul|ol|li|h[1-5])/?>)*)";
222224 Pattern tagPat = Pattern.compile("(?si)^" + TAGPAT + "(\\S.*?\\S)" + TAGPAT + "$");
223225 Matcher tagMat = tagPat.matcher(body);
224226 if (tagMat.find()) {
@@ -312,9 +314,9 @@
312314 // もう一度通常トリム
313315 trimInternal();
314316
315- // 除去した ends の . が 1 つの場合は 。に変換
317+ // 除去した ends の . が 1 つの場合は 。に変換 (. の次が英字の場合は除外、拡張子のドットなど)
316318 String e = ends.toString();
317- if (e.contains(".") && !e.contains("..")) {
319+ if (e.contains(".") && !e.contains("..") && !e.matches("(?s).+\\.\\w.+")) {
318320 int i = e.lastIndexOf(".");
319321 ends.replace(i, i + 1, "。");
320322 }
@@ -724,7 +726,7 @@
724726 // 英語の句点 + br、/b+空白、空白
725727 "[\\.:;\\?!]+(\\s*<br>(<[^<>]+>)*|</b>(<br>)*\\s+|\\s|&nbsp;)+|" +
726728 // p、li 終了タグ
727- "<(p/|/p|/li)>(<[^<>]+>)*|" +
729+ "(<(/?p/?|/li|/h[1-5])>)+|" +
728730 // br タグ 2 つ以上
729731 "(<br/?>){2,}(<[^<>]+>)*|" +
730732 // ハイフン (前後空白)
Show on old repository browser