目次
1. Visual Studio を使って Wovn.cs をインストールする
2. アプリケーションディレクトリの Web.config へ Wovn.cs の設定を追加する
前提条件
事前に、管理画面から翻訳を公開してください。
動作概要
ライブラリ方式における動作概要を参照してください。
C#ライブラリのインストール手順
1. Visual Studio を使って Wovn.cs をインストールする
1-1. Visual Studio を起動します。
1-2. Visual Studio の「ファイル」>「開く」>「プロジェクトソリューション」をクリックします。
1-3. 対象サイトを管理するプロジェクトを選択します。
例:
1-4. ソリューションエクスプローラーから「参照」を右クリックします。
1-5.「参照」を右クリックし、「NuGet パッケージの管理」をクリックします。
1-6. 検索欄に「Wovn.cs」を入力して検索します。
1-7. 右側にある「インストール」ボタンをクリックします。
1-8. Web.config に設定を追加します。
「2. アプリケーションディレクトリの Web.config へ Wovn.cs の設定を追加する」へ進んでください。
2. アプリケーションディレクトリの Web.config へ Wovn.cs の設定を追加する
アプリケーションの出力内容を翻訳するには、アプリケーションディレクトリの Web.config へ Wovn.cs に関する設定を追加する必要があります。
下記は、Web.config の設定例です。なお、翻訳対象アプリケーションが複数ある場合、すべてのアプリケーションに設定を追加する必要があります。
一般的な Web.config の設定例
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="wovn" type="System.Configuration.NameValueSectionHandler"/>
</configSections>
<wovn>
<!-- YOUR_TOKEN は適宜書き換えをお願いします -->
<add key="user_token" value="YOUR_TOKEN"/>
<add key="url_pattern" value="query"/>
<add key="default_lang" value="ja"/>
<!-- 対応する言語に応じてカンマ区切りで追加して下さい -->
<add key="supported_langs" value="ja,en"/>
<add key="api_timeout" value="5000"/>
<!-- ブラウザで表示されるドメインとhreflangタグのドメインが異なる場合、下記の設定を修正して有効にして下さい -->
<!-- <add key="fixed_scheme" value="https" /> -->
<!-- <add key="fixed_host" value="your.example.com" /> -->
<!-- <add key="fixed_port" value="443" /> -->
</wovn>
<system.webServer>
<modules>
<add name="WovnInterceptor" type="Wovn.cs.WovnInterceptor"/>
</modules>
</system.webServer>
<system.web>
</system.web>
</configuration>
続いて、どのように URL に言語コードを付与するか、要件に応じて設定を Web.config に記述します。
- 言語コードを URL パスへ設定する場合 (英語[en]URL例: example.com/blog/en/)
- 言語コードをルートパスへ設定する場合 (英語[en]URL例: example.com/en/blog/)
言語コードを URL パスへ設定する場合 (英語[en]URL例: example.com/blog/en/)
一般的な Web.config 設定例の、 <wovn> 〜 </wovn> にある url_pattern の設定を変更し、
site_prefix_path の設定を追加します。
<add key="url_pattern" value="path"/>
<add key="site_prefix_path" value="blog" />
言語コードをルートパスへ設定する場合 (英語[en]URL例: example.com/en/blog/)
① url_pattern を path に変更
一般的な Web.config の設定例の、 <wovn> 〜 </wovn> にある url_pattern の設定を、path に変更します。
<add key="url_pattern" value="path"/>
② Rewrite ルールの設定を追加
言語コードを削除する Rewrite ルールを、下記のいずれかのファイルへ追加する必要があります。
この設定は、実際には存在しないパスを受け入れ、なおかつ C#ライブラリが翻訳元情報を翻訳対象言語へ翻訳するために必要です。
設定を入れただけではエラーになる場合があります。
アプリケーションの上位のパスに Rewrite を適用するため、IIS 側の権限設定によっては、設定を入れただけではエラーになる場合があります。
エラーの場合は、トラブルシューティングをご確認ください。
A. 導入したいウェブサイトのドキュメントルートにある web.config へ追加する場合
例:C:/inetpub/wwwroot/web.config
注1) 存在しない場合、新規作成が必要です。
注2) アプリケーションルートではありません。
B. applicationHost.config の導入したいウェブサイトへ追加する場合(非推奨)
下記は、IIS の Blog アプリケーションを翻訳する場合の設定例です。
実際の構成に合わせてアプリケーションパスの URL を適宜変更してください。
以下は、Rewrite 設定の抜粋です。(翻訳対象言語:英語、韓国語)
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="WOVNremoveLangCode" enabled="true" stopProcessing="true">
<match url="^(en|ko)/blog/(.*)" />
<action type="Rewrite" url="blog/{R:2}" appendQueryString="true" />
</rule>
上記 Rewrite ルール上で、下位のアプリケーションにルールの継承をしている場合、環境設定によっては、アプリケーション側のルールに下記を追記する必要があります。
<remove name="WOVNremoveLangCode" />
参考:URL Rewrite モジュールがインストールされていない場合
トラブルシューティング
Web.config による設定が有効にならない
applicationHost.config で、overrideModeDefault が適切に設定されていない場合があります。
適切に設定されていない場合、下位のディレクトリにおいて、設定の上書きができないなどの事象が発生します。
「404 Not Found」もしくは「403 Forbidden」が表示される
日本語ページが 403/404 ステータスとなる場合、正しく Rewrite の設定ができていない可能性があります。Rewrite ルールを、上位の Web.config から継承しているなど、環境により原因は異なります。
翻訳先ページが 403/404 ステータスとなる場合、リクエストが Wovn.cs の処理まで到達していない可能性があります。IIS 側の権限により許可されていない場合や、その他の Rewrite ルールにより正しい URL へ書き換えができていないなど、環境により原因は異なります。
WOVN を設定したアプリケーションが、ルートアプリケーションプールと異なる場合、アプリケーションプールが異なることで、権限によるアクセス問題が発生している場合があります。これらのアプリケーションプールを同一のアプリケーションプールに設定するなど、リクエストを転送できるように構成する必要があります。
参考:ISAPI の許可
参考:Application Pool Identities の設定
上記の問題を解決するには、原因の特定のためにトレースログを取得する必要があります。
Wovn.cs の処理が行われる前に URL の書き換えが行われているか、適切な URL になっているかなどを確認します。
セッション情報の引き継ぎができない
URL のルートパスに言語コードが追加されたことで、本来の /foo の URL が /en/foo になります。Cookieのパス設定で、/foo と設定されていた場合、書き換わった /en/foo に対して Cookie がサーバーへ正しく送信されない場合があります。アプリケーション側の Cookie のパスをルートパスにする対応が必要です。
500 Internal Server Error が表示される
エラー詳細確認と原因箇所の特定を行う必要があります。
ルート及びアプリケーションのWeb.config に、下記のようにエラー詳細表示の設定を追記のうえ、お問い合わせください。
<system.webServer>
<httpErrors>
<httpErrors errorMode="Detailed" />
</httpErrors>
また、カスタムエラー表示を設定している場合は、下記のようにカスタムエラーをオフにしてください。
<customErrors mode="Off"/>
その他のエラー
Wovn.cs の詳細ログを取得のうえ、お問い合わせください。
Wovn.cs の詳細ログを出力するには、Wovn.cs の設定に下記のとおり追記し、問題が発生している URL のクエリ文字列に ?WovnLogServerVariables=true を追加します。
<add key="debug_mode" value="true" />
<!-- デバッグログのパスは任意のパスに変更可能です -->
<add key="log_file_path" value="C:/DebugLogs/wovncs-log.txt" />