Samba-JP Top Page [ News | Documentation | Knowledge Base | Project | Event | Users Group | Mailing List ]

[英語(English)][日本語(Japanese)]

Samba 日本語版インストールの注意点と動作確認方法について

Samba 日本語版を自分でインストールされた方や、新しいプラットフォームに移植される方のために、Samba 日本語版のインストール方法と、Samba 日本語版の各機能が正常に動作しているかどうかを確認する方法を、各機能毎に解説します。
インストール後に実際に利用する際の注意点につきましてはSamba 日本語版利用ガイドをご参照してください。
また、このドキュメントでは Samba オリジナルと同等の設定については、特に記述しておりません。

目次

  1. configure 時の注意点
  2. SWAT (Samba Web 管理ツール)の国際化機能の動作確認方法

configure 時の注意点

Samba 日本語版では、以下の configure オプションが追加されています。
SWAT の国際化機能を利用するためには configure オプションの追加が必須ですので、注意してください。

--with-i18n-swat
SWAT の国際化を有効にします。
このオプションが指定されなかったときは、英語版の SWAT がインストールされます。
リリース1.3までは、デフォルトではメッセージカタログライブラリとして gettext を利用します。GNU gettext ライブラリ以外でも動作するかも知れません。
リリース2.0では、常にSamba日本語版に同梱されている GNU gettext ライブラリを用います。
--with-included-gettext (リリース1.3まで)
Samba 日本語版に同梱されている GNU gettext ライブラリを用います。システムに GNU gettext ライブラリが存在しない場合は、このオプションを利用するのが確実です。
--with-catgets (リリース1.3まで)
システムに catgets ライブラリが存在するときは、そちらを優先的に利用します。動作検証が充分でありません。
--with-swat-langfile=DIR (リリース1.3まで)
SWAT が利用するロケールマップファイル(swat-i18n.txt)の置場所を指定します。通常はデフォルトのまま変更する必要はありません。
--disable-nls
GNU gettext の Native Language Support を利用しません。
--with-swat-def-lang (リリース2.0)
ブラウザが言語を指定しなかった場合にSWATが表示に用いる言語を指定します。特に指定しなかった場合は英語(en)になります。

注意点

リリース1.3までの場合、

  #  ./configure --with-i18n-swat --with-included-gettext 

での configure を強く推奨します。
システムに GNU gettext がインストールされている Linux 等の OS では、単に

  #  ./configure --with-i18n-swat 

だけでも良いでしょう。また、SWAT を利用しない場合は、単に

#  ./configure 

だけでも構いません。この場合、Samba 日本語版の機種依存文字や外字への対応機能だけが有効になります。
将来的には、--with-catgets オプションの指定および --with-included-gettext を指定しないでの configure はサポートされなくなります。 可能な限り、推奨のオプションを使用してください

リリース2.0では

  #  ./configure --with-i18n-swat 

で configure を行います。
必要に応じて --with-swat-def-lang を指定してください。

先頭に戻る


SWAT (Samba Web 管理ツール)の国際化機能の動作確認方法

SWAT の国際化機能は、大きく HTML 切り替え機能と、メッセージカタログ機能とに大別できます。以下各々の機能毎に確認方法を解説します。

先頭に戻る


ブラウザ言語設定の確認

SWAT の国際化機能は HTTP/1.1 で規定された Accept-Language というへッダを用いることで実現されています。従って言語の設定が正しく動作するには以下の2点の確認が必要です。

  1. ブラウザを HTTP/1.1 に対応する設定にする
  2. ブラウザの言語設定で、表示したい言語を優先にする

以下ブラウザ毎の設定方法を示します。

Netscape Navigator 4.x の場合
[編集] - [設定] - [Navigator] - [言語] で、図1 のように表示したい言語(例では「日本語」)が優先になっていることを確認してください。
図1: 言語の設定(Netscape 4.7)
言語の設定(Netscape 4.7)
なお、Netscape 4.x では、常に HTTP/1.1 は有効になっています。
Internet Explorer 4.x および5.x の場合
[コントロールパネル] - [インターネット オプション(IE 5.0 では [インターネット])] - [言語] で、図2 のように表示したい言語(例では「日本語」)が優先になっていることを確認してください。
図2: 言語の設定(Internet Explorer 5.01)
言語の設定(Internet Explorer 5.01)
また、[コントロールパネル] - [インターネット オプション(IE 5.0 では [インターネット])] - 「詳細」タブ で、図3 のように 「HTTP 1.1 を使用」がチェックされていることを確認してください。
図3: HTTP/1.1 の設定(Internet Explorer 5.01)
HTTP/1.1 の設定(Internet Explorer 5.01)
その他のブラウザ
お知らせ下さい :-)

先頭に戻る


HTML ページ切り替え機能

まず、テストに利用するWebブラウザの言語設定を確認してください。確認方法の詳細は ブラウザの設定確認 の項をご覧下さい。ここでは日本語を優先する言語に設定した場合を例にとって解説します。
なお現在のSWATでは、q=パラメータはサポートしておりませんので注意してください。ただし Netscape Navigator および Internet Explore でもサポートされておりませんので通常問題になることはないでしょう。
次に SWAT を動作させるための設定を行った上で、通常と同様に Web ブラウザから接続してください。認証が正しく行われると、図4のようにブラウザで設定した言語の画面が表示されるはずです。

図4: SWAT のホームページ(日本語)
SWAT のホームページ(日本語)

続いてブラウザの言語設定で他の言語を優先にしてみましょう。ここでは英語を優先させた場合を例にとって説明します。キャッシュされたファイルも強制的に再読み込みする必要があるので、Netscape Navigator や Internet Explorer ではシフトキーを押しながらWebブラウザの「再読み込み」ボタンを押して画面を再表示してください、図xx2のように SWAT の表示言語が変更されるはずです。

図xx2: SWAT のホームページ(英語)
SWAT のホームページ(英語)

以上がうまく動作していれば HTML ページ切り替え機能は正常に動作しています。

うまく表示できない場合

HTML ページ切り替え機能は開発中も不具合は発生せずに、非常に安定して動作しています。うまく動作していない場合は以下を確認してみてください。

SWAT がサポートしている言語かどうかをチェック
当然ですが、SWAT 側に言語データが存在しない言語はいくらWebブラウザを設定しても表示できません。
デフォルトで対応している言語は英語と日本語だけです。これ以外の言語を利用しようとしているときは、その言語の HTMLファイルが存在しているかどうかを確認してください。なお一部のファイルが未訳で存在しない場合、そのファイルは英語で表示されますが、その他のファイルは設定された言語で表示できるはずです。
ブラウザが HTTP/1.1 に対応しているかどうかをチェック
古いブラウザや、携帯端末等のブラウザでは、HTTP/1.1 という規格に対応していない場合があります。この場合 SWAT 側でブラウザが表示を要求する言語を認識することができないので、デフォルトの言語(英語)の画面が表示されます。
もちろん最近の Netscape Navigator や Internet Explorer 等のブラウザであれば、HTTP/1.1 に対応していますが、設定で機能をオフにすることは可能です。従って HTTP/1.1 が有効になっているかどうかも併せて確認してください。
ブラウザの言語設定をチェック
ブラウザはHTTP/1.1 に対応しているはずなのに、英語の画面が表示されるという場合は、もう一度ブラウザの言語の設定を確認してみましょう。確認方法の詳細は ブラウザの設定確認 の項をご覧下さい。
ブラウザが Accept-Language へッダのキーワードとして期待した値を送信しているかどうかをチェック
例えば一部の Internet Explorer 3.0 日本語版では、ブラウザは Accept-Language の日本語に対応するキーワードとして ja ではなく jp を送信します。このため、SWAT 側では、要求を正しく解釈できず、デフォルトの言語の画面を送信します。

引き続き、メッセージカタログ機能の確認方法について説明します。

先頭に戻る


メッセージカタログ機能

メッセージカタログ機能は、プラットフォームやコンパイルオプションによってはうまく動作しない可能性があります。オプションを変更してコンパイルを行った際には、再確認を行うことを推奨します。
HTMLページ切り替え機能の確認に引き続き、例えば「動作」アイコンをクリックしてください。図xx8のように各パラメータの説明が日本語化された画面が現れれば、HTML ページ切り替え機能はうまく動作しています。

図xx8: SWAT のステータスページ(日本語の例)
SWAT のホームページ(日本語の例)

図xx3のように、アイコンが日本語化されているにも関わらず、ページ中の説明が英語のままだという場合は、HTMLページ切り替え機能のみが動作しており、メッセージカタログ機能はうまく動作していません。

図xx3: SWAT のステータスページ(日本語がうまく表示できていない例)
SWAT のホームページ(日本語がうまく表示できていない例)

うまく動作しない場合

うまく動作しない理由としては、以下の二つが考えられます。

configure オプションの確認
繰り返しになりますが、以下のように
    ./configure --with-i18n-swat --with-included-gettext 
  
オプションで configure を行ったことを確認してください。 Samba 日本語版は基本的に上記のオプションでのみ動作を確認しています。
GNU gettext が最初から存在する Linux 等のプラットフォームおよび別途 GNU gettext をインストールした環境では --with-included-gettext なしでの動作も確認しています。
make コマンドの仕様確認と msgfmt コマンドの存在確認
バージョン 0.99 までは、システムに gettext パッケージに含まれる msgfmt コマンドがインストールされておらず、ソースとターゲットファイルの日付の同じ場合を処理の対象とする make コマンド(HP-UX 付属の make 等)を用いて make している場合、make install が中断してしまうという問題がありました。しかも、これは一見正常にインストールされたかのように見えてしまいます。
図xx1のように、msgfmt コマンドが見つからないといったエラーが発生して make install が中断されている場合は、Samba のインストールが正常に行われておらず、結果としてメッセージカタログ機能がうまく動作しません。
図xx1: make install の失敗例

hp-ux#make install
Using FLAGS =  -O -Iinclude -I./include -I./ubiqx -I./smbwrapper -D_HPUX_SOURCE -D_POSIX_SOURCE -DSMBLOGFILE="/var/log/samba/log.smb" -DNMBLOGFILE="/var/log/samba/log.nmb" -DCONFIGFILE="/opt/local/samba/lib/smb.conf" -DLMHOSTSFILE="/opt/local/samba/lib/lmhosts"   -DSWATDIR="/opt/local/samba/swat" -DSBINDIR="/opt/local/samba/bin" -DLOCKDIR="/var/log/samba/locks" -DSMBRUN="/opt/local/samba/bin/smbrun" -DCODEPAGEDIR="/opt/local/samba/lib/codepages" -DDRIVERFILE="/opt/local/samba/lib/printers.def" -DBINDIR="/opt/local/samba/bin" -DHAVE_INCLUDES_H -DI18N_PACKAGE="i18n_swat" -DI18N_LOCALEDIR="/opt/local/samba/share/locale" -DI18N_LOCALE_FILE="/opt/local/samba/lib/swat-i18n.txt" -Iintl -I./intl -DPASSWD_PROGRAM="/bin/passwd" -DSMB_PASSWD_FILE="/opt/local/samba/private/smbpasswd"
Using FLAGS32 =  -O -Iinclude -I./include -I./ubiqx -I./smbwrapper -D_HPUX_SOURCE -D_POSIX_SOURCE -DSMBLOGFILE="/var/log/samba/log.smb" -DNMBLOGFILE="/var/log/samba/log.nmb" -DCONFIGFILE="/opt/local/samba/lib/smb.conf" -DLMHOSTSFILE="/opt/local/samba/lib/lmhosts"   -DSWATDIR="/opt/local/samba/swat" -DSBINDIR="/opt/local/samba/bin" -DLOCKDIR="/var/log/samba/locks" -DSMBRUN="/opt/local/samba/bin/smbrun" -DCODEPAGEDIR="/opt/local/samba/lib/codepages" -DDRIVERFILE="/opt/local/samba/lib/printers.def" -DBINDIR="/opt/local/samba/bin" -DHAVE_INCLUDES_H -DI18N_PACKAGE="i18n_swat" -DI18N_LOCALEDIR="/opt/local/samba/share/locale" -DI18N_LOCALE_FILE="/opt/local/samba/lib/swat-i18n.txt" -Iintl -I./intl -DPASSWD_PROGRAM="/bin/passwd" -DSMB_PASSWD_FILE="/opt/local/samba/private/smbpasswd"
Using LIBS = -lsec ./intl/libintl.a
        file=./`echo en | sed 's,.*/,,'`.gmo \
          && rm -f $file && PATH=../src:$PATH msgfmt -o $file en.po
sh[2]: msgfmt:  not found.
*** Error exit code 127

Stop.
        /bin/sh ./install-sh -d -m 0755 \
        /opt/local/samba /opt/local/samba/bin /opt/local/samba/bin /opt/local/samba/lib /var/log/samba /opt/local/samba/lib/codepages /opt/local/samba/swat /opt/local/samba/swat/using_samba
Installing bin/smbd as /opt/local/samba/bin/smbd
Installing bin/nmbd as /opt/local/samba/bin/nmbd
アーカイブ中に含まれる source/po/*.gmo ファイルの日付を更新して、対応する *.po よりも新しくすれば問題の発生を抑止できますが、バージョン 0.991 以降ではこの問題は修正されておりますので、できればそちらをお使い下さい。
関数仕様の不具合
現在までのところメッセージカタログ機能が動作しない原因の多くは、プラットフォームによるロケール関連関数の細かい仕様の差です。 残念ですが、この不具合を修正するにはソースの改修しかありません。
このような状態が発生してしまった時は、是非 sugj-tech メーリングリストまでご一報下さい。投稿はどなたでも行えます。
もし、議論に加わりたい場合は、sugj-tech への参加方法をご覧の上で参加してください。

Samba 日本語版のホームに戻る