Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Wersje językowe strony, Jak elegancko zaprojektować
pitbull82
post
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

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


Witam

Na stronie, nad którą obecnie pracuję, chciałbym umieścić 2 wersje językowe. Oczywiście samo zrobienie ot tak tego, to żaden problem, pytanie tylko jak zrobić to elegancko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dodam, że chciałbym, aby również tagi alt i title były w razie czego w angielskiej wersji językowej.

Ma ktoś pomysł jak to elegancko zrealizować?

O szablonach nie wiem nic, ale może to trzeba jakoś na tej zasadzie realizować? np. dać alt="{opis1}" i później to przetwarzać w zależności od wybranej wersji językowej ? Pytanie tylko czy powinno się to robić za każdym razem czy może raz a może jeszcze jakoś inaczej?

Czekam na Wasze pomysły i opinie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 24)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Najprościej to możesz includować dokument z sekcją head i ptoblem rozwiązany
Co do altów, to juz chyba gorzej.
Może jakiś skrypt wykrywający jaki plik jest includowany w headzie i odpalający odpowiednie zmienne znacznikach alt

Aha, rzy przełączaniu wersji po prostu wysyłasz via post lub get zmienną dla instrukcji warunkowej zawartej na poczatku dokumentu (tej ładującej wersję językową)

Ten post edytował Cysiaczek 5.03.2005, 19:28:52
Go to the top of the page
+Quote Post
bela
post
Post #3


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Najprościej tak,

Dajesz w URLu index.php?foo=bat&lang=pl

I załączasz templaty w wersji pl, jesli pobierasz coś z bazy to robisz
  1. SELECT *
  2. FROM foo WHERE lang='pl'

Potem wrzucasz to do szablonów i voila (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Mi taki mechanizm w nowej wersji strony OPB zajął ok 50 linijek, wraz z podzialem na mvc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Spirit86
post
Post #4





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


o jejku, przypatrz się np. PHPBB, czy czemuś co zawier funkcje językowe :].
Tworzysz plik polish.php
i tam deklarujesz stałe, tj. title, name itp.

strona główna:
  1. <?php
  2.  
  3. echo '<title>'.title.'</title>';
  4.  
  5. ?>

reszty domyśl się sam :]
Go to the top of the page
+Quote Post
Najki
post
Post #5





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Podobno najszybciej działa coś takiego, jeśli oprzesz te dane na zwykłych tablicach (przynajmniej tak twierdzili developerzy frameworka Seagull na konferencji PHPcon 2004 w Poznaniu). Takie wieeelkieee tablice (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@Najki ma racje!!!

Tworzysz sobie katalog np "lang" i umieszczasz pliczki z wersjami jezyków i co do tego to dajesz jeszcze w odpowiednim kodowaniu. W pliku tym zawiera sie bardzo duza tablica w ktorej "siedza" teksty do odpowiednich czesci na stronie, wszystko co jest statyczne na stronie. Jesli serwis jest oparty na smarty a jeszcze lepiej jak spelnia MVC to jeszcze latwiej poprostu zaciagasz odpowiedni pliczek.

@bela_666 z tym bym sie tak kłócił bo tak naprawde wiekszosc projektów opartych jest na takiej wlasnie zasadzie jak powyzej opisalem, przykład phpMyAdmin.

Na bazie danych mozna robic ale wtedy przy zalozeniu ze osoby tłumaczące maja dostep do specjalnego panelu tlumaczeń.

Jak powiedział Najki
Cytat
przynajmniej tak twierdzili developerzy frameworka Seagull na konferencji PHPcon 2004 w Poznaniu
i z tym sie zgadzam.
Go to the top of the page
+Quote Post
bela
post
Post #7


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


@SongoQ co do wybierania z bazy, ja mysle o artykułach, newsach etc
i z czym byś się nie zgodził ?
Go to the top of the page
+Quote Post
SongoQ
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@bela_666 Tak oczywiscie z tym sie zgadzam, bo nie ma innej mozliwości.

Chodziło mi o elementy (teksty) statyczne na www.
Go to the top of the page
+Quote Post
bregovic
post
Post #9





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Jak się używa smarty - to 'elementy statyczne' najlepiej ustawiać w configach - i je dynamicznie includować w templacie, np decydując na podstawie zmiennej GET.
Go to the top of the page
+Quote Post
SongoQ
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@bregovic "Element statyczny" tutaj przyjołem tekst który nie ulega znianie (czyli nie "siedzi" w bazie danych) i wyłącznie zalezy od wersji jezykowej strony.
Go to the top of the page
+Quote Post
Puciek
post
Post #11


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Ja zaproponuje wykorzytsanie odrazu smarty i podstawianie danych z tabelek wlasnie
Go to the top of the page
+Quote Post
hawk
post
Post #12





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


A ma ktos doswiadczenie np. z gettext?
Go to the top of the page
+Quote Post
_Mateo
post
Post #13





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.03.2005
Skąd: Jaworzno

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


Witam!
ja ostatnio też cos takiegio miałem, ale rozwiązałem to na wyrażeniu warunkowym:

  1. <?php
  2. if($jezyk_strony =='pl') {
  3. echo &#092;"Witaj!\"; }
  4. elseif ($jezyk_strony =='eng') {
  5. echo &#092;"Hello\"; }
  6. ?>


oczywiście wcześniej jest wyciąganie danych z bazy itp...

Pozdrawiam, Mateo
Go to the top of the page
+Quote Post
SongoQ
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@_Mateo troche Twoja metoda jest nie korzystna dla programisty. Wyobraz sobie taka sytuacje ze aplikacja musi dzialac w kilku jezykach ktorych programista nawet nie zna "Witaj świecie" wtedy 1 pliczek z tlumaczeniem jest wysylany osobie tłumaczącej i dostajesz gotowy pliczek z tablica, kopiujesz go do projektu i juz masz odpowiednia obslugę jezyka. To co ty napisałes mija sie całkowicie z celem.

Chyba nie chciałbys wysyłac kodu tłumaczowi??
Go to the top of the page
+Quote Post
_Mateo
post
Post #15





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.03.2005
Skąd: Jaworzno

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


@ SongoQ: w sumie tez fakt, tylko że zależy do czego to wykorzystać... do moich projektów typu Licznik idiotów itp w zupełności to wystarcza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wiem, że jest sporo innych sposobów, ale ten jest akurat najprostrzy a mi efekt jaki daje w zupełności wystarcza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jeśli by wykorzystać np smarty, to faktycznie byłoby to lepsze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) tylko ze tutaj juz nie pomogę (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
SongoQ
post
Post #16





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@_Mateo rozumiem Twoje podejscie, najprostsze rozwiazanie. W sumie w tym co podales no to moj przyklad troche mija sie z celem.

Ale jak sie projektuje aplikacje i jest mowa o obdludze wielu jezyków to naprawde najwazniejsze jest dla Ciebie aby tlumaczenie przeszlo sprawnie i osoba ktora to robi mogla latwo to zrealizowac. Zadko sie zdaza ze na jakis "dziwny" jezyk tlumaczy programista.
Go to the top of the page
+Quote Post
pitbull82
post
Post #17





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

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


Na tej stronce nie będzie ani dużo rzeczy, ani nie będzie ona skomplikowana. Chodziło mi tylko właśnie o poznanie sposobu podejścia do sprawy. Rozumiem, że warto by było się zainteresować SMARTY. Ciekawe tylko "z czym to się je" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
SongoQ
post
Post #18





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


http://smarty.php.net/

Na poczatku wyglada strasznie ale zobaczysz pozniej.
Go to the top of the page
+Quote Post
hwao
post
Post #19


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




O ile dobrze pamietam to OPT ma wsparcie dla jezykow (jazeli to to w najbluzszych wersjach bedzie).
Ja sam to robie troche inaczej mam dane zachowane odnosnie kazdego modlu i jak cos trzeba to zalatowuwuje te dane wysylam do widoku (np smary albo cokolwiek innego) a on sobie juz wybiera co i jak.
Go to the top of the page
+Quote Post
krzemian
post
Post #20





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.01.2004
Skąd: Świętochłowice

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


Trochę odgrzewam topic, ale może ktoś jeszcze czeka:)

Moje zdanie - zrobić to tak jak jest w PHPBB, czyli na tablicach. Tam jak chcesz mieć kolejną wersję językową, to ściągasz odpowiednie pliki i wszystko jest spisane w tablicach ($lang, $faq), pliki mają te same nazwy, ale są w osobnych folderach (lang_pl, lang_en bodajże) i skrypt po prostu inkluduje pliki z odpowiedniego folderu. Prosty i dobry sposób, a co najważniejsze - przenośny.
Go to the top of the page
+Quote Post
Martio
post
Post #21





Grupa: Zablokowani
Postów: 167
Pomógł: 2
Dołączył: 15.02.2004

Ostrzeżenie: (30%)
XX---


Chciałbym odświeżyć nie co temat... Czy wiecie jak zrobić, aby skrypt automatycznie wykrywał wersję językowe? Wiele razy widziałem coś takiego, że wchodzę na zagraniczną stronę i od razu pojawia mi się polska wersja językowa. Nie muszę nic wybierać.

Jak to działa? Jak zrobić taką automatyczną detekcję wersji językowej? Czy ktoś może wie?
Go to the top of the page
+Quote Post
nospor
post
Post #22





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  3. ?>
i chyba juz wszystko jasne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

moze byc tam kilka języków. Należy brać pierwszy z brzegu, chyba ze twoja strona go nie obsluguje - wowczas kolejny
Go to the top of the page
+Quote Post
Martio
post
Post #23





Grupa: Zablokowani
Postów: 167
Pomógł: 2
Dołączył: 15.02.2004

Ostrzeżenie: (30%)
XX---


Cytat(nospor @ 2006-03-09 12:56:12)

Dziekuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A dla zainteresowanych tematem polecam ten artykuł:
http://www.netcoffee.pl/pogodzinach/2006/0...ka-uzytkownika/
Go to the top of the page
+Quote Post
chomiczek
post
Post #24





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


Dokładne zidentyfikowanie usera, tj jego kraju znakomicie sprawdza się dzięki temu:
http://ip-to-country.webhosting.info/ Potrzebna jest jednak baza do tego.
w bazie przechowywane sa pule adresów IP dla danego kraju i na tej podstawie mozna zidentyfikować skąd łączy się użytkownik.
Go to the top of the page
+Quote Post
Strzałek
post
Post #25





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

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


wygodna obsługa języków jest w opt - http://opt.openpb.net/docs/pl/doku.php?id=features:i18n
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 15.09.2025 - 09:54