FreeNAS-8.0-RELEASEをほんのり日本語化してみた@未完成

FreeNAS 8.0 をさわってみました。
コレを使うとわりと簡単にファイルサーバーが作れる、様な気がします。
SMBやらをプラウザから操作できたり、ZFSを利用できたりと楽しそうです。

ところでこの操作画面、1つ前の7系では日本語表示があったようですが、8.0においては英語onlyになっています。原因はUIが変更まるごと変更されたため対応が追いついていないからです。
8.0 から利用している身としては何の問題もないのですが、不意に日本語化してみようという思い立ってしまいました。なぜだろう。
作ったものは最後にアドレスを載せておきますが人柱仕様ですのであしからず。全てを翻訳していないどころか、真実がねじ曲げてる部分も...

django

新しいUIは django というPythonのプレームワークが利用されています。
そして、UIのコード自体は多言語化の準備がなされていました。
コレならいける、ということで下記のページを参考に日本語化をしてみました。
http://djangoproject.jp/doc/ja/1.0/topics/i18n.html

めもめも

初期パスワードは freenas
manager.py は django-admin.py のラッパー
manager.py --help
python manager.py makemessage --help
python manager.py cmpilemessages --help

7系の日本語訳をお借りした。
http://support.freenas.org/browser/freenas/legacy/locale/ja.po @ 5958

%(path)s のような後の1文字も構文

うっかりread onlyのまま編集してしまったら、
サスペンドして マウントを行い、
fg で編集を再開して :w! で上書き。
失敗を何とかするのも技量です。と言い張っておく。

TERMってそんなに大切ですか

さぎょー

sshとかで接続して操作します。

su -                                     # ルートになって
cd /usr/local/www/freenasUI/              # UIのディレクトリへ
mount -u /                              # read only を解除
mkdir locale                            # ロケール用ディレクトリ
python manager.py makemessage -l ja    # 不要 < mkdirやら補完で手抜きするため
fetch http://support.freenas.org/export/6282/freenas/legacy/locale/ja.po
cp jp.po locale/ja/LC_MESAGES/django.pm # 7の訳を拾ってきて配置
python manager.py makemessage -l ja    # 改めてロケールの元を作成

locale/ja/LC_MESAGES/django.pm を持ち帰ってちまちま翻訳
その後、もともとあった場所に配置し直す。

python manager.py cmpilemessages -l ja  # 最適化。なくても可

訳自体はこれで完了。つぎは日本語が利用されるように設定。

setenv TERM screen  # screen-256colorだとviが...(自分が悪い・sshの環境依存)
vi settings.py      # 編集 diffっぽく書いてみましたが手書きなの怪しい...
--- /usr/local/www/freenasUI/settings.py.orig
+++ /usr/local/www/freenasUI/settings.py    
@@ -85,8 +85,9 @@
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
+   'django.middleware.locale.LocaleMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'freenasUI.freeadmin.middleware.RequireLoginMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'dojango.middleware.DojoCollector',
)

後はUIを(再)起動するだけ。

service django restart
exit
exit

以上の作業で、ブラウザがjaをリクエストすると日本語ロケールを使ってくれるようになります。
UIの言語の欄をいじっても変わりません。リクエストから判断してもらっています。
強制的に日本語にする場合はこちら。これまた手書き。手動でね。

--- /usr/local/www/freenasUI/settings.py.orig
+++ /usr/local/www/freenasUI/settings.py
@@ -63,1 +63,1
- LANGUAGE_CODE = 'en-us'
+ LANGUAGE_CODE = 'ja' # or ja-jp 

おわりに

8.0のUIは日が浅いため不具合がいくつか残っているようです。
それ以上に翻訳が怪しいです、はい。
たとえ Destroy Volume の訳が ボリュームの作成 でも泣かない方は投げ込んでみてください。
まともな翻訳が欲しい方は大人しく待ちましょう。次のバージョンが出るぐらいまで。UIの翻訳対応もまだまだ不完全です。

*わーにんぐ* 上記の通り全てが壊れてしまってもかまわない人柱向けです。
#で、人柱さんはこんなもの使わなくても扱えるので実質自分用
https://bitbucket.org/wiredool/freenas/src/5432feef8d42/trunk/gui/locale/ja/LC_MESAGES/
英語が分かってないどころか日本語も怪しい人が翻訳を作るとこうなりますorz
カタカナ語を何処まで訳すとか、表記のゆれとか難しいですね。
参考になるページを探して修行しなければ...

  • 画像の追加とパスの修正 23:25ぐらい