Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] wielo języczna strona.
Forum PHP.pl > Forum > Przedszkole
Neeew
closedeyes.gif Googlowałem, Googlowałem & Googlowałem. nie znalazłem nic pożytecznego a potrzebuję mieć stronę w kilku językach, google udostępnia auto-tłumacza ale to wali cały tekst, wszystko inne.
da się jakoś zrobić tłumaczenie bezposrednio za pomoca php?
przykład:

  1. <?php
  2.  
  3. echo "Tekst Polski 1" $PL[1];
  4. echo "Inny Język 1" $ANG[2];
  5. echo "Inny Język 1" $ROS[3];
  6. echo "Inny Język 1" $MEX[4];
  7. echo "Inny Język 1" $HIS[5];
  8.  
  9. $PL[1] == $ANG[2] == $ROS[3] == $MEX[4] == $HIS[5] ;
  10.  
  11. echo "$PL <= $ANG"//jakby byla strona w j.ang odtworzona
  12.  
  13. ?>


*mam kompletna swiadomosc ze moje umiejetnosci php sa zerowe ale chcialem pokazac jak bym chcial to zrobic, wiem ze zapewne zle uzylem tablice.*

da się zrobić coś na podobe? - nie chce żeby czytało stron z np

/translate/ang/index.php

/translate/pl/index.php

tylko bezposrednio z index.php (wszystkie jezyki tu), da się tak wgl?.

w html

  1. <meta charset="utf8">
  2. <form action="Zmien_Jezyk">
  3. <input type="radio" name="ANG" value="eng"/>English</form>
  4. <br/>
  5. <form action="Zmien_Jezyk">
  6. <input type="radio" name="POL" value="pol"/>Polski</form>
  7. <br/>
  8. <form action="Zmien_Jezyk">
  9. <input type="radio" name="ROS" value="russ"/>questionmark.gifquestionmark.gifquestionmark.gif?</form>
  10. </html>


itd
b4rt3kk
Utwórz sesję, daj sobie jakieś flagi do klikania, żeby ktoś mógł zmienić język i w sesji przechowuj identyfikator języka. Ewentualnie, jeśli ma to tylko chwilowo zmienić język (na 1 podstronie, gdy przejdziesz na kolejną - znów jest w oryginale, użyj GET). Coś w tym stylu:

  1. $_SESSION['lang'] = 'pl';
  2.  
  3. switch ($_SESSION['lang']) {
  4. case 'pl': echo 'tekst po polsku'; break;
  5. case 'en': echo 'tekst po angielsku'; break;
  6. case 'de': echo 'tekst po niemiecku'; break;
  7. }
Neeew
zrobiłem w html coś takiego

  1. <hr>
  2. <IMG src="Flag/Anglia.png" width="130" height="90">
  3. <b class="Tekst_niebieskie_tlo">English</b>
  4. <!-- <br/> -->
  5. <IMG src="Flag/Polska.png" width="130" height="90">
  6. <b class="Tekst_niebieskie_tlo">Polski</b>
  7. <!-- <br/> -->
  8. <IMG src="Flag/Rosja.png" width="130" height="90">
  9. <b class="Tekst_niebieskie_tlo">Русский</b>
  10. <!-- <br/> -->
  11. <IMG src="Flag/Meksyk.png" width="130" height="90">
  12. <b class="Tekst_niebieskie_tlo">Mexic</b>
  13. <!-- <br/> -->
  14. <IMG src="Flag/Hiszpania.png" width="130" height="90">
  15. <b class="Tekst_niebieskie_tlo">Spain</b>
  16. <hr>


tylko niewiem jak z tego zrobić żeby zmieniało język bezpośrednio w jednym pliku.
gitbejbe
to nie takie proste.

tutaj masz fajny przykład: http://www.forumweb.pl/porady-i-tutoriale-...egladarki,59071

ale to opcja autowykrywania. Jeśli chcesz aby użytkownik sam dokonywał zmiany języka, to flagi są dobrym pomysłem. Tak czy siak, zaczynają się schody. Najprościej dla Ciebie byłoby chyba powielić stronę w różnych wersjach językowych. Jesli ktoś kliknie np język angielski, to przekieruje go do folderu z projektem strony w tym języku.

czyli jesli masz np domene: jakaś_domena.com i ktoś kliknie w angielska flage, to przekieruje go np do jakas_domena.com/en/

można tez inaczej. tylko nigdy tego nie robiłem więc musiałbyś o tym poczytać. SUBDOMENY
jesli ktoś kliknie w angielską flage, to przekieruje go do : en.nazwa_domeny.com

tak czy siak ta metoda sprowadza się do powielenia tej samej strony do kilku różnych wersji językowych - jesli nie znasz php.

jeśli znasz php, to wtedy kombinujesz. tak jak napsiał @b4rt3kk. Robisz sesje, która przechowa informacje o wybranym języku, a póżniej w kazdej strony oodwoułesz się do jakiejś funkcji, która pozamienia Tobie wszystkie napisy. Wedty np kazdy tekst na stronie mógłbyś trzymac w jakiejś zmiennej a jej wartosc ustalać poprzez case. Roboty a roboty : )
Neeew
Cytat(gitbejbe @ 3.07.2013, 09:07:43 ) *
to nie takie proste.

tutaj masz fajny przykład: http://www.forumweb.pl/porady-i-tutoriale-...egladarki,59071

ale to opcja autowykrywania. Jeśli chcesz aby użytkownik sam dokonywał zmiany języka, to flagi są dobrym pomysłem. Tak czy siak, zaczynają się schody. Najprościej dla Ciebie byłoby chyba powielić stronę w różnych wersjach językowych. Jesli ktoś kliknie np język angielski, to przekieruje go do folderu z projektem strony w tym języku.

czyli jesli masz np domene: jakaś_domena.com i ktoś kliknie w angielska flage, to przekieruje go np do jakas_domena.com/en/

można tez inaczej. tylko nigdy tego nie robiłem więc musiałbyś o tym poczytać. SUBDOMENY
jesli ktoś kliknie w angielską flage, to przekieruje go do : en.nazwa_domeny.com

tak czy siak ta metoda sprowadza się do powielenia tej samej strony do kilku różnych wersji językowych - jesli nie znasz php.

jeśli znasz php, to wtedy kombinujesz. tak jak napsiał @b4rt3kk. Robisz sesje, która przechowa informacje o wybranym języku, a póżniej w kazdej strony oodwoułesz się do jakiejś funkcji, która pozamienia Tobie wszystkie napisy. Wedty np kazdy tekst na stronie mógłbyś trzymac w jakiejś zmiennej a jej wartosc ustalać poprzez case. Roboty a roboty : )


dzięki, jak nie będę miał pomocy jak zrobić w jednym pliku to się tego zastosuje ale jednak wolę mieć w jednym bo nie chce mi się "migac" między plikami żeby coś przetłumaczyć, wolę w jednym na pare.
Damonsson
Jasne i dla strony z 50 językami, dla każdego słowa na stronie 50 razy case... Fajnie wyglądałby kod.
Przy zmianie języka (kliknięcie flagi), zapisujesz go sobie do sesji i później już tylko korzystasz sobie choćby z prostego gettext i tyle, banalne jak stworzenie pierwszego w życiu if'a.
Neeew
php chyba nie jest stworzony dla mnie, uczyłem się podstaw pare razy i zapomniałem.. więc do końca nie rozumiem co i jak tam zrobić.
Damonsson
No to masz krok po kroku http://www.codeforest.net/translate-and-lo...php-and-gettext
najpierw wytłumaczone na tablicach, a później na gettext IMHO lepsze.
Neeew
Cytat(Damonsson @ 3.07.2013, 09:24:40 ) *
No to masz krok po kroku http://www.codeforest.net/translate-and-lo...php-and-gettext
najpierw wytłumaczone na tablicach, a później na gettext IMHO lepsze.


poczytam.
!*!
Coś słabo szukałeś, temat był wałkowany setki razy (dla frazy "wielojęzyczność" masz 691 wyników). http://www.forum.legalne.info.pl/php-wielo...php-t34529.html tu masz opis jak to zrobić aby było w miarę dobrze, poczytaj też komentarze.
gitbejbe
@Damonsson

dzięki za uwagę ; ) tak jakoś pierwsze co wpadło mi do głowy to case. Jak pisałem, nie robiłem nigdy kilku wersji językowych dlatego nie szukałem rozwiązań. W sumie dziwie się dlaczego nie pomyślałem o tablicach... gettext z pewnością zastosuje jeśli będe coś takiego robić. Dzięki i powiedzenia ; )
phpion
Cytat(Damonsson @ 3.07.2013, 09:19:56 ) *
Przy zmianie języka (kliknięcie flagi), zapisujesz go sobie do sesji

...i narażasz się na duplikację treści. Wersję językowe powinny być obsługiwane przez osobne adresy, np. domena.pl/pl/strona.html, a nie sesje/ciasteczka.
Damonsson
Cytat(phpion @ 3.07.2013, 11:22:43 ) *
...i narażasz się na duplikację treści. Wersję językowe powinny być obsługiwane przez osobne adresy, np. domena.pl/pl/strona.html, a nie sesje/ciasteczka.



Moderator, a czytać nie umie, wstyd wink.gif

Cytat
da się zrobić coś na podobe? - nie chce żeby czytało stron z np

/translate/ang/index.php

/translate/pl/index.php
Neeew
Cytat(b4rt3kk @ 3.07.2013, 08:26:57 ) *
Utwórz sesję, daj sobie jakieś flagi do klikania, żeby ktoś mógł zmienić język i w sesji przechowuj identyfikator języka. Ewentualnie, jeśli ma to tylko chwilowo zmienić język (na 1 podstronie, gdy przejdziesz na kolejną - znów jest w oryginale, użyj GET). Coś w tym stylu:

  1. $_SESSION['lang'] = 'pl';
  2.  
  3. switch ($_SESSION['lang']) {
  4. case 'pl': echo 'tekst po polsku'; break;
  5. case 'en': echo 'tekst po angielsku'; break;
  6. case 'de': echo 'tekst po niemiecku'; break;
  7. }


jak to zastosować? trzeba stworzyc jakis oddzielny plik? np nasza strona bedzie w /strona/index.php a tlumaczenie tekstu do tego pliku w /tlumaczenie/index.php ? czy jakoś pod strona w tym samym pliku to zamiescic? chialbym taki sposob, strona bedzie w 5 językach z czasem do 10 nie wiecej. powie ktos jak to użyc?
buliq
Gettext

Rozwiązanie może nie idealne, ale lepiej zarządza się samymi plikami z tłumaczeniem niż formą w jakiej to przedstawiłeś.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.