WebSurfer's Home

トップ > Blog 2   |   ログイン
APMLフィルター

チーム 8 @よんななくらぶ

by WebSurfer 2015年9月11日 22:38

チーム 8 の行天優莉奈さんがオススメする香川名物の「骨付鳥」というのをネットを通じて注文しました。

行天優莉奈

上の画像は注文確定後に出てきた行天さんの画像です。

チーム 8 の HP の ニュース によりますと、"全国の地方新聞社厳選のお取り寄せサイト「47CLUB(よんななクラブ)」とAKB48チーム8がタイアップ!" ということで、ご当地!ごはんの友達コレクション という販促キャンペーンを 9 月 11 日 (金) から 10 月 31 日 (土) の期間限定(?)で行っています。

推しメンの行天さんを応援している自分としては、これは買わないわけには行かないと思って注文しました。

商品の説明は このページ にありますが、確かにおいしそうです。届くのを楽しみに待ってます。(笑)

Tags:

AKB48

国際化の不具合の修正

by WebSurfer 2015年9月6日 15:06

約 2 年ぶりの BlogEngine.NET 2.0 の不具合修正の話です。

BlogEngine は国際化対応がされていて、ブラウザの言語指定に応じてリソースファイルの自動切り替えが行われ、ラベルに表示される文字列の言語が変わります。

例えばブラウザが IE の場合、言語の優先順位の設定を下の画像のように日本語を最優先にしておくと、アプリケーションルート直下の App_GlobalResources フォルダにある日本語のリソースファイル labels.ja.resx からラベルに表示する文字列を取得して設定します。

IE の言語の優先順位の設定

(詳しい仕組みに興味がありましたら、別の記事 aspx ページでのリソースの利用 を見てください)

ところが、ブログ2で使用している BlogEngine.NET 2.0 の場合、レーティングや APML フィルターのラベルの国際化対応にバグがあるらしく、下の画像で赤枠で囲った部分のように英文になってしまいます。(ちなみに、ブログ1で使用している BlogEngine.NET 1.6.1 の場合はこの問題ありません)

国際化の不具合

ブログ2開設当時からこの問題には気づいていたのですが、原因を探すのが面倒だったし、致命的な問題ではないので放置してきました。(汗)

何年も放置しておいて今さらなんですが、やっぱり気になるので修正しました。ブラウザの言語設定が日本語になっていれば、レーティングのラベル部分も日本語で表示されているはずです。ブラウザの設定で英語とかフランス語を最上位に持ってくれば、その言語で表示されるはずです。

どこが問題だったか、どのように修正したかを以下に備忘録として書いておきます。

最初は App_GlobalResources フォルダにあるリソースファイルの問題かと思っていましたが、リソースファイルはこの問題のないバージョン 1.6.1 のものと同じでした。ということは、リソースを取得する方法に問題があるということになります。

レーティングの表示は、バージョン 1.6.1, 2.0 いずれも blog.js という名前の外部スクリプトファイルを読み込んで、その中の showRating, applyRatings というメソッドで html ソースを生成しています。

その際、ラベルに表示する文字列は、BlogEngine.i18n.beTheFirstToRate とか BlogEngine.i18n.currentlyRated という変数に定義されます。この定義の仕方がバージョン 1.6.1 と 2.0 とでは異なっています。

バージョン 1.6 では BlogBasePage クラスに AddLocalizationKeys というメソッドがあり、これにより BlogEngine.i18n.beTheFirstToRate 等の変数定義をインラインでページに書き込んでいます。書き込む際、GetGlobalResourceObject メソッドを利用して、ブラウザの言語設定に従って自動的に正しいリソースファイルを選択して文字列を取得しているので、正しい言語の文字列が変数に設定されます。

バージョン 2.0 ではこの部分が異なっていて、1.6.1 のようにページに変数定義をインラインで埋め込むのではなく、BlogBasePage クラスの Utils.AddJavaScriptResourcesToPage(this); によって、以下のような外部スクリプトファイルとして定義されます。(キャッシュを利用できるようにするため)

<script 
  type="text/javascript" 
  src="http://surferonwww.info/BlogEngine2/res.axd?lang=en-gb">
</script>

問題は、上記 src 属性に設定される url のクエリ文字列 lang=en-gb です。この en-gb は BlogSettings.Instance.Language から取得していますが、ブラウザの言語設定に関係なく常に "en-GB" になってしまいます。

HTTP ハンドラ res.axd(ResourceHandler.cs に定義されている)はクエリ文字列を見て、これに該当するリソースファイルから文字列を取得します。クエリ文字列は常に lang=en-gb なので、レーティング等に表示されるラベルは常に英語になってしまいます。

修正は AddJavaScriptResourcesToPage メソッドで BlogSettings.Instance.Language を使用せず、Thread.CurrentUICulture プロパティで現在のカルチャを取得して設定するようにしました。

具体的には以下の通りです。

Utils.cs の AddJavaScriptResourcesToPage メソッド

public static void AddJavaScriptResourcesToPage(Page page)
{
  // BlogSettings.Instance.Language は "en-GB" になってしまい、
  // ブラウザの言語設定が反映されない。結果レーティング等に表示
  // される文字列が英語で固定となってしまう。
  // var resourcePath = 
  //    Web.HttpHandlers.ResourceHandler.GetScriptPath(
  //        new CultureInfo(BlogSettings.Instance.Language));

  // それを以下のように修正:
  CultureInfo ci = 
      System.Threading.Thread.CurrentThread.CurrentUICulture;
  string resourcePath = 
      Web.HttpHandlers.ResourceHandler.GetScriptPath(ci);

  var script = string.Format(
      "<script type=\"text/javascript\" src=\"{0}\"></script>", 
      resourcePath);
  page.ClientScript.RegisterStartupScript(
      page.GetType(), 
      resourcePath.GetHashCode().ToString(), 
      script);
}

その他、この修正に伴って、日本語にすると AMPL の入力窓の幅が不足して表示が崩れる問題が出ましたので、blog.js の filterByAPML: function () の中の div.style.width = '400px'; を 450px に変更しました。(マイナーな問題ですが忘れないように書いておきます)

Tags:

BlogEngine.NET 2.0

AKB48 グループ大運動会@東京ドーム

by WebSurfer 2015年8月25日 23:27

8 月 25 日(火)に行われた「第 1 回 AKB48 グループ大運動会」を見に東京ドームに行ってきました。平日なのに。 しかも 15:00 開演なのに。(笑)

会場の東京ドーム

上の画像はバックネット裏の 2 階席の上あたりから会場全景を写したものです。自分の席はここではなくて、レフトの外野席の 6 列目でした(上の画像で左上あたり)。見ての通りトラックが近くて良席の方だったと思います。

開催通知では、グループ対抗という話で「AKB48, SKE48, NMB48, HKT48 の各グループから選りすぐりのメンバーが出場。グループの意地とプライドをかけて、全力で競い合います!」ということだったのですが、いつの間にか全員参加でチーム対抗に変わってました。

上の画像は開催式で各チームが整列したときのもので、右から AKB48 Team A, K, B, 4, 8, SKE48 Team S, KII, E ... という順序でチーム別に並んでます。白のユニフォームが Team 8 ですが、他と比べて人数が倍以上多いのが分かるでしょうか。

競技種目は以下の通りです。「グループ対抗大縄跳び」のみ時間の都合でグループ対抗になっていますが、他はすべてチーム対抗で行われています。なお、これに加えて、NGT48 のお披露目も行われています。

  • 50 メートル走
  • 大障害物競走
  • 走り高跳び
  • 1000m 持久走
  • ぶら下がり耐久バトル
  • グループ対抗大縄跳び
  • チーム対抗リレー

無料のイベントだし、グループ対抗で限られたメンバーしか出場しないという話だったので、申し込んだ時はあまり期待してなかったのですが、実際行ってみて大正解。期待を大きく上回る内容で、午後 3 時から 9 時まで 6 時間たっぷり楽しんでこれました。

で、結果ですが以下の通りで、先日の有明での AKB48 内での運動会で実力を示し、優勝候補の筆頭だった Team 8 がやっぱり圧倒的に強かったです。

順位 得点 チーム
優勝 320 AKB48 Team 8
2 位 280 SEK48 Team S
3 位 260 SKE48 Team KII
4 位 210 SKE48 Team E
5 位 190 NMB48 Team BII
6 位 100 AKB48 Team K
6 位 100 NMB48 Team M
8 位 80 AKB48 Team 4
8 位 80 NMB48 Team N
8 位 80 HKT48 Team H
11 位 50 AKB48 Team A
11 位 50 HKT48 Team KIV
最下位 30 AKB48 Team B

以下に AKB48 の各チームの応援席での写真を貼っておきます。

Team 8

優勝した Team 8

最初の競技「50 メートル走」で近藤萌恵里さんが優勝したのを皮切りに、「大障害物競走」では佐藤栞さん、「走り高跳び」では中野郁海さん、「1000m 持久走」では横道侑里さん、「ぶら下がり耐久バトル」では小栗有以さん、「チーム対抗リレー」は 2 位と順調に得点を重ね、合計 320 点で優勝しました。

出場した全員参加ができたかどうかは不明ですが、一人一種目のみ参加としてなるべく全員が出場できるように配慮してくれたのはよかったです。

行天優莉奈さん(上の画像に写ってます)はリレー決勝で 4 番手に出場してくれました。ちょうど自分の席の前のトラックを走ってくれたのが嬉しかったりしてます。(笑)

Team K

6 位の Team K

どの競技で、誰が得点したのか記憶にないですが(スミマセン)、いつの間にか 100 点取得して総合 6 位、AKB48 内のチームでは 2 番目の成績でした。

上の画像には、人事異動で Team 4 から Team K に異動した篠崎さんと向井地さんが写ってますね。

Team 4(右)と Team B

8 位の Team 4 と最下位の Team B

8 位の Team 4(黄色のシャツ)と最下位の Team B(青のシャツ)です。

Team 4 では岩立沙穂さんが「走り高飛び」に出場し、優勝こそできなかったものの、ポイントを獲得してチームに貢献したのを覚えています。

小嶋真子さんは「50 メートル走」に出場しました。予選は難なく勝ち抜いて決勝に進出したのですがでゴール直前で転倒。怪我をしたらしいのが気がかりです。大事ないといいのですが。

村山彩希さんは「1000m 持久走」と「チーム対抗リレー」に出場したそうですが、残念ながら見つけられなかったです。でも、最後にハロウィン・ナイトを披露してくれた時に見つけました。コールしたんですが、あの距離では聞こえなかったでしょうね。(笑)

なお、最下位の Team B ですが、その全得点 30 点はすべてキャプテンの木﨑さん(上の画像で左端)が「走り高跳び」で獲得したものだそうです。(笑)

Team A

11 位の Team A

いいところ無しに終わった Team A です。

小嶋陽菜さん(2 列目の右端)のツインテールがカワイイ。今日は「大障害物競走」で二人三脚に出場してくれました。

谷口めぐさん(右後ろの方に写ってます)も同じく「大障害物競走」でおんぶされる役で出場してくれました。二人とも点数獲得にはあまり貢献できなかったようですが。


以上のようなわけで、AKB48 関係のイベントが多かった今年の夏が終わったという感じがしてます。

今のところ、9 月以降には AKB48 関係のイベント何も予定がないのがちょっと寂しいです。劇場公演のチケット抽選を頑張ってみます。まずは 9 月 5 日の Team 8「会いたかった」公演の初日ですね。

Tags: , , , , ,

AKB48

About this blog

ここブログ2は日々の出来事、ブログ1はプログラミング関係のトピックスになっています。

Calendar

<<  2024年5月  >>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

View posts in large calendar