次の例はカタログからメッセージを取り出す方法を示しており、3 つのパートがあります。1 番目のパートはメッセージ・ソース・ファイルを示し、2 番目のパートはカタログ・ファイルを生成するために使う方法を示します。3 番目のパートは、そのカタログを使用したプログラム例です。
メッセージ・カタログは次のように指定します。
example.msg ファイル $quote “ $ every message catalog should have a beginning set number. $set 1 This is the set 1 of messages 1 “Hello world\n” 2 “Good Morning\n” 3 “example: 1000.220 Read permission is denied for the file %s.\n“ $set 2 1 “Howdy\n”
このファイルは、メッセージ・カタログ example.cat を生成するために gencat ユーティリティに次のように入力されます。
gencat example example.msg
#include <locale.h> #include <nl_types.h> char *MF_EXAMPLE = "example.cat" main() { nl_catd catd; int error; (void)setlocale(LC_ALL, “”); catd = catopen(MF_EXAMPLE, 0); /* Get the message number 1 from the first set.*/ printf( catgets(catd,1,1,“Hello world\n”) ); /* Get the message number 1 from the second set.*/ printf( catgets(catd, 2, 1,“Howdy\n”) ); /* Display an error message.*/ printf( catgets(catd, 1, 4,“example: 100.220 Permission is denied to read the file %s.\n“) , MF_EXAMPLE); catclose(catd); }