Modyfikacja hash

Dodatek odpowiedzialny za spolszczenie wypowiedzi NPC (dymki)
Awatar użytkownika
WoWpoPolsku Team
Erdzio
Posty: 404
Frakcja: Horda
Rasa: Worgen
BattleTag: Erdzio#2624

Modyfikacja hash

Post autor: Erdzio »

Jak w tytule (ale i 2 inne sprawy), chyba trzeba wprowadzić zmianę w hash. Coraz więcej tekstów się powtarza (głównie pojedynczych, ale czasami i dłuższych zdań), gdzie jedne skierowane są do gracza, inne są między NPC, i tłumaczenia się nakładają :/

Szybki przykład - w najnowszym dodatku Jailor mówi "Unworthy.". Bez spojlerowania, trzeba to przetłumaczyć jako "Niegodną.". Taki sam tekst mamy już w bazie - wypowiada ją postać gracza (Orionar), i spekuluję, że trafi się jeszcze 2 NPC drących się w ten sam sposób. I tu, jak pisałem wcześniej - nałożą się tłumaczenia. Niegodną Jailora i potencjalne "Niegodni"/"$g(Niegodny;Niegodna)". (Podobny problem okazjonalnie pojawia się w krótszych tekstach Gossip, chyba nawet trafiłem kiedyś na "A goblin" u Rid'lah i jakiegoś losowego NPC).

Także bez przedłużania, coś czuję, że będzie trzeba zrobić tłumaczenia na podstawie hasha uwzględniającego nazwę NPC wypowiadającego się i tekstu, i podobnie trzeba by było zrobić w gossip.

Krótki szkic tego, jak by to trzeba było zrobić: jak z przypisywaniem zadań do krain, po wgraniu pliku sprawdzenie, czy tekst jest już w bazie i jakiego ma NPC. Jeśli NPC z bazy i pliku się różnią, dopisanie tekstu do panelu "duplikaty", gdzie ktoś z moderacji sprawdzi, czy tłumaczenie to samo, czy może jest podane w innym kontekście jako część jakiegoś dialogu lub czegoś w tym stylu (jak w przykładzie z Unworthy). Jeśli się zgadza, dopisanie NPC do listy NPC przypisanych do tego tekstu (tu znowu logistyka, bo NPC-karczmarzy czy Stable Master i im podobnych jest w bród i zaśmieci bazę i addon, jeśli każdy będzie zapisywany oddzielnie). Jeśli nie, wysłanie do poczekalni z nowym tłumaczeniem.
Wyjątek: czasem dzieje się tak, że dymek wypowiada sama postać gracza lub jego "cośka" - przykładowo "Erdzio" i "Echo of Erdzio", więc jeśli chcieć to wprowadzać, trzeba dodać tę zmienną, żeby nie zaśmieciło bazy.

To tylko sugestia tego, jak to zrobić, bo nie umiem aż tak w programowanie czy w liczenie hash'y. Sugestią jest też w ogóle wprowadzenie tej zmiany, także dam reszcie się wypowiedzieć, co myślą, ale osobiście myślę, że im wcześniej, tym lepiej, bo nie będzie trzeba później naprawiać, tylko od razu się to uwzględni.

(pomniejsze) To byłaby dość spora zmiana w addonie, a może i lekka rekonstrukcja, więc od razu może by się dało przypisywanie NPC do krain zrobić? NPC z tego co pamiętam nie mają określonego miejsca czy jakiś inny problem był w tym, ale gracz już ma, więc na tej zasadzie by trzeba było zrobić. Ale jak w nawiasie, pomniejsza sugestia, która przydałaby się tylko w odnajdowaniu NPC z duplikatami.

2 pozostałe sprawy, żeby nie skakać między wątkami:

1) Poprawa hash'y w gossip (nie mam pewności, czy w dymkach też jest taki błąd). Kody $R, $N i $C są chyba liczone w ten sam sposób. Nie pamiętam już, który to NPC, ale jeden z Orgrimmaru mówi coś w stylu "Witaj, Erdzio.", a po przejściu na wersję angielską wyświetlany tekst to "Greetings, demon hunter.".

2) Podpowiadanie tekstów w panelu Napisy - teksy pojawiają się na szaro, ale po wpisaniu czegoś znikają, więc albo opcja nieznikania, albo niech od razu się wpisują jak z klawiatury, a tłumacz tylko sprawdziłby, czy wszystko gra i dał "zapisz" (opcja druga wydaje się sensowniejsza).

O ile "2 pozostałe sprawy" mam za pewnik, o tyle część pierwszą, tę długą, zostawiam pod dyskusję.
Nie samymi questami worgen żyje, dymki też trzeba tłumaczyć. I Gossipy. No i książki... I Filmy, i Cinematici też...
Awatar użytkownika
WoWpoPolsku Team
Platine
Posty: 1014

Re: Modyfikacja hash

Post autor: Platine »

Erdzio pisze: 24 lis 2020, 14:01 2) Podpowiadanie tekstów w panelu Napisy - teksy pojawiają się na szaro, ale po wpisaniu czegoś znikają, więc albo opcja nieznikania, albo niech od razu się wpisują jak z klawiatury, a tłumacz tylko sprawdziłby, czy wszystko gra i dał "zapisz" (opcja druga wydaje się sensowniejsza).
Tekst w polach nowych tłumaczeń jest poszukiwany w innych tłumaczeniach i jeśli tekst angielski jest taki sam, to tłumaczenie jego jest wpisywane do znacznika HTML placeholder czyli jest jakby tłem w polu, a nie treścią pola.
Ale nic nie szkodzi by to tłumaczenie od razu wpisywać do treści pola.
Zrobione.
Awatar użytkownika
WoWpoPolsku Team
Platine
Posty: 1014

Re: Modyfikacja hash

Post autor: Platine »

Erdzio pisze: 24 lis 2020, 14:01 1) Poprawa hash'y w gossip (nie mam pewności, czy w dymkach też jest taki błąd). Kody $R, $N i $C są chyba liczone w ten sam sposób. Nie pamiętam już, który to NPC, ale jeden z Orgrimmaru mówi coś w stylu "Witaj, Erdzio.", a po przejściu na wersję angielską wyświetlany tekst to "Greetings, demon hunter.".
I tu jest problem, Kod Hash jest tworzony z tekstu angielskiego po usunięciu nazwy gracza, jego rasy czy klasy.
Teksty "Greetings, Erdzio." i "Greetings, demon hunter." są przekształcane na postać:
"Greetings, $N." i "Greetings, $C." a do obliczenia Hasha ostatecznie: "Greetings, ." czyli otrzymują ten sam kod Hash=1243841737 Można by pomyśleć, by do obliczenia Hasha nie usuwać znaczników $N, $C i $R. To by rozwiązało tę sprawę.
WoWpoPolsku Team
Pikownia
Posty: 98
Frakcja: Horda
Rasa: Nieumarły
Klasa: Warlock

Re: Modyfikacja hash

Post autor: Pikownia »

Ale taka zmiana chyba będzie oznaczać, że wszystkie dymki w których było $x nie będą miały tłumaczeń i dodadzą się na nowo do bazy z nowym hashem.
Awatar użytkownika
WoWpoPolsku Team
Platine
Posty: 1014

Re: Modyfikacja hash

Post autor: Platine »

Dlaczego?
Takie dymki będą tylko miały inny Hash dla oryginału i tłumaczenia.
Na przykład:
"$c - I will consume your light!" - tak mamy w bazie EN. Hash=4265862851
W bazie tłumaczeń dla tego Hasha mamy: "Pochłonę twoje światło!" (pominięto klasę gracza).
Nowy Hash byłby: 2780110698

"$n! What have you found?" - tak mamy w bazie EN. Hash=2695096522
W bazie tłumaczeń dla tego Hasha mamy: "$n! Co znalazłeś?" (powinno być: "$n! Co $g(znalazłeś;znalazłaś)?")
Nowy Hash byłby: 589498958

Trzeba by jeszcze wpierw ujednolicić kody: $n czy $N, $c czy $C, $r czy $R ?
Myślę, że małe literki są bardziej przejrzyste przy znaku $
ODPOWIEDZ