From 18 Jan, 2021 0:00 UTC: All services will be temporary unavailable for maintenance
  • R/O
  • HTTP
  • SSH
  • HTTPS

wpts: Commit

Wikipedia翻訳支援ツール


Commit MetaInfo

Revision1aa71461426e862b580d4f6c44fe152f0e69585a (tree)
Time2014-04-03 18:14:39
Authorhoneplus <honeplus@user...>
Commiterhoneplus

Log Message

#30840 記事名のエスケープを明示的に行うようにし、扱えない文字が残っていたのを修正,
1.31リリースに向けた各種記述更新,
開発環境がVS2013になったことによる差分

git-svn-id: http://svn.osdn.net/svnroot/wptscs/trunk@53 7cc79d57-4d93-40a1-83d5-ec7b38613dec

Change Summary

Incremental Difference

--- a/HmLibTest/HmLibTest.csproj
+++ b/HmLibTest/HmLibTest.csproj
@@ -71,6 +71,9 @@
7171 <Name>HmLib</Name>
7272 </ProjectReference>
7373 </ItemGroup>
74+ <ItemGroup>
75+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
76+ </ItemGroup>
7477 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
7578 <Import Project="$(ProgramFiles)\MSBuild\StyleCop\v4.7\StyleCop.Targets" />
7679 <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Binary files a/Installer/License.rtf and b/Installer/License.rtf differ
--- a/Installer/Wptscs.en-us.wxl
+++ b/Installer/Wptscs.en-us.wxl
@@ -1,12 +1,12 @@
11 <?xml version="1.0" encoding="utf-8"?>
22 <WixLocalization Culture="en-us" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
3- <String Id="ProductName" Overridable="yes">Translation Support for Wikipedia Ver1.30</String>
3+ <String Id="ProductName" Overridable="yes">Translation Support for Wikipedia Ver1.31</String>
44 <String Id="LanguageCode" Overridable="yes">1033</String>
55 <String Id="CodepageCode" Overridable="yes">1252</String>
66 <String Id="Culture" Overridable="yes">en-us</String>
77 <String Id="Manufacturer" Overridable="yes">honeplus</String>
88 <String Id="PackageKeywords" Overridable="yes">Installer</String>
9- <String Id="PackageDescription" Overridable="yes">Translation Support for Wikipedia Ver1.30 Installer</String>
9+ <String Id="PackageDescription" Overridable="yes">Translation Support for Wikipedia Ver1.31 Installer</String>
1010 <String Id="ExeShortcutName" Overridable="yes">Translation Support for Wikipedia</String>
1111 <String Id="AppUrlInfoAbout" Overridable="yes">http://sourceforge.jp/projects/wptscs/</String>
1212 <String Id="NoDowngradeMsg" Overridable="yes">A later version of [ProductName] is already installed.</String>
--- a/Installer/Wptscs.ja-jp.wxl
+++ b/Installer/Wptscs.ja-jp.wxl
@@ -1,12 +1,12 @@
11 <?xml version="1.0" encoding="utf-8"?>
22 <WixLocalization Culture="ja-jp" Codepage="932" xmlns="http://schemas.microsoft.com/wix/2006/localization">
3- <String Id="ProductName" Overridable="yes">Wikipedia 翻訳支援ツール Ver1.30</String>
3+ <String Id="ProductName" Overridable="yes">Wikipedia 翻訳支援ツール Ver1.31</String>
44 <String Id="LanguageCode" Overridable="yes">1041</String>
55 <String Id="CodepageCode" Overridable="yes">932</String>
66 <String Id="Culture" Overridable="yes">ja-jp</String>
77 <String Id="Manufacturer" Overridable="yes">honeplus</String>
88 <String Id="PackageKeywords" Overridable="yes">インストーラ</String>
9- <String Id="PackageDescription" Overridable="yes">Wikipedia 翻訳支援ツール Ver1.30 インストーラ</String>
9+ <String Id="PackageDescription" Overridable="yes">Wikipedia 翻訳支援ツール Ver1.31 インストーラ</String>
1010 <String Id="ExeShortcutName" Overridable="yes">Wikipedia 翻訳支援ツール</String>
1111 <String Id="AppUrlInfoAbout" Overridable="yes">http://sourceforge.jp/projects/wptscs/</String>
1212 <String Id="NoDowngradeMsg" Overridable="yes">[ProductName] の新しいバージョンが既にインストールされています。</String>
--- a/Wptscs/Properties/AssemblyInfo.cs
+++ b/Wptscs/Properties/AssemblyInfo.cs
@@ -3,7 +3,7 @@
33 // Wikipedia翻訳支援ツールのアセンブリソース</summary>
44 //
55 // <copyright file="AssemblyInfo.cs" company="honeplusのメモ帳">
6-// Copyright (C) 2013 Honeplus. All rights reserved.</copyright>
6+// Copyright (C) 2014 Honeplus. All rights reserved.</copyright>
77 // <author>
88 // Honeplus</author>
99 // ================================================================================================
@@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
2020 [assembly: AssemblyConfiguration("")]
2121 [assembly: AssemblyCompany("")]
2222 [assembly: AssemblyProduct("Wikipedia 翻訳支援ツール")]
23-[assembly: AssemblyCopyright("Copyright (C) Honeplus 2013")]
23+[assembly: AssemblyCopyright("Copyright (C) Honeplus 2014")]
2424 [assembly: AssemblyTrademark("")]
2525 [assembly: AssemblyCulture("")]
2626
@@ -37,4 +37,4 @@ using System.Runtime.InteropServices;
3737 // Minor Version
3838 // Build Number
3939 // Revision
40-[assembly: AssemblyVersion("1.30.*")]
40+[assembly: AssemblyVersion("1.31.*")]
--- a/Wptscs/Readme.txt
+++ b/Wptscs/Readme.txt
@@ -1,9 +1,9 @@
11 =====================================================================
22 【タイトル】 Wikipedia 翻訳支援ツール
3-【ファイル】 wptscs130.msi, wptscs130.zip, wptscs130-src.zip
4-【作成月日】 2013/3/10
3+【ファイル】 wptscs131.msi, wptscs131.zip, wptscs131-src.zip
4+【作成月日】 2014/4/xx
55 【制 作 者】 Honeplus
6-【動作環境】 Windows 8 での動作を確認。要.NET Framework 4.0 Client Profile または 4.5
6+【動作環境】 Windows 7/8.1 での動作を確認。要.NET Framework 4.0 Client Profile または 4.5
77 【配布形態】 修正BSDライセンス
88 【HomePage】 http://sourceforge.jp/projects/wptscs/
99 =====================================================================
@@ -33,7 +33,7 @@ Wiktionary.xml : Wiktionary用の設定ファイル
3333 アプリケーション上で設定した内容は、上記設定ファイルには反映されません。
3434 ユーザーごとのフォルダに出力されます。
3535 設定ファイルを直接修正、または削除して初期値に戻したい場合は、
36-下記のようなパスにあるファイルを更新してください(以下はWindows 8の例)。
36+下記のようなパスにあるファイルを更新してください(以下はWindows 8.1の例)。
3737
3838 C:\Users\[ユーザー名]\AppData\Roaming\Honememo\Wikipedia 翻訳支援ツール\[バージョン番号]\config.xml
3939 C:\Users\[ユーザー名]\AppData\Local\Honememo\wptscs.exe_[~]\[バージョン番号]\user.config
@@ -105,8 +105,8 @@ zip版の場合は展開したファイルを削除してください。
105105
106106
107107 ・ソースについて
108-wptscs130-src.zip としてソースファイル一式を配布しています。
109-開発環境はVisual Studio 2012 Express for Windows Desktopです。
108+wptscs131-src.zip としてソースファイル一式を配布しています。
109+開発環境はVisual Studio 2013 Express for Windows Desktopです。
110110 その他外部ツールとしてコーディングスタイルチェック用のStyleCopを使用しています。
111111 また、インストーラの作成にはWiXを使用しています。
112112
@@ -199,6 +199,7 @@ Ver1.30 2013/03/10 言語間リンクの取得を自前の解析処理を使わ
199199 その他設定ファイルを精査。
200200 ※ 設定ファイルに互換性はありますが、一部設定項目の変更・追加・削除が発生しています。
201201 独自の設定を追加している場合、変更が必要になる可能性があります。
202+Ver1.31 2014/04/xx 記事名のエスケープを明示的に行うようにし、扱えない文字が残っていたのを修正。
202203
203204
204205 ・仕様上の制限
--- a/Wptscs/Websites/MediaWiki.cs
+++ b/Wptscs/Websites/MediaWiki.cs
@@ -3,7 +3,7 @@
33 // MediaWikiのウェブサイト(システム)をあらわすモデルクラスソース</summary>
44 //
55 // <copyright file="MediaWiki.cs" company="honeplusのメモ帳">
6-// Copyright (C) 2013 Honeplus. All rights reserved.</copyright>
6+// Copyright (C) 2014 Honeplus. All rights reserved.</copyright>
77 // <author>
88 // Honeplus</author>
99 // ================================================================================================
@@ -408,16 +408,8 @@ namespace Honememo.Wptscs.Websites
408408 /// </remarks>
409409 public override Page GetPage(string title)
410410 {
411- // fileスキームの場合、記事名からファイルに使えない文字をエスケープ
412- // ※ 仕組み的な処理はWebsite側に置きたいが、向こうではタイトルだけを抽出できないので
413- string escapeTitle = title;
414- if (new Uri(this.Location).IsFile)
415- {
416- escapeTitle = FormUtils.ReplaceInvalidFileNameChars(title);
417- }
418-
419- // URIを生成
420- Uri uri = new Uri(new Uri(this.Location), StringUtils.FormatDollarVariable(this.InterlanguageApi, escapeTitle));
411+ // 言語間リンク取得用のURIを生成
412+ Uri uri = this.CreateUri(this.InterlanguageApi, title);
421413
422414 // ページの言語間リンク情報XMLデータをMediaWikiサーバーから取得
423415 XElement doc;
@@ -455,16 +447,8 @@ namespace Honememo.Wptscs.Websites
455447 /// <remarks>ページの取得に失敗した場合(通信エラーなど)は、その状況に応じた例外を投げる。</remarks>
456448 public Page GetPageBodyAndTimestamp(string title)
457449 {
458- // fileスキームの場合、記事名からファイルに使えない文字をエスケープ
459- // ※ 仕組み的な処理はWebsite側に置きたいが、向こうではタイトルだけを抽出できないので
460- string escapeTitle = title;
461- if (new Uri(this.Location).IsFile)
462- {
463- escapeTitle = FormUtils.ReplaceInvalidFileNameChars(title);
464- }
465-
466- // URIを生成
467- Uri uri = new Uri(new Uri(this.Location), StringUtils.FormatDollarVariable(this.ContentApi, escapeTitle));
450+ // 記事データ取得用のURIを生成
451+ Uri uri = this.CreateUri(this.ContentApi, title);
468452
469453 // ページのXMLデータをMediaWikiサーバーから取得
470454 XElement doc;
@@ -924,6 +908,40 @@ namespace Honememo.Wptscs.Websites
924908 return interwikiPrefixs;
925909 }
926910
911+ /// <summary>
912+ /// URI用のフォーマットと記事名からURIを生成する。
913+ /// </summary>
914+ /// <param name="format">URI用のフォーマット。</param>
915+ /// <param name="title">フォーマットに埋め込む記事名。</param>
916+ /// <returns>生成されたURI。</returns>
917+ /// <remarks>記事名は必要に応じてエスケープされる。</remarks>
918+ private Uri CreateUri(string format, string title)
919+ {
920+ // ※ 仕組み的な処理はWebsite側に置きたいが、向こうではタイトルだけを抽出できないので。
921+ // Uriだけでも自動的にエスケープされるが、その場合+など一部の文字が対象にならなかったため
922+ // 明示的に記事名だけエスケープする。
923+ return new Uri(new Uri(this.Location), StringUtils.FormatDollarVariable(format, this.EscapeString(title)));
924+ }
925+
926+ /// <summary>
927+ /// 接続に用いるスキームに応じて、文字列をエスケープする。
928+ /// </summary>
929+ /// <param name="str">エスケープする文字列。</param>
930+ /// <returns>エスケープされた文字列。</returns>
931+ private string EscapeString(string str)
932+ {
933+ if (new Uri(this.Location).IsFile)
934+ {
935+ // fileスキームの場合、ファイルで使えない文字をエスケープ
936+ return FormUtils.ReplaceInvalidFileNameChars(str);
937+ }
938+ else
939+ {
940+ // それ以外はhttp等のURL用のエスケープ
941+ return Uri.EscapeDataString(str);
942+ }
943+ }
944+
927945 #endregion
928946 }
929947 }
--- a/WptscsTest/Properties/AssemblyInfo.cs
+++ b/WptscsTest/Properties/AssemblyInfo.cs
@@ -3,7 +3,7 @@
33 // Wikipedia翻訳支援ツール(テスト)のアセンブリソース</summary>
44 //
55 // <copyright file="AssemblyInfo.cs" company="honeplusのメモ帳">
6-// Copyright (C) 2013 Honeplus. All rights reserved.</copyright>
6+// Copyright (C) 2014 Honeplus. All rights reserved.</copyright>
77 // <author>
88 // Honeplus</author>
99 // ================================================================================================
@@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
2020 [assembly: AssemblyConfiguration("")]
2121 [assembly: AssemblyCompany("")]
2222 [assembly: AssemblyProduct("Wikipedia 翻訳支援ツール")]
23-[assembly: AssemblyCopyright("Copyright (C) Honeplus 2013")]
23+[assembly: AssemblyCopyright("Copyright (C) Honeplus 2014")]
2424 [assembly: AssemblyTrademark("")]
2525 [assembly: AssemblyCulture("")]
2626
@@ -42,4 +42,4 @@ using System.Runtime.InteropServices;
4242 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
4343 // 既定値にすることができます:
4444 // [assembly: AssemblyVersion("1.0.*")]
45-[assembly: AssemblyVersion("1.30.*")]
45+[assembly: AssemblyVersion("1.31.*")]
--- a/WptscsTest/WptscsTest.csproj
+++ b/WptscsTest/WptscsTest.csproj
@@ -79,7 +79,9 @@
7979 <Name>Wptscs</Name>
8080 </ProjectReference>
8181 </ItemGroup>
82- <ItemGroup />
82+ <ItemGroup>
83+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
84+ </ItemGroup>
8385 <ItemGroup>
8486 <Content Include="Data\config.xml">
8587 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
Show on old repository browser