‘PHP’ タグのついている投稿

検索エンジンに対応した多言語化方法

検索エンジン(まぁGoogleなんだけど)って、ひとつのURIに対してひとつの言語にしか対応してないんですね。

そんなわけで、単純に内部で言語を切り替えただけではクロールされる言語がひとつになってしまい、問題になってきます。
そこで、多言語に対応したサイトの作り方をメモとして書いておく。

(さらに…)

CodeIgniterのURIルーティングで.htaccessいらず

とりあえず、開発スピードを優先させるためにフルスクラッチで作ってたジオポですけど、これから、国際化対応させたり、DB使う場面が出てくると思うので、PHPのフレームワーク CodeIgniterに変換した。

フルスクラッチは、コントローラーからビューだけをinclude()する方法で作っていたので、置き換えもスムース。そして、スピーディー。

  1. CodeIgniterをダウンロード、展開
  2. .htaccess 書き換え
  3. config.php の設定
    • $config[‘base_url’]    = "http://" . $_SERVER["HTTP_HOST"]; としてローカル環境・本番環境でも切り替え必要なし。
    • //$config[‘index_page’] = "index.php"; コメントアウト
  4. autoload.php の設定
    • ライブラリのuser_agentとコンフィグに独自config
  5. コントローラーをクラス化してやり、少しの書き換え
  6. 同時に独自configファイルを作ってやる
    • サーバ名を見て、ローカルだったらデバッグフラグ立てる
    • Google Maps APIがローカルだと使えない(localhostならいけるけど、プロジェクトごとに projectName.localhostとしてhostsの変更してるので…)
  7. ビューを配置
  8. user_agents.php の書き換え
    • 日本向けの携帯設定と、iPhone判別を追加

こんだけです。多分、1時間もかかってないんじゃないかな?

気づいたこと→routes.phpが素敵

routes.php でクラス、メソッドの呼び出しがマッピングできるんだけど、正規表現が使えるからとっても便利。

今までは、.htaccessでmod_rewriteのために正規表現の条件処理を加えて、パラメータをクエリとして渡してやって、そのクエリをバリデートと分岐させるためにPHPの内部でも正規表現で条件分けしてた。

CodeIgniterだとそんなのいらない、

$route['([0-9a-zA-Z_-]{1,10})'] = "geopo/mapGeopo/$1";

これだけで完了。記述方法もとってもわかりやすい(たしか、Cakeだともっと複雑だった気が)。

そんなこんなで、これから国際化に向けてがんばろうっと。

ブログで取り上げてもらった

ヅラずれなるままに(2009-02-26) – ジオポを試してみた

書いていただき、ありがとうございます。

地図からの選択はわかりにくいかな?あのマーカーがドロップしたときの動きが好きで、あんな仕様にしたんだけど、後で変えて試してみっか。

ジオポをロカポに対応したよ

ここギコ!さんからロカポ(LocaPoint)に対応するとジオポの欠点を補完できるのでは?とアドバイスをいただいたので対応してみました。

(例) http://geopo.at/SW8.HQ9.CR8.PU8
こんな形で http://geopo.at/ にロカポをくっつけてください。ジオポと同じように、見ている環境に対応した地図を表示させます。

(さらに…)