matanki-saito / EU4dll

Europa Universalis IV double byte language patch; master:1.34.2, dev:1.37.4.0
https://paratranz.com/projects/76
MIT License
1k stars 112 forks source link

Dll causeing some mods' custom tooltip UI displayes messly again #250

Open nsYW opened 6 months ago

nsYW commented 6 months ago

問題: Meiou & Taxes modでは、カスタムツールチップの桁数が1つ増えると、テキストは左に1スペース字下げされます(同じ桁数を揃えることができる)。

再現性: 常に

再現手順: 問題は Meiou & Taxes 3.0 で発生します。 エリアバーのカスタムツールチップの上にマウスポインタを置くと、数字が1桁増えるたびに、数字テキスト全体がスペース1つ分左にインデントされることに気づくだろう(詳細は図を参照、2列目の緑色の数字を比較してください。)。 これは以前の右へのインデントとは異なります。インデントなしで最適化されたオペレーションを作成することは可能でしょうか?

原因: 不明 dllをインストールした後、バニラ英語環境でも問題が発生します。

解決策: 不明

参考画像: QQ截图20240430104309

matanki-saito commented 6 months ago

@nsYW

画像のテーブルを見つけられませんでした。カスタムツールチップは現在では以下のように表示されています。

image

(1)[Meiou & Taxes 3.0]のVersionを教えていただけますか? (2)Tableの表示方法を詳しく教えていただけますか?

よろしくお願いいたします

nsYW commented 6 months ago

@matanki-saito

(1)このバグは実際に中国語翻訳版で発生しますが、フォントが中国語等幅フォント + Adobe Garamond Pro (EU4 オリジナル英数字フォント) であってもバグは発生します。

(2)Meiousはgfxコンポーネントをたくさん作った、カスタムツールチップのテーブル(SYS-Disp_Trade_l_english.yml)は実際には …\interface\localisation\space &tablebordersにおける余白gfxコンポーネントとgfxテーブルコンポーネントの組み合わせです。その後、Localisationファイル (localisationフィルタで"SYS-DISP"と"DISP- "で始まるファイル) を使用して、これらのコンポーネント (例えば、5pixelの余白とテーブルの縦線を表す£5px£や£tbl_V£など) を引用して、テーブルやリストを作成します。具体的には次の図のようになります ↓↓↓

1 2 3 (注:数字列の余白の長さはすべて同じである)

一番不思議なのは、Issueの画像にあるように、同じ桁数の列は等幅フォントでぴったり揃うのに、桁数が増えた列は左にインデントでしまうことだ。同じオリジナルの英数字フォントを使用し、localisationファイルのみを適切に適合させた(余白の長さを比例して増減させた)。でも中国語翻訳版にはまだ問題があるので、したがって、私はこれが EU4dll に関連しているのではないかと無断で推測しています。

お疲れ様でした!

nsYW commented 6 months ago

テーブル

@matanki-saito

このフォームは、コマーシャル・セクタ(commercial sector)のカスタマイズされたツールチップにあります。

この州の補正が生成されるのを待つか(1年に1回更新されるはずです)、MODのカスタムマップ機能を使って世界中のコマーシャル・セクタの位置を表示する必要があります。

対照: Image_1716094757444 (オリジナル版 SYS-Disp_Trade_l_english.yml) Image_1716094764668 (翻訳版 SYS-Disp_Trade_l_english.yml)

matanki-saito commented 5 months ago

@nsYW EU4 1.36.2でconsoleからobserveモードで1388年まで進めましたが、補正を発見できませんでした。そのためSYS-Disp_Trade_l_english.ymlにあるDisp_Trade0_CentとDisp_Trade0を入れ替えて問題を確認しました。その結果、以下のことがわかりました。

まず、DLLを入れた状態でMeiou & Taxes 3.0 + M&T v3.0 Complete DLC Supportを入れた状態だと問題は発生しませんでした。

2024-06-09_21h01_33

次に、MEIOU and Taxes v3.0 簡体字中国語サブMODを加えて確認したところ、表に不具合を確認しました。

2024-06-09_21h13_23

したがってMOD側に問題がある可能性があります。一方で、これは問題の完全な再現ではないため、下記を教えて頂き更に調査をする必要があります。

私は問題がツールチップで起こっていることから下記のコードを疑っています。

https://github.com/matanki-saito/EU4dll/blob/f3fce9337cac71901f8ffcad5edbc6a7f8b44dd1/Plugin64/tooltip_and_button.cpp#L481C13-L481C42

この処理はSpaceをNoBreakSpaceにしている処理ですが、今回の例のように複雑な仕組みで表示される文章には影響があるかもしれません。このコードをコメントアウトしたDLLを使って問題が起きなくなれば問題を特定できます

nsYW commented 5 months ago

@matanki-saito ごめん、忙しくてお返事を見てなかったの orz

1.使用したMODの完全なリスト:

{"game":"eu4","name":"Meiou","mods":
  [
    {"displayName":"MEIOU and Taxes v3.0","enabled":true,"position":0,"steamId":"2630437525"},
    {"displayName":"M&T v3.0 Complete DLC Support","enabled":true,"position":1,"steamId":"2630712788"},
    {"displayName":"MnT3.0 简中汉化子MOD「OppoSans」","enabled":true,"position":2,"steamId":"2774304653"}
  ]
}

PS: ただ、中国語MODの英数字フォントをAdobe Garamond Proに置き換えた。私が修正したバージョンをダウンロードして入れ替えることができる。その中のgfx素材は日本語MODにも役立つかもしれない。 原MOD: MnT3.0 简中汉化子MOD「OppoSans」

2.セーブデータ 1388年明、コマーシャル・セクタの補正が出現: Prov: 2149 (滁州) Prov: 2150 (順天) Prov: 1053 (泉州)

_MnT gfx修正 & savegame ダウンロード: MnT gfx修正 & savegame_

nsYW commented 5 months ago

@matanki-saito 開発者は同時にUIのリメイクにも取り組んでいるようなので、新バージョンでは改善されるかもしれない。

图片 Image_1718650823285