Golden Cheetah日本語化メモ
12月 16th, 2009 by
key
Golden Cheetahいじりのメモです。
Golden CheetahはNokia Qtライブラリを使って組まれています。このライブラリは国際化の対応が進んでいて、すでにフランス語版が動いているし、ちょっと頑張ると日本語化出来そうな予感。ということでゴニョる。
Qt国際化周り。
- src.proのTRANSLATIONSにtranslations/gc_ja.ts追加
- lupdate-macを実行するとtranslations/gc_ja.tsができる
- linguist-macを起動してgc_ja.tsを開く
- がんばって翻訳
- lrelease-macを実行するとtranslations/gc_ja.qmができる
コード側の対応。
application.qrcにtranslations/gc_ja.qmを追加、Pages.cpp, ConfigDialog.cpp辺りにJapaneseの定義を追加。で、make clean && makeするとダイアログに項目が増えて、日本語メッセージが表示されるようになる。
設定画面。

リアルタイムライドの画面。

githubのHEADに対するパッチ。
diff --git a/src/ConfigDialog.cpp b/src/ConfigDialog.cpp
index 0df2c0f..5919576 100644
--- a/src/ConfigDialog.cpp
+++ b/src/ConfigDialog.cpp
@@ -141,6 +141,8 @@ void ConfigDialog::save_Clicked()
settings->setValue(GC_LANG, "en");
else if (configPage->langCombo->currentIndex()==1)
settings->setValue(GC_LANG, "fr");
+ else if (configPage->langCombo->currentIndex()==2)
+ settings->setValue(GC_LANG, "ja");
if (configPage->unitCombo->currentIndex()==0)
settings->setValue(GC_UNIT, "Metric");
diff --git a/src/Pages.cpp b/src/Pages.cpp
index 0a748bb..aa7978c 100644
--- a/src/Pages.cpp
+++ b/src/Pages.cpp
@@ -18,6 +18,7 @@ ConfigurationPage::ConfigurationPage()
langCombo = new QComboBox();
langCombo->addItem(tr("English"));
langCombo->addItem(tr("French"));
+ langCombo->addItem(tr("Japanese"));
QVariant lang = settings->value(GC_LANG);
@@ -25,6 +26,8 @@ ConfigurationPage::ConfigurationPage()
langCombo->setCurrentIndex(0);
else if(lang.toString() == "fr")
langCombo->setCurrentIndex(1);
+ else if(lang.toString() == "ja")
+ langCombo->setCurrentIndex(2);
else // default : English
langCombo->setCurrentIndex(0);
diff --git a/src/application.qrc b/src/application.qrc
index 9327207..978c2cc 100644
--- a/src/application.qrc
+++ b/src/application.qrc
@@ -8,5 +8,6 @@
images/gc.png
images/config.png
translations/gc_fr.qm
+ translations/gc_ja.qm
diff --git a/src/src.pro b/src/src.pro
index dd3283f..dcce0d2 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -194,5 +194,5 @@ SOURCES += \
RESOURCES = application.qrc
-TRANSLATIONS = translations/gc_fr.ts
+TRANSLATIONS = translations/gc_fr.ts translations/gc_ja.ts
diff --git a/src/translations/gc_fr.ts b/src/translations/gc_fr.ts
index 1fd2321..beb33cb 100644
画面とtsファイルの関係性が解ってないため対訳がヘンですが、まあこんなかんじ。国際化されてない部分がいくつかあるので、開発の人を捕まえてつつく、かも。とりあえずここまで。
UPDATE (12/18):
日本語化の成果が本家にマージされました!
yama-kei
どもども。
GCの日本語化、自分も全く同じノリでやってました(笑)。
強いて言うなら、Makefile に translations/gc_ja.qm のエントリーを追加しているかいないかが違うくらい(これは必須ではないです)
雑な仕事ではありますが、手元のtsファイルを下に置いておくのでもしあれでしたら参考にしてください。
http://www.yama-kei.org/gc_ja.ts
12月 17th, 2009 at 12:07 am
key
Makefileの方は見落としてました。
qrc_applicationの依存に追加しなければならないのですね!
tsファイルありがとうございます。
Ride, Power, Wattの訳などちょっと悩んでいるところもあって参考になります。
ちなみに、このファイルをベースにパッチを作って本家に投げてもよいでしょうか?
12月 17th, 2009 at 10:07 am
yama-kei
未翻訳部分、文法的に訳すのが厳しいところ、typoなど、いろいろあるかとは思いますが、使ってやっていただければ嬉しいです。
しかし、QTの国際化の仕組みはなかなか賢いですね。
言語切り替えがアプリ実装になってしまうにせよ、リソースファイル形式で優れたツールが使えるのはアリだと思いました。
12月 17th, 2009 at 10:17 pm
key
国際化がされていない部分をいくつか修正してまとめてみました。
表記の揺れは悩んだのですがなるべく統一してみました。クリティカルパワーのように日本語的に長いものは、部分的に略している場所もあります(画面みつつ調整)。
tsファイル:
http://mitsukuni.org/tmp/gc_ja.ts
先程へたくそなメールでgolden-cheetah-usersに投げたので、問題なければマージされるでしょうw
今後は国際化されていない部分を広げてもらうのと、時刻表記(いまはyyyymmddをtsファイルで定義してるのでナンチャッテ)をちゃんとしてもらうように働きかけてます。
12月 17th, 2009 at 10:39 pm