ホームページ(sorceryforce.net)の障害について

2014/08/05の朝あたりからホームページ(sorceryforce.net)を閲覧するとエラーページが表示される状態になっております。

原因としてはデータベースに障害が発生しており、データベースの入れ替え作業が必要なのですが、おそらく作業は深夜あたりになりますのでそれまでお待ちください。

※ホームページとブログでは別々のデータベースを使っているのでブログ側は問題なく動いてます。

]]>

ホームページの方をいろいろ更新

去年更新の方が停滞していたので、今年は少し更新するようにしました。ブログの方にもちょくちょく書くつもりだったんですがタイミングがなかったので今回まとめて書いておきます。ちなみに更新しているのは「sorceryforce.net」の方で「sorceryforce.com」ではありません。今後は「sorceryforce.net」の方を中心に更新していくつもりです。

各 Tips に概要を追加

各コンテンツのページの最初に概要が入るように、一応ローカルでも概要を登録していたのですが、サーバープログラムの方でまだ出力対応してなかった(というかローカルで作った概要すら取り込んでいない状態だった)ので、今回プログラム改修する際に概要を表示できるように対応しました。とはいってもコンテンツ内容量よって概要を入れるか入れないか切り分けていたりするので全ページに概要が表示されているというわけでもないのですが…。

各 Tips ページにツイートボタンを追加

Twitter のツイートボタンをページの後ろあたりに入れてみました。デフォルトではツイートするときに「ページタイトル – URL」となるのですが、タイトルによっては自分で文章いれてツイートしたのかわかりにくくなりそうだったので、ツイート文章の最初に「Read : xxxx」とつくようになってます。

今回入れたページは Tips 系のページだけになってます。他のページに入れるかどうかは検討中です。

各 Tips 公開

Project Linker を使用して複数のプロジェクトでソースコードを共有する

Visual Studio で複数のプロジェクトでソースコードの共有を自動化させる拡張プラグイン「Project Linker」を使用した説明を載せました。

Project Linker 2012 を Visual Studio 2013 で使用する

Project Linker 2012 は Visual Studio 2012 にしか対応していないため、これを Visual Studio 2013 で動作するための手順を載せています。

リモートデスクトップによる接続を行うための設定

元々の記事は sorceryforce.com の方に載せていたのですが、Windows 7, Windows Server 2008 R2 までしか書いてなかったので、今回 Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2 を追加しました。

Windows 8, Windows Server 2012 で IME の入力状態をアプリケーションごとに持たせるようにする

元々ブログに書いていた記事なのですが、ブログのコンテンツはどんどん埋もれていってしまうので新たに書き起こしました。Windows 8.1, Windows Server 2012 R2 の確認も追加しました。

]]>

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

ホームページ「ソーサリーフォース.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 ストアアプリとか。まあ、まだホームページにしか使ってないので、機会があれば他のソフトも多言語対応してみたいですね。

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

]]>

レスポンシブデザインにしてみた

最近話題になっているレスポンシブデザインをホームページの方に適用してみました。とはいっても sorceryforce.com の方ではなくて sorceryforce.net の方です。

レスポンシブデザインと大々的に描いてますが、適用しているのはブラウザの幅に合わせてレイアウトを変更している部分です。スマートフォンとかのようなブラウザサイズが小さい画面でもコンテンツをなるべく表示できるようにしています。まあ、もともとPC向けのサイトなのでページによってはそれほど快適になるわけではないんですけどね。ここらへんは CSS の調整次第かと思います。

sorceryforce.net の方はサービス系のアプリとかを公開するために作ったんですが、しばらく放置気味だったのでこれから少しずつ構築していく予定です。外部コンポーネントとか使わずに自分で構築しているので結構時間がかかったりとかテストが面倒だったりしていますが、そのかわりすべて自分で制御できるので自由度は高いですね。

]]>