ある程度、読み書きができるようになったと思い、力試しのため、
/etc/init.d/vsftpd
を読んでみました。
だいたいは理解できたのですが、一箇所、よくわからない部分があります。
実行結果:
# /etc/init.d/vsftpd start
vsftpd 用の vsftpd を起動中: [ OK ]
と出力されるのですが、スクリプトファイル内のstart関数は、
start() {
(略)
echo -n $"Starting $prog for $site: "
(略)
}
となっています。(vsftpd-2.0.1-5 CentOS)
そのため、
# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
と出るはずなのではないでしょうか?
echo -n $"Starting $prog for $site: "
の"の前の$がポイントのような気もするのですが、
どのような意味を持つのかがわかりません。
($を削除して実行してみたら、英語表記になりました)
なぜ、$の有無によって日本語/英語が切り替わるのでしょうか?
また、
○○用の○○を起動中 [ OK ]
という文字はどこで定義されているのでしょうか?
よろしくお願いいたします。
手元にCentOSの環境がないので、国際化対応の文字データ(.poファイル)の実体の場所がよくわからないですが、bashの「スクリプト内メッセージのカタログ化」機能によってそのように表示されています。
Bashは、A#1の回答のURLにあるので
GetText及び内容の確認について。
GetText
http://ja.wikipedia.org/wiki/Gettext
GetText解説
http://ring.atr.jp/archives/doc/gnu-info-j/gettext/gettext-ja.ht...
定義されている内容の参照方法
cd /usr/share/local/ja/LC_MESSAGES
msgunfmt initscripts.mo
ありがとうございます。
ざっと目を通しました。
.poファイルについての説明ですね。
また、時間があるときに読んでみたいと思います。
ありがとうございます。
まだ、ざっとしか読んでいませんが、文字の自動変換の仕組みがあるのですね。
とりあえず、
/usr/share/locale/ja/LC_MESSAGES
に、.moファイルがあることを確認しました。
この件について、もう少し勉強してみます。