C#ライブラリ

目次

前提条件

動作概要

C#ライブラリのインストール手順

1. Visual Studio を使って Wovn.cs をインストールする

2. アプリケーションディレクトリの Web.config へ Wovn.cs の設定を追加する

トラブルシューティング

前提条件

事前に、管理画面から翻訳を公開してください。

導入ガイド > 3-1. 翻訳の公開を行う

注意
.NET と .NET Core は異なるフレームワークです。

.NET Core は、C# ライブラリには未対応です。

C# ライブラリを使用する場合は、.NET Framework をご利用ください。

動作概要

ライブラリ方式における動作概要を参照してください。

C#ライブラリのインストール手順

  1. Visual Studio を使って Wovn.cs をインストールする
  2. アプリケーションディレクトリの Web.config へ Wovn.cs の設定を追加する

1. Visual Studio を使って Wovn.cs をインストールする

1-1. Visual Studio を起動します。

cs_1.png

1-2. Visual Studio の「ファイル」>「開く」>「プロジェクトソリューション」をクリックします。

cs_2.png
1-3. 対象サイトを管理するプロジェクトを選択します。

例:

cs_3.png

1-4. ソリューションエクスプローラーから「参照」を右クリックします。

cs_4.png

1-5.「参照」を右クリックし、「NuGet パッケージの管理」をクリックします。

cs_5.png

1-6. 検索欄に「Wovn.cs」を入力して検索します。

cs_6.png

1-7. 右側にある「インストール」ボタンをクリックします。

cs_7.png

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="wovnCs" type="Wovn.WovnCsSettings, Wovn.Cs" />
  </configSections>
  <wovnCs>
    <add key="project_token" value="ここにプロジェクトトークンを記述します" />
    <add key="default_lang" value="ja" />
    <add key="supported_langs" value="en, zh-CHS, zh-CHT, ko" />
    <add key="url_pattern" value="query" />
  </wovnCs>
</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 設定例の、<wovnCs></wovnCs> にある 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 の設定例の、<wovnCs></wovnCs> にある url_pattern の設定を、path に変更します。

<add key="url_pattern" value="path"/>

② Rewrite ルールの設定を追加

言語コードを削除する Rewrite ルールを、下記のいずれかのファイルへ追加する必要があります。

この設定は、実際には存在しないパスを受け入れ、なおかつ C#ライブラリが翻訳元情報を翻訳対象言語へ翻訳するために必要です。

設定を入れただけではエラーになる場合があります。

アプリケーションの上位のパスに Rewrite を適用するため、IIS 側の権限設定によっては、設定を入れただけではエラーになる場合があります。

エラーの場合は、トラブルシューティングをご確認ください。

A. 導入したいウェブサイトのドキュメントルートにある web.config へ追加する場合

例:C:/inetpub/wwwroot/web.config

注1) 存在しない場合、新規作成が必要です。

注2) アプリケーションルートではありません。

<system.webServer>
  <rewrite>
    <rules>
      <clear />
      <rule name="WOVNremoveLangCode" stopProcessing="true">
        <match url="^(en|zh-CHS|zh-CHT|ko)/(.*)$" />
        <action type="Rewrite" url="{R:2}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

B. applicationHost.config の導入したいウェブサイトへ追加する場合(非推奨)

下記は、IIS の Blog アプリケーションを翻訳する場合の設定例です。

実際の構成に合わせてアプリケーションパスの URL を適宜変更してください。

以下は、Rewrite 設定の抜粋です。(翻訳対象言語:英語、韓国語)

<system.webServer>
  <rewrite>
    <rules>
      <rule name="WOVNremoveLangCode" stopProcessing="true">
        <match url="^blog/(en|zh-CHS|zh-CHT|ko)/(.*)$" />
        <action type="Rewrite" url="/blog/{R:2}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

上記 Rewrite ルール上で、下位のアプリケーションにルールの継承をしている場合、環境設定によっては、アプリケーション側のルールに下記を追記する必要があります。

<remove name="WOVNremoveLangCode" />

参考:URL Rewrite モジュールがインストールされていない場合

トラブルシューティング

Web.config による設定が有効にならない

applicationHost.config で、overrideModeDefault が適切に設定されていない場合があります。

適切に設定されていない場合、下位のディレクトリにおいて、設定の上書きができないなどの事象が発生します。

参考: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>
</system.webServer>

また、カスタムエラー表示を設定している場合は、下記のようにカスタムエラーをオフにしてください。

<customErrors mode="Off"/>

その他のエラー

Wovn.cs の詳細ログを取得のうえ、お問い合わせください。

お問い合わせ

Wovn.cs の詳細ログを出力するには、Wovn.cs の設定に下記のとおり追記し、問題が発生している URL のクエリ文字列に ?WovnLogServerVariables=true を追加します。

<add key="debug_mode" value="true" />
<!-- デバッグログのパスは任意のパスに変更可能です -->
<add key="debug_log_path" value="C:\wovn_cs_debug.log" />