matanki-saito / Ck3JpMod

CK III Japanese Language Mod
5 stars 0 forks source link

Patronym #2

Closed clamm0363 closed 4 years ago

clamm0363 commented 4 years ago

父称とは一部の文化圏で苗字の代わりに用いられているものです。現在二つの問題点が判明しています。

・接頭辞としてつく父称の一部が、直後の文字が「母音であるかどうか」で判定されている  - 日本語化MOD利用中に、直後の文字がカタカナなど日本語である場合に異なった判定をされてしまう   - そのため、本来ならば子音用の接頭辞が用いられる人物に母音用の接頭辞が使われてしまっている    例: mac Donnchad (本来はマク・ドナハ) が「マグ・ドナハ」となってしまう

・接尾辞としてつく父称の一部が母音ではじまっている(ezなど)ため、父親や先祖の名前の最後の文字によって翻訳が変わってしまう  例: Fernando (フェルナンド)の子はFernandez (フェルナンデス)、Sancho (サンチョ) の子はSanchez (サンチェス) など   - この父称部分のエントリは存在せず、父親の名前から自動生成されている    - そのため、現在のところ「フェルナンドez」のように翻訳されている

matanki-saito commented 4 years ago

下側の問題は英語だとoを欠落させるだけで良さそうですが、日本語だと最後の文字を変化させなくてはいけなくて難度高そうです

matanki-saito commented 4 years ago

1) 赤枠が母音だとmag image

赤枠がそれ以外だとmac image

matanki-saito commented 4 years ago

1) cultureファイルのpatronym_prefix_male/patronym_prefix_male_vowelで決定され、patronym_prefix_male_vowelは現状は2つしか無い。

matanki-saito commented 4 years ago

プログラムは文字列を探して、数値をgrepすると処理らしき近くに着地する

image

image

matanki-saito commented 4 years ago

あやすぃ(,,゚Д゚)... image

clamm0363 commented 4 years ago
matanki-saito commented 4 years ago

1) アルファベット判定のコードはどうやらこれっぽい image

matanki-saito commented 4 years ago

母音判定は以下にかかるようです。 65:41h A 69:45h E 73:49h I 79:4Fh O 85:55h U

89:59h Y

97:61h a 101:65h e 105:69h i 111:6Fh o 117:75h u

121:79h y

-64:C0h À -63:C1h Á -61:C3h à -60:C4h Ä -59:C5h Å -58:C6h Æ

-56:C8h È -55:C9h É

-52:CCh Ì -51:CDh Í

-46:D2h Ò -45:D3h Ó -42:D6h Ö -40:D8h Ø

-39:D9h Ù -38:DAh Ú -36:DCh Ü

-32:E0h à -31:E1h á -29:E3h ã -28:E4h ä -27:E5h å -26:E6h æ

-24:E8h è -23:E9h é

-20:ECh ì -19:EDh í

-14:F2h ò -13:F3h ó -10:F6h ö -8 :F8h ø

-7 :F9h ù -6 :FAh ú -4 :FAh ü

matanki-saito commented 4 years ago

UTF-8の先頭「E3」が「ã」と誤認されている

matanki-saito commented 4 years ago

なので、

みたいなのは母音と誤判定されるが、

みたいに先頭バイトが一致しないものは母音判定されない

image

matanki-saito commented 4 years ago

この仕様を逆手に取り、見えない文字を作り、スイッチさせることは可能。例えば子音判定させたいものには先頭にNBSPをつける、母音判定させたいものには先頭にE3 80 84(〄:フォントは空文字にして幅0にする)をつけるなど

ただ、現状だとUTF-8の先頭コードを正しく言語別に判定できないことが本質であるので、どちらかに寄せるのが良いと思われる。

matanki-saito commented 4 years ago

2)について、日本語の場合は誤判定されずに欠落しないことが証明されました。 https://discordapp.com/channels/439564919072096276/739722048691109888/770436525951287336

一方で、日本語の1文字をプログラム的に削ることも不可能なため、結合されるテキスト側で工夫するしかなさそうです。