Mikä olisi järkevin tapa toteutta kaksi- tai kolmikielinen sivusto?
Jokaiselle kielelle omat tiedostot? Php:llä tietokannasta?
Kaikki sivuston ns. muuttuvat tiedot tallennetaan tietokantaan. Mutta lähinnä ne vakio tekstit, mitkä eivät koskaan muutu.
Varmaan järkevin olisi ratkaisu, johon on helppo sitten jälkeenpäin lisätä kieliä, ilman(/vähäisellä) raakaa koodaamista.
Tuli ensimmäisenä mieleen kuuluisa google translate!
Mikä sen parempi, kun antaa asiakkaan itse päättää millä kielellä lukea sivua?
Klikkaa tästä, jos haluat tutustua sen käyttöön enemmän.
Jos et halua / luota googlen kääntäjään voisithan sinä muokata tekstin sisältöä esim. javascriptin avulla...
Ongelma on se, että se ei osaa kääntää, eikä tule varmasti kovin pian osaamaankaan kääntää asiota oikein.
Jotenka Ei.
Google Translate toimii siedettävästi yleisimmillä kielillä, mutta sitä ei kannata käyttää nettisivun kääntämiseen tuolla tavalla, sillä tulos on usein aivan kamala suomeksi. Tekstin muokkaaminen Javascriptillä on myös vähintään yhtä heikko idea.
Järkevä toteutustapa sen sijaan riippuu sivuston tyypistä. Jos sivusto on foorumi tms. ohjelma, PHP:n Gettext on melko helppo vaihtoehto. Muussa tapauksessa valmiin julkaisujärjestelmän käyttö on usein kätevää.
Mikäli haluat tehdä kaiken itse, jokaiselle sivulle ja kielelle oma tiedosto on ihan toimiva ja helposti toteutettava idea. Pidä kuitenkin tekstit ja sivuston muu rakenne erossa toisistaan niin pitkälle, kun se on järkevästi mahdollista. Se helpottaa mahdollisia muutoksia huomattavasti.
ECode kirjoitti:
Tuli ensimmäisenä mieleen kuuluisa google translate!
Mikä sen parempi, kun antaa asiakkaan itse päättää millä kielellä lukea sivua?
8 vuoden kokemuksella voin sanoa että melkein mikä tahansa muu vaihtoehto.
Ottamatta kantaa käännösohjelmien laatuu on usein eri kielille on parempi tarjota ihan räätälöityä sisältöä kuin pelkkää käännöstä.
Esim. yrityssivuilla englantilaisia harvemmin kiinnostaa mistä jotain tiettyä tuotetta saa Oulusta, vaan he haluavat tietää tuotteen jälleenmyyjät omassa kotimaassaan.
ECode kirjoitti:
Jos et halua / luota googlen kääntäjään voisithan sinä muokata tekstin sisältöä esim. javascriptin avulla...
Sulla ei taida olla mitään hajua asiasta.
Ja itse kysymykseen:
Riippuen sivuston laajuudesta, ratkaisuja on monia ja niitä voi käyttää vaikkapa kaikkia sekaisin.
Itse käytän työssäni paljon valmiita julkaisujärjestelmiä ja yleensä niillä teemme sivustolle jokaiselle kielelle oman ns. puurakenteen sisällön erilaisuuden vuoksi. Jos sivuilla on tuotteita esillä, niin näiden ylläpitämiseksi tuotteita on turha monistaa jokaiselle eri kielelle, joten jokaisella tuotteella on sekä monikielistä sisältöä (tietokannassa), että myös yksikielistä (esim. painot yms. mitat).
Jos sivusto on pieni, niin jokaiselle kielelle voi luoda omat php-tiedostot tai vaikkapa luoda sivut jokaisen kielen omaan hakemistoon.
Isoimpien sivujen kohdalla ylläpitämistä helpottaa jokin ihan oikea taustalogiikka (esim. monikielisyyttä tukeva julkaisujärjestelmä), mutta olen joutunut ihan karkeasti kopioimaan koko sivuston toiseen paikkaan, johon sisältö on kirjoitettu uudelleen toisella kielellä, kun asiakas oli projwktin loppuvaiheesaa keksinyt yllättäen tarvitsevansakin myös toisen kielisen sivuston.
-tossu- kirjoitti:
PHP:n Gettext on melko helppo vaihtoehto.
Gettext toimii kyllä enemmänkin "kovakoodatuissa asioissa", esim. valikot ja muut pienet info/virhe pätkät.
Mutta ei toimi kovinkaan hyvin esimerkiksi pitkien sisältötekstien (text/HMTL) hallinnoimisessa.
<ul> <li><a href="/link1"><?= _("Etusivu"); ?></a></li> <li><a href="/link2"><?= _("Tuotteet"); ?></a></li> <li><a href="/link3"><?= _("Palvelut"); ?></a></li> <li><a href="/link4"><?= _("Yhteystiedot"); ?></a></li> </ul>
Joo käytin short-tagit, get over it.
qeijo kirjoitti:
-tossu- kirjoitti:
PHP:n Gettext on melko helppo vaihtoehto.
Gettext toimii kyllä enemmänkin "kovakoodatuissa asioissa", esim. valikot ja muut pienet info/virhe pätkät.
Mutta ei toimi kovinkaan hyvin esimerkiksi pitkien sisältötekstien (text/HMTL) hallinnoimisessa.<ul> <li><a href="/link1"><?= _("Etusivu"); ?></a></li> <li><a href="/link2"><?= _("Tuotteet"); ?></a></li> <li><a href="/link3"><?= _("Palvelut"); ?></a></li> <li><a href="/link4"><?= _("Yhteystiedot"); ?></a></li> </ul>Joo käytin short-tagit, get over it.
Tuo ei ole ns. short tag eli "<?". Lyhyttulostus on aivan sallittua ja paljon siistimpi tapa kuin "<?php print 'foo' ?>". Syntaksiasi voi siistiä vielä jättämällä puolipisteet pois.
Vaneri sanoi jo tallentavansa dynaamisen sisällön tietokantaan, nyt oli hakusessa vain staattisille teksteille soveltuva käännöstyökalu. Juuri tällaiseen tarkoitukseenhan tuo Gettext on suunnilteltukin. Gettext on toisaalta aika helvetillinen työkalu silloin, kun kaikkia tarvittavia stringejä ei voida/haluta laittaa yhteen käännöstiedostoon (per kieli). Se on lisäksi varsin vajaatoiminen, joten kätevyydenkin kannalta on parempi kirjoittaa oma käännösfunktio, joka tekee enemmän asioita kerralla.
Edit: taisin ylitulkita puheesi pitkistä sisältöteksteistä. Jos tarkoitit nyt vaikka jotain kahden virkkeen pituista staattista ilmoitusta, niin millähän tavoin Gettext olisi siihen huono? Gettext vain ottaa merkkijonon ja palauttaa sitä vastaavan käännöstekstin, ei siihen minusta ole mitään muutakaan tapaa toimia. Toisin sanoen muut toteutukset tuskin ovat sen parempia.
The Alchemist kirjoitti:
Tuo ei ole ns. short tag eli "<?". Lyhyttulostus on aivan sallittua ja paljon siistimpi tapa kuin "<?php print 'foo' ?>". Syntaksiasi voi siistiä vielä jättämällä puolipisteet pois.
Kyllä, mutta short-tag kuitenkin niin pitkälle, että se vaatii (versiosta riippuen) että "short_open_tag" on php:n asetuksissa enabloitu. Joten ei se nyt ole "aivan yhtä sallittua" ole, kun se ei kerta aina oletuksena toimi.
The Alchemist kirjoitti:
Edit: taisin ylitulkita puheesi pitkistä sisältöteksteistä. Jos tarkoitit nyt vaikka jotain kahden virkkeen pituista staattista ilmoitusta, niin millähän tavoin Gettext olisi siihen huono? Gettext vain ottaa merkkijonon ja palauttaa sitä vastaavan käännöstekstin, ei siihen minusta ole mitään muutakaan tapaa toimia. Toisin sanoen muut toteutukset tuskin ovat sen parempia.
Minähän sanoin että "Gettext toimii kyllä enemmänkin "kovakoodatuissa asioissa", esim. valikot ja muut pienet info/virhe pätkät." eli olemme samaa mieltä siitä että se toimii "vaikka kahden virkkeen pituisissa staattisissa ilmoituksissa"
Pitkillä sisältötekstillä tarkoitin pitkää dynaamista sisältö, joka on runsailla HTML määrittelyillä maustettua asiasisältöä.
ECode kirjoitti:
Tuli ensimmäisenä mieleen kuuluisa google translate!
Mikä sen parempi, kun antaa asiakkaan itse päättää millä kielellä lukea sivua?
Ai mikä parempi kuin kieliversioinnin tekeminen Google-kääntäjällä?
No esimerkiksi raivohullun apinan kirjoittama sivu. Siitä nimittäin heti näkee, ettei siinä ole tolkkua, eikä sitä voi ymmärtää täysin väärin, koska sitä ei voi ymmärtää lainkaan.
Jos Google-kääntäjän verkkosivusta tekemä käännös näyttää sinusta hyvältä, siedettävältä tai edes hädin tuskin välttävältä, et vain osaa kohdekieltä edes sen vertaa, että tajuaisit tuloksen olevan puppua. Kielen alkeiden perusteista hiukan hajulla oleva saattaa luulla tulosta järkeväksi, koska Google-kääntäjä tuottaa järkevännäköisiä *tekstikatkelmia*. Joskus jopa lauseen mittainen osuus on tolkullinen.
Kokeilepa vaikka omaan tekstiisi. Jos ”What better to let the customer decide which language to read the page?” on sinusta ihan OK, niin et osaa englantia.
Toisaalta jos lähdeteksti olisi kirjakieltä, niin tulos olisi aavistuksen verran parempi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.