Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]sesje, języki a google
robos85
post 16.09.2008, 10:50:22
Post #1





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


robię stronę 2 językową. zmiana języka następuje po kliknięciu w link który przekazuje zmienną lang=pl (lang=en - dla angielskiej wersji).
Po kliknięciu zmieniana jest zmienna sesyjna przechowująca aktualny język, a na jej podstawie sa pobierane dane z bazy i odpowiednie pliki językowe są includowane.

Teraz pytanie: czy w takiej sytuacji google zaindeskuje oba języki? W linkach nie ma żadnej zmiennej co do języka np: strona/kontakt.php?lang=.. tylko samo kontakt.php a jak wyżej pisałem, język zmienia się po kliknięciu na flagę w specjalny link

czy np. jeżeli zmienię sesje na ciasteczka i w nich będę język trzymał to google to jakoś inaczej potraktuje?

Lub jak najlepiej zrobić 2 językowość, aby google zaindeksowało obie

Ten post edytował robos85 16.09.2008, 10:31:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
mefjiu
post 16.09.2008, 11:06:31
Post #2





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Proponuję zrobić to na zasadzie subdomeny.
To w zależności który język jest dominujący, jeżeli polski to

polska strona www.domena.com
Niemiecka strona www.de.domena.com

co myślisz o takim rozwiązaniu ?

Ten post edytował mefjiu 16.09.2008, 11:07:04
Go to the top of the page
+Quote Post
robos85
post 16.09.2008, 11:07:28
Post #3





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


hmmm, tylko musze robić 2 wersje plików:/ a tego chciałem właśnie uniknąć:)
Go to the top of the page
+Quote Post
mefjiu
post 16.09.2008, 11:08:36
Post #4





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Dlaczego ?
Go to the top of the page
+Quote Post
robos85
post 16.09.2008, 11:10:09
Post #5





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


a jak to inaczej rozwiązać?
Go to the top of the page
+Quote Post
mefjiu
post 16.09.2008, 11:11:37
Post #6





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Zobacz co wraca ci funkcja $_SERVER
Go to the top of the page
+Quote Post
robos85
post 16.09.2008, 11:13:39
Post #7





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


http://pl2.php.net/manual/pl/reserved.variables.server.php

Sporo zwraca i nie wiem dokładnie do czego zmierzasz smile.gif
Go to the top of the page
+Quote Post
mefjiu
post 16.09.2008, 11:20:50
Post #8





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


któraś zwraca adres aktualnej strony www czyli w twoim przypadku albo www.de.domena.com albo www.domena.com
Wiec robisz warunek jeżeli

  1. <?php
  2. if $_SERVER['ktoraj_funkcja'] == "www.de.domena.com"{
  3. //Treść niemiecka
  4.  
  5. }else{
  6. //Treść polska
  7.  
  8. }
  9. ?>
Go to the top of the page
+Quote Post
robos85
post 23.09.2008, 10:58:57
Post #9





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


niestety opcja z subdomeną nie wchodzi w grę - klient nasz pan :/

Wie ktoś, czy mój sposób opisany w 1szym poście będzie w googleach poprawnie indeksowany?

A wie ktoś czy google obsługuje te sesje prawidłowo, tzn przy "wędrowaniu" po stronie uzywa sesji jak je wprowadzę na stronie?
Go to the top of the page
+Quote Post
barthpl
post 23.09.2008, 15:26:31
Post #10





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


Jeżeli dobrze zrozumiałem to strona strona/kontakt.php w zależności od zmiennej sesyjnej będzie wyświetlała się po polsku lub po innemu? Jeżeli tak to zrobisz to google będzie uważało że pod jednym adresem masz dwie strony i nie za bardzo mu się to spodoba.

Ja to rozwiązuję w sposób że przy każdym adresie jest zmienna lang czyli strona strona/kontakt.php?lang=pl wyświetli się po polsku a strona strona/kontakt.php?lang=en po angielsku. Staram się aby poza stroną startową wszystkie adresy miały zdefiniowany język.

W ten sposób masz łatwy dostęp do języka
  1. <?php
  2. function getLanguage() { return isset($_GET['lang']) ? $_GET['lang']&nbsp: LANG_DEFAULT; }
  3. ?>
oczywiście wartości pl/en można zmienić na inne przydatne w procesie pozycjonowania. Potrzeba będzie trochę zmienić funkcję na taką:
  1. <?php
  2. function getLanguage()
  3. {
  4.    switch( strtolower($_GET['lang']) ) {
  5.        case "lodowka"'pl';
  6.        case "refrigerator"'en';
  7.        defaul: return LANG_DEFAULT;
  8.    }
  9. }
  10. ?>


W analogiczny sposób robisz sobie funkcję do tworzenia linków. Jeżeli do tego dołożysz jeszcze wielojęzyczne tagi stron i przyjazne linki (domena/lodowki/kontakt, domena/refrigerator/contact, pamiętaj każdy tag strony w danym języku musi być unikatowy) to daje to całkiem dobry efekt w google i przy okazji linki są nawet łatwe do zapamiętania.

Można się jeszcze pobawić i zamiast oznaczania języka strony w adresie można operować tylko na tagach strony (domena/kontakt, domena/contact) tylko tutaj więcej musisz sprawdzać przed dodaniem nowej strony (każdy tag strony w musi być unikatowy, jest to problematyczne i czasami nie naturalne bo są języki w których słowa sąidentyczne).


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
robos85
post 23.09.2008, 19:14:29
Post #11





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


zrobiłem to tak:
zmienna lang definiuje język. Jeżeli w linku nie ma tej zmiennej, bądź zmienna=pl to pokazana jest treść polska, jeżeli zmienna =en to angielska.
Robię to w smarty, więc robię odpowiednie pliki dla danego języka(treść).
dany dział obsługuje 1 plik php, w którym sprawdzany jest język(zmienna lang) i includowany odpowiedni plik tpl oraz odpowiednie tabele w bazie są używane.

Problem z linkami rozwiązałem tak:
W .htaccess piszę reguły rewrite dla każdego pliku aby plik.php?lang=en przepisywał na /en/plik.php.

I tu mam pytanie, czy jest jakaś uniwersalna reguła zrobienia tego aby wszystkie adresy zawierające jako pierwszą(lub jedyną) zmienna - lang=en były pisane na /en/plik - bo teraz piszę regułę dla każdego pliku z osobna:/
np.
index.php?lang=en na /en/index.php
aktualnosci.php?lang=en&id=1 na /en/aktualnosci.php?id=1
... etc


Ten post edytował robos85 23.09.2008, 19:20:33
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: 19.07.2025 - 18:34