Facebookowe tłumaczenia
„Blogasek” o języku w internecie aż prosi się o napisanie czegoś o FaceBooku. Jak wszyscy wiedzą, mamy tam wiele języków do wyboru, w tym język polski. Czy jednak do końca? Zapewne każdy użytkownik tegoż serwisu zauważył jak komiczne potrafią być czasem tłumaczenia.
Oto moje ulubione:
- Magdalena Bród commented on her zdjęcie,
- Anqa D***** posted animacja for you,
- Tomek Z*** commented on Monika B******’s wpis,
- Magdalena napisała na Tablica Sandra J******,
- Skorzystaj z narzędzia importer kontaktów, aby wyszukać znajomych, o których nie wiedziałeśaś [sic!], że są na Facebooku,
- Używaj Facebooka na swoim telefonu komórkowego, aby łączyć się ze znajomymi w drodze.
Jakie są wasze „perełki”?
Właściwie, poza takimi incydentami jest po prostu tak, że powiadomienia są albo po polsku albo po angielsku. W takim razie po co wybierać sobie język? a co z ludźmi, którzy kompletnie angielskiego nie znają? Przecież nie muszą, bo wybrali sobie podczas rejestracji język polski.
I tu pojawia się pytanie do ludzi „w temacie”. Kto tłumaczy FaceBooka? Czy są to konkretni ludzie, czy może jednak translator google’a?
Dlatego jak kiedyś testowałem FB, to używałem go po angielsku. W końcu zrezygnowałem z korzystania z niego, bo jakoś nie mogę go „ogarnąć”. Może jeszcze kiedyś ponownie tam wrócę…
Jeden problem z tłumaczeniem stron pisanych z początku pod anglojęzycznych użytkowników jest taki, że w angielskim są tylko dwa przypadki. Jeśli nawet potem, w trakcie rozwoju serwisu, pojawia się plik językowy, to ma on format klucz => wartość, przykładowo dla angielskiego w PHP to będzie:
$m = array(
'animation' => 'animation',
'image' => 'photography',
'added' => 'has been added',
'removed' => has been removed'
);
Na takim pliku można sobie zbudować po angielsku dowolne komunikaty i zawsze mają sens (?animation has been added?, ?photography has been removed?).
Co innego, gdy te same klucze dostaną wartości po polsku ? a muszą to być te same, bo zazwyczaj wywołania w stylu
są wpisane na sztywno w program. Po polsku dostaniemy więc ?animacja został dodany? albo ?zdjęcie została usunięta?. Idealnie nie będzie nigdy, co zresztą widać na stronach próbujących być wielojęzykowymi.
Jednym wyjściem jest przygotowanie oddzielnych komunikatów językowych dla każdego kontekstu (wtedy mamy klucze w rodzaju 'animation_added’, 'image_added’ itd.), z tym że ciągle może to nie wyczerpywać wszystkich kontekstów dla każdego możliwego języka. A tymczasem, plik językowy rośnie. W PHP, w którym napisany jest Facebook, taki plik musi być przynajmniej na chwilę wgrany do pamięci, a to odpowiednio ją zapycha w przypadku, gdy strony są dynamiczne generowane, a nie serwowane z cache’u (a to podejrzewam większość Facebooka, na pewno wszystkie strumienie aktywności). Niemniej, to jest rozwiązanie częściej stosowane, na Facebooku, sądząc po tych przykładach, stosowane nie jest.
Innym wyjściem jest uzależnienie komunikatu interfejsu od kontekstu. Reguły stosowania przypadków są dla każdego języka inne, a więc, jeśli chcemy mieć w pliku językowym klucze 'animation’, 'image’ i 'added’, zostajemy po polsku z czymś w stylu:
$m = array(
'animation' => '[[rodzaj:żeński]]animacja',
'image' => '[[rodzaj:nijaki]]zdjęcie',
'added' => '{{rodzaj:został dodany|została dodana|zostały dodane}}'
);
(A do tego interpreter, który rodzaj jest który w kolejności w polskim.)
I teraz robimy wygibas w postaci uzależnienia kontekstu jednego komunikatu interfejsu od drugiego (a więc nie można już po prostu zwrócić wartości dla zadanego klucza, trzeba ją jeszcze za każdym razem dynamicznie sparsować ze względu na kontekst). Niezbyt to eleganckie, niezbyt wydajne.
Odpowiadając na pytanie, bo trochę popłynąłem: Facebooka z pewnością tłumaczą ludzie, ograniczeni tym, o czym wyżej napisałem. Problemem wielu aplikacji FOSS (free and open source) ? choć Facebook do nich nie należy, ale to dobrze rysuje problem ? jest fakt nieaktualności lub niekompletności plików językowych, często też powstają one jako ostatnie, gdy jest już gotowa stabilna wersja i nie inaczej jest z Facebookiem. Koordynować tłumaczy kilkudziesięciu języków przy stale rozwijającej się aplikacji, jaką jest Facebook, to zadanie nie lada. Jest problem, jak ich zatrudniać, żeby nie przepłacać (mają być na bieżąco, po 10 min. dziennie, a płacić im za godzinę na przykład?). Jest problem z tym, że tłumaczenia polskie często brzmią angielskawo, kserując składnię oryginału. Jest problem z tym, że Facebook jest duży, a tłumaczom może nie chcieć się wgryzać we wszystkie konteksty. Jest problem, bo nawet, jak się tłumacz wgryzie we wszystkie konteksty, to developer potem bierze dany komunikat interfejsu, wkłada w nowy kontekst i już brzmi to drewniano. I nie jest to absolutnie wina tego, że ludzie są niekompetentni. To jest po prostu niełatwa robota. Dużo kompromisów, o wielu rzeczach trzeba pomyśleć odpowiednio wcześnie, bo się można obudzić z ręką w nocniku. Facebook, pisany wpierw w języku angielskim, z jego prostą deklinacją, ma teraz problem.
No i, oczywiście, ilekroć nie ma komunikatu w danym języku, zastępowany on jest domyślnym, czyli angielskim, stąd te polsko-angielskie mikstury.
Ciekawe, czy mi WordPress kod popsuje.
PS. Czy czcionka w polu komentarza mogłaby być ciut większa?
Popsuł. Raz jeszcze, wywołania w stylu:
print $m['animation'].' '.$m['added'];
Wow, ruiz, jestem pod wrażeniem 🙂 Dziękuję za tak wyczerpującą odpowiedź 🙂
A co do rozmiaru czcionki, to nikt wcześniej nie zwrócił mi na to uwagi, jeśli uważasz, że jest za mała, to powiększę 🙂
@Tomku, FB wcale nie jest taki nie do ogarnięcia, zatem polecam się przekonać 🙂
Mhmm, nie sprawdzałem, ale jeśli np. niemiecki FB ma poprawne tłumaczenia, to można by się spierać z teorią tłumaczeń wpisanych na sztywno. 😉
To ja się spytam kuzynki z Niemiec o ich poprawność fejsbukową 🙂
Rozwijając myśl rulza dodałabym, że najprawdopodobniej tłumacz dostaje same polecenia i hasła: animation, image, added – i później programista to wrzuca.
Rozwiązaniem byłoby tłumaczenie każdego komunikatu osobno (co z przyczyn technicznych wymagałoby sporych zmian w kodzie) albo kombinowanie (zamiast „zdjęcie została dodana” mogłoby być „dodano zdjęcie”).
W języku angielskim nie tylko są dwa przypadki zamiast naszych siedmiu (w niemieckim cztery :)), ale i czasowniki nie odmieniają się przez rodzaje.
Nie mam Facebooka. Jestem szczęśliwa.
Przepraszam, zrobiłam błąd w nicku – myśl ruiza, oczywiście.
Tłumaczenie facebooka jest relizowane przez? Użytkowników. 😉 Jest aplikacja do translacji ? trzeba poszukać, nie mam linka pod ręką.
BTW, literki w formularzu komentowania są jasnoszare? może by je tak na czarno pomalować?
@Macieju, próbowałam to zrobić, tak, jak zwiększyć czcionkę, ale okazuje się, że jednak jestem w tej kwestii debilem.
Mam taki kod:
Wydawało mi się, że wystarczyło zrobić coś takiego:
Jednak nie…
Zmieniłam kolor na czarny – dzięki godlark.
Teraz już chyba nie trzeba zmieniać rozmiaru 🙂
wypowiedzi @ruiza oraz @olgicecyclii zainspirowały mnie do popełnienia dzisiejszego wpisu – słów kilka o angielskich przypadkach (i to wcale nie o dwóch 😉 )
o, to idę poczytać 🙂
MrTom, ale dlaczego piszesz nicki z @?
… bo to ładne jest 😉
@Olgocecylio, tak się generalnie przyjęło w blogosferze przecież 🙂
@Magdalena Bród
Przyjęło się ale do oznaczenia osoby, której się odpowiada, jak powyżej.
Oczywiście przed „ale” powinien być przecinek.
@AJ, wiem, stąd też emotikon
Magdaleno Bród, ja znam ten zapis, ale w tym kontekście jest kompletnie nieuzasadniony…