Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: ideoita kieliversioon?

Sivun loppuun

B_R_H [28.10.2009 20:29:06]

#

Terve taas,

Onko kenelläkään antaa hyvää vinkkiä/mielipidettä siihen, mikä olisi järkevin tapa/keino hoitaa php-koodin tuottamien lomakkeiden käännökset eri kielille?

Käyttäjän profiiliin ajattelin tallentaa käyttäjän valitseman kielen ja sen perusteella valitaan sovelluksen kieli.

Kantaanhan käännösasiat voisi tallentaa tyyliin
lomake kenttä kieli teksti
A1 nimi fi Nimi
A1 nimi se Namn
A1 nimi en Name

Lähinnä ideaa kaipaisin lomakkeiden tehokkuutta miettien.
Onko järkeä käyttää tietokantaa vai tiedostoja?
Koodiin tuskin kannattaa koodailla?
Tuleeko kannasta tietojen haku pullonkaulaksi?
Onko kenelläkään tiedossa esimerkkiä käyttämisestä koodissa?

Vasta_alkaja [28.10.2009 21:58:38]

#

Itse olen hoitanut kielihommat suurinpiirtein tähän tyyliin.

suomi.php tiedosto sisältää tietenkin muuttujat, joissa on kieliarvo.
Ainakun jollakin sivulla on tekstiä on sillä oma muuttujansa. Näin ollen tarkistat vain sivun alussa mikä kieli on käytössä ja muuttuja saa sen mukaisen arvon tekstille.

Oliko tarpeeksi vaikeasti selitetty?

Sivu jolla tekstiä on.
---------------------------------------------
if($_SESSION['kieli'] == LANG_FI)  {
    require_once './kielipaketit/suomi.php';
}

echo "<td>" . $mlData[msg1] ."</td>";
---------------------------------------------

suomi.php
---------------------------------------------
function kpsuomi(){
  $mlData['msg1'] = 'Tallenna';
  $mlData['msg2'] = 'Poista';
}
---------------------------------------------

Lebe80 [28.10.2009 22:52:04]

#

Vasta_alkaja:n 'msg1' ja 'msg2' kannattanee muuttaa kuvaavemmiksi, eli 'save' ja 'remove', jolloin ei tarvitse hyppiä kielitiedoston välillä tarkistamassa mikäs se msg1 olikaan, ja olikos se sähköpostin tervehdysteksti jo asetettu kielitiedostoon.

Metabolix [28.10.2009 23:21:34]

#

Tuon ratkaisun heikkous on, että kaikki tekstit ovat eri tiedostoissa ja jokin saattaa puuttua (tai voi tulla kirjoitusvirheitä tekstin tunnisteisiin). Turvallisempi ratkaisu on tallentaa tekstit niin, että samasta paikasta löytyvät tunniste ja kaikki kieliversiot.

Yksi formaattivaihtoehto on JSON:

{
"save": ["Tallenna", "Save", "Spara"],
"cancel": ["Peru", "Cancel", "Annullera"],
"":[]
}

Tällaisesta tiedostosta voi halutessaan vaikka skriptillä generoida joka kielelle tuollaisen, jota Vasta_alkaja ehdotti.

Vasta_alkaja [29.10.2009 00:33:39]

#

Heikkous on tuttua :).. Välillä onkin tyhjiä nappeja esillä, joten olenkin sen myötä kallistunut vain suomeen. Suosittelen kokeilemaan Meabolixin neuvoa. Kun vielä itsekkin joskus jaksaisi korjata ja vaihtaa tuohon tyyliin niin hyvä olisi.

B_R_H [29.10.2009 09:53:15]

#

Hitto,

Tuo JSON-koodaus onkin hyvän oloinen. Php:ssä (>= 5.2.0) näyttää olevan valmiit funktiot käyttöä varten. Mulla kun tunnetusti tämä php on heikkoa, niin voisikos joku antaa pienen käyttöesimerkin tuohon Metabolixin dataesimerkkiin.

Etukäteen kaunis kiitos!

Zeeli [29.10.2009 10:10:01]

#

Itse pidän kielikohtaisia käännöstiedostoja paljon selvempänä ja tehokkaampana keinona. Tietyn kielitiedoston voi heittää kääntäjälle eikä kaikkien kääntäjien tarvitse sotkea samaa tiedostoa.

Lebe80 [29.10.2009 10:29:44]

#

Metabolix: itse taas pitäisin "heikkoutta" päivittämisen kannalta hyvänä ominaisuutena. Eli kieliä voi jälkikäteen lisäillä ilman, että tarvitsee sisällyttää kaikki mahdolliset kielet. Eli jos samalla tekniikalla tekee useamman sivuston, niin kaikkia mahdollisia kieliä ei tarvitse upottaa. Lisäksi espanjan taitaja voi vapaasti muokata omaa kielitiedostoaan, kun taas suomalainen voi muokata omaansa.

Yksin tehdessä.... noh... ei ole juurikaan eroa.

Lisäksi loisin jonkin funktion, jonka kautta käännökset tehtäisiin, jolloin voisi puuttuvissa teksteissä tulostaa, esim. haettavan "hashin".

Metabolix [29.10.2009 11:55:55]

#

Lebe80 kirjoitti:

Eli kieliä voi jälkikäteen lisäillä ilman, että tarvitsee sisällyttää kaikki mahdolliset kielet. Eli jos samalla tekniikalla tekee useamman sivuston, niin kaikkia mahdollisia kieliä ei tarvitse upottaa.

Mitähän yrität tällä tarkoittaa?

Lebe80 kirjoitti:

Lisäksi espanjan taitaja voi vapaasti muokata omaa kielitiedostoaan, kun taas suomalainen voi muokata omaansa.

Sitä varten käytetään versionhallintaohjelmia. Ja tuossahan se ongelma juuri tulee esiin: kun koodari lisää yhteen kielitiedostoon tekstin "send_email", "Lähetä sähköpostia", miten espanjan taitajalle saadaan tieto, että tästä puuttuu käännös? Yhteisestä kielitiedostosta nähdään suoraan, mitkä käännökset puuttuvat, ja lisäksi kääntäjät näkevät rinnalla muiden kielten tekstit ja voivat varmistaa, ettei tule typeriä virheitä. (Windowsin käyttäjät ehkä muistavat ilmoituksen "Muisti ei voi olla 'read'.")

Vasta_alkaja [29.10.2009 14:26:37]

#

Varmasti molemmat ideat toimivat ja molemmissa on omat hyvät puolensa. Riippuu tietenkin kokonaisuudesta. Montako kieltä sotkee, kuinka paljon käännöksiä yleensä edes tulee. Näiden kysymysten jälkeen varmaan jo tietää, mikä tyyli on tähän sopiva.

Lebe80 [29.10.2009 14:38:37]

#

Metabolix: totta, mutta tämän ansiosta yksi kielitiedosto ei paisu heti moninkertaiseksi, jos halutaan lisätä yksi kieli lisää.

Jatkossa, jos halutaan käyttää samaa alustaa, ei tarvitse lisätä kaikkia aikasemmin käytettyjä kieliä järjestelmän mukana.


edit:
Jos puhutaan vaikkapa Joomla!:sta, niin uuden kielen lisäämiseen ei tarvitse ylikirjoittaa vanhoja kielitiedostoja.


Sivun alkuun

Vastaus

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

Tietoa sivustosta