[予定] ちーたんタッチボード Ver 0.31 について

近日 Ver 0.31 を公開する予定です。内容は主に Ver 0.30 で発生していた不具合や細かな修正となります。

あと、アプリケーションには直接関係ありませんが、Web ページの多言語化対応の方もできてきましたので、同じ頃ぐらいにアップデートしたいと思います。

]]>

日本のアニメオンエア時間検索を作ってみました

前の投稿でホームページを多言語しましたという投稿をしましたが、実はその目的がこれだったりします。

β版開発室の方にて「日本のアニメ検索」を作ってみました。β版開発なので、正式サービスとして公開する予定はなく、あくまでも開発目的で作ってあります。

内容はアニメ検索と言いながら、今後一週間のアニメのオンエア時間を見れるというものです。ジャンルごとに分かれているのでジャンルで検索すればそのジャンルで表示するアニメを絞り込むことができます。他にも検索項目があればよかったのですが、まあとりあえず作ってみたものなので、気が向けば増やしてみたいですね。

まだテスト運用したばっかりなので正常に番組内容が新しくなるかはもうちょっと動かしてみないとわからないです。一応1日ごとに更新されます(予定)。

まあ、アニメ検索自体は他のサイトでもやっているのであんまり需要はないのですが、今回作ってみたのは他の言語でも同様に表示されるというのをやってみたかったからです。言語を変更したブラウザで開けばその言語でテキストが表示されるようになっています。ただ、アニメのタイトルは結構特殊なものが多いので正常に翻訳されていないものも結構あるのですが、そこはイメージで感じ取ってください、ってな形で。ちなみに翻訳できなかった場合は日本語にしています。グローバル的には英語にするべきなのですが、日本のアニメなんで日本語のままにしてあります。

あと、オンエア時間とかは自動で更新されているので正しいかどうかは特に検証していません。とりあえずこんなアニメがあるんだー、へー、程度で見ていただければと思います。

]]>

ホームページを多言語対応しました

ホームページ「ソーサリーフォース.net」を多言語化対応してみました。対応している言語は列挙するのがちょっと大変なので書きませんが大体40か国語ぐらいに対応しています。主要な言語については大体サポートしているつもりです。

1年前に英語には対応していましたが、なんとなくやってみた程度だったので、半分ぐらいは翻訳されていない状態でした。最近プログラムの方をさわる機会ができたので今回一気に多言語対応しました。ただ、ページによってはそもそも多言語化する必要のないところもありますので、そこはそのままにしてあります。

多言語化の仕組みなんですが、sorceryforce.net ではサーバープログラムに ASP.NET MVC を採用しています。ASP.NET MVC にはローカライズの仕組みがあり普通に多言語化する分にはこれを使って作ります(作ると思います)。

ただ、調べてみると言語が増えるたびにファイルが増えて行くというなんとも嫌らしい構成になるらしく、数言語ぐらいならまだしも全世界対応ってなると相当な数になるみたいです。ビューを言語ごとに作成するとなると、レイアウトとか変更するたびに全ファイル修正しなければならなくなり、ビューの修正が億劫になってしまいます。私も Windows From でちょろっと多言語化やってみたのですが、同じように Windows Form のデザインを言語ごとに作る必要があり、とてもめんどくさそうなイメージがありました。まあ、ASP.NET MVC ならビューの継承、Windows Form ならフォームの継承を使ってある程度はごまかせるのですが、テキストが右⇒左方向だったり、翻訳語のテキストが長くなったり、文字の大きさが変わったりするので結局は微調整に時間を取られそうな感じがしますね。Windows Form は問題が顕著になりますが、Web ならレイアウトはある程度ブラウザが補間してくれるのでなんとかなりそうな気がしますが。

で、そんなこんな考慮してみて、最終的には多言語対応はすべて自前で実装しました。Visual Studio のリソース入力もめんどそうだったので、テキストはすべて Excel で管理し、日本語さえ入力すれば後は半自動的に他の言語に翻訳してくれるようにしました。半自動っていうのは、テキストを入力した後に頻繁に翻訳されても困るので、入力した後にバッチ叩けばプログラムにまで自動反映されるよー、っていう感じにしてあります。

実際にビューに出力する方法としては、テキストはすべて ID 管理されているため、.cshtml とかで @Model.GetMessage(なんちゃらID) のようにしておけば、後はブラウザの言語を判定して対応する言語で表示されるようになっています。ID は列挙体なので、ID 名でどんなテキストかわかんなくてもマウスカーソルを合わせれば summary で元の日本語が表示されるのでとても便利です。

あと、この仕組みはプラットフォームに依存しないようにしてあるので、ASP.NET でなくても、.NET Framework であれば他のアプリケーションにも適用できるようになっています。クライアントツールとかゲームとか Windows ストアアプリとか。まあ、まだホームページにしか使ってないので、機会があれば他のソフトも多言語対応してみたいですね。

ちょっといろいろ長くなってしまい、また内部的な話になっていしましたが、要はホームページを多言語化対応しました、という話でした。

]]>