PHP国際化プログラミング gettextを使った国際化 PHPはgettextのメッセージ管理をサポートしているので、ユーザーロケールに基づいて、ラベルやメッセージのテキストを切り替えることができます。 以下は、World Wide NaviのPHPの文字列外部化のサンプルを使った、基本的なgettextのステップです。 ローカライズする文字列をgettext関数に配置 ローカライズしたい文字列をgettext関数(殆どの場合、'_()')内に配置します。 これらの文字列は、各外部リソースファイルによってローカライズ(翻訳)されます。 echo "Hello from PHP!"; -> echo _("Hello from PHP!"); 初期化コードを記述 ユーザーロケール(言語と地域)を適用し、リソースの名前とパスをgettextの仕組みに教えます。 index.php (または他
はじめに 便利な GUI ツールたち 昨今では、翻訳をするにも、GUI なツールや、web ベースのフレームワークなんかがいろいろあったりして、下手をすると、コマンドラインを使わなくても翻訳作業ができたりします。 スタンドアローンのツールとしては、たとえば po エディターの Poedit があります。これは po だけでなく mo ファイルを書き出すことができます。KDE の Lokalize は、プロジェクト管理に使うことを想定しており、もっといろんな機能がついています。 web ベースのシステムとしては、3日目で紹介されている pootle 、6日目で紹介されている Transifex、10日目で紹介されている Translation wiki や、Launchpad などがあります。 一翻訳者としてなら、コマンドラインを一切使わずに作業することはふつうにあることでしょう。 コマンド
翻訳ファイル作成の 3 ステップ 先日、プラグインとテーマのローカライズについて主にプラグインやテーマの開発者の視点に立って書きましたが、今度は翻訳をする人の立場で見てみたいと思います。 gettext の翻訳ファイル作成をサポートするツールはいくつかあるようですが、Windows では poEdit が使えます。poEdit の現時点での最新バージョンは 1.3.4 です。 poEdit を使った翻訳ファイル作成作業の流れは次の各段階に分かれます。 ソースコードから翻訳対象のテキストを自動抜粋、.po ファイルを生成する。 翻訳対象となるテキストは __() と _e() のところなので、poEdit はソースファイルをサーチして自動で収集してくれます。生成される .po ファイルはテキストフォーマットのファイルで、次の翻訳作業で編集に使われます。 .po ファイルを編集、翻訳作業を行な
extentionのgettextを利用可能にする php_gettext.dllのコメントアウトはずすとか--with-gettextでコンパイルするとか gettextのmoファイルを下記に配置 プロジェクトディレクトリ/locale/ja/LC_MESSAGES/{APPID}.mo APPIDは大文字 テンプレートの国際化 Smartyのmodifierプラグインを利用する {"message"|i18n} アクションフォームの国際化 {APPID}_ViewClassのgetFormNameメソッドをオーバーライド function getFormName($name, $action, $params) { $af =& $this->_getHelperActionForm($action, $name); if ($af === null) { return $name;
尾藤正人です。 ウノウでは海外公開を前提に事業を展開しているので、ほぼ例外なくプログラムは国際化されています。先日公開した Melovie もちゃんと国際化されていて、ブラウザの言語の設定を変えると英語で表示されます。 最近テンプレートエンジンで Smarty を使い始めたのですが、そのままでは gettext とうまく組み合わせることができないので、ウノウでは独自の仕組みを入れています。日本語だと Smarty で gettext やってる情報が全然ないので、ウノウでやっている方法を紹介したいと思います。 Smarty で gettext を使うときの一番の問題点はメッセージの抽出です。Smarty は PHP とは文法が異なるので、そのままでは xgettext を使ってメッセージを抽出することができません。PHP 側で全てのメッセージを変数に代入するというのも一つの方法ですが、やはり
ジュンヤです。 5分でわかる PHP で書かれた Web サービスの国際化 に続いて gettext の話。 以下、英語で「Hello」、日本語で「こんにちは」と表示する簡単なプログラム hello.php です。 <?php $language = 'en'; if (ereg('ja', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $language = 'ja_JP'; } // Set locale and default domain. putenv("LANG=$language"); setlocale(LC_ALL, $language); $domain = 'messages'; bindtextdomain($domain, "/var/www/html/locale"); textdomain($domain); // Output e
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く