MozillaPL.org - polskie centrum Mozilli

Główne menu:

Tłumaczenie słów z odmianą zależną od okoliczności

Projektowanie aplikacji i rozszerzeń opartych na technologiach Mozilla Foundation: XUL, JavaScript, XPCOM, XBL i innych

Moderator: Pomocy?!

Tłumaczenie słów z odmianą zależną od okoliczności

Postautor: Gość » 06 lipca 2004, 08:48

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.5) Gecko/20031007 Firebird/0.7

Z tego co wiem, to wielojęzykowość Mozilli możliwa jest dzięki temu, że w miejsce, gdzie pojawić ma się napis, wstawiana jest encja. W zależności od wybranego języka encje przyjmują różne wartości. Czy w takim razie możecie mi wyjaśnić, jak to jest robione, że pokazywany napis jest od czegoś uzależniony, na przykład od liczby:
  • 1 nowa wiadomość
  • 2 nowe wiadomości
  • 5 nowych wiadomości

?
Gość
 

Postautor: Gość » 06 lipca 2004, 13:14

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.5) Gecko/20031007 Firebird/0.7

Nikt nie wie?
Gość
 

Re: Tłumaczenie słów z odmianą zależną od okoliczności

Postautor: Gość » 06 lipca 2004, 15:53

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.0; pl-PL; rv:1.6) Gecko/20040113 MultiZilla/1.6.3.0e

Anonymous pisze:jak to jest robione, że pokazywany napis jest od czegoś uzależniony, na przykład od liczby:

np. coś w stylu:
if x=1 y=wiadomość
else y=wiadomości ;)
Gość
 

Postautor: GmbH » 06 lipca 2004, 16:44

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.2; pl-PL; rv:1.7) Gecko/20040608

GmbH
 
Posty: 825
Z nami od: 30 stycznia 2002, 22:38

Postautor: Yano » 06 lipca 2004, 18:25

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7) Gecko/20040614 Firefox/0.9 (Yano)

Ja podejrzewam, że chodzi raczej o to, że w angielskim języku mamy albo "new message" albo "XX new messages", podczas gdy w polskim jest "nowa wiadomość" i "nowe wiadomości" lub "nowych wiadomości", czyli o jedną liczbę mnogą więcej, co musiało pociągnąć za sobą zmiany w kodzie ;)
A w podanych przez GmbH przykładach mamy rozbicie tylko na 2 możliwości.
Yano
 
Posty: 858
Z nami od: 17 grudnia 2002, 10:32

Postautor: GmbH » 06 lipca 2004, 20:24

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.2; pl-PL; rv:1.7) Gecko/20040608

Yano pisze:Ja podejrzewam, że chodzi raczej o to, że w angielskim języku mamy albo "new message" albo "XX new messages", podczas gdy w polskim jest "nowa wiadomość" i "nowe wiadomości" lub "nowych wiadomości", czyli o jedną liczbę mnogą więcej, co musiało pociągnąć za sobą zmiany w kodzie ;)
A w podanych przez GmbH przykładach mamy rozbicie tylko na 2 możliwości.

  • 1 nowa wiadomość
  • 2 nowe wiadomości
  • 3 nowe wiadomości
  • 4 nowe wiadomości
  • 5 nowych wiadomości
  • 6 nowych wiadomości
  • 7 nowych wiadomości
  • ... nowych wiadomości


if ($n == 1) {
print "Jedna nowa wiadomość..."
}
elsif ($n >= 2 && $n <= 4) {
print "$n nowe wiadomości..."
}
else {
print "$n nowych wiadomości..."
}

Pasi? Wystarczy przerobić na C++ z wykorzystaniem poprzedniego przykładu...
GmbH
 
Posty: 825
Z nami od: 30 stycznia 2002, 22:38

Postautor: Gość » 06 lipca 2004, 22:35

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.5) Gecko/20031007 Firebird/0.7

Anonymous pisze:
Anonymous pisze:jak to jest robione, że pokazywany napis jest od czegoś uzależniony, na przykład od liczby:

np. coś w stylu:
if x=1 y=wiadomość
else y=wiadomości ;)

Sęk w tym, że w plikach z tłumaczeniem nie ma żadnych skryptów. Prawda?

Yano pisze:Ja podejrzewam, że chodzi raczej o to, że w angielskim języku mamy albo "new message" albo "XX new messages", podczas gdy w polskim jest "nowa wiadomość" i "nowe wiadomości" lub "nowych wiadomości"

Dokładnie o to mi chodziło. Zasady obu tych języków różnią się od siebie, dlatego zastanawiałem się, jak można te różnice ze sobą pogodzić.

Yano pisze:, czyli o jedną liczbę mnogą więcej

Jest jedna liczba pojedyńcza i jedna mnoga, z tym że w liczbie mnogiej, zależnie od określanej ilości, stosowany jest mianownik (nowe wiadomości) lub dopełniacz (nowych wiadomości).

Yano pisze:, co musiało pociągnąć za sobą zmiany w kodzie ;)

Ano właśnie. Tak też podejrzewałem.

Yano pisze:A w podanych przez GmbH przykładach mamy rozbicie tylko na 2 możliwości.

Otóż to, mamy encję biffNotification_message dla liczby pojedynczejej oraz encję biffNotification_messages dla liczby mnogiej. Dla prawidłowego użycia w języku polskim nie wystarczają one. Czy z tego względu tłumacze MozilliPL zmuszeni są grzebać w kodzie?

GmbH pisze:
Yano pisze:Ja podejrzewam, że chodzi raczej o to, że w angielskim języku mamy albo "new message" albo "XX new messages", podczas gdy w polskim jest "nowa wiadomość" i "nowe wiadomości" lub "nowych wiadomości", czyli o jedną liczbę mnogą więcej, co musiało pociągnąć za sobą zmiany w kodzie ;)
A w podanych przez GmbH przykładach mamy rozbicie tylko na 2 możliwości.

  • 1 nowa wiadomość
  • 2 nowe wiadomości
  • 3 nowe wiadomości
  • 4 nowe wiadomości
  • 5 nowych wiadomości
  • 6 nowych wiadomości
  • 7 nowych wiadomości
  • ... nowych wiadomości

  • 22 nowe wiadomości
  • 23 nowe wiadomości
  • 24 nowe wiadomości
  • 25 nowych wiadomości
  • 26 nowych wiadomości
  • 27 nowych wiadomości
  • 28 nowych wiadomości
  • 29 nowych wiadomości
  • 30 nowych wiadomości
  • 31 nowych wiadomości
  • 32 nowe wiadomości
  • 33 nowe wiadomości
  • 34 nowe wiadomości
  • 35 nowych wiadomości
  • ...
  • 100 nowych wiadomości
  • 101 nowych wiadomości
  • 102 nowe wiadomości
  • 103 nowe wiadomości
  • 104 nowe wiadomości
  • 105 nowych wiadomości
  • 106 nowych wiadomości
  • ...

GmbH pisze:if ($n == 1) {
print "Jedna nowa wiadomość..."
}
elsif ($n >= 2 && $n <= 4) {
print "$n nowe wiadomości..."
}
else {
print "$n nowych wiadomości..."
}

Czy to znaczy, że prawidłowo jest odmieniać w następujący sposób?
  • 22 nowych wiadomości
  • 23 nowych wiadomości
  • ...
Nie podawaj mi poprawionego kodu, bo nie jest mi on potrzebny. Temat poruszyłem, ponieważ zaciekawiło mnie, jak tłumacze radzą sobie w okolicznościach takich, gdzie tłumaczone słowo powinno być odmieniane, a zasady określające, kiedy dana odmiana występuje, są różne dla języka polskigo i angielskiego. Najwyrazniej muszą zmieniać część kodu.

GmbH pisze:Pasi? Wystarczy przerobić na C++ z wykorzystaniem poprzedniego przykładu...

Po co przerabiać to na C++ ? To chyba powinno być przetwarzane (kompilowane na rozkazy dla procesora) z kodu JavaScriptowego podczas każdego uruchamiania odpowiedniego składnika Mozilli. Możliwe, że się mylę.

Dzięki za wszystkie odpowiedzi!

--
Bezimienny Ciekawski
Gość
 

Postautor: GmbH » 06 lipca 2004, 22:40

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.2; pl-PL; rv:1.7) Gecko/20040608

Anonymous pisze:
  • 22 nowe wiadomości

Eeee, kto tam będzie odbierał więcej niż 21 nowych wiadomości ;)

Nic nie zmieniamy w kodzie, i tak juz nieźle poprawili bo na początku nie było w ogóle rozróżnienia, ale kto chce może zgłosić buga na Bugzilli...
GmbH
 
Posty: 825
Z nami od: 30 stycznia 2002, 22:38

Postautor: Gość » 06 lipca 2004, 23:23

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.5) Gecko/20031007 Firebird/0.7

GmbH pisze:if ($n == 1) {
print "Jedna nowa wiadomość..."
}
elsif ($n >= 2 && $n <= 4) {
print "$n nowe wiadomości..."
}
else {
print "$n nowych wiadomości..."
}

Zapomniałem uprzednio zapytać: Czy powyższe oznacza, że Mozilla potrafi parsować kod napisany w języku PHP?

To powinno być chyba w JavaScripcie:
Kod: Zaznacz cały
function mianownik(intIlosc){
   if(/*kod sprawdzający ostatnie dwie cyfry liczby zawartej w zmiennej `intIlosc`*/){
      return TRUE;//zwraca TRUE, jeśli powinien zostać użyty mianownik liczby mnogiej
   }else{
      return FALSE;//w przeciwnym wypadku zwraca FALSE
   }
}
if(intIlosc==1){
   documen.write('1 nowa wiadomość');
}elseif(mianownik(intIlosc)){
   documen.write(intIlosc+' nowe wiadomości');
}else{//dopełniacz
   documen.write(intIlosc+' nowych wiadomości');
}

Jeśli popełniłem błąd, to stało się to z winy zaspania (wydaje mi się, że coś piszę, ale okazuje się, że to się działo na wpół we śnie, bo nie potrafię już utrzymać powiek otwartych). Innym powodem może być bardzo długi okres braku obcowania z JavaScriptem.

--
Zaspany Bezimienny Ciekawski
Gość
 

Postautor: GmbH » 07 lipca 2004, 09:02

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.2; pl-PL; rv:1.7) Gecko/20040608

Anonymous pisze:Zapomniałem uprzednio zapytać: Czy powyższe oznacza, że Mozilla potrafi parsować kod napisany w języku PHP?

Nie, nie parsuje kodu napisanego w PHP, poza tym to był kawałek w Perlu (którego też nie parsuje) ;)
GmbH
 
Posty: 825
Z nami od: 30 stycznia 2002, 22:38

Postautor: Gość » 07 lipca 2004, 10:54

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.5) Gecko/20031007 Firebird/0.7

GmbH pisze:Nie, nie parsuje kodu napisanego w PHP

A szkoda, bo obsługa tego języka przysporzyłaby Mozilli wielu dodatkowych programistów ;-)

GmbH pisze:, poza tym to był kawałek w Perlu

Trudno to stwierdzić po użytej tu składni. Perl i PHP4 to nazbyt podobne języki. Jedyną wskazówką co do tego, który z nich został tu użyty, jest zastosowanie polecenia print, które w PHP używana jest znacznie rzadziej od polecenia echo.

GmbH pisze:(którego też nie parsuje) ;)

Także szkoda, bo to jeden z najłatwiejszych języków. Choć gdy się nad tym dłużej zastanowić, to można dojść do wniosku, że zbyt wielka łatwość programowania wpłynęłaby ujemnie na jakości Mozilli. Aż ciarki przechodzą na myśl o tym, że dodatki do Mozilli można by pisać w... Pascalu ;-)

Wracając do tematu wątku: istnieje już zamiar wprowadzenia większej swobody dla tłumaczy Mozilli? Chciałbym przetłumaczyć jeden z dodatków, ale obawiam się, że bez zmian w jego kodzie nie obejdzie się. Właściwe byłoby wprowadzenie możliwości używania wyrażeń warunkowych wewnątrz plików. Byćmoże taka możliwość już istnieje, ale ja o tym nie wiem, bo swoją wiedzę o tłumaczeniu Mozilli opieram na przejrzeniu kilkunastu plików zawartych w pliku pl-PL.jar. Ty o takiej możliwości zapewne także nie wiesz, bo już byś mi o niej powiedział. Może kto inny wie coś więcej w tej sprawie?
Gość
 

Postautor: Gość » 07 lipca 2004, 11:03

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.5) Gecko/20031007 Firebird/0.7

Gość pisze:które w PHP używana jest

Przepraszam, miało być: "które w PHP używane jest".

--
Nie w Pełni Wyspany
Gość
 

Postautor: Adrianer » 07 lipca 2004, 15:53

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7) Gecko/20040616 MultiZilla/1.6.4.0b

Anonymous pisze:Wracając do tematu wątku: istnieje już zamiar wprowadzenia większej swobody dla tłumaczy Mozilli? Chciałbym przetłumaczyć jeden z dodatków, ale obawiam się, że bez zmian w jego kodzie nie obejdzie się. (...)

Tlumaczenie dodatkow nie ma nic wspolnego ze tlumaczeniem Mozilli. Mozesz zmieniac co chcesz (jak tego autor nie zabronil), ale w tym wypadku lepiej wydac taki dodatek pod zmieniona nazwa.
ALE radzilbym Ci poprostu skontaktowac sie z autorami dodatku(ów).
Jak tak zrobiłem w przypadku Multizilli i DownloadWith i wszystkie moje uwagii zostały uwzględnione :D
Adrianer
Moderator
 
Posty: 1771
Z nami od: 15 maja 2002, 17:37
Lokalizacja: Bern/Switzerland


Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Bing [Bot], Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: