Gettext
まず、gettextが利用されるようソースコードの修正を行なう。これはほとんどのプログラミング言語において、ソースコード中の文字列がまずgettext関数へ渡されるよう、文字列をラップしていく作業となる。読みやすさやキータイプの手間を省くため gettextには通常 _ のエイリアスが付けられる。C言語では、
を以下のように変更する:
C言語以外にもgettextは以下の言語/シェルコマンドで実装されている: C++、Objective-C、Bourne Shell、Bash、Python、GNU CLISP、Emacs Lisp、librep、GNU Smalltalk、Java、GNU Awk、Pascal、wxWidgets (WxLocaleクラスによる)、YCP、Tcl、Perl、PHP、Ruby、Pike、JavaScript。ほとんどの場合、使用方法はC言語の場合と同様である。
ソースコード修正後、xgettextコマンドを用いて翻訳可能な全ての文字列のリストを保持する .potファイル(「テンプレート」とも呼ばれる)を生成する。.potファイル中のエントリは以下のようになる:
文字列の直前にコメントを置くと、ヘルパプログラムはコメントを翻訳者へのヒントとして扱う。
この例では、コメントは TRANSLATORS: で始まる。そして xgettext は .pot テンプレートファイルを作成する際に翻訳者のためにそのコメントを抽出する。
生成された .pot ファイルにはこのようなコメントが付く。