CALENDAR
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031   
<< May 2017 >>
閲覧数の多い順
<< Debian Sarge 電源管理 | main | linuxでデザインフォント >>
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | - | 編集 |
kdockerの日本語化
# dpkg -i kdocker_1.2-1_i386.deb

$ kdocker -l ~/share/thunderbird/thunderbird-bin &

Thunderbird に mozTrayBiff-1.1-i486-linux-tb1.0.2.xpiをインストール

これで、次回からKDEのスタートアップ時にkdockerが開始される。
システムトレイにthunderbirdが常駐し、新しいメールが届いたら新規メールアイコンが出る。

kdocker の 日本語化

必死に作ったカタログファイルが壊れていた。?????? みたいになっていた。
KBabel をインストール


システムトレイ上にアイテムをドラッグするとウインドウが表示されますので、表示されたウインドウにアイテムをドロップして下さい。
http://www.hey-to.net/ML-archive/vcppML/2000/msg06038.html

========================
気軽な気持ちで日本語ファイルを作ってみた。kdocker_en.ts を改造してkdocker_jp.ts を作ってみた。

後はこれをコンパイルしたらいいだけかと思っていたが日本語化されたアプリを使うにはやたら手間がかかるみたいだ。

完成したts を qm に変換する
QTローカライズ ソフト qt3-linguist をインストール
http://blog.good-day.net/~kurose/diary/?date=20050215

[Qt-devel:00367] linguist を使用した日本語化,
http://www.kde.gr.jp/ml/Qt-devel/msg00378.html

[linux-zaurus:590] Re: 日本語のバイナリ翻訳ファイル(*.qm) 作成方法についての質問,
http://www.mogya.com/zaurus/ml/linux-zaurus/msg00554.html

lrelease
http://linuxcommand.org/man_pages/lrelease1.html








Internationalization with Qt
http://doc.trolltech.com/3.3/i18n.html

lrelease は、qmake の中に入っているかもしれないので、インストールしてみる。
Synaptic パッケージマネージャで qt3-dev-tools をインストール
lrelease が使えるようになった。

$ cd ~/kdocker
$ lrelease kdocker.pro
# cp kdocker_jp.qm /usr/share/kdocker/i18n/kdocker_jp.qm
$ export LANG=jp
日本語の部分が???????? になっている。
~/kdocker/i18n/kdocker_jp.ts を見てみたが、日本語が文字化けしていない事を確認

もう一度、QT Linguist で kdocker_jp.ts を qm に変換

$ export LANG=jp
hoge@debian:~/kdocker$ lrelease kdocker.pro

やっぱり文字化け

-rw-r--r-- 1 hoge hoge 3913 Sep 15 17:06 kdocker_jp.qm
-rw-r--r-- 1 hoge hoge 3913 Sep 15 17:05 kdocker_jp.qm.bak
-rw-r--r-- 1 hoge hoge 10179 Sep 15 12:02 kdocker_jp.ts
QT Linguist と lrelease ではサイズは同じだなあ。

試しに LANG=ru にしても ?????? になった。

コンソール(kdocker)では、日本語の文字が?????? になっているけど、試しにアプリをドックさせてみたら日本語が表示されていた。

よくわからないので、最初からやり直し

$ lupdate kdocker.pro

生成してできたファイルはただのテキストだった。

環境変数 LANG を変更したので、全ての日本語が文字化けしている。

konsole の起動直後
$ echo $LANG
ja_JP.eucJP

lupdate が生成したファイルを KBabel で翻訳し、lrelease でqm にコンパイル
/usr/share/kdocker/i18n にコピーしたがコンソールでは文字化け、GUIだといける。
kdocker_jp.ts から、kdocker_ja.ts につくりなおしたがやはり文字化け ?????? みたいになる。

他の言語も試してみたが en、es、fr、de、は文字化けしないがru、ruだと??????みたいに文字化けする。

自分でコンパイルしてみてコンソールで日本語が使えるか試す。

まずは、kdocker のアンインストール
# dpkg -l|grep kdocker
# apt-get remove kdocker

kdocker_ja.qm と kdocker_jp.qm が残ったので、
# rm -ri kdocker

$ cat INSTALL|less
$ qmake
$ make
”そのようなファイルやディレクトリはありません” が出まくったので、とりあえず kdevelop をインストール

やっぱり make に失敗する。

$ dpkg -l|grep qt
$ dpkg -L libqt3c102-mt
$ export QTDIR=/usr/share/qt3

hoge@debian:~/kdocker$ make
g++ -c -pipe -Wall -W -O2 -DTRANSLATIONS_PATH='"/usr/local/share/kdocker/i18n"'
-DICONS_PATH='"/usr/local/share/kdocker/icons"' -DQT_NO_DEBUG -I/usr/share/qt3/
mkspecs/default -I. -I. -Isrc -I/usr/X11R6/include/X11 -I/usr/include/X11R6 -I/u
sr/share/qt3/include -Itmp/ -o tmp/customtraylabel.o src/customtraylabel.cpp
src/customtraylabel.cpp:22:23: qsettings.h: そのようなファイルやディレクトリはあ
りません
src/customtraylabel.cpp:23:24: qpopupmenu.h: そのようなファイルやディレクトリは
ありません
src/customtraylabel.cpp:24:25: qmessagebox.h: そのようなファイルやディレクトリは
ありません
src/customtraylabel.cpp:25:25: qfiledialog.h: そのようなファイルやディレクトリは
ありません
src/customtraylabel.cpp:26:26: qinputdialog.h: そのようなファイルやディレクトリ
はありません
src/customtraylabel.cpp:27:21: qaction.h: そのようなファイルやディレクトリはあり
ません
src/customtraylabel.cpp:28:20: qtimer.h: そのようなファイルやディレクトリはあり
ません
src/customtraylabel.cpp:29:19: qsize.h: そのようなファイルやディレクトリはありま
せん
src/customtraylabel.cpp:33 から include されたファイル中:
src/customtraylabel.h:25:21: qaction.h: そのようなファイルやディレクトリはありま
せん
src/customtraylabel.h:26 から include されたファイル中,
src/customtraylabel.cpp:33 から:
src/qtraylabel.h:25:20: qlabel.h: そのようなファイルやディレクトリはありません
src/qtraylabel.h:26:21: qstring.h: そのようなファイルやディレクトリはありません
src/qtraylabel.h:27:25: qstringlist.h: そのようなファイルやディレクトリはありま
せん
src/qtraylabel.h:28:21: qpixmap.h: そのようなファイルやディレクトリはありません
src/qtraylabel.h:29:20: qtimer.h: そのようなファイルやディレクトリはありません
src/qtraylabel.h:30:25: qtextstream.h: そのようなファイルやディレクトリはありま
せん
src/qtraylabel.h:31:23: qsettings.h: そのようなファイルやディレクトリはありませ

src/qtraylabel.h:32:20: qevent.h: そのようなファイルやディレクトリはありません
src/qtraylabel.h:33:19: qsize.h: そのようなファイルやディレクトリはありません
src/qtraylabel.h:35:22: X11/Xlib.h: そのようなファイルやディレクトリはありません
src/qtraylabel.h:36:23: X11/Xutil.h: そのようなファイルやディレクトリはありませ

src/qtraylabel.h:37:23: X11/Xatom.h: そのようなファイルやディレクトリはありませ

$ export PATH=$QTDIR/bin:$PATH

やはりqmake の後の make が通らない。

QT で hellow world を書いてみてコンパイルできるか試した。
hello.cpp:1:26: qapplication.h: そのようなファイルやディレクトリはありません
hello.cpp:2:21: qlabel.h: そのようなファイルやディレクトリはありません
だめだった。

export LD_LIBRARY_PATH=$QTDIR/lib

Qt3 Designer , qt3-apps-dev , qt3-doc , qt3-assistant をインストール
libqt3-i18n をインストール

もう一度、QTの "hello world" コンパイル
make がエラーになる。
環境変数が原因かもしれないので、konsole を再起動する。

make が前よりも進むようになってエラーの種類が変わった。
libqt3c102 , libqt3-dev をインストール

やっぱり make が通らない。

もう一度、hello.cpp 書き直してみる。
#include <qapplication.h>
#include <qpushbutton.h>
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hello( "Hello world!", 0 );
hello.resize( 100, 30 );
a.setMainWidget( &hello );
hello.show();
return a.exec();
}

hello.cpp という名前で保存

$ qmake -project
qt.pro というファイルが作成された。
$ qmake
Makefile が作成された。

hoge@debian:~/dev/qt$ make
g++ -c -pipe -Wall -W -O2 -DQT_NO_DEBUG -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o hello.o hello.cpp
g++ -o qt hello.o -L/usr/X11R6/lib -lXext -lX11 -lm
hello.o(.text+0x30): In function `main':
: undefined reference to `QApplication::QApplication[in-charge](int&, char**)'
hello.o(.text+0x41): In function `main':
: undefined reference to `QString::QString[in-charge](char const*)'
hello.o(.text+0x5f): In function `main':
: undefined reference to `QPushButton::QPushButton[in-charge](QString const&, QWidget*, char const*)'
hello.o(.text+0x74): In function `main':
: undefined reference to `QString::shared_null'
hello.o(.text+0x7e): In function `main':
: undefined reference to `QStringData::deleteSelf()'
hello.o(.text+0xa6): In function `main':
: undefined reference to `QPushButton::resize(int, int)'
hello.o(.text+0xb2): In function `main':
: undefined reference to `QApplication::setMainWidget(QWidget*)'
hello.o(.text+0xba): In function `main':
: undefined reference to `QWidget::show()'
hello.o(.text+0xc2): In function `main':
: undefined reference to `QApplication::exec()'
hello.o(.text+0xcc): In function `main':
: undefined reference to `QPushButton::~QPushButton [in-charge]()'
hello.o(.text+0xd4): In function `main':
: undefined reference to `QApplication::~QApplication [in-charge]()'
hello.o(.text+0x104): In function `main':
: undefined reference to `QApplication::~QApplication [in-charge]()'
hello.o(.text+0x112): In function `main':
: undefined reference to `QString::shared_null'
hello.o(.text+0x11c): In function `main':
: undefined reference to `QStringData::deleteSelf()'
hello.o(.text+0x128): In function `main':
: undefined reference to `QPushButton::~QPushButton [in-charge]()'
hello.o(.gnu.linkonce.r._ZTV6QGList+0xc): undefined reference to `QGList::clear()'
hello.o(.gnu.linkonce.r._ZTV6QGList+0x10): undefined reference to `QGList::~QGList [in-charge]()'
hello.o(.gnu.linkonce.r._ZTV6QGList+0x14): undefined reference to `QGList::~QGList [in-charge deleting]()'
hello.o(.gnu.linkonce.r._ZTV6QGList+0x18): undefined reference to `QPtrCollection::newItem(void*)'
hello.o(.gnu.linkonce.r._ZTV6QGList+0x20): undefined reference to `QGList::compareItems(void*, void*)'
hello.o(.gnu.linkonce.r._ZTV6QGList+0x24): undefined reference to `QGList::read(QDataStream&, void*&)'
hello.o(.gnu.linkonce.r._ZTV6QGList+0x28): undefined reference to `QGList::write(QDataStream&, void*) const'
hello.o(.gnu.linkonce.r._ZTI6QGList+0x8): undefined reference to `typeinfo for QPtrCollection'
collect2: ld はステータス 1 で終了しました
make: *** [qt] エラー 1
hoge@debian:~/dev/qt$


やっぱりhello.cpp が原因ではないみたい。

エラーで終了したが、hello.o は作成されていた。
hoge@debian:~/dev/qt$ chmod u+x hello.o
hoge@debian:~/dev/qt$ ./hello.o
bash: ./hello.o: cannot execute binary file


やっぱり実行できなかった。
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
printf("Hello, world!¥n");

return EXIT_SUCCESS;
}

これだと普通にいけた。QTアプリじゃないから意味ないけど。

kdevelop でサンプルのプロジェクトもコンパイルできないので、ソース以外に原因があるかも。

ここで一回、再起動

やっぱりkdevelop のサンプルもmake できない。
qt3-apps-dev をインストール
やっぱりエラーになる。
もう、APTでインストールしたqt全部捨てて、ソースから入れてみようかな。

/usr/share/qt3/include をのぞいてみたがいつのまにか随分増えてる。

なので、.bashrc に以下を記述して、source .bashrc を実行
#QT
export QTDIR
export LD_LIBRARY_PATH
export MANPATH
export LIBRARY_PATH
export CPLUS_INCLUDE_PATH

QTDIR=/usr/share/qt3
PATH=$QTDIR/bin:$PATH

if [ $LD_LIBRARY_PATH ] ; then
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
else LD_LIBRARY_PATH=$QTDIR/lib
fi

if [ $MANPATH ] ; then
MANPATH=$QTDIR/man:$MANPATH
else
MANPATH=$QTDIR/man
fi

LIBRARY_PATH=$LD_LIBRARY_PATH

if [ $CPLUS_INCLUDE_PATH ] ; then
CPLUS_INCLUDE_PATH=$QTDIR/include:$CPLUS_INCLUDE_PATH

else
CPLUS_INCLUDE_PATH=$QTDIR/include
fi
やっぱりビルドに失敗する。

g++ と、g++3.3 を再インストール

moc_guihello.o(.gnu.linkonce.r._ZTI8guihello+0x8): undefined reference to `typeinfo for QMainWindow'
こんな感じのエラーがでまくってビルドができない。

"undefined reference to"で検索

こんな記事を見つける。

インテル(R) C++ コンパイラ Linux* 版
"undefined reference to 'main'" メッセージ

これは既知の問題で、ソース・ファイルが渡されずにコンパイラが起動されたときに発生します。このメッセージは、bin ディレクトリにあるコンパイラの .cfg ファイル中で -Xlinker オプションが指定されている場合に表示されます。この問題は、インテル(R) コンパイラの共有ライブラリのパスを追加することで対応済みです。インテル・コンパイラによって作成された実行ファイルを実行するために LD_LIBRARY_PATH を修正する必要はありません。

対象製品:
インテル(R) C++ コンパイラ Linux* 版

やっぱりコンパイラが原因なのかな。


『共有ライブラリ パス 追加 "g++"』 で検索

$ dpkg -l|grep gcc
ii gcc 3.3.5-3 The GNU C compiler
ii gcc-3.3 3.3.5-13 The GNU C compiler
ii gcc-3.3-base 3.3.5-13 The GNU Compiler Collection (base package)
ii libgcc1 3.4.3-13 GCC support library
$ dpkg -L gcc
/.
/usr
/usr/bin
/usr/bin/c89
/usr/bin/c99
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/c89.1.gz
/usr/share/man/man1/c99.1.gz
/usr/share/doc
/usr/share/doc/cpp
/usr/bin/gcov
/usr/bin/gccbug
/usr/bin/i386-linux-gcc
/usr/bin/gcc
/usr/share/man/man1/gcov.1.gz
/usr/share/man/man1/gccbug.1.gz
/usr/share/man/man1/i386-linux-gcc.1.gz
/usr/share/man/man1/gcc.1.gz
/usr/share/doc/cpp/README.Bugs
/usr/share/doc/cpp/FAQ.gz
/usr/share/doc/gcc


env を見てみるとパスがだぶっていたので、環境変数の定義を.bashrc から .bash_profile へ移動

hoge@debian:~$ gcc -v
/usr/lib/gcc-lib/i486-linux/3.3.5/specs から spec を読み込み中
コンフィグオプション: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
スレッドモデル: posix
gcc バージョン 3.3.5 (Debian 1:3.3.5-13)
hoge@debian:~$

コンフィグオプションに qt がないなあ。

KDEのアプリケーションを日本語化したいだけなのに。ものすごく手間がかかるなあ。
中途半端だけど、続きは、また明日。


KDEのアプリケーションを日本語化したいだけなのに。ものすごく手間がかかるなあ。
中途半端だけど、続きは、また明日。

役にたつかもキーワード
setenv , gcc -v , g++ , gdb


参考になるかもリンク :
| KDE | 01:35 | comments(0) | trackbacks(0) | 編集 |
スポンサーサイト
| - | 01:35 | - | - | 編集 |
コメント
コメントする









この記事のトラックバックURL
http://cafelate.jugem.cc/trackback/27
トラックバック