Eee Note EA800 日本語化計画 ver 20110203

注:ver 20110318作りました


というわけで、とりあえず、ASUS Eee Note EA800のインタフェースを日本語にする仕組みを公開してみます。

まだ文字配置とかちゃんと精査していないですが、75%ぐらいは日本語にしたと思います。

1. ea800-ja-20110203.zip ea800-ja-20110318.zipをダウンロード
2. microSD内に上記ファイルを解凍する
3. そのmicroSDをEA800に入れる
4. EA800の電源を切る
5. EA800を起動する
6. 起動したら、もう1度電源を切る
7. microSDを抜く
8. また電源を入れる
9. 日本語になってる・・・はず

日本語をやめる時は、dvt_checkを下記内容に書き換えればokのはず

#!/bin/sh
cp /mnt/extsdcard/trans/sys.config.org /eTablet/etc/setting/sys.config 

あ、電子書籍リーダで、「本を買う」リンクに青空文庫を入れてますが、ちゃんと動作するってわけでなく、なんとなくしゃれで入れてるだけなので注意してください。

Eee Note EA800 日本語化計画 調査中 その2

その1で想定していた通り、Qtの翻訳機能を活用して、日本語用のファイルを作成することはできました。
そして、sys.config書き換えと、言語ファイルの配置により、↓のような画面を作成することができました。

さしあたってツールも使わずにemacsを使った手編集で、まずは最初のメニュー画面(launcher)と電子書籍リーダ(bookreader)についての編集を行いました。
なにぶん手編集で、勢いに任せて翻訳したため、翻訳の細かな差異が発生してしまっていたり、翻訳後の文字数が多くなりすぎてちゃんと表示されなくなってたりしています。
そこらへんを整理しなおしてから、リリースしたいと考えています。

Eee Note EA800 日本語化計画 調査中 その1

ASUS Eee Note EA800のインタフェースを日本語にしようと、調査中。
その途中経過の報告です。

内蔵microSDHCカードのパーテーション5番の/local/eTabletディレクトリ以下にメインメニューに表示されるアプリ群が入っている。

binディレクトリ内に各アプリケーションが入っており、stringsをかけてみると、英語のメッセージが出てくる。
translatorディレクトリの中にアプリ名のディレクトリがあり、その中に「アプリ名_tc.qm」といったファイルがある。
「tc」というのは、システム内部の「/eTablet/etc/setting/sys.config」で指定されている「default=tc」の値にひも付いていると想定される。

公開されているソースコードにQtがある、拡張子が「.qm」ということから考えると、アプリはQtで作成されており、アプリが表示するメッセージについては、Qtの国際化の仕組みを利用しているものと想定される。

さて、Qtの国際化を調べてみる。

Qtの場合、拡張子「.ts」のxmlファイルを記述し、.qmを作成しているらしい。
今回、.tsの元ファイルは無いので、qmからtsが生成できるのか?、という点が重要である。

「qt qm ts」でググるとML:q-interestのConverting *.qm to *.tsという質問記事がでてきて、「できないよー」と言われてるからあきらめかけてたんだけど、よく見てみれば、2001年の記事。

さらに調べてみると、技評の2009年記事が出てきた。

進化するQt-Qt最新事情2009 第5回 Qt Linguistの進化
「バイナリの.qmファイルがテキストフォーマットの.tsなどに変換できるようになったのは,内容を確かめるのにとても便利です。」
まじで!?

なので、現在、qtをコンパイルして、必要な環境の構築中。
バイナリ配布のやつはCentOS 5.5だと「/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9′ not found 」と言われて実行できないんですよ・・・
LD_LIBRARY_PATHとかLD_PRELOADとかを駆使してごまかせばいいんですけど、それをやるよりは、まずは正攻法かな、ということころで・・・

その2へ続く

EA800の登録フォント一覧

ASUS Eee Note EA800で使用するフォントは、「/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/fonts/」にある模様。
なので、リストをとってみたところ、後述のようなフォントがあった。

デフォルトで使用するフォントの指定は「/eTablet/etc/setting/sys.config」のfontセクションだと思われるが、そこでは「DejaVu Sans」となっている。
でも、日本語の内容を表示させた時の見た目としては、Androidでよく見かける中華フォント(俗称)っぽいんだけどなぁ・・・と思っていたんですが、「DroidSansFallback.ttf」なんてものを発見。
これはまさしくAndroidの中華フォント(俗称)。ライセンス的に収録できて、なおかつ、ファイルサイズ的に有利な多言語対応フォントですから、採用されてるっぽいです。

-rw-r--r--    1 root     root       466696 Nov  1 14:10 DejaVuSans-Bold.ttf
-rw-r--r--    1 root     root       441736 Nov  1 14:10 DejaVuSans-BoldOblique.ttf
-rw-r--r--    1 root     root       434576 Nov  1 14:10 DejaVuSans-Oblique.ttf
-rw-r--r--    1 root     root       622020 Nov  1 14:10 DejaVuSans.ttf
-rw-r--r--    1 root     root       229460 Nov  1 14:10 DejaVuSansMono-Bold.ttf
-rw-r--r--    1 root     root       177780 Nov  1 14:10 DejaVuSansMono-BoldOblique.ttf
-rw-r--r--    1 root     root       184896 Nov  1 14:10 DejaVuSansMono-Oblique.ttf
-rw-r--r--    1 root     root       237788 Nov  1 14:10 DejaVuSansMono.ttf
-rw-r--r--    1 root     root       201516 Nov  1 14:10 DejaVuSerif-Bold.ttf
-rw-r--r--    1 root     root       180948 Nov  1 14:10 DejaVuSerif-BoldOblique.ttf
-rw-r--r--    1 root     root       179872 Nov  1 14:10 DejaVuSerif-Oblique.ttf
-rw-r--r--    1 root     root       210416 Nov  1 14:10 DejaVuSerif.ttf
-rw-r--r--    1 root     root      3081908 Nov  1 14:10 DroidSansFallback.ttf
-rw-r--r--    1 root     root          915 Nov  1 14:10 README
-rw-r--r--    1 root     root        75363 Nov  1 14:10 UTBI____.pfa
-rw-r--r--    1 root     root        72834 Nov  1 14:10 UTB_____.pfa
-rw-r--r--    1 root     root        74892 Nov  1 14:10 UTI_____.pfa
-rw-r--r--    1 root     root        72354 Nov  1 14:10 UTRG____.pfa
-rw-r--r--    1 root     root        65932 Nov  1 14:10 Vera.ttf
-rw-r--r--    1 root     root        63208 Nov  1 14:10 VeraBI.ttf
-rw-r--r--    1 root     root        58716 Nov  1 14:10 VeraBd.ttf
-rw-r--r--    1 root     root        63684 Nov  1 14:10 VeraIt.ttf
-rw-r--r--    1 root     root        55032 Nov  1 14:10 VeraMoBI.ttf
-rw-r--r--    1 root     root        49052 Nov  1 14:10 VeraMoBd.ttf
-rw-r--r--    1 root     root        54508 Nov  1 14:10 VeraMoIt.ttf
-rw-r--r--    1 root     root        49224 Nov  1 14:10 VeraMono.ttf
-rw-r--r--    1 root     root        60280 Nov  1 14:10 VeraSe.ttf
-rw-r--r--    1 root     root        58736 Nov  1 14:10 VeraSeBd.ttf
-rw-r--r--    1 root     root        40766 Nov  1 14:10 c0419bt_.pfb
-rw-r--r--    1 root     root        39511 Nov  1 14:10 c0582bt_.pfb
-rw-r--r--    1 root     root        40008 Nov  1 14:10 c0583bt_.pfb
-rw-r--r--    1 root     root        39871 Nov  1 14:10 c0611bt_.pfb
-rw-r--r--    1 root     root        33799 Nov  1 14:10 c0632bt_.pfb
-rw-r--r--    1 root     root        35229 Nov  1 14:10 c0633bt_.pfb
-rw-r--r--    1 root     root        34869 Nov  1 14:10 c0648bt_.pfb
-rw-r--r--    1 root     root        35118 Nov  1 14:10 c0649bt_.pfb
-rw-r--r--    1 root     root       126064 Nov  1 14:10 cour.pfa
-rw-r--r--    1 root     root       126868 Nov  1 14:10 courb.pfa
-rw-r--r--    1 root     root       125201 Nov  1 14:10 courbi.pfa
-rw-r--r--    1 root     root       122124 Nov  1 14:10 couri.pfa
-rw-r--r--    1 root     root        54914 Nov  1 14:10 cursor.pfa
-rw-r--r--    1 root     root         3109 Nov  1 14:10 fixed_120_50.qpf
-rw-r--r--    1 root     root         2567 Nov  1 14:10 fixed_70_50.qpf
-rw-r--r--    1 root     root       263331 Nov  1 14:10 japanese_230_50.qpf
-rw-r--r--    1 root     root        77488 Nov  1 14:10 l047013t.pfa
-rw-r--r--    1 root     root        78101 Nov  1 14:10 l047016t.pfa
-rw-r--r--    1 root     root        77941 Nov  1 14:10 l047033t.pfa
-rw-r--r--    1 root     root        78500 Nov  1 14:10 l047036t.pfa
-rw-r--r--    1 root     root        70121 Nov  1 14:10 l048013t.pfa
-rw-r--r--    1 root     root        72496 Nov  1 14:10 l048016t.pfa
-rw-r--r--    1 root     root        72332 Nov  1 14:10 l048033t.pfa
-rw-r--r--    1 root     root        71902 Nov  1 14:10 l048036t.pfa
-rw-r--r--    1 root     root        93860 Nov  1 14:10 l049013t.pfa
-rw-r--r--    1 root     root        92799 Nov  1 14:10 l049016t.pfa
-rw-r--r--    1 root     root       102798 Nov  1 14:10 l049033t.pfa
-rw-r--r--    1 root     root        94877 Nov  1 14:10 l049036t.pfa
-rw-r--r--    1 root     root         1602 Nov  1 14:10 micro_40_50.qpf
-rw-r--r--    1 root     root      1215089 Nov  1 14:10 unifont_160_50.qpf

そんなわけで、フォント変更したい人へのヒント
・/usrパーテーションはreadonlyなので、read/write可にしなければいけない
・/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/fonts/にttfファイルをおけばいい
・sys.configを書き換えればフォントを書き換えられるかと「モトヤLベルマリ3等幅」としてみたがうまくいかなかった
・Android的にDroidSansJapanese.ttfでもおけばいいかな?と期待したが、うまく行かず、DroidSansFallback.ttfを置き換えた
・成功したらdvt_checkスクリプトのファイル名を変更しておかないと、毎回電源on時に実行されるので注意

変更前のサンプル

モトヤLベルマリ3等幅に変更したサンプル

ちなみに以下にあげた文字が中華フォントを使う際に違和感を覚えるものです。

液状「化」
後「悔」
雲「海」
常軌を「逸」した
「羅」列
「突」然
「終」末
「空」中

これ以外だと「今」とか「~」とかがあります。

台湾版EA800を英語表記に変える

開腹手術しなくてもASUS Eee Note EA800 台湾版のインタフェースを英語にする方法が発見されました。
ネタ元:#54 wahaha432さんの書き込み

手法のまとめ
・EA800の外部microSDHCスロットに指すmicroSDHCカード内に「dvt_check」を置くと起動時に読み込まれる
・EA800内部の「/eTablet/etc/setting/sys.config」に「default=tc」とあるのを「default=en」に変える
・というわけなので、microSDHCカード内に「dvt_check」というファイルを作ってsys.configを書き換えるスクリプトを書く
・dvt_checkファイルはUTF-8で、改行コードはLFで作る

で、どうすればいいのか?

1.microSD/microSDHCカードを用意します
2.TeraPadなどを使って「dvt_check」というファイルをカードの一番上のディレクトリに作ります。txtなどの拡張子をつけないこと
3.以下を書きます

#!/bin/sh
cp /eTablet/etc/setting/sys.config /mnt/extsdcard/enote/old.sys.config
sed -e 's/default=tc/default=en/' /eTablet/etc/setting/sys.config > /mnt/extsdcard/enote/sys.config
cp /mnt/extsdcard/enote/sys.config /eTablet/etc/setting/

4.上記の改行コードはLFで保存します
5.microSD/microSDHCカードに「enote」というディレクトリを作成します。
6.EA800にカードを挿します
7.EA800のスイッチを長押しして、shutdownし、そして電源を入れ直す。
8.起動完了すると英語になっている。

これでうまく行かない場合は、初期化が必要らしい
・「設定」を開き、2ページ目の「回復出廠状態:執行」を選択し、「確定」する
・再起動し、画面に「Formatting user partition, please wait…」と表示されますのでしばらく待ちます
・画面に「Please Reboot the eNote」と出たら底面左隅にある「RESTART」ボタンを押します。

英語版にしたことによる影響
・画面が英語になる
・漢字対応の文字サイズでデザインされているので、英語で表示すると文字が大きすぎて若干切れるところがある
・日本語の表示状態は台湾版の時と変わらずにちゃんと表示できる
・Firmwareのバージョンは台湾版(V1.0.5.81 TW)のまま変化はない
・Eee Note SyncでバックアップしてあったデータはRestoreできるけど、設定の反映状況が少しおかしい気がする
・ブラウザは英語表記にはならず

あまり問題となるような点はありません。
簡単に戻せるのでやってみてもいいんじゃないでしょうか?
戻す時は、↑のスクリプトを使っているのであれば、前のsys.configがold.sys.configという名前で保存されているので、「dvt_check」を以下の内容に書き換えればokです

#!/bin/sh
cp /mnt/extsdcard/enote/old.sys.config /eTablet/etc/setting/sys.config