Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Liczba pojedyncza i mnoga internalizacja, Implementacja
marcio
post 4.04.2012, 01:50:50
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Witam chcialem sie waz zapytac co myslicie o takim rozwiazaniu jesli chodzi o rozroznanie liczby mnogiej od pojedynczej w tlumaczonych tekstach.
Tak wyglada przykladowy plik z tlumaczeniem: http://pyp.net.pl/source/4f7b98835b9ac
A tak jego dzialania i wynik: http://pyp.net.pl/source/4f7b9b4bd36e3

Oczywiscie mozna miec tez tlumaczenie w *.csv/*.xml ale np *.csv nie bedzie obslugiwalo pluralize.
To tez jest klasa oczywiscie Helper dla widokow bedzie krotszy do wykonania ale jak wam sie podoba sama idea, i czy jest ona "elastyczna"?

Jedyne co wedlug mnie warto zmienic to tworzenie tablic ze jesli dla liczb 5,6,7,8,9 tekst sie nie zmienia dac to do jednego klucza czyli np
  1. $translate['pl']['dogs'] = array(
  2. 'text' => 'W domu u Oskara %how% %ile% %plural%',
  3. 'pluralize' => array(
  4. '%plural%' => array(
  5. '1' => "pies", '2|3|4' => 'psy',
  6. '5|6|7|8|9' => "psow"
  7. )
  8. );

Tylko nie wiem czy potem parsowanie takie tablicy nie bedzie zbyt dlugie przy wiekszym pliku tlumaczen...

Jak wy to robicie?

Ten post edytował marcio 4.04.2012, 01:53:40


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Crozin
post 4.04.2012, 08:45:03
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Po co wymyślasz koło na nowo? http://www.php.net/manual/en/class.messageformatter.php
Go to the top of the page
+Quote Post
marcio
post 4.04.2012, 09:02:45
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat(Crozin @ 4.04.2012, 09:45:03 ) *

Bo np na moim srv nie mam jeszcze php 5.3 a server nie jest moj tylko znajomego, i ogolnie nie kazdy ma jeszcze > 5.3

A co do mojego pytania?


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Crozin
post 4.04.2012, 09:34:58
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


To już najwyższy czas zaktualizować sobie wersje, a jeżeli nie masz takiej możliwości (hosting) zmienić usługodawce (szczególnie, że mowa tu o niedużych kosztach). Wersja 5.3 ma już niespełna trzy lata.

A sam mechanizm jest do niczego.
1. Powtórzeń jest od groma (co już szczególnie w przypadku np. języka angielskiego mającego raptem dwa warianty jest niedorzeczne).
2. Dla języka polskiego nie uwzględniłeś tłumaczeń dla ilości większej niż 9. Przecież dla większych liczb odmiana nadal jest zróżnicowana (w domu są 102 psy, w domu jest 121 psów).

Podpatrz jak to rozwiązano w ICU jeżeli już koniecznie chcesz (bezsensownie) drążyć swoje rozwiązanie.

PS. Jaki to ma związek z OOP?

Ten post edytował Crozin 4.04.2012, 09:35:18
Go to the top of the page
+Quote Post
marcio
post 4.04.2012, 10:37:18
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
A sam mechanizm jest do niczego.
1. Powtórzeń jest od groma (co już szczególnie w przypadku np. języka angielskiego mającego raptem dwa warianty jest niedorzeczne).
2. Dla języka polskiego nie uwzględniłeś tłumaczeń dla ilości większej niż 9. Przecież dla większych liczb odmiana nadal jest zróżnicowana (w domu są 102 psy, w domu jest 121 psów).

No tak odmieniam ogolnie na podstawie ostatniej liczby czyli dla 102 odmieniam dla 2 i wychodzi "w domu sa 2 psy" jednak dla 121 odmieniam dla 1 i wychodzi "w domu sa 121 pies"

W wiekszosci wypadkow dziala, jest jakas regula dla jakich pattern-ow zmieniaja sie czlony?

Ad 1.no to wlasnie chcialem zrobic:
  1. '%plural%' => array(
  2. '1' => "dog",
  3. '0|2|3|4|5|6|7|8|9' => 'dogs'
  4. )

To skroci zapis.

Cytat
To już najwyższy czas zaktualizować sobie wersje, a jeżeli nie masz takiej możliwości (hosting) zmienić usługodawce (szczególnie, że mowa tu o niedużych kosztach). Wersja 5.3 ma już niespełna trzy lata.

Jak juz mowilem srv nie jest moj wink.gif

Cytat
PS. Jaki to ma związek z OOP?

Niewiele pomylilo mi sie ;]

Jesli kogos interesuje rozwiazanie: http://trac.symfony-project.org/browser/br...zationRules.php warunki dla wszystkich jezykow

Dla
  1. $lang = new Vf_Language('Home.php');
  2. print $lang -> get() -> hi.'<Br>';
  3. print $lang -> get() -> phrase('dogs', array('%ile%'), array('1'), true, 1).'<Br>';
  4. print $lang -> get() -> phrase('dogs', array('%ile%'), array('4'), true, 4).'<Br>';
  5. print $lang -> get() -> phrase('dogs', array('%ile%'), array('7'), true, 7).'<Br>';
  6. print $lang -> get() -> phrase('dogs', array('%ile%'), array('21'), true, 21).'<Br>';
  7. print $lang -> get() -> phrase('dogs', array('%ile%'), array('45'), true, 45).'<Br>';
  8. print $lang -> get() -> phrase('dogs', array('%ile%'), array('102'), true, 102).'<Br>';
  9. print $lang -> get() -> phrase('dogs', array('%ile%'), array('121'), true, 121).'<Br>';
  10. print $lang -> get() -> phrase('dogs', array('%ile%'), array('9999'), true, 9999).'<Br>';
  11. print $lang -> get() -> phrase('dogs', array('%ile%'), array('677'), true, 677).'<Br>';
  12. print $lang -> get() -> phrase('dogs', array('%ile%'), array('1592'), true, 1592).'<Br>';
  13.  
  14. //mamy
  15. W domu u Oskara jest 1 pies
  16. W domu u Oskara sa 4 psy
  17. W domu u Oskara jest 7 psow
  18. W domu u Oskara jest 21 psow
  19. W domu u Oskara jest 45 psow
  20. W domu u Oskara sa 102 psy
  21. W domu u Oskara jest 121 psow
  22. W domu u Oskara jest 9999 psow
  23. W domu u Oskara jest 677 psow
  24. W domu u Oskara sa 1592 psy


Ten post edytował marcio 4.04.2012, 10:54:28


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 16:06