Posted on

ロリポップがリニューアルしたよ

ロリポップ!レンタルサーバーロリポップ!レンタルサーバー

ロリポップがリニューアルしました。いろんな所を工夫して使いやすく見やすい作りになりました。
さらに「ナウでヤングな」にちなんで(強引?)初期費用半額の787円キャンペーンも開催中ですよ。
ということで、これからもよろしくお願いします。

Posted on

Zend_Translateで多言語対応

多言語対応のちょっとしたサービス?を作っているのですが練習がてら奥さんのサイト(フレームワークはCodeIgniter使用)を一部多言語化してみました。ZendFramework の Zend_Translate クラスが色んなパターンでの多言語化アプローチがあるようなので使ってみました。
このアプローチというのは Zend_Translate のアダプタ の事なのですがこれがまた沢山ありまして、、以下一部抜粋。

  • Array — 簡単ですが柔軟性に欠け、contollerに書いちゃうのでプログラマしか扱えない。
  • Csv — シンプルなテキスト形式で高速ですがUnicode 文字で問題が発生するかもしれない。
  • Gettext — linux における GNU の標準形式。
  • Ini — シンプルなテキスト形式で高速。Csvと似てますね。
  • Tmx — アプリケーション間での翻訳の業界標準。XML フォーマット。

などなどと全部で9種類アダプタ。もちろん自作アダプタクラスの組み込みもOK。今後はSQLにも対応するようです。何が良いのか正直分かりませんね。笑
何となくXML形式のフォーマットが良いのでしょうか。

で、今回は簡単なArrayアダプタで。。

1.Front controller
都度コントローラーでインクルードは面倒なので、フロントコントローラー(index.php) に以下の記述を追加する。ロードの直前で良いと思います。

// Zend framework へのインクルードパス設定
ini_set(‘include_path’, PATH_SEPARATOR . APPPATH . ‘libraries/’ );
// Zend_Translate コンポーネントの読み込み
require_once ‘Zend/Translate.php’;

2.Controller
コントローラー側の実装ですがこんな感じです。かなり省略しましたが動くと思います。ロケーションの設定が上手く行かない場合は、$translate->getLocale(); を使って手順を踏めばいけると思います。

// 翻訳ソースの作成
// アダプタarray
$ja = array(
‘title’ => ‘仕事|イラストレーション’,
‘contents’ => ‘仕事’,
);
$en = array(
‘title’ => ‘Works|Illustration’,
‘contents’ => ‘Works’,
);

//Zend_Translateオブジェクト生成(翻訳アダプタの生成)
$translate = new Zend_Translate(‘array’, $ja, ‘ja’);
$translate->addTranslation($en, ‘en’);
$translate->addTranslation($en, ‘en-us’);
$translate->addTranslation($en, ‘ko’);

// 翻訳された値の取得と表示
$translate->setLocale(“auto”);

3.View
最後は表示部。これは簡単。

echo $translate->_(‘title’);
echo $translate->_(‘contents’);

うまく実装できれば以下のようになります。まずは通常。
capcha0

ブラウザで言語設定を 英語(en) に変更。
capcha1

リロードすると英語になります。(肝心なメニューが日本語なのがアレですが・・・)
capcha2

Zend_Translate を使えば容易に多言語化させる事ができます。Zend はもちろんCakePHP、Codeigniter でライブラリとして使えるのでWEBサービスを作る時は是非多言語対応で作ると良いと思います。日本語だけだと正直弱い。ガラパゴスっていわれる所以では・・・。
この辺の事を書くと長くなりそうなので今日はこの辺で(すでに長い!)

Posted on

PHP in Fukuoka 勉強会のお知らせ

あっという間にもう2月も後半・・
今年初めてのPIFの勉強会のとなります。それでもって少しだけしゃべらせて頂きます。

日時
 2009/02/27 (金) 19:00
場所
 AIP Cafe (地図)
内容
題名 「スイーツ(笑)がハモってみた」
スピーカー @pudding @debility 失礼
 cakePHP使いが突如symfonyの世界に放り込まれたお話です。
 両フレームワークの比較がメインになる(予定)。脱線するかもしないかも。
題名 「ZF on CI」
スピーカー @ecogrammer
 題名のとおりやっぱzend frameworkはライブラry)なので、codeigniter上で
 ZFを使った何かになる予定。
参加方法
 GoogleGroup で参加を受け付けてまーす。

勉強会用のサンプルはできた!?ので、後は資料だけ。ちゃんと19時までに来られるか不安ですが頑張ります。
あ、と今週末は codecheck.in によるテキストエディタ勉強会、来月は CakePHP勉強会@福岡 と盛りだくさんです!

Posted on

Twitterコミュニティサービス「Twice」

tksthdnrとkazu69web (codecheck.in) が、Twitterコミュニティサービス「Twice」をリリースしてました!
Twitterコミュニティサービス「Twice」

(以下、ほぼ引用)

「Twice」は、マイクロブログサービス「Twitter」で作ったアカウントを登録して頂く事で、自由にコミュニティを作れるサービスで、コミュニティに登録すると、その時点でコミュニティに参加している人達と自動的に「フォロー」でつながります。また逆に退会すると、コミュニティの皆とは自動的に「リムーブ」されます。 なので、いちいちフォローしなくても、一気につぶやき仲間が増えます!

TwitterがミニSNSとして使えるサービスになっちゃうんですねー。
いつか来るかなーと思ったら、作ってたんですね。

Twitter系コミュニティサービス「Twice」