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

Weblio 辞書 > 辞書・百科事典 > 百科事典 > GNU_gettextの意味・解説 

gettext

(GNU_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のようになる。

関連項目

外部リンク




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

辞書ショートカット

すべての辞書の索引

「GNU_gettext」の関連用語

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

   

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



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

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのgettext (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS