Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smarty, wiele jezykow
DBR
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 17.08.2011

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


witam,

temat stary jak swiat, przejrzalem troche tematow, poczytalem ale dalej nie wiem na co sie zdecydowac... mianowicie mam strone obslugujaca wiele jezykow. zawartosc jest ta sama, zmienia sie interfejs, menu, stopka, nazwy pol formularzy, buttony itd. zastanawiam sie jakiego rozwiazania uzyc do tlumaczenia, aby szlo to w miare sprawnie, szybko dzialalo i nie ograniczalo mnie w przyszlosci.

nie moge zalozyc osobnych folderow templatesLANG, bo strona bedzie zmieniala sie bardzo czesto i nie bede zmienial kodu w kilku/kilkunastu plikach tpl.

wpadlem na kilka rozwiazan:

1. trzymanie tlumaczen w plikach configu, ladowanie configu odpowiedniego dla danej wersji jezykowej (dodatkowo ladowanie sekcji [homepage] zeby troche odciazyc) i tam trzymanie tlumaczen w postaci:

hello = Witaj
email = Adres email
password = Hasło

a potem odwolywanie sie do nich z formularza przez {#hello#}

2. niektorzy robia to na xmlach... przyklad takiego rozwiazania - http://stackoverflow.com/questions/6476558...tiple-languages co jest juz chyba troche lepsze, bo pozwala przemycic zmienna w tlumaczeniu i tresc typu "Witaj LOGIN, jak sie czujesz?" nie trzeba rozbijac na dwa odrebne bloki tlumaczen jak w powyzszym przypadku.

3. trzymanie tlumaczen w tablicy w php, assign tablicy do tpl i tam korzystanie z nich, podobnie jak w 1. pkt.

4. sa tez jakies spore klasy jak http://smarty.incutio.com/?page=SmartyMultilanguageSupport ale nie wiem czy to nie jest zbyt wielkie dla mnie.

pomijam kwestie tlumaczenia komunikatow i innych elementow JS, bo z tym sobie poradzilem. trzymanie oddzielnych tlumaczen dla potrzeby PHP rowniez mam obcykane. strony statyczne ktore nie bede sie czesto zmieniac trzymam w bazie albo osobnych podkatalogach z tpl, wiec z tym tez nie ma problemu.

tak wiec zastanawiam sie na ktore rozwiazanie sie zdecydowac i bylbym rad za wszelkie rady i przemyslenia osob ktore korzystaly lub nie korzystaly z ktorychs z wymienionych sposobow albo znaja jakies inne, lepsze.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DBR
post
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 17.08.2011

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


ach, no tak, zapomnialem o gettexcie. dzieki za przypomnienie.

tak apropos... testowalem go kiedys i teraz chcialem znowu ale mam jakis problem, poniewaz na serwerze mi dziala, natomiast na localu nie... wiem ze to kilka linijek kodu i ciezko popelnic blad ale chyba nie w kodzie tkwi problem tylko gdzies po stronie instalacji apacha czy jego ustawieniach... mianowicie nie znajduje mi tych tlumaczen mimo podawania sciezki na kilka roznych sposobow i ustawiania locali w rozny sposob:

  1. putenv("LANGUAGE=de_DE");
  2. putenv("LC_ALL=de_DE");
  3. setlocale(LC_ALL, 'de_DE');
  4.  
  5. $domeny = array(
  6. 'locale/.',
  7. 'locale/',
  8. 'locale\\',
  9. 'locale',
  10. '/locale',
  11. './locale',
  12. '../locale',
  13. '/../locale',
  14. '../../locale',
  15. 'locale',
  16. );
  17.  
  18. foreach ($domeny as $domena)
  19. {
  20. echo "###$domena###";
  21. echo "<br><br>";
  22.  
  23. echo bindtextdomain("default", $domena);
  24. echo "<br>";
  25. bind_textdomain_codeset("default", 'UTF-8');
  26. textdomain("default");
  27.  
  28. echo gettext("Translate me");
  29. echo '<br />';
  30. echo _("I'm a string:");
  31.  
  32. echo "<br><br>";
  33. }


czasem nie chwyta domeny (co jest jasne, bo podaje idiotyczna sciezke) a czasem opkazuje C:\Eclipse 3.3\workspace\nazwa_projektu\locale ale dalej nic.

o jakichs problemach z ustawieniem wyczytalem tu http://php.net/manual/en/function.gettext.php stosuje chyba kazde z mozliwych rozwiazan i nic...

aha, jak wspomnialem na home.pl wszystko dziala jak trzeba, na localu nie mimo ze gettext jest enabled. to pewnie jakis czeski blad albo jakis myk trzeba zastosowac :(

ps: to taki roboczy kod, testowalem rozne warianty ustawiania locali i przypisywania domeny ale nie chodzi.

ps... niestety to tez nie pomaga... http://www.php.net/manual/en/function.setlocale.php#89076

Ten post edytował DBR 26.01.2012, 18:12:04
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 12:47