Author's Posts

毎週Facebookの変更点やニュース、コラムをまとめて配信します。 今週は9個の記事を紹介! 記事は上から時系列順になっています。今週のFacebookを振り返ってみましょう!

Facebook、ページへの無効な「いいね!」の削除機能を強化 「影響は1%以下」


インドネシアのFacebookユーザが500万人減少で世界8位に転落、一方で増え続けるTwitter


FacebookのザッカーバーグCEO、1年間は5億株の全持ち株を売却しないと宣言


Facebook純製:効果的なソーシャルマーケティングの手引き


Facebook、iOS向けカメラアプリの日本語版を公開


Facebook国内ユーザー数が1カ月で26%増加、1399万人に


Facebook、臓器提供の意思表示機能を国内でも追加


1,480件の実施データから分かった最新Facebookキャンペーンの傾向と成功ポイント


Facebook、無料アプリ「Facebookカメラ」を日本国内向けにリリース


もしよかったらいいね!またはツイートを押していただけると嬉しいです。

Read more

ソーシャルメディアを使用していると、いいね!をしたいのにいいねボタンがついていなかったりしますよね。 そういうときに便利なChrome拡張機能の紹介です。

僕がいつも使っている拡張機能は、「Quickrr Facebook Like」です。

このプラグインを使用すると、どこにでもいいね!を押すことが出来るようになります。

いいねボタンのついていないサイトにいって、画面右上に出ているいいねマークをクリックするといいね!が出来ます。

この拡張機能のいいところは、拡張機能によくある、右上のボタン部分を占領することなく、拡張機能を追加出来ることです。

! !

Read more

ソーシャルメディアの登場により情報の取得方法はまるっきり変わってしまった。 ただしソーシャルメディアは基本的にフロー情報の中から情報を取捨選択しなければならず、ある1つのブログやテーマをずっと追い続けるには向いていない。 そういう場合にはRSSリーダーなどを使えば便利だ。 ここではRSSリーダーにブログなどを登録するときに必要になるRSSフィードを取得する方法がまとめてある。 ぜひ参考にしてほしい。 ちなみにこのブログのRSSフィードは https://tagamidaiki.com/feed/なのでぜひ登録していただきたい。

Facebookページ

Facebookページでは以下のURLでRSSフィードを取得することが出来ます。

以下のURLにアクセスすると無印のFacebookページのフィードを取得することが出来ます。

https://www.facebook.com/feeds/page.php?format=atom10&id=106191702776460

上記のURLの最後についている「?id=ここ」の「ここ」の部分にFacebookページのIDを入れます。 FacebookページのIDの取得方法は、FacebookページのURLの www の部分を graphに変更してそのURLにアクセスします。 例えば無印の場合は以下のURLにアクセスしましょう。

https://graph.facebook.com/muji.jp

そこに意味不明な文字列がたくさん書いてありますが、その中で以下の画像のような「ID」の部分があります。 それが今回必要なIDです。他のページも同様な手順で取得することが出来ます。

Twitter

TwitterのRSSフィードの取得方法はあるのだが、2013年3月5日にRSSフィードが廃止される。 なので今回紹介しても1年も経たないうちに使えなくなるので紹介しない。

このニュースが紹介されている記事はこちら TwitterからのRSS取得が2013年3月5日で打ち切りへ

Naverまとめ

Naverまとめでは全てのまとめでRSSフィードを取得することが出来ます。 NaverまとめでRSSフィードを取得するためには以下のボタンをクリックしよう。

とても簡単である。

LinkedIn

LinkedInの更新情報はとてつもなく多い。 それをWebで確認しようとするのは無理があるため、RSSで取得することが出来る。 LinkedInのアカウント設定ページの「アカウント」部分にRSSをフィードする項目がある。それをクリックすればRSSフィードを取得することが出来る。

最後に

ここでは4つの主要だと思われるSNSでRSSフィードを取得するためにはどうしたらいいのかを紹介した。 もし他にあなたが知りたいSNSでのフィード取得がある場合はぜひ教えていただきたい。 以下のFacebookコメント欄にコメントをお願いしたい。 Facebookが嫌だ、という場合は、リプライ(@DAI199)でも構わない。ぜひ意見を聞かせてほしい。

Read more

jQueryはとても便利なプラグインです。
JavaScriptの普及を助けたといっても過言ではありません。
jQueryのおかげで煩雑なコードをかかずに綺麗なコードで色々なものが作れるようになりました。
今回は少し忘れやすい、jQueryでフォームから値を取得する方法をまとめていきます。

テキスト

よく使われる1行のテキストボックスです。
これはとても簡単でform要素に .val() で値を取得することが出来ます。

HTML

<form id="test-form">
    <input type="text" name="test-form" value="56">
</form>

JavaScript

var formValue = $('#test-form [name=test-form]').val();
var val = Number(formValue) || 0; // NaNのときは0
alert(val); // => 56

ラジオボタン

値を取る、という意味では .val() で取得出来るのですが、実際に取得したいのは選択されている値を取りたいのですよね。
なので :checked で絞り込むということをやります。

HTML

<form id="test-form">
    <input type="radio" name="test-radio" value="1">
    <input type="radio" name="test-radio" value="2" checked>
    <input type="radio" name="test-radio" value="3">
</form>

JavaScript

var val = $('#test-form [name=test-radio]:checked').val();
alert(val); // => 2

チェックボックス

これが面倒。要素の取得方法はラジオボタンと変わらないのですが、複数選択している場合がある。jQueryで .val() でとれるのは複数ある場合は一番最初に出てくる要素の値だけ。
全部取るためには .map() でループ処理します。

HTML

<form id="test-form">
    <input type="checkbox" name="test-checkbox" value="1">
    <input type="checkbox" name="test-checkbox" value="2" checked>
    <input type="checkbox" name="test-checkbox" value="3" checked>
</form>

JavaScript

var $checked = $('#test-checkbox [name=test-checkbox]:checked');
var valList = $checked.map(function(index, el) { return $(this).val(); });
alert(valList); // => ["2", "3"]

複数あると思われるので配列に値を入れます。
.map() の使い方は以下のドキュメントを参考にしてみてください。

セレクトボックス(単一)

option要素に目もくれず、select要素の値を取れば終わりです。

HTML

<form id="test-form">
  <select name="test-select">
    <option value="A">This is A</option>
    <option value="B" selected>This is B</option>
    <option value="C">This is C</option>
  </select>
</form>

JavaScript

var val = $('#test-form [name=test-select]').val();
alert(val); // => "B"

もし This is B の部分を取ってきたい場合は以下のJavaScriptでいけます。

var text = $('#test-form [name=test-select] option:selected').text();
alert(text); // => "This is B"

セレクトボックス(複数)

複数だからまたループするのかぁと思ってたら、今回は全てjQueryがやってくれます。なんて便利なんだjQuery。さすがだよ本当。
普通に .val() しましょう。

HTML

<form id="test-form">
  <select name="test-multi-select" size="3" multiple>
    <option value="A">This is A</option>
    <option value="B" selected>This is B</option>
    <option value="C" selected>This is C</option>
  </select>
</form>

JavaScript

var val = $('#test-form [name=test-multi-select]').val();
alert(val); // => ["B", "C"]

ちなみに何も選択されていないときは空の配列で返ってきます。注意しましょう。

フォーム要素全部

フォームの値を全て取ってくることも可能です。
form要素に対して、 .serialize() で送信すると、URLのGETみたいに URLの?以降の部分が取得出来ます。 .serializeArray() で取得すると配列に分解したものが取得出来ます。

HTML

<form id="test-form">
  <input type="text" name="test-text" value="This is text." />
  <select name="test-multi-select" size="3" multiple>
    <option value="A">This is A</option>
    <option value="B" selected>This is B</option>
    <option value="C" selected>This is C</option>
  </select>
</form>

JavaScript

var $form = $('#test-form');
var query = $form.serialize();
var arrVal = $form.serializeArray();
alert(query); // => "test-text=This+is+text.&test-multi-select=B&test-multi-select=C"
alert(arrVal); // => [{name:"test-text", value:"This is text."}, 〜〜〜]

一気にformの値を全て取りたいときはこっちのほうが絶対便利。
やっぱりjQueryって便利ですね。

この記事を読んでいるあなたにおすすめ!

少し古いですがjQueryの使い方の基本はこれを読んでおけば完璧です。

jQueryクックブック
jQueryクックブック
posted with amazlet at 12.09.06
jQuery Community Experts
オライリージャパン
売り上げランキング: 86232
Read more

この記事はonextrapixelに掲載された Really Useful Resources and Tools for Responsive Web Design の内容を日本語訳したものです。

レスポンシブウェブデザインは最近まで小さなトピックの1つでしたが、今ではモバイルやタブレットブラウザをデザイナーやユーザーが最大限活かすべく多くのツールがモバイル端末周辺で開発されています。 レスポンシブデザインが小型端末に限られていないのは、最近公開された多くのツールはモバイルやタブレットの世界にターゲットを定め、綺麗で柔軟性に富むウェブサイトを出来るだけ簡単に構築しようとしているからです。 レスポンシブデザインに取り組むとき、ほとんどのデザイナーが考える最初のことは、メディアクエリーです。

この記事では、メディアクエリーの枠を超え、全てのモバイル用、タブレット用、そしてもちろんデスクトップ用のウェブサイトの見た目を向上させることが出来る、本当に役立つツールやリソースを紹介します。

レスポンシブウェブデザインのためのリソース

タッチイベントを扱う

モバイルやタブレットブラウザーではマウスを使わないことを私たちはわかっています。したがってタッチイベントを扱うことは、モバイルブラウザに対応したウェブサイトにするためにとても重要なことです。タッチイベントの扱いを簡単にしてくれるプラグインを開発者は開発してくれています。

Hammer.JS

ジェスチャーイベントを扱うJavaScriptライブラリーです。これは、タップ、ダブルタップ、ドラッグやトランスフォームに対応しています。このライブラリーは他のプラグインに依存していないライブラリーではあるが、jQueryプラグインとしても使うことが出来ます。

jGestures

ピンチや回転、スワイプ、端末を傾けるなどのジェスチャーイベントに対応するjQueryプラグインです。

Touchy

タッチイベントの扱いを助けてくれるとても軽量なJavaScriptライブラリーです。(2KB以下)jQueryのようなプラグインに依存していないライブラリーです。

レスポンシブグリッドを作成する

グリッドレイアウトは以前から存在していたが、レスポンシブデザインが話題に上がったころから、いくつかの新しいツールは柔軟なグリッドを作成することにより開発者を助けました。

Gridpak

カスタム可能な柔軟なグリッドを作成するオンラインツールです。カラムやパディング、ガターの数を変更することが出来ます。ブレイクポイントを追加出来、CSSを生成し、ダウンロード可能にします。さらにこのツールでは、Photoshop等でデザイン出来るようなPNG形式のグリッドテンプレートを配布していたりします。

FluidGrids

レスポンシブグリッドレイアウトのCSSを生成するもう1つのツールです。

Responsive Calculator

ピクセルデザインをレスポンシブなパーセンテージデザインに変換してくれるオンラインツールです。

Responsive Grid System

レスポンシブグリッドシステムはフレームワークではありません。またひな形にもなっていません。このサイトはレスポンシブウェブサイトを早く、簡単にかつ柔軟に作成する方法をまとめています。

簡単に柔軟で複雑なレイアウトを作成する

ページに合うレイアウトを作成することは、良いJavaScriptの手助けなしではとても複雑になります。柔軟性を保ったグリッドレイアウトを完璧にするための3つのプラグインをここでは紹介します。

Masonry

動的で適応出来るグリッドを作成するjQueryプラグインです。このプラグインはグリッドに合うように要素を再配置するプラグインです。

Isotope

このプラグインも同じように、グリッドに合うように要素を再配置するJavaScriptプラグインです。

The Wookmark jQuery Plugin

グリッド上にあるカラムに合うように自動的に要素を配置し、体系づけるjQueryプラグインです。

レスポンシブデザインでナビゲーションを扱う

小さな画面でナビゲーションを扱う方法は大きな疑問を覚える。ここにあげたリソースや記事はこの疑問に答えてくれることだろう。

Responsive Navigation Patterns

これはツールでもスクリプトでもないが、レスポンシブナビゲーションを扱うときに賛成や反対が出る解決策に対して共通のトレンドをまとめたすべてのデザイナーが読むべき記事です。

TinyNav

ナビゲーションリストを小さな画面向けのドロップダウン型のセレクトリストに変換するjQueryプラグインです。

Mobile Navigation jQuery Plugin

ナビゲーションリンクを小さな画面向けのドロップダウン型のリストに変換するもう1つのjQueryプラグインです。

レスポンシブなスライダー(スワイプを必要としない)

よいスライドショーを持つことは、ポートフォーリオや製品、ただの写真などを効果的に見せるのによい方法であり、ウェブサイトにいくらかの双方向性を持たせることが出来ます。モバイルユーザーにスライドショーを見せるよい方法は開発されています。

Responsive CSS3 Slider

ブラウザーのサイズに合わせたCSS3のスライダーです。このスライダーが備えているよいトリックは、小さな画面では矢印がスライドショーの内部に入り込むことです。CSS3なので、JavaScriptは必要ありません。(ただし、CSS3に対応していないブラウザーのためにJavaScriptが提供されます。)

ResponsiveSlides

番号なしリストを使い、小さなレスポンシブスライダーを作成するjQueryで作られた小さなプラグインです。

Blueberry

ブラウザーサイズに合わせたスライドショーを作成するjQueryプラグインです。

Panoramica

カスタマイズ可能な画像とテキストコンテンツで、ウェブデザイナーが綺麗なスライドを作成することが出来るJavaScriptプラグインです。

スワイプで動くスライダー

レスポンシブスライダーは素晴らしいが、ほとんどのモバイルやタブレットユーザーはネイティブアプリのネイティブアプリではスワイプしているため、スワイプ出来ないスライダーはいらいらすることでしょう。 なのでスワイプジェスチャーで動くスライダーを開発者が作成しました。

Swipe JS

ユーザーが異なるパネル間をスワイプすることが出来る本当に小さなJavaScriptスライダープラグインです。パネルには画像やテキスト、HTMLなどを埋め込むことが出来ます。

Sutunam Swipe Slider

小さなスライダーやフルスクリーンのスライダーになるスライダーです。ユーザーはスワイプや矢印での操作をすることが出来ます。

PhotoSwipe

モバイル上で動くイメージギャラリーやスライダーを作成するもっとも有名なJavaScriptプラグインです。このプラグインはiOSのネイティブ画像ギャラリーに影響されていますが、AndroidやBlackBerryでも同様に動きます。

RetinaDisplay端末のための画像処理

iPad3に新しいRetinaDisplayが搭載されたことにより、表示する画像のクオリティを調節することはより重要になりました。以下にあげるツールは、これらのRetina搭載端末に簡単な解決方法を提供し、よりよいクオリティの画像を提供するツールです。

Adaptative Images

既存のコードを1つも変える必要がなく、訪れたユーザーのスクリーンサイズをはかり、適切な画像を提供することが出来るJavaScriptベースの解決方法です。

Retina Images

RetinaDisplay対応の端末でユーザーが閲覧しているとき、画像を@2xバージョンの画像に変えるJavaScriptベースの解決方法です。これもまた、HTMLコードを変える必要はありません。

Retina.js

Retina端末のユーザーに対して画像を@2xに変えるもう1つのJavaScriptベースのプロジェクトです。このスクリプトはLESSを使用しています。

デザインをテストする

確かにレスポンシブに動くことは素晴らしいことなのですが、誰しもがデザインをテスト出来るモバイル端末やタブレットをもっているとは限りません。なのでレスポンシブデザインをテストするときに役に立つツールを紹介して終わりになります。

Resizer Bookmarklet

これはブックマークバーにドラッグ&ドロップすることで使用することが出来るブックマークレットです。テストしたいページでお気に入りから呼び出し、モバイルブラウザーやスクリーンサイズを設定します。

Screenqueri.es

ピクセル方眼上でデザインすることが出来、いくつかのモバイル端末やタブレットブラウザーのサイズがデフォルトでついているかなり新しいツールです。

Responsivepx

これは探している絶妙な区切り点を発見するのに役立つツールです。

この記事はonextrapixelに掲載された Really Useful Resources and Tools for Responsive Web Design の内容を日本語訳したものです。
レスポンシブデザインに関してここまで徹底的にまとめられている記事は見たことがありませんでした。 これでレスポンシブデザインに関するツールは完璧なんじゃないかと思うくらいです。 ぜひ参考にしてみてください。
Read more

この記事は 18 Free jQuery Plugins for Responsive Web Designing の内容を日本語訳したものです。 最近日本でもレスポンシブウェブデザインが流行ってきていますが、まだまだTipsがたまっていないと思ったため訳しました。 参考にしてみてください。

最近、ウェブデザインでもっとも需要のあるものの1つがレスポンシブレイアウトです。
レスポンシブレイアウトは、デザイナーが何か大きな成果を達成し、かつユニークですばらしいウェブサイトを作る、いくつかの素晴らしいエレメントを提供します。
これらのレスポンシブレイアウトはアイキャッチが強烈なため、簡単にユーザーの目を引くことが出来ます。

これらのレスポンシブレイアウトの更に素晴らしい特徴の1つが、PC、携帯電話、タブレットなど様々な電子機器に最適化された画面サイズに対応する力をデザイナーに与えることです。
テクノロジーの急速な発達により、誰もがレスポンシブウェブサイトを求め、レスポンシブウェブサイトのおかげでどんな電子機器からでも簡単にウェブサイトを見ることが出来るようになります。
レスポンシブレイアウトの人気は、多くの驚くべき特徴や柔軟性を提供出来ることに所以しています。
ウェブサイトが携帯電話やタブレットのような電子機器から見られるとき、全てのウェブサイトは、ナビゲーションや写真、スライダー、フォーム、カルーセルなどを全て最適化する必要があります。

レスポンシブウェブデザイン用のjQueryプラグインはいくらでも利用出来ますが、全てのプラグインが素晴らしく、効率的で、ウェブサイトの完全な最適化をすることが出来るかといえばそうではないでしょう。
そこで、たくさんあるプラグインの中から、素晴らしいプラグインを見つける手助けをするために、レスポンシブウェブデザインをする驚くべきjQueryプラグインを18個リスト化しました。
これらのプラグインは特に、ウェブサイトをよりレスポンシブにすることを助け、操作を簡単にし、ユーザー体験は素晴らしいものになるでしょう。
このリストのプラグインは手作業で選ばれており、プロのデザイナーもアマチュアのデザイナーもこれらのプラグインが有益であると感じることでしょう。なので、これらをチェックし、最も好きなものをピックアップしてください。

Isotope — An exquisite jQuery plugin for magical layouts (商用は有料)

Hoverizr – Responsive jQuery Photo manipulation plugin

Response JS

Responsive Image Gallery with a Thumbnail Carousel

jQuery Masonry — A layout plugin for jQuery

scrolldeck

PhotoSwipe

Supersized – Fullscreen Background Slideshow

The Heads-Up Grid

Elastislide – A Responsive jQuery Carousel Plugin

Transform a Menu to a Dropdown for Small Screens

ResponsiveSlides.js

Automatic Image Montage with jQuery

Doubletake

Blueberry – A responsive jQuery image slider

Adaptive Images in HTML

FitText — jQuery plugin for inflating web type

FitVids.JS

レスポンシブデザインを作成するにあたり、有益なjQueryプラグインがたくさんまとめてありますね。 個人的には、まだレスポンシブなサイトを作ったことはないのですが、作ることがあれば参考にしたいと思います。 何か間違いや質問等ございましたら、以下コメント欄、またはリプライ(@DAI199)までお願いします。
Read more

CakePHPを用いて多言語化をする方法をまとめます。 今のご時世、複数言語でサービスを運用するのは当たり前になりつつあります。 少なくとも1つのサービス内で、日本語、英語くらいは切り替えたいですよね。

今回はi18nを使用して多言語化をはかりたいと思います。 i18nに関しては以下のページを参考にしてみてください。

I18N【国際化】 – IT用語辞典

国際化と地域化 – Wikipedia

それでは多言語化の手順を紹介していきます。

CakePHPのインストール

まずはCakePHPをインストールしましょう。
今回はわかりやすいように

インストール→コントローラ、ビューの作成→i18nを使って多言語化

をしようと思います。
それでは以下からダウンロードしましょう。

CakePHP – github

【tmpフォルダ書き込み権限付与】
解凍してアクセス場所に置いたら、tmp/を書き込み可能にしましょう。

cd path/to/cakephp/app
chmod -R 707 tmp/

【Security.saltの更新】
適当な文字列を生成しましょう。
Config/core.php 内のSecurity.salt,Security.cipherSeed部分を更新しましょう。
いつもがちゃがちゃキーボード叩いて出来るだけランダムにしようとしています。

【データベースの設定】
今回データベースは使いませんがエラーメッセージ出てるのが気持ち悪いので適当なデータベースを設定しておきましょう。
database.php.defaultをコピーして名前をdatabase.phpに変更後、サーバー名などを入力してください。

【routes.phpの設定】
これからHogeController.phpを作成するのだが、デフォルトの状態だとPagesController.phpが表示されてしまう。
以下のように設定しよう。

Router::connect('/', array('controller' => 'hoges', 'action' => 'index'));

とりあえず準備は完了しました。

画像を見てもわかると思いますが、今回はCakePHP2.2.1を使用しています。

Controller,Viewの作成

それではControllerを作成しよう。
Controller/HogesController.phpを作成します。

<?php
class HogesController extends AppController {
        public function index(){

        }
}

特に何もしていない。
次はView。
View/Hoges/index.ctpを作成しよう。

<h2><?php echo __('Intermationalization');?></h2>
<p><?php echo __('Test now');?></p>

ここで (‘ ‘)で囲んだ部分がのちのち、i18nで翻訳する部分です。
翻訳する部分は全て
(‘ ‘)で囲もう!
__はアンダーバー2個なので注意!!

もちろん中にいれる文章が日本語でも問題ない。

※例えば翻訳したい部分に変数などが入っている場合は以下のようにするとなんとかなる。

$lang = 'Japanese';
echo sprintf(__('%s version'), $lang);

それではこれをブラウザで表示してみよう。
以下のようになる。

それではこの画面をi18nを使用して日本語表示にしてみよう。

POファイルを作成する

これからはコンソールで作業する。

cd /path/to/cakephp/Console
./cake i18n -app /path/to/cakephp/app

cakeを実行すると下記のようになる。

---------------------------------------------------------------
I18n Shell
---------------------------------------------------------------
[E]xtract POT file from sources
[I]nitialize i18n database table
[H]elp
[Q]uit
What would you like to do? (E/I/H/Q)
>

POTファイルを作成するので「E」をタイプしてEnterする

What is the path you would like to extract?
[Q]uit [D]one  
[/path/to/cakephp/app/] > 

抽出元は?と聞かれるのでそのままEnterを押す

What is the path you would like to extract?
[Q]uit [D]one  
[D] > 

出力先は?と聞かれるのでこれもそのままEnterを押す

Would you like to extract the messages from the CakePHP core? (y/n) 
[n] > 

1つのファイルに翻訳ファイルをまとめるか聞かれるのでここは「y」にして1つにまとめておく。 「n」にすると別々のファイルで作成される。

出力中…

Processing /home/daiki/public_html/cakephp/app/Controller/HogesController.php...
Processing /home/daiki/public_html/cakephp/app/View/Hoges/index.ctp...
Processing /home/daiki/public_html/cakephp/app/View/Layouts/default.ctp...


Done.

完了したので「Q」を押してスクリプトから抜けだそう。 /cake/to/path/Console に default.potというファイルが出来ているはずである。 この default.pot というファイルを /cake/to/path/Locale/jpn/LC_MESSAGES/ に default.po というファイル名でコピーしよう。 途中のフォルダがない場合は作成しよう。

移動させたファイルである default.po ファイルをテキストエディタでひらいてみよう。

#: View/Hoges/index.ctp:1
msgid "Intermationalization"
msgstr ""

#: View/Hoges/index.ctp:2
msgid "Test now"
msgstr ""

msgidが元の文章、msgstrに翻訳する文章を入れる。 それでは上記のファイルに以下のように書いてみよう。

#: View/Hoges/index.ctp:1
msgid "Intermationalization"
msgstr "国際化"

#: View/Hoges/index.ctp:2
msgid "Test now"
msgstr "テストなう"

上書き保存したら、ブラウザでさきほどの画面を更新してみよう。 以下のように表示されるはずである。

やった!多言語化出来た!!

多言語化のテスト

ただこのままでは国を移動しない限り日本語で表示され続けてしまう。
これはブラウザがサーバーに送信するヘッダー情報から言語情報を抜き出してCakePHPが判断しているからである。
それでは日本にいながら英語を表示するためにはどうしたらいいのか。
以下の関数をAppController.phpのbeforeFilter()にでも書けば英語に戻る。

function beforeFilter() {
    Configure::write('Config.language', 'en');
}

更新してみよう。ほら、英語にもどった!

さて、ここまで作業をした人は気づいたことだろう。
/cake/to/path/Locale に作成した英語のPOファイルを格納するフォルダ名は eng
しかし日本語にするためには Configure::write で指定するときは en
になる。
つまりフォルダ名と関数に指定するものが違うのである。

これはどこで指定しているかというと、 /cake/to/path/lib/Cake/I18n/L10n.php の $_l10nMap で指定してある。
ここでは配列で指定してあるが、キーがLocale内のフォルダ名、値が Configure::writeで指定する文字列となる。

つまりまとめるとこうなる。

例えば中国語を新たに追加するとする。
/cake/to/path/lib/Cake/I18n/L10n.php の $_l10nMapを見てみると中国語は以下のように書いてある。

/* Chinese */ ‘chi’ => ‘zh’,

よって、

◯ /cake/to/path/Locale/chi/LC_MESSAGES を作成し default.poをコピー ◯ テストする場合は Configure::write(‘Config.language’,’zh’);

以下に使うことが多いとおもわれるものをリスト化しておく。参考にしてほしい。

/* Chinese */ ‘chi’ => ‘zh’(英語でChinese)
/* Chinese */ ‘zho’ => ‘zh’(中国語でZhongwen)
/* English */ ‘eng’ => ‘en’
/* French (Standard) */ ‘fre’ => ‘fr’
/* French (Standard) */ ‘fra’ => ‘fr’
/* Japanese */ ‘jpn’ => ‘ja’

これで多言語化は完璧なはず!

もしよかったらいいね!またはツイートを押していただけると嬉しいです。

Read more

毎週Facebookの変更点やニュース、コラムをまとめて配信します。 今週は10個の記事を紹介! 記事は上から時系列順になっています。今週のFacebookを振り返ってみましょう!

Facebook、ソーシャル分析ツール「Swaylo」のThreadsyを買収


Facebook、本社キャンパスにフランク・ゲーリー設計のエンジニア棟を建設へ


Graph APIが拡張されより便利な呼び出しが出来るように


Facebookがあなたのプライバシー判断を誤らせる5つのデザイントリック


Facebookページのファンは、企業にとって1人あたりどれくらいの価値になる?


Facebookチャットで既読であることを相手に伝えないようにするアドオン


Facebookアプリ向けに新たに通知API実装


BingがFacebookとの統合強化、友達の写真を検索可能に


好きなサイズの大きさの画像でプロフィール画像などを取得可能に!


Facebook、電話番号やメールアドレスを利用するターゲティング広告を導入へ

もしよかったらいいね!またはツイートを押していただけると嬉しいです。

Read more

また新たなAPIがFacebook上で実装されました。

Notifications APIというもので、ユーザーに1対1で通知を行うことが出来る機能です。
左上にアプリから通知をすることが出来るって機能ですね。

通知はとても強力なツールになりえますが、その効力を十分に発揮するためには通知内容と、通知頻度に気をつけたほうがよいです。
ユーザーはいつでもアプリからの通知を拒否することが出来るため、内容、頻度ともに十分に気をつけましょう。

Notifications APIを通じて行った通知がうまくいっているかどうかは、アプリ内のInsightで見ることが出来ます。

Insightではどれだけのユーザーに通知を行ったか、またどれだけ拒否されたかなど詳細にわかります。
これを見ながら効果的に通知を行えるように気をつけましょう。
通知をうまく行うためには以下にある「参考」のベストプラクティスをみましょう。

参考資料

Notifications API – Facebook公式ドキュメント

Notifications Guidelines – Notificationsに関するベストプラクティス

何か質問等ありましたら以下コメント欄、またはリプライ(@DAI199)でお願いします。

Read more

Graph APIにフィールド拡張機能が追加されました。

今まで単一グラフのみにアクセスすることが出来たGraph APIですが、今回の仕様変更により、複合グラフにもGraph APIでアクセスすることが出来るようになりました。
今まで複合グラフにアクセス出来たのはFQLのみだったのですが、今回の仕様変更によりGraph APIからも1つの呼び出しで複数のデータにアクセス出来るようになります。

またこれに伴い、Graph API Explorerもアップデートされました。

より直感的に、フィールド拡張機能を使用することが出来るようになっています。

以下の例は、name,birthday,photoを取ってきて、写真は10個、idとpictureフィールドのみを取ってくる呼び出しになります。

GET https://graph.facebook.com/me?fields=name,birthday,photos.limit(10).fields(id,picture)

その他の呼び出しは公式ドキュメントに掲載されています。 今回の仕様変更により、さらに便利にGraph APIを使用することが出来るようになりましたね。

参考

Field Expansion – Facebook公式ドキュメント
Graph API Explorer

何か質問等ありましたら以下コメント欄、またはリプライ(@DAI199)でお願いします。

Read more