27 lutego 2008

Niewłaściwa właściwość

W oczekiwaniu aż kolega naprawi co zepsuł w aplikacji, żebym ja mógł robić coś poważniejszego, zajmuję się takim drobnym taskiem, który został mi podrzucony przez szefa.

Mianowicie klient zażyczył sobie, żeby komunikaty błędów były wyświetlane po polski, więc kazano mi przetłumaczyć wszystkie (zebrane w jednym pliku) na nasz język ojczysty.

Czytam więc te komunikaty jeden po drugim i co raz wybucham śmiechem na myśl o tym, jak idiotycznie to będzie brzmiało, jak niezrozumiałe to będzie, gdy zastąpię oryginalne słowa naszymi polskimi odpowiednikami (ci, co się spotkali ze "zrębem programowym" wiedzą, o czym mówię), a jednocześnie jest mi żal biednych użytkowników, którzy dostaną taki - przetłumaczony przeze mnie - komunikat i będą zachodzić w głowę, co też autor miał na myśli.

Żeby nie być gołosłownym - oto kilka przykładów:

"Message property value invalid: {0}" - property to "właściwość", invalid znaczy "niewłaściwy", a więc - niewłaściwa właściwość? Biedni użytkownicy...
"Element has xsi:nil attribute but is not nillable" - przecież jak przetłumaczę słowo nillable, to oni już totalnie nie będą wiedzieć, o co chodzi. Biedni użytkownicy...
"Invalid xsi:type qname: ''{0}'' " - moje ulubione. No i co z tym zrobić? "Niewłaściwa qnazwa xsi:typu"? Biedni użytkownicy...
"An attribute of type xs:ID is not allowed to have a default or fixed constraint." - znam słowo constraint, ale słowa ograniczenie już nie. Przynajmniej w kontekście informatyki. Biedni użytkownicy pewnie też nie.
"KHK: TBD" - bez komentarza. Nawet o biednych użytkownikach...
"Invalid xpath value in field: {0}" - dobra, z tym sobie jeszcze dałem radę, ale...
"Invalid xpath value in selector: {0}" - ...selector? Co to jest? Selektor? Wybornik? Wybieracz? Pole wyboru? Biedni użytkownicy...
"Illegal namespace for attribute declaration: {0}" i "Enumerated value ''{0}'' invalid: {1}" - ...wszystko bym jeszcze jakoś zniósł, ale jak napotkałem słowa enumerated i namespace, to stwierdziłem, że bez notki na blogu się nie obejdzie. Jasne, że są polskie odpowiedniki, ale framework też ma polski odpowiednik, i co? Biedny ja...

Na sam koniec:
"Invalid xpath in identity constraint: {0}" = "Niewłaściwe xpath w ograniczeniu tożsamości: {0}"
- już widzę ten wyraz twarzy biednego użytkownika, ilustrujący jednoznaczne "what the fuck?"...

Już wolę stare, dobre klepando...

Znad klawiatury pozdrawia eX

PrzedPS: Już miałem skończyć marudzenie, ale... "Particle Derivation OK"? Proszę Was...

PS. Przy tłumaczeniu słucham "Murder Ballads" Cave'a. Czy myślicie, że to się źle dla kogoś skończy? ;)

7 komentarzy:

Anonimowy pisze...

Z gatunku komunikatów wnioskuję, że to nie jest aplikacja dla zwykłego użytkownika (bo jemu równie dobrze możesz napisać "coś poszło nie tak" - tyle samo zrozumie z przetłumaczonego czy nie komunikatu o złej wartości selektora. A skoro tak, to tłumaczenie z ogólno-zrozumiałych angielskich terminów jak dla mnie jest skrajnie kretyńskim pomysłem.

xavex pisze...

alez może to byc aplikacja dla zwyklego uzytkownika. Dobrą praktyką jest napisanie mu: coś poszło nie tak a potem szczegóły tego czegoś. Wtedy jak dostanie sie screenshota z błędem to wiadomo coś więcej. A co do samych błędów:

"Message property value invalid: {0}" - nieprawidłowa wartość właściwości

"Element has xsi:nil attribute but is not nillable" - element posiada atrybut xsi:nil ale nie może być pusty

"Invalid xsi:type qname: ''{0}'' " - nieprawidłowa nazwa kwalifikowana (qname) w xsi:type

"An attribute of type xs:ID is not allowed to have a default or fixed constraint." - jeśli constraint jest częścią definicji xmla (a z tego co wiem to o to tutach chyba chodzi?), to wtedy można użyć po prostu angielskiej nazwy. - nie można przypisać constraint dla xs:ID (w tej forma 'ograniczenie' brzmi chyba nawet lepiej)

"KHK: TBD" - zostawic jak jest :)

"Invalid xpath value in selector: {0}" - selektor, rowniez czesc definicji tym razem nie tyle xmla, co wyrażeń xpath

"Illegal namespace for attribute declaration: {0}" - nieprawdiłowa przestrzeń nazw.. nie wiem czego chcesz od przestrzeni nazw, eX? :) akurat jeden z lepiej rozpowszechnionych polskich odpowiedników

Enumerated value - wartość typu wyliczeniowego

"Invalid xpath in identity constraint: {0}" = "Niewłaściwe xpath w ograniczeniu tożsamości: {0}" - nieprawidłowe wyrażenie xpath w ograniczeniu tozsamosci

jedne brzmia calkiem przyzwoicie, inne mniej.. ogolnie tak technicznych komunikatow raczej sie nie tlumaczy; i tak nawet najbardziej perfekcyjne tlumaczenie nie da nic, jesli ktos nie wie co to jest xpath ani xml :) a jak wie, to nie potrzeba mu tlumaczenia ;)

xavex pisze...

"Particle Derivation OK" -pochodna cząsteczkowa poprawna

redi pisze...

Ależ Maćku przesadzasz - Murder Ballads są jak znalazł na taką robotę - takie to spokojne i melancholijne...

Leszczynka pisze...

Hmm..wartość enumeratywna?

Jedno z ulubionych słów prawników.
U nas dużo rzeczy jest enumeratywnie wyliczonych...
...i wtedy nie można naginać ;)

Anonimowy pisze...

"i tak nawet najbardziej perfekcyjne tlumaczenie nie da nic, jesli ktos nie wie co to jest xpath ani xml :) a jak wie, to nie potrzeba mu tlumaczenia ;)" - o to mi właśnie chodziło mówiąc że zwykłemu użytkownikowi naprawdę nie musisz nic pisać o przestrzeni nazw, bo niezależnie czy nazwiesz to przestrzenią nazw, czy namespace - i tak nie da rady naprawić. Wyobraź sobie Sojankę albo Beatkę która widzi taki komunikat ;) To jest dla mnie ZU, nie ktoś kto na widok "nieprawidłowa nazwa kwalifikowana (qname) w xsi:type" będzie wiedział co zrobić. A jeśli będzie wiedział, co to "przestrzeń nazw" albo "nazwa kwalifikowana" i jak to naprawić, to tym bardziej będzie wiedział co to namespace i tłumaczyć na polski nie trzeba.

Krótko mówiąc są dwie możliwości - albo user ma być bardziej kumaty i po takim komunikacie się sam wykaraska (a w takim przypadku tłumaczenie tylko może zaciemnić sprawę), albo i tak jest prawdziwym ZU, a w takim przypadku tego typu komunikat, niezależnie czy po polsku czy angielsku, i tak mu niewiele pomoże, więc po co tłumaczyć.

eXistenZ pisze...

No i właśnie dlatego o tym zapragnąłem napisać - bo ja się zgadzam w całej rozciągłości z Lil w tym temacie. I próbowałem to nawet wyjaśnić teamleaderowi, i on tez to doskonale zrozumiał, ale powiedział mi, że "klient naćpannnn" i że sobie poradzę.

Ja wiedziałem, że sobie poradzę ;)
Tylko to jest kur*a bez sensu ;)