Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: check the configure option--with-included-gettext on Solaris2.x



笠原です。
ちょっと遅いですが、あけましておめでとうございます。

* From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
* Date: Tue, 26 Dec 2000 19:29:02 JST
> >> 読めれば GNU gettext 利用可と判断、読めなければ利用不可なので、
> >> included gettext を利用する、という分岐にします。いかがでしょうか。
> 
>   をを、なるほど。それでいけそうな気がします。

作ってみました。
参考出品ということでお送りします。(^^)
configure.in の断片とテスト用の gttest.po, gttest.mo です。

もともと namzu 用に作ったものではないので、configure.in は若干も
との形から汎用向けに整形しています。(すみませんが、整形後は未テ
ストです。)

テスト内容ですが、"foo" という文字列を翻訳すると "bar" になると
いう出鱈目なフランス語のメッセージカタログを用意して、実際にテス
トプログラムを走らせてみて、そうなるかどうか試すというものです。

メッセージカタログが読めれば GNU gettext だと判定されて、シェル
変数 GNU_GETTEXT が yes になります。

「foo → bar のどこがフランス語だ」というのは、テストなのでご勘弁
下さい。誤って別のカタログファイルを参照している場合を考慮すると、
かえってあり得ない翻訳のほうが、良いような気がします。
________________________________________________________________
                                    笠原 基之(かさはら もとゆき)
save_LANGUAGE=$LANGUAGE
LANGUAGE=fr
export LANGUAGE

rm -rf .locale
mkdir .locale
mkdir .locale/fr
mkdir .locale/fr/LC_MESSAGES
cp $srcdir/gttest.mo .locale/fr/LC_MESSAGES/gttest.mo
AC_TRY_RUN([
#include <stdio.h>
#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif
#include <libintl.h>

int
main()
{
  const char *p;

#ifdef HAVE_SETLOCALE
  setlocale(LC_ALL, "");
#endif
  bindtextdomain("gttest", ".locale");
  textdomain("gttest");
  p = gettext("foo");
  if (*p == 'b' && *(p + 1) == 'a' && *(p + 2) == 'r' && *(p + 3) == '\0')
    return 0;
  return 1;
}
], 
GNU_GETTEXT=yes,
GNU_GETTEXT=no,
GNU_GETTEXT=yes)
rm -rf .locale
LANGUAGE=$save_LANGUAGE
msgid "foo"
msgstr "bar"
Þ?$,04foobar