投稿者: Tomotoshi Sugishita
2008年10月24日 5:15
DotNetNuke 4.9.0 より追加になった新しいスキンオブジェクトを使用することで、スキンの国際化に対応できるようになったので、ご紹介。
Text スキンオブジェクトがそれにあたり、HTML で記述する際は、[TEXT]というトークンを使用します。
マニフェストとなる skin.xml には以下のような形で、[TEXT] トークンに対するマニフェストを指定してください。
<Object>
<Token>[TEXT]</Token>
<Settings>
<Setting>
<Name>CssClass</Name>
<Value>任意のクラス名</Value>
</Setting>
<Setting>
<Name>Text</Name>
<Value>表示する文字列</Value>
</Setting>
<Setting>
<Name>ResourceKey</Name>
<Value>リソースファイル内のエントリー名</Value>
</Setting>
</Settings>
<Object>
上記を指定した上で、実際のローカライズに使用する、リソースファイルをスキンのインストールフォルダ配下のにApp_LocalResourcesフォルダに作成します。
作成については、Visual Studio を使用するのが一番手っとり早いと思います。
エントリー名については、上記マニフェストで指定したResourceKeyの値に、.Textを付加した名前で保存します。
リソースファイル名については、スキンファイルと同名のファイルに設定してください。
スキンファイル名が、index.html(index.ascx)になる場合は、index.ascx.resx になります。
日本語のリソースを作成する場合は、ロケール名をファイル名に追加します。上記の場合なら、index.ascx.ja-JP.resx。
残念ながら、現行バージョンのDNNの言語エディタでは、スキンのリソースの編集はできないため、Visual Studio やエディタで編集します。
同様にアップロードの方法も提供されていませんので、スキンといっしょにアップロードする必要があります。
詳しいところは、次回の大阪、東京の DNNJP Offsite Meeting で説明したいと思いますので、興味のある方はご参加ください。