s3.to 2024 著作権. 不許複製 プライバシーポリシー
gettextは国際化と地域化に対応するライブラリ構成要素の一つであり、様々な地域の言語に対応した地域化ソフトウェアを開発する際に用いられる。gettextライブラリを用いることで、ソフトウェアの対話的メッセージを翻訳された現地語にて容易に表示させることができる。 gettextによるソフトウェア国際化[編集] プログラマ[編集] まず、gettextが利用されるようソースコードの修正を行なう。これはほとんどのプログラミング言語において、ソースコード中の文字列がまずgettext関数へ渡されるよう、文字列をラップしていく作業となる。読みやすさやキータイプの手間を省くため gettextには通常 _ のエイリアスが付けられる。C言語では、
ジュンヤです。 5分でわかる PHP で書かれた Web サービスの国際化(その3)に引き続き、今回が4回目。このシリーズは今回でラストにしたいと思います。 最後は、つい先日βリリースしましたフォト蔵の英語版を例に、メッセージファイルを作成する際や日本語のテキストを英訳する際に気をつけた点をいくつか書きたいと思います。 複数形と単数形の両方が使われる場合は、メッセージファイルに別々に定義する たとえば写真が複数並んでいる箇所の「写真」と写真がひとつしか表示されない部分の「写真」とでは、日本語では同じ「写真」ですが、英語版では、前者は Photos で後者は Photo と表示しなければなりません。メッセージファイルでは以下のように別々に定義しておく必要があります。 # # 日本語メッセージファイル # msgid "Photos" msgstr "写真" msgid "Photo" msg
ジュンヤです。 5分でわかる PHP で書かれた Web サービスの国際化(その2)に続き、今回はメッセージの切替えの例を紹介したいと思います。これらはフォト蔵とその英語版PhotoZou.comで実際におこなっている例です。(厳密に言うとフォト蔵では、gettext ではなく独自の仕組みを使っていますが、基本的な考え方は全く同じなので、以下同じ事例を gettext に引きなおして説明しています。) まずはメッセージの内容の一部を変数にして自由に入れ変えたいという場合。 エラーメッセージで「○○は△△文字以上です。」と表示したいとき、 msgid "%1$s has exceeded the limited capacity of %2$s characters." msgstr "%1$sが%2$s文字以上です。" msgid "Your Comment" msgstr "コメント"
尾藤正人です。 ウノウでは海外公開を前提に事業を展開しているので、ほぼ例外なくプログラムは国際化されています。先日公開した Melovie もちゃんと国際化されていて、ブラウザの言語の設定を変えると英語で表示されます。 最近テンプレートエンジンで Smarty を使い始めたのですが、そのままでは gettext とうまく組み合わせることができないので、ウノウでは独自の仕組みを入れています。日本語だと Smarty で gettext やってる情報が全然ないので、ウノウでやっている方法を紹介したいと思います。 Smarty で gettext を使うときの一番の問題点はメッセージの抽出です。Smarty は PHP とは文法が異なるので、そのままでは xgettext を使ってメッセージを抽出することができません。PHP 側で全てのメッセージを変数に代入するというのも一つの方法ですが、やはり
いわゆるPHP配列なメッセージカタログとgettext拡張モジュール拡張モジュール,gettextのpo形式を扱うPHPスクリプトの3つを用いたベンチマーク. 「the PHP gettext extension is the fastest solution.」 だそうで,結果gettext拡張モジュールが一番早い. 当然の結果です.まぁPHPスクリプトでのメッセージカタログも配列より「$message = "メッセージ";」の方がさらに早いだろうけどそんな形式メンテナンス性悪すぎるのでステでそ.define()も等価. 理由は使用している全メッセージの取得が著しく行いづらい. とりあえず第10回PHP勉強会でもでてきたのですが, 下記は「私がなぜgettextにこだわるか」ってところです. gettextってそんなにいいのか? ぶっちゃけgettextが完璧だ!!というわけではないです
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く