Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Selaimen kieliasetuksen noudattaminen

Sivun loppuun

koobee [11.04.2018 15:26:08]

#

Hei,

ongelmana on monikieliset sivut, joissa pitäisi PHP koodilla ohjata lukija oman kielisille sivuille.

En tiedä miten. Tietäskö joku?

koobee [12.04.2018 11:39:32]

#

Ongelmana on miten saisi eri kieliset lukijat ohjattua oman kielisille sivuilleen. Tietäskö joku?

Lebe80 [12.04.2018 11:58:53]

#

Ohjattua *mistä* omille sivuilleen?

Puhutaanko sisäänkirjautuneista käyttäjistä?

Onko sivuille tallennettuna tietoa millä kielellä sivu on?

Kysymyksesi on niin laaja, ettei siihen voi näillä lähtötiedoilla vastata suoraan.

koobee [12.04.2018 15:50:47]

#

OK

Sivuille saapunut lukija pitäisi ohjata automaattisesti oman kielisille sivuilleen. Ei vielä rekisteröitynyt.
Voi olla FI, US tai DE

Lebe80 [12.04.2018 16:11:49]

#

Siis etusivulle saapuvat?

En lähtisi ohjaamaan käyttäjiä, kuin korkeintaan etusivulta. Tällöin esim. googlen kautta sivustolle eksyneet näkisivät juuri sen sivun, johon olivat hakutuloksesta päätyneet. Samoin, jos he tulevat esim. tarkoituksella /us/product-123 -tyyliselle sivulle, ei heitä ohjattaisi millekään suomenkieliselle sivulle (esim. tuote, jota ei Suomessa olisi myynnissä, mutta jonka olisin ostamassa vaikkapa ulkomaisen verkkosivun kautta).

Eli mieti tarkkaan, haluatko oikeasti pakottaa käyttäjiä sivuille, joihin he eivät tulleet alunperinkään.

Selaimen headereista saat jonkinlaista viitettä käyttäjän kielestä, mutta moni esim. suomalainenkin saattaa tietämättään käyttää englanninkielistä selainta. He eivät silti välttämättä osaa englantia sanaakaan.

edit:
Itse en siis lähtisi siirtelemään käyttäjiä mihinkään, vaan pitäisin sen sijaan huolen, että
a) html:ssä on merkitty hakukoneille jokaisen sivun kielisyys, jotta ne indeksoisivat sisällön oikein
b) sivustolla on selkeä kielivalinta, josta käyttäjä voi itse vaihtaa kielisyyttä

Kun nämä kaksi kohtaa on kunnossa, tulee käyttäjät lähes automaattisesti hakutuloksista oikeille sivuille oikealla kielellä.

VNabokov [12.04.2018 16:12:35]

#

Kristallipallo hiukan huurussa, mutta tarkoititko jotakin tämän tapaista?

<?php
$language = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
switch ($language) {
  case "fi_FI":
    // tee redirect suomenkieliseen versioon
    break;
  case "en_US";
   // tee redirect englanninkieliseen versioon
   break;
  default:
   // tee redirect oletuskieliseen versioon
   break;
}

Sinänsä voisi olla ihan hyvä miettiä tämän käyttäjäystävällisyyttä.

Mitä esimerkiksi suomenruotsalainen käyttäjä, jonka selain todennäköisesti ilmoittaa preferroiduksi kieleksi "sv_FI" saa kielivalinnaksi? Samoin jos olen saksalaisessa nettikahvilassa, onko minun pakko käyttää sivustoa saksaksi (kun nettikahvilan selaimessa accept_language todennäköisesti de_DE)?

groovyb [12.04.2018 17:24:53]

#

onko jokin syy miksi kieliversioita ei vaan toteuteta lokalisaatioilla eri sivujen sijaan? Tuntuu järjettömältä ilman validia syytä ylläpitää eri sivuja, lokalisoidun sisällön sijaan.

HTML5 [12.04.2018 21:54:39]

#

Ohjauksen voi tehdä lukemalla HTTP:n Accept-Language-otsikon: $_SERVER['HTTP_ACCEPT_LANGUAGE']. Valitettavasti PHP ei tarjoa kelvollista funktiota otsikon arvon jäsentämiseen, joten se pitää tehdä itse tai käyttää jotakin kirjastoa.

Käyttäjälle pitää joka tapauksessa antaa mahdollisuus vaihtaa kieltä – riippumatta siitä, tehdäänkö uudelleenohjaus.

koobee [17.04.2018 10:47:19]

#

Kiitos hyvistä vastauksista! :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta