したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

小技・ちょっといいこと

1high-life:2005/09/20(火) 20:16:53 ID:RDHODZYI
クライアントに関する小技や何か便利な技がありましたら、
このトピックに投稿してください。


http://page.freett.com/high_life/bsw_no_susume/index.html

2high-life:2005/09/20(火) 20:19:32 ID:RDHODZYI
和訳サイト・侍掲示板より転載。ketchupさんの投稿です。

「MacOS X クライアントの文字化け対策」

Macクライアントで文字化けを直す方法について説明します
(SanJuanなどの各ゲームパッチの方は, ソースに手を入れなくてはならないので
ここではチャットの部分について説明します)

念のため, アプリケーションのバックアップはとっておいて下さい.

2つやることがあります
1. propファイルで日本語フォントを指定します
foType = Osaka
のようにしてください. Osaka-Mono, HiraKakuPro-W3とW6,
HiraKakuStd-W8, HiraMaruPro-W4, HiraMinPro-W3とW6でも
いいと思います. 確認してません. すいません.

2. 日本語リソースのダミーを作ります
MacOS X のアプリケーションは, 実はアプリケーションバンドルという構成のフォルダで...
って, そんな細かい説明はいりませんでした. すればいいことだけ書きます. すいません.

アプリケーション本体「BrettspielWelt」をコントロールキーを押しながらクリック
メニューが出てくるので「パッケージの内容を表示」を選びます.
パッケージの中身が表示されるので, Contents -> Resources とフォルダを開いて
行きましょう.
Resourcesフォルダの中には, 「en.lproj」というフォルダがあると思います.
実はこれはただの空っぽのフォルダです. どのソフトでも空っぽということではありません.

話がそれました. Resourcesの中に, 同じように新しいフォルダを作ります.
名前は「ja.lproj」にしてください.

これで終わりです. ソフト起動し直してみてください.

3high-life:2005/09/20(火) 20:20:29 ID:RDHODZYI
ketchupさんの投稿より、転載。

その後, アプリケーションバンドルを作り直してみました.

改善点
起動と描画が少し速くなった
propファイルの設定がいらなくなった ( してもいいけど )
ファイルメニューの「終了」で, 終了できるようになった
日本語化パッチの作成が簡単になった
テキストの表示が少し大きくなって読みやすくなった

既知の問題点
起動して最初にチャットのテキストフィールドで入力しようとすると
入力されない. チャットテキストが表示されるビューなどを一旦
触ったりしてフォーカスを移した後は, 問題なく入力できる

こんな感じです. これって欲しい人います?

4high-life:2005/09/20(火) 20:21:26 ID:RDHODZYI
ketchupさんの投稿より、転載。

描画のタイミングが遅れる問題の原因が分かりました.
Apple の 次期アップデートで修正される不具合でした.

来月辺りには直るんじゃないかなとおもいます.
Apple Developer Connection に登録すれば, DP版がダウンロードできますので
お急ぎの方は, そちらでどうぞ. (ちなみに開発者登録は無料です)
描画が結構速くなります.

描画のタイミングの問題以外では, 下に書いた以外に

6. /tell チャットのウインドウがきちんとした大きさで開く
7. 日本語の文字化けの改善
8. アンチエイリアシング有効
9. ヒープサイズの改善
10. アイコンが綺麗に!

の変更点があります. 結構快適になったので, パッチをアップロードします.
よろしければ使ってみて下さい.

http://www2.ezbbs.net/30/high-life/img/1126345272_1.zip

5追放されました。:追放されました。
追放されました。

6high-life:2005/09/20(火) 20:23:37 ID:RDHODZYI
ketchupさんの投稿より、転載。

10日に書いた Java のアップデートが出ましたので, 開発者でない人も
普通に使えるようになりました.

ちなみに Java のバージョンは 1.4.2_07 から 1.4.2_09 にアップデートされます.
1.4.2_09 以降で不具合が解消されます.
Java5 Release1 では動作検証してません.

7high-life:2005/09/20(火) 20:24:23 ID:RDHODZYI
ketchupさんの投稿より、転載。

「ゲーム日本語化パッチ パック」

とりあえず必要な サンファンとプエルトリコだけ
画像ファイルや「ゲーム名.strings」のリソースファイルは含んでいません
ついでなので, ゲーム中に使われるフォントをpropファイルで指定できるように
してみました.

propファイルに
jaNormalFont = フォント名
と指定します.

他のゲームでパッチが必要なものはありますか?
なんなら作りますが

あそうだ, 重要なことを忘れてました

Mac OS X に対応しました
逆に Mac 以外では動作検証していません. 動くと思うんですけど.

8ketchup:2005/09/21(水) 02:30:26 ID:RBBZhHhY
7 のパッチセットを暫定的に以下のところに置きました.
恒久的に置いておけるか(忘れちゃうかもしれないし...) 分からないので, お早めに.
ふう, ファイルのアップロードだけでへばりそう.
ページ作るのは大変ですね. いつもすごいなあと思っています.

http://ketchup.sakura.ne.jp/bsw/BSW_GamePatchPack.zip

9high-life:2005/10/25(火) 20:56:15 ID:2M./3kSw
新人増加age

10high-life:2006/01/22(日) 15:28:07 ID:wEYFYu0w
Mac使いいるかもage

11ketchup:2006/01/22(日) 19:54:19 ID:rR7F9seg
だれだれ?

12ketchup:2006/01/28(土) 19:34:03 ID:uo9Jmirc
そうえいば, 前からMacクライアントでは, なんで出来ないんだろうと思っていた事が
解決したので書いておきます.
それは, 街マップでの移動です. 以前のクライアントでは, たしかコントロールキーを押しながら
マップをクリックすると, そこがビューの中央になるように移動していたのですが,
クライアントが改定されてから出来なくなりました.
なんでかな, と思いながら, 一方あんまりマップの移動なんかしないので放置していたのですが
おとといコマンドキーを押しながらマップを触るとちょこっと画面が動きました.

???

以前にも, いろんなキーを押しながらマップ画面をクリックしてみたりはしていたのですが...

どうも, ドラッグで移動ができるようになっていたみたいですね.
というわけで, 移動の方法は

コマンドキーを押しながらマップをドラッグ, ということで.

13ketchup:2006/04/20(木) 16:02:11 ID:/823r3GU
Mac版Javaについて
J2SE50Release4が出てます。Quarzレンダリングがディフォルトでオンになっているので
(いや、どうだろ。確認してないので…。リリース直前まではオンになっていたので、そのまま
だと思いますけど…リリースノートをまだ読んでないので間違ってるかも)
それなりの機種なら、結構快適になるのではないかと。
多分アップデートかけても、Macクライアント用文字化け対策パッチでは Java 1.4.x で起動してしまうので、
その時はアプリケーションパッケージを開いて、Info.plistのJVMVersionを「1.5+」に書き替えて下さい。
必要ならアップデート出しますけど、Mac使ってるのわたしだけですよねぇ…

14ストーンR:2006/06/03(土) 14:53:59 ID:8SyIKEmM
 私もMacユーザーです。
 ようやくBSWの使い方が分かってきました。

 まだ不明な点が多いのでいろいろご教授願います。

15ketchup:2006/06/03(土) 16:40:34 ID:kEcGyG9k
最近は顔出せていないのですが、お会いしたときはよろしくー

16ストーンR:2006/09/26(火) 02:16:59 ID:Gb5JMBUE
ketchupさん

 「カタン」は、プレイヤー情報がドイツ語だったりします。
 発展カードについてや、最長交易路だとか。
 画像については、先人の素晴らしいデータを使わせてもらってます。
 パッチの作り方がわかれば自分でチャレンジしたいとは思ってますが、スキルがなさすぎます。

17ketchup:2006/09/26(火) 21:40:39 ID:X5SFfECI
もしかして、黄色のバックに黒文字で
「Rohstoffkarten:」
「Sonderkarten:」
「Ritterkarten:」
とか表示されるところですか?

18ketchup:2006/09/26(火) 22:58:29 ID:X5SFfECI
パッチを作ってみました。試してみて下さい。
一応、Mac以外でも動くと思います。
あとで、インストールドキュメントを書きます。(これが一番時間がかかるんだ... ;-(
同梱の LocalizeUtils.class (前回パッチと全く同じものです)を

BrettspielWelt/de/brettspielwelt/client/LocalizeUtils.class

Dice.class を

BrettspielWeltForPlay/de/brettspielwelt/client/boards/games/Dice.class

に入れればOKです。

ttp://ketchup.sakura.ne.jp/bsw/Siedler-J-patch.zip

では

19ストーンR:2006/10/02(月) 01:45:50 ID:b2r6LJXk
 ketchupさん、いつもお世話になります。
 今回も早々の対応、感謝感激です。
 問題なく動作しました。
 日本語化されるとすごく気持ちよく快適です。
 ありがとうございました。

20ketchup:2006/10/02(月) 18:18:19 ID:ZSBDRydc
いえいえ、うまくいって良かったです。
カプコンの公式ルールに従って「最長交易路」と「最大騎士力」を
「ロンゲストロード」と「ラージェストアーミー」にしたほうがいいのかなと、
ちょっと悩みました。(どっちが分かりやすいんでしょうね。)
いっそ勝手に「インフラ王」とか...

21ストーンR:2006/10/04(水) 01:10:37 ID:KV6LC9Ec
 私はトライソフト版に慣れているので、「最長交易路」「最大騎士力」の方が馴染みやすく、こちらの方が嬉しいです。

 あと、お時間のある時にでも、「王への請願」や「操り人形」にもチャレンジして頂けませんでしょうか?
 また日本語パッチの製作方法についてもご指導頂けると、何かしら貢献できるのではないかと思ってみたりしています。

22ketchup:2006/10/04(水) 01:58:26 ID:ChDL7K0.
では、そのままで。
「王への誓願」と「操り人形」については、あとで見てみますね。
ところで、パッチの制作方法は、ここに書いてもいいのでしょうか? >high-life さん
オフ会の話題で盛り上がってるところでスレが上がってしまうと悪いかなあ、と心配です。
大したことしてる訳じゃないので、有用かどうかも分からないし...

23Miieko@市長:2006/10/04(水) 10:21:30 ID:pA0GadJE
high-life さんじゃないけど、いいんじゃないですかね。
パッチの話は有用だと思いますよ。

ところで、Windows用のパッチでも「Javaだから動くんじゃないかなあ……試したことないけど」と当方の専属プログラマーが申しておりました。一応、「王への誓願」と「操り人形」、実験前にしっかりバックアップとっておいて、だめもとで試してごらんになっては。だめだったらすみません。

彼も私も、一応Mac歴あるんだけど、なにぶん十年も昔の話だし。

24ketchup:2006/10/04(水) 20:45:24 ID:ChDL7K0.
> norinさん
安心しました。気合いに感謝 :-)

> Miiekoさん
多分Jiroさんのパッチでは、フォント指定が"Helvetica"になっていると思うのですが、
そこで文字化けします。font.properties を書き換える対策も検討したのですが、
Mac ではこの方法が使えません。(と思います。Mac OS 9 の MRJでは、代替の方法があります)
最初にサンファンのパッチを作ったときは、SansSerifにしていたのですが、
最近は、propファイルからフォント名指定を読んで、指定が無いか無効なフォント名なら
Macの場合"Osaka"、それ以外(Winとか)の場合は"Helvetica"にする、という方法にしています。
安直かも。
もし、JiroさんのパッチでMacの場合にOsakaとかにして貰えるなら、全部解決かもw
あと、リソースファイルを読み込むときのファイルパス辺りに、何かあったような...忘れちゃった。

25Miieko@市長:2006/10/04(水) 22:46:32 ID:pA0GadJE
ketchupさんへ

おおう、了解です。伝えておきますね。

どこか近所にMacの使える所ないかな……。

26ketchup:2006/10/04(水) 23:27:39 ID:ChDL7K0.
期待できそう。:-)

では、簡単にパッチの作り方について。
基本的には、パッチの対象になるクラスファイルを逆コンパイルして、ソースを修正、
コンパイルしてテスト、という流れです。
逆コンパイルには、昔は jad を使っていましたが、最近は Jode を使っています。
JodeはGUIで起動して使うこともできますが、コピーペーストが面倒なので、
コマンドラインから使います。

export CLASSPATH="jodeが置いてあるフォルダのパス/jode-1.1.2-pre1.jar:$CLASSPATH"
alias jode='java jode.decompiler.Main'

jode -c ~/PATH_TO/BrettspielWelt de.brettspielwelt.client.boards.games.SanJuanBoard > SanJuanBoard.java

使っているシェルによってちょっと違いますが、こんな感じです。ちなみにわたしは zsh
別にコピーペースト面倒じゃないよ、という人はそれで全然かまいません。

GUIから使う場合の手順
「Options」メニューから「set classpath...」で出てくるダイアログにBSWのフォルダのパス
を入れて「了解」とか「OK」とかのボタンを押します。
3分割表示の左のビューから逆コンパイルしたいファイルを探して選択すると
右上にソースコードが出てきます。コピーペーストとかドラッグドロップしてファイルに保存
します。ファイル名は「AAA.class」を逆コンパイルした場合は「AAA.java」にしてください。

つづく

27ketchup:2006/10/04(水) 23:50:44 ID:ChDL7K0.
次に、ソースコードの修正です。
日本語表示できない理由は3点あります。

まず、リソースファイルがないこと。日本語化した翻訳文字列が無いと日本語化できません。あたりまえー :-)

次にエンコーディングの問題です。BSWでは、国際化は欧米までと決めているのか、.strings
ファイルを読み込むときに、ISO-8859-1決めうちで読み込みます。UTF-8にすればいいのに...
つまり、ここを .strings のエンコーディングと同じにすれば文字化けしません。
Shift-JISとかEUC-JPとかにすればいいわけですが、ファイルエンコーディングを統一しちゃうと
間違って違うエンコードで保存しちゃって化けちゃったとかのトラブルも面倒かなと思い
JISAutoDetectを指定しました。S-JISとかEUC-JPとかを自動でやってくれます。
たしかJava 1.4 の何処かのバージョンで、上手くいかないとかのトラブルがあった気もしますが
気にしないことにしました。強い子です。

最後にフォントです。ここらへんは環境依存ですね。Windowsだとそのままでも文字化けしない
ようです。

つづく

28ketchup:2006/10/04(水) 23:55:30 ID:ChDL7K0.
コンパイルの手順です。

javac -encoding utf-8 -classpath ~/PATH_TO/BrettspielWelt SanJuanBoard.java

とすると SanJuanBoard.class が出来上がり。PATH_TOの所にはBSWのフォルダのパスを入れて下さい。

29ketchup:2006/10/05(木) 00:04:11 ID:bcJyAGLs
と、こんな感じですかね。ああ、そうだソースの修正のところがちょっと情報足らないかも。

翻訳文字列について

文字中に「|」(縦棒)があるときは、そこで改行されるという意味です。
翻訳文字列は、ソースコードに直に書いてある時と、SanJuan.strings のように別ファイル
になっている時があります。

30ketchup:2006/10/05(木) 00:40:40 ID:bcJyAGLs
ちょっと訂正。上で.strings と書いてあるのは .string でした。

エンコード指定について

文字列の読み込みを行っているのは、Client.class です。
だから、普通に考えれば、これを直せばいいじゃん、やったー?(^ ^)/、と思うところです。
ここで問題点が一つ。Client.class は頻繁にアップデートがかかるんです。
アップデートで置き換えられちゃうと、パッチが全滅。
(そこで、アップデート前の Client.class を元にした 修正 Client.class を
入れちゃうと、アップデート内容によっては、他の所にトラブルが。)
じゃ、どうしよう、というわけで、文字を読み込んでいるところを切り出して
各ゲームパッチで文字列を読み込む所では、それを使う、という方法にしました。
パッチごとに同じ機能をコピーしてくると後で混乱しそうなので、
LocalizeUtils.class という別クラスにしました。ネーミングが悪いなあ...

31ketchup:2006/10/05(木) 00:49:10 ID:bcJyAGLs
Client.class で文字列を読み込んでいるのは、getStrings()というメソッドです。
切り出すのは、ここら辺。

あとは、init() と setLanguagee() あたりを直せば日本語化完了です。
ソースコードに文字列リソースが直に書いてあるものは、ここの手順がいりません。

init()では、languages.txt を見て、propファイルで指定した言語リソースが
このゲーム用に用意してあるか確認しています。なければディフォルトで "de" になります。
languages.txt に ja を加えて、propファイルで"ja"を指定してもいいんですけど、
languages.txt もよくアップデートがかかるんですよね。その度に入れ替えるのは大変。
「日本語化パッチだし」と割り切って、そこらのコードはバッサリ削って"ja"にしてしまいます。

setLanguage()は各ゲーム用にリソースファイルを読み込むところです。Client.class への
問い合わせもここでやっています。 これを切り替えて、文字化け無く読み込めばOKです。

32ketchup:2006/10/05(木) 00:57:59 ID:bcJyAGLs
こんな風にやってます。

アトリビュートとかは、これとは別の方法を使わないと無理です。
文字列を直接サーバーから取ってきているので、流れをブロックするとか、そんな感じで。
つじつま合わせるのが大変そうだけど。

おわり
分かりづらい文章ですいません。

33ストーンR:2006/10/06(金) 00:18:15 ID:lVG1wYnM
 解説、ありがとうございます。
 今の私のスキルでは難しそうですねぇ;。
 でも、チャレンジしたいと思いますので、ご教授下さい。

34Jiro:2006/10/06(金) 20:44:19 ID:v4pHh2Ns
Jiroです。

Ketchupさんがノウハウ公開してくれたので・・・。

getStrings()メソッドについて

 私の場合は、getStrings()のコピーをShift_JISに変更したものを
 該当ゲームのクラスに入れて、

 元>Hashtable hash = master.getStrings(nation, "SanJuan.string");
 先>Hashtable hash = getStrings(nation, "SanJuan.string");

 のようにClient.classを読みに行かないように変更しています。
 別クラスにしてパッチの独立性が無くなるのを嫌ったんですが、
 他のパッチにコピペで同じコードが入ってしまうのが難点。

 文字コードはShift_JIS固定にしてます。
 今思えばUTF-8にしたほうが良かったんですが、
 リリースしちゃった後から日本語文字列リソースを変更するというのも
 逆に混乱を招きそうだし・・・。
 

言語選択について

 getStrings()はnationを取るようにしたので、
 『「日本語化パッチだし」と割り切って、』
 ChooseString()する代わりにnation="ja";としました。

操り人形について

 操り人形はメッセージが全部ドイツ語でサーバーからくるので、
 翻訳のためのモジュールでメッセージの置き換えをやっています。
 ドイツ語文字列と、対応する日本語文字列を全部内包しています。
 ログ取って試験するのが結構大変でした。

 本家でバージョンアップされるとまた作業発生なので、
 「拡張入れるな〜」とか念じてたりして。

 ちなみに本家版のバグもこっそり直してあったりします。


後はだいたいKetchupさんの書いてくださったのと同じですね。

んで、本題。
フォントについて

 JREのWin/Macの差で問題になってるのが
  Win:Helveticaで日本語表示すると、一応漢字が出る。
  Mac:Helveticaで日本語表示すると、文字化けする。
 っていう違いだと思っていいんでしょうか?
 んで、font.properties使って、Helvetica->Osaka へのマッピングを指定しても駄目、と。

 調べてみたら、HelveticaはJavaの共通フォントじゃないんですね。
 たまたま両方のプラットフォームで使えたってだけのようです。
 (ttp://ja.wikipedia.org/wiki/ヘルベチカ
  によるとWindowsでは実際にはArialが使われるらしい)

 つーことは、
 Helvetica→sansserif
 Times New Roman→serif
 に置換しておけばWin/Macとも文字化けせずに済む、つーことですね。

 >Ketchupさん
 とりあえずclassファイルだけの「王との請願」でフォント名書き換えてみたので、
 Macで表示できるかどうか試してみてください。
 ttp://www.aqua.gr.jp/jiro/bswKronepathch_20061006.zip

 まともに動くようなら、他のも同じ処置をしてみます。

35ketchup:2006/10/07(土) 00:48:36 ID:t67qnxYs
>StoneRさん
では、その時に。((^ ^))/
>Jiroさん
操り人形のパッチ制作は、本当にご苦労さまでした。ホント手を出さなくて良かった...ホッ :-)
王との請願のパッチを試してみましたら、文字化けはありませんでした。

Helvetica についてですが、フォント自体の問題というか、文字パレットから溢れた場合に
どのフォントで補完するかというところで違いがあるようです。普通にAppletを作って
ブラウザから起動すれば、Helveticaを指定してあっても、日本語は文字化け無く表示されます。
アプリケーションバンドルの方で吸収できるのでは無いかなと予想しつつ、放置して現在に至る、
という...... SansSerifやDefaultは日本語フォントで表示されるので、言語環境の情報がいって
ない、ということは無いと思うんだけどなあ。
ちなみに Apple実装のMac OS X のJAVAには、そもそも font.properties がありません。
正確には Public Beta の頃と、初期の Mac OS X Server にはあったと思います。
その後、起動時のオプションでどうにかしろ、とかそんな話だったかな。
(これが、ちょっと試したら効かないんだもの。)

36Jiro:2006/10/07(土) 01:03:34 ID:3iXfujNk
>Ketchupさん
 確認ありがとうございました。
 これで安心して修正できます。
 appletの場合は、ブラウザが文字描画に噛んでるんですかねえ。
 (Javaは普段使わないんで間違ってるかもしれないんだけど)
 共通フォントを使わないBSWは、行儀悪いコードなんでしょうねえ。

 でも、「操り」は使う文字列が限定されてるからまだましです。
 (2〜3ゲーム分のログで出尽くしました。)
 アトリビュートは絶対無理(w
 本家から辞書もらわない限り無理。

>high-lifeさん
 近いうちに「王との請願」も含めて、フォント直したやつ送ります。

37Jiro:2006/10/07(土) 20:31:21 ID:3iXfujNk
>Ketchupさん
 これまで私が作った分のパッチ全てにフォントの対処を入れました。
 お手数ですが、動作確認をお願いしてもよろしいでしょうか?
 バイナリ: ttp://www.aqua.gr.jp/jiro/bsw_Jp_patch_20061009.zip
 ソース: ttp://www.aqua.gr.jp/jiro/bswpatchsrc_20061009.zip

 (これまで出した5ゲーム分全部まとめてあります)

38ketchup:2006/10/08(日) 01:15:57 ID:DRwChgmc
はい了解しました。

39ketchup:2006/10/08(日) 04:44:49 ID:DRwChgmc
確認しました。結論から言うと「王への請願」以外のゲームは動作しません。

原因についてですが、getCodeBase()で帰ってくるURLが無効であることに依ります。
file:///localhost...... が帰ってきて欲しいのに file://localhost...... になってしまうん
です。なんでスラッシュが抜けるかな。

「サンファン」「プエルトリコ」については、bubbleTextの画像生成ができずに、
結果として文字が表示されません。

「フィレンツェの匠」「操り人形」については、ゲーム画面に移動できません。
(というか描画できないので移動してないように見えるだけですが)
詳しく見ると「操り人形」の場合、.string ファイルから画像へのパスを組み立てていますが、
.strings ファイルのパス生成に失敗して読み込みが出来ていないので、画像へのパスも
生成できません。依って画像が表示できなくなっています。
「フィレンツェの匠」の場合は、画像の読み込みは出来ているいますが、その後
帰ってこなくなります。
文字列を配列にセットする部分かなあ。ここが謎。画面までは出るサンファンや
プエルトリコとほとんど同じことをやっているのに、なんでここで流れなくなるんだろう。
変わっているところは(String)でキャストするか、toString()で変換するかというところ...
って、帰ってこなくなる部分を特定した方が早そうですね。

画像の読み込みがOKなものもある原因についてですが、多分URL(strings)とURL(strings, spec)
の違いかと思います。

いづれにせよ、getCodeBase()のパスをちょっと加工してやれば直るので、それが一番簡単
かな、と思います。というか、今までのパッチではそれで対処してました。

ここにコード書いて大丈夫かな?
パス生成するところでこんな感じにします

String codeBase = "";
if ( isMacOSX() ) {
String userdir = System.getProperty("user.dir");
codeBase = new String("file://" + userdir + "/");
} else {
codeBase = client.getCodeBase().toString();
}

で、OSの判定はこんな感じ

public boolean isMacOSX()
{
String osName = System.getProperty("os.name").toLowerCase();
if ( osName.startsWith("mac os x") ) {
return true;
} else {
return false;
}
}

なんて、やっつけのコード... :-)
というわけで報告終了ーー(・∀・)ゞ

40Jiro:2006/10/08(日) 08:18:55 ID:9KHhKqDo
>ketchupさん
 ありがとうございました。
 おそらく上記のコードを入れるのはそんなに手間じゃないと思います。

 んで、ちょっとだけ納得いかないのは、オリジナルは動いてるってとこです。
 なんで改造すると駄目になるんでしょうかね?

 Javaでシステム依存コード書きたくない、というのもあるので、
 Linux入れてLinux版の動作も確認してみます。
 Unix系なのでMacOSと共通するところがあるかもしれません。

41Jiro:2006/10/08(日) 22:07:41 ID:9KHhKqDo
わかったことまとめ

・Linux用の日本語化は出来なかった。
 VM付き、VM無し+JRE、の両方の組み合わせで日本語が出ない。
 (VM付きのは#$##とかに、JREのは□□とかになる)

・Client.getString()を呼び出すと、動作する。
 もちろんラテン系しか読んでくれない。

・getCodeBase()は("file:/"+カレントディレクトリのフルパス)を返す。
 Windowsだと、D:\home\bsw\ => file:/D:/home/bsw/
 Unix系環境(Linux,MacOSX含む)では、/home/bsw/ => file://home/bsw/
になる。
 すると、URL::OpenStream()は、schema://server-name/path と解釈するので
 本来のパスにアクセス出来ない。
 UnixでgetString()で止まる原因はこれらしい。

・ClientクラスからOpenStream()してるものは正常に動作するのに
 コピー版だと止まる。原因は不明。
 画像が正しく読めるのも同じ原因みたい。

・対策案として、getString()で、file:// => file:/// に置換してみる、
 という案を考えついた。修正が1行追加で済むし、OSを読む必要もない。

 Linuxではこれをやると□□□□□・・・なポップアップが出るようになったので
 たぶんいけると思う。


>ketchupさん
 一日調べて上のようなことが分かったんですが、どう思いますか?
 ご意見をお聞かせください。


 あと、昨日のソースに以下の修正を入れて試してもらえませんか?
public Hashtable getStrings(String nation, String myFile) {
Hashtable myStrings = new Hashtable(128);
String codeBase = master.getCodeBase().toString();
codeBase = codeBase.replaceFirst( "file://" , "file:///" );// <<<<ここを追加

 サンファンとかどれか一つでいいです。

42ketchup:2006/10/08(日) 22:42:34 ID:DRwChgmc
ちょっと時間がとれないので、お返事だけ。
getCodeBase()で帰ってきたパスは、相対パスと同時に使われることを想定しているので
文字列操作でパスを合成するのはダメなのかな、と予想。(テキトーなこと言ってるかもしれません)

String path = getCodeBase().toString() + "to_file_path"
URL url = new URL( path ) ではだめで

URL url = new URL(getCodeBase(), "to_file_path") にするとか。

で、いちいち全部のURL合成を書き換えるのは面倒なので、前回書いたようにしました。

> 対策案として、getString()で、file:// => file:/// に置換してみる、
> という案を考えついた。修正が1行追加で済むし、OSを読む必要もない。

とのことですが、39のコードとやっていることは一緒なので、問題はないと思います。
39で機種判定を入れたのは、WindowsやLinuxの場合の確認が取れないので、
いじらないようにしよう、と思ったからです。Windowsの場合でもfile:///で大丈夫なら
一本化してかまわないと思います。

Linuxが文字化けするのは、環境変数かfont.properties.jaがうまく設定されていないからでは
ないかと思います。

動作確認は、もう少しかかるかも。ごめんなさい。

43Jiro:2006/10/09(月) 08:44:54 ID:qyQ.YWR2
時間とれたときでいいです〜。
よろしくお願いします。

44Jiro:2006/10/09(月) 13:29:03 ID:qyQ.YWR2
やっと、わかったあ〜〜〜〜〜〜。
ゲームから呼び出すgetStrings()は、Clientクラスじゃなくて、
SelfClientクラスのメソッドでした。

Jodeでデコンパイルできなくて、JAD系のツール使ってようやく中身が見えました。
そしたら、getCodeBase()使ってなくて、相対パスで直接ファイルを開いてました。
(実装が全然違ってました)

んで、SelfClient:getStrings()をベースに作り替えました。

これでうまくいくはず!

あ〜〜〜すっきりした。

夜までに、全部作り替えたやつをあげときます。
(file://の件は忘れてください)


#それにしてもBSWの連中は何を考えて設計してるのか・・・ブツブツ

45Jiro:2006/10/09(月) 19:46:42 ID:qyQ.YWR2
パッチ作り直しました。

たぶんこれでいけるはず!ばーじょん

ttp://www.aqua.gr.jp/jiro/bsw_Jp_patch_20061010.zip
ttp://www.aqua.gr.jp/jiro/bswpatchsrc_20061010.zip

ついでにプエルトリコで残り勝利点と残り開拓者の数が
「−」表示にならずに「255」と表示されてしまう問題も
直しました。
(パッチの元が古かったのをアップデートしました)

王との請願は先日の動作確認時のと同じです。

>ketchupさん
 Macでの動作がOKなら、high-lifeさんに引き渡します。
 時間がとれたところで確認お願いしまーす。

46ketchup:2006/10/09(月) 22:11:04 ID:2falL9q.
動きましたよー。ごくろうさまー。

47ketchup:2006/10/09(月) 22:36:56 ID:2falL9q.
でも、相対パスにすれば動くのは同じだから、前回書いたように

String codeBase = master.getCodeBase().toString();

のところを

URL codeBase = master.getCodeBase();

にして

stringsURL = new URL(codeBase + "localized/" + myFile);

のように引数ひとつの URL(String spec) を使う代わりに

stringsURL = new URL(codeBase, "localized/" + myFile);

と、引数ふたつの URL(URL context, String spec) に置き換えた方が簡単じゃないでしょうか?
置き換え部分4行ですし。こっちでも動きますよー。

48Jiro:2006/10/10(火) 07:26:53 ID:oYMT5x8w
動作確認感謝です。

実際に呼び出されてるコードを元に新しいgetStrings()を作ったので、
もうgetCodeBase()もURLクラスも使わないんですよ。

動作しない原因が判明したので、修正するライン数が増えても
正しく直す、という方を採りました。
どのみちgetStrings()は元ソースに対する追加部分ですしね。

ともあれ、ありがとうございました。

49Jiro:2006/10/10(火) 07:29:33 ID:oYMT5x8w
>high-lifeさん
 てことで、これまでのパッチをまとめたやつがWin/Mac兼用に生まれ変わりました。
 ttp://www.aqua.gr.jp/jiro/bsw_Jp_patch_20061010.zip
 ここから持って行ってください。
 よろしくお願いします。

50ストーンR:2006/10/13(金) 02:15:23 ID:KUN5NB4o
Jiroさん

 早速、ダウンロードさせて頂きました。
 Mac対応、とても嬉しいです。
 感謝感激!

 私のスキルでは、日本語化は相当ハードルが高いです。

51Jiro:2006/10/17(火) 21:11:55 ID:CNiQw2Fw
新ゲームの大地の柱 die Saulen der Erdeの日本語パッチα1を作ってみました。
ttp://www.aqua.gr.jp/jiro/Saeulen_a1.zip

nessssさんのページ(ttp://www.uranus.dti.ne.jp/~ness/List.htm)を
元に作ってあります。
パッチ作成の文字列データの議論用に使ってください。

ご利用は自己責任で使ってください。

52FAL:2006/10/17(火) 21:29:38 ID:hyPaCy4A
いちおうイベントの内容を
*イベントカード
"Alle Spieler erhalten 5 Gold.",全てのプレイヤーは5金受け取る
"Alle Spieler erhalten 1 Metall.",全てのプレイヤーは金属1受け取る
"Alle Baustoffkarten +1.",全ての建材カードの、もらえる資材が1増える
"Je bis zu 5 Arbeiter doppelten Lohn.",1人のプレイヤーにつき5人の労働者まで賃金が倍になる
"Kapazitat eines Handwerkers +1.",職人カード1枚の仕事回数が+1される。
"Einen Handwerker abgeben.",職人カードを1枚捨てる
"Nur zwei Baumeister nachste Runde.",このラウンドは建築家を2つしか置けない。
"Alle Baustoffkarten -1.",全ての建材カードの、もらえる資材が1減る
"Alle Spieler verlieren 2 Siepunkte.",全てのプレイヤーは2VP失う
"Alle Spieler verlieren 4 Gold."全てのプレイヤーは4金失う。

53Jiro:2006/10/18(水) 00:02:33 ID:AR43z7b6
>FALさん
イベントカードの未対応のあったので参考になりました。
感謝です。

54nessss@副市長:2006/10/18(水) 00:09:08 ID:GBWznJ.c
うちのもアップデートかけてあります。
画面小さいときのドイツ語も書いてあるので、照らし合わせれば小さいままでもできるようになるかな?

55high-life:2006/10/18(水) 01:08:27 ID:Wgm8ETJg
10/18 現在

パッチファイルをアップロードしました。
必要な方は
BSWのすゝめ→豆知識→パッチファイル
よりお持ち帰り下さい。

56ketchup:2006/10/18(水) 01:31:41 ID:eGqCpk.2
>high-lifeさん
クライアント用文字化け対策パッチなのですが、動くには動きますが設定が古いので
消して貰ってもいいかな、と思います。
BSW本部で現在ダウンロードできるクライアントは、パッチで施したメモリ関係の設定
もしてあるようですし、アイコンも綺麗になってます。
AppleのJavaアプリケーションバンドルの作り方に沿った方法でバンドル内にクラスファイル
をセットすると、フィアルパスが決めうちになっている部分や今の日本語化パッチに
は影響が出そうなので、元のまんまにしておいた方が安全ですし。
ということで、要は、Info.plistの言語環境をJapaneseに設定してある、という違いぐらいしかないので
チャットで文字化けして困るって人は、そこだけ設定すれば上手くいきます。
J2SE 5.0以降がインストールしてあるなら、「1.4*」になっているところを「1.4+」にして下さい。
描画がちょっと早くなって快適になると思います。QuartzレンダリングがディフォルトでONですので。

57FAL:2006/10/18(水) 01:40:50 ID:vRtGlE0w
>"Nur zwei Baumeister nachste Runde.", このラウンドは建築家を2つしか置けない。
建築家を置くのはイベントの前ですから、「次のラウンド」ですね、失礼しました。

58Jiro:2006/10/18(水) 22:59:33 ID:AR43z7b6
新ゲームの大地の柱 die Saulen der Erdeの日本語パッチα2を作りました。
ttp://www.aqua.gr.jp/jiro/Saeulen_a2.zip

BlueBearさんのページ(ttp://www7a.biglobe.ne.jp/~bluebear/MyBSW/MU_LIST/saeulen/saeulen.html)を
元に作ってあります。

ドイツ語の文言がまだ残っていますが、気にならない程度までは日本語化できたかなあ、
という感じです。

自己責任でご利用ください。
アップデートが入った場合は、新しいパッチが出るのを待ってください。

何かあればこのスレッドで。

59ketchup:2006/10/19(木) 01:02:41 ID:PuP1bvow
>Jiroさん
大地の柱 a2 文字化け無しを確認しました

60Jiro:2006/10/19(木) 03:05:30 ID:q2YoPkDM
>ketchupさん
 うい、さんくすです。

61Jiro:2006/10/19(木) 04:07:37 ID:q2YoPkDM
新ゲームの大地の柱 die Saulen der Erdeの日本語パッチα3を作りました。
ttp://www.aqua.gr.jp/jiro/Saeulen_a3.zip

文言のバグ修正と低解像度用に合わせて文章の修正をしました。

自己責任でご利用ください。
アップデートが入った場合は、新しいパッチが出るのを待ってください。

何かあればこのスレッドで。

62Jiro:2006/10/20(金) 01:29:45 ID:92qcW.2E
大地の柱 die Saulen der Erdeの日本語パッチα4を作りました。
ttp://www.aqua.gr.jp/jiro/Saeulen_a4.zip

一部環境で文字化けが発生していた問題に対処しました。

自己責任でご利用ください。
アップデートが入った場合は、新しいパッチが出るのを待ってください。

何かあればこのスレッドで。

63Jiro:2006/10/20(金) 22:27:21 ID:92qcW.2E
日刊・大地の柱日本語パッチの時間です。
ttp://www.aqua.gr.jp/jiro/Saeulen_a5.zip
α5になって、ほとんど日本語化できました。

ご利用は自己責任でどーぞ。

64Miieko@市長:2006/10/21(土) 11:17:38 ID:50TPllj.
一体何人の人が毎日パッチ入れ直しているんだろう。
私だけじゃないのかな、と(笑)。
私の仕事である画像ファイルの日本語化は一番最後の段階だそうで、
その部分まだドイツ語ですが今しばらくお待ちくださいませ。

65Jiro:2006/10/27(金) 00:02:21 ID:vLFG2JsU
週刊・大地の柱日本語パッチです。
ttp://www.aqua.gr.jp/jiro/Saeulen_a6.zip

本家のアップデートが入りそうにないので、
画像パッチをMiiekoさんに作ってもらうことにしました。

ダイアログ等の日本語化がさらに進みました。

ご利用は自己責任でどーぞ。

66Jiro:2006/10/27(金) 19:41:50 ID:vLFG2JsU
とか言ってると、アップデートが入った模様です。
パッチを作り直しますので、これまでのパッチは再適用しないでください。

67Jiro:2006/10/28(土) 01:13:48 ID:82D9GAj.
作り直しました。
ttp://www.aqua.gr.jp/jiro/Saeulen_a7.zip

細かいバグ修正が入った模様ですが、まだバグバグです。
(カード破棄時に①②③・・・となって飛んでいくところとか、
 他プレイヤーの手持ちカードの表示がおかしいとか・・・)

ご利用は自己責任でどーぞ。

68norin:2006/11/08(水) 11:43:24 ID:DoKiqJdQ
オフでELO関係について聞かれたので、スレッド違いかもしれませんが、
こちらで、回答させていただきます(汗

以前のオイラの経験値チェッカーでは、下記URLよりELOを取得していました。
http://www.brettspielwelt.de/gate/jsp/de/elo_versus.jsp?spieler1=norin&amp;spieler2=norin
# 本来は、対戦ゲームを決めるのにELOが近いものを探す為等に使うものかと・・・
# パラメータの「norin」の部分を該当プレイヤー名に変更してご使用下さい。

>BlueBearさん
上記がご所望の物かと思ったのですが、違うかな?(汗

69BlueBear:2006/11/09(木) 18:04:13 ID:A/wCxPSg
>68
 情報サンクスです。

 なるほど、ここですと1ページで全部拾えるわけですね。

 旧ページの 〜/gate/jsp 配下はなにやらいろいろなツールが転がってそうですが
ファイル一覧を見られないですしね〜。

 あと、前のnorinさんのポイントのページでは、全ELOの合計の上位者ページへの
リンクがあったと思いますが、あれのプログラム名も教えてもらえればと。

70BSWの旅人さん:2006/11/09(木) 19:07:50 ID:zagz64B6
昔の遺産をひっくりがえしてみたら、下記リンクが・・・
# ただ使えなくなってるっぽいです(涙
# >68を調べるときにチェックしたら表示されていたんですけどねぇ(汗

■ELO Top 200
ttp://www.brettspielwelt.de/gate/jsp/de/elo_top200.jsp

■CC Combination
ttp://www.brettspielwelt.de/gate/jsp/de/Carcassonne_kombi.jsp

■Tutor Top 100
ttp://www.brettspielwelt.de/gate/jsp/de/helper.jsp

71ketchup:2006/11/12(日) 02:32:44 ID:wUuZ4U6c
Intel Mac で起動するための追記を書こうかな、と思って本家のパッケージを確認したら
もう対応できてますね。(発売からもうすぐ1年ぐらいになるし、あたりまえか)

で、何もしないでもチャットで化けません。便利になりました。
なんで、ウインドウテーマがメタルなの?って疑問はさておき、一応報告です。

72BlueBear:2006/11/12(日) 08:18:43 ID:GYzdiiWU
>70
 情報サンクスです。
 やはり、残念ながら、そのURLはもう生きてないみたいですね〜。
 旧サイトはひっそりと撤退の方向かな。。。

73HiroQws:2006/11/18(土) 06:39:10 ID:m/X1vad.
propファイルのメニューの設定で日本語が使用できます。こちらの環境winでは確認してます。

たとえば、

 今までなら MenuMultiUserGame-Attika = */game C55-42
 日本語使うなら Menuマルチユーザーゲーム-アッティカ = */game C55-42

 臨時にこのようなテキスト作ってみました。(あとでもうちょっとまともにします)
 propファイルにコピー&ペースト、適当に修正してください。
 
 ttp://hk.jpn.org/hk/BSW/Jmenu.txt

 シングルユーザーゲームとマルチユーザーゲーム混ざってますが、
 問題ありません。部屋の番号は違っているかも。

74HiroQws:2007/02/18(日) 12:18:15 ID:y1tpjsm6
SPVチャットウィンドウについて

 あの、何度も出てくる、SPVチャットウィンドウですが、channelツールをつかい
接続を閉じ、/saveするだけで、次回からは出なくなりました。
 試しに、テスト用のランク1のIDを使いやってみましたが、SPVチャットだけは
やはり消せませんでした。(私の通常のランクは10)

 ランクか何かで消せるようになるみたいですね。ランクの低いうちは、今まで
通りコレクトチャットを使って、メインウィンドウに吸収し、ランクが上がったら
/saveコマンドを利用して、出てこないようにするのがよろしいようです。

 どなたか、もし正確な情報お持ちなら、追記願います。

75BSWの旅人さん:2007/06/05(火) 18:48:09 ID:VyvtAO2I
>72
ttp://www.brettspielwelt.de/Raw/?nation=en

76ストーンR:2008/01/26(土) 22:00:56 ID:BlyM1QA6
 久々の書き込みです。

 MacBookにBSWをインストールしたところ、日本語入力ができない状態です。
 以前使用していたpropファイルを流用したところ、カスタマイズメニューの日本語も文字化けしてます。
 でも、ウインドウなどに表示される日本語は正常に表示されてます。

 どうしてなんでしょう?

77ストーンR:2008/01/28(月) 02:49:03 ID:tce1hVRQ
 自己レスです。

 カスタマイズメニューに関しては、
 "Brettspielwelt.prop" ファイルの「文字コード」を "Unicode (UTF-8)" 変換したら解決しました。

 入力の問題はまだ解決してません。

78ketchup:2008/01/30(水) 04:34:06 ID:yTiqqpGg
私は Leopard をインストールできる Mac はおろか、Intel Mac すら持っていないので :-) 検証
できませんが、Mac OS X 10.5 Leopard の Java で出る問題かと思います。
以下、その前提で書いてますので、間違ってたら無視して下さい。
回避方法になるかわかりませんが、ADCのJava SE6 の DP版を使ってみるか、Landon Fuller さんの
移植版で(日本語TrueTypeフォントを使う為の作業を必要になるかもしれません)試してみるという
トリッキーな方法が思いつきましたが、おすすめしません。
しばらくアップデートを待つというのが無難かもしれませんね。

79ストーンR:2008/02/01(金) 20:29:10 ID:34HzKtaA
 ketchupさん、こん○○は。
 なるほど、Leopard の Javaの問題ですかぁ〜。
 何しろJavaそのものが判ってないのと、
 BSW側でアップデートしてもらうべく、英語でバグ・リポートが書けるといいんですが、そちらも私の能力では難しいですねぇ。

80BSWの旅人さん:2008/02/02(土) 17:14:41 ID:0vwWNE3c
Javaの不具合ですから、BSW側へレポートしても直りません。
最近のMacOSはunixベースですから、その上で動いているJavaの動作もApple社の責任となります。というか、MacのJavaはもともと
Apple社が管理しているんでないでしょうかね?ダウンロードもSunのサイトでなく、Appleのサイトからでなかったでしょうか?
Webで検索を掛けるとMac+Java上の日本語入力に関する不具合のレポートがかなりヒットします。
それらを参考になさるか、もしくはApple社に問い合わせ、質問等されることをお勧めします。

81ストーンR:2008/02/03(日) 06:10:08 ID:olwb2kws
BSWの旅人さん

 確かにApple側の問題ということみたいですね。

 らくがきチャットというところのBBSで、JAVAでテキスト入力をする為の方法は大きく分けて2種類有ると書かれていました。

http://www.rakugakichat.com/inputText/TextFieldApplet.html
http://www.rakugakichat.com/inputText/TextFieldAppletSwing.html

 上記2種類の方式で、日本語入力を試したところ、前者ではダメ、次のはOKでした。

 結論としては、leopardに搭載されているJAVAの問題とのこと。
 早く、アップデートされるといいのですが‥。

82BSWの旅人さん:2008/02/03(日) 19:14:55 ID:/aU6uFq6
あと、日本語入力できないと言うことですが、それは日本語入力プロセッサ、私が使ったことのある古いMACではことえりでしたが、それが入力エリアで起動しないという現象でしょうか?
最近のMacOSはUTF-8ベースのはずなので、入力自体は可能でないですか?
例えば、テキストエディターにいったん日本語を打ち込んでおいて、それをコピペで入力欄に入れれば、可能なはずですが、どうでしょう?


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板