GetTextとは? わかりやすく解説

Gettext

導入

gettext 関数は、NLS (Native Language Support) API を実装するもので、 PHP アプリケーションを国際化する際に使用することが可能です。 これらの関数の詳細については、システムの gettext ドキュメントを 参照するか、 » http://www.gnu.org/software/gettext/manual/gettext.html のドキュメントをごらんください。

要件

以下の関数を使用するには、» http://www.gnu.org/software/gettext/gettext.html から GNU gettext パッケージをダウンロードし、インストールする必要があります。

インストール手順

PHP で GNU gettext サポートを有効にするには、オプション --with-gettext[=DIR] を追加する必要が あります。ただし、DIR は gettext をインストールするディレクトリで、 デフォルトは /usr/local です。

実行時設定

設定ディレクティブは定義されていません。

リソース型

リソース型は定義されていません。

定義済み定数

定数は定義されていません。

目次

bind_textdomain_codeset — DOMAIN メッセージカタログから返されるメッセージの文字エンコーディングを指定する
bindtextdomain — ドメインのパスを設定する
dcgettext — 単一の参照に関するドメインを上書きする
dcngettext — dcgettext の複数形版
dgettext — 現在のドメインを上書きする
dngettext — dgettext の複数形版
gettext — 現在のドメインのメッセージを参照する
ngettext — gettext の複数形版
textdomain — デフォルトドメインを設定する

gettext

(PHP 4, PHP 5)
gettext — 現在のドメインのメッセージを参照する

説明

string gettext ( string message )
現在のドメインのメッセージを参照します。

パラメータ

message


返り値

翻訳テーブルに翻訳文字列が見つかった場合にその文字列、 あるいは見つからなかった場合に元の文字列を返します。

例 721. gettext() のチェック
<?php
// ドイツ語に設定します
setlocale(LC_ALL, 'de_DE');

// 変換テーブルの場所を指定します
bindtextdomain("myPHPApp", "./locale");

// ドメインを選択します
textdomain("myPHPApp");

// 翻訳内容は ./locale/de_DE/LC_MESSAGES/myPHPApp.mo から検索されます

// テストメッセージを出力します
echo gettext("Welcome to My PHP Application");

// あるいは、gettext() のかわりに _() も使用可能です
echo _("Have a nice day");
?>


注意

注意: You may use the underscore character '_' as an alias to this function.

参考

setlocale()


gettext

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/20 02:59 UTC 版)

gettext
開発元 GNUプロジェクト
最新版
0.23[1]  / 2024年12月1日 (2か月前)
リポジトリ
対応OS クロスプラットフォーム
種別 ライブラリ
ライセンス GPL (0.17以後のlibintlはLGPLに改変 以前はGPL その他全てはGPL)
公式サイト https://www.gnu.org/software/gettext/
テンプレートを表示

gettext国際化と地域化に対応するライブラリ構成要素の一つであり、様々な地域の言語に対応した地域化ソフトウェアを開発する際に用いられる。gettextライブラリを用いることで、ソフトウェアの対話的メッセージを翻訳された現地語にて容易に表示させることができる。

gettextによるソフトウェア国際化

プログラマ

まず、gettextが利用されるようソースコードの修正を行なう。これはほとんどのプログラミング言語において、ソースコード中の文字列がまずgettext関数へ渡されるよう、文字列をラップしていく作業となる。読みやすさやキータイプの手間を省くため gettextには通常 _ のエイリアスが付けられる。C言語では、

printf("My name is %s.\n", my_name);

を以下のように変更する:

printf(_("My name is %s.\n"), my_name);

C言語以外にもgettextは以下の言語/シェルコマンドで実装されている: C++Objective-CBourne ShellBashPythonGNU CLISPEmacs Lisp、librep、GNU SmalltalkJavaGNU AwkPascalwxWidgets (WxLocaleクラスによる)、YCP、TclPerlPHPRubyPikeJavaScript。ほとんどの場合、使用方法はC言語の場合と同様である。

ソースコード修正後、xgettextコマンドを用いて翻訳可能な全ての文字列のリストを保持する .potファイル(「テンプレート」とも呼ばれる)を生成する。.potファイル中のエントリは以下のようになる:

#: src/name.c:36
msgid "My name is %s.\n"
msgstr ""

文字列の直前にコメントを置くと、ヘルパプログラムはコメントを翻訳者へのヒントとして扱う。

// TRANSLATORS: %s はそのままにして下さい。プログラムが変更します。
printf(_("My name is %s.\n"), my_name);

この例では、コメントは TRANSLATORS: で始まる。そして xgettext は .pot テンプレートファイルを作成する際に翻訳者のためにそのコメントを抽出する。

$ xgettext --add-comments=TRANSLATORS:

生成された .pot ファイルにはこのようなコメントが付く。

#. TRANSLATORS: %s はそのままにして下さい。プログラムが変更します。
#: src/name.c:36
msgid "My name is %s.\n"
msgstr ""

翻訳者

ソースコードを元に生成されたpotファイルを雛形としてpoファイルの翻訳を行いリソースファイルmoを生成する。
翻訳作業における全体の手順

翻訳者はまず、上記のテンプレートを入力として、msginitコマンドにより、翻訳リソースファイル(.poファイル)の初期状態のものを生成し、それに対して翻訳作業を行っていく。日本語への翻訳作業を行なう場合であれば、

$ msginit --locale=ja --input=name.pot

を実行し、これにより ja.poファイルが生成される。ファイル内部のエントリは以下のようになる:

#: src/name.c:36
msgid "My name is %s.\n"
msgstr ""

翻訳者は手作業あるいは Poeditのようなツールによりこれらを編集する。編集後は以下のようになる:

#: src/name.c:36
msgid "My name is %s.\n"
msgstr "私の名前は %sです。\n"

最終的に、.poファイルは msgfmtコマンドにより .moのバイナリファイルにコンパイルされ、この状態で、該当ソフトウェアパッケージの一部として配布されることになる。

ユーザ

UNIXライクなシステムにおけるユーザは、ロケールLANGUAGE環境変数LANGにセットする。ここでLANGUAGEは、IETF言語タグに基づく値である。

LANG=LANGUAGE [2]

例えばシステムのエンコーディングUTF-8であり日本国 (JP) の日本語 (ja) を話すユーザの場合、LANGUAGEは(IETF言語タグのハイフォンをアンダースコアに置き換えて)ja_JP.UTF-8をとる。

LANG=ja_JP.UTF-8

システムが環境変数より翻訳リソースを検索し(.moファイル中に該当言語のリソースがありさえすれば)、アプリケーションにその言語による表示を行わせることができる。

脚注

  1. ^ "gettext-0.23 released [stable"]; 作品または名前の言語: 英語; 出版日: 2024年12月1日; 閲覧日: 2024年12月1日.
  2. ^ Bourneシェルの場合。環境変数の設定方法はシェルにしたがうので、Cシェルならばsetenv LANG LANGUAGEのようになる。

関連項目

外部リンク


gettext

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/05 22:40 UTC 版)

国際化と地域化」の記事における「gettext」の解説

プログラム中の文字列ローカライズ地域化)を支援するツール

※この「gettext」の解説は、「国際化と地域化」の解説の一部です。
「gettext」を含む「国際化と地域化」の記事については、「国際化と地域化」の概要を参照ください。

ウィキペディア小見出し辞書の「GetText」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「GetText」の関連用語

GetTextのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



GetTextのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのgettext (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの国際化と地域化 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS