Autor Zpráva
karolekk
Profil
Dobrý den,

chci se zeptat jak mám postupovat, když mám web na svém redakčním systému v CZ, a potřebuji teď přidat angličtinu. Nevím za který konec to chytit, jak mám postupovat.

Díky za radu
Marschmallow
Profil
karolekk:
Jaký máš redakční systém a jak máš web strukturovaný - přesměrováva se na /cz, nebo ne? K redakčnímu systému: máš opensource, nebo dělaný na míru?
Podle toho se dá odpíchnout, existují na to totiž pluginy, nebo ve Wordpressu i multisite.
karolekk
Profil
Marschmallow:
Redakční systém mám na míru. Udělal jsem si ho sám.

nechci tady dávat přímo odkaz. ale pokusím se to trochu přiblížit.

Je to velice jednoduché. - mám web/blog, kde jsou různé články. Redakční systém dělá jen to, že nabízí formulář pro vložení nového článku, fotku atd.
A samotný web pak, jednoduše vycucne články z databáze a zobrazí je.
Jenže mám tam několik proměnných, které jsou v češtině a já chci aby se zobrazovaly v závislosti na jazyku uživatelé., taktéž registrační formulář atd.
-- například if(neco){echo "dobrý den"} - > a jak mám něco takovéhu udělat do více mutací?
Zechy
Profil
karolekk:
Nejzákladnější je asi pole v PHP, které bude uloženo v souborech cz.php, en.php, atd... A dle jazyku nahraješ požadovaný soubor. Pak jen používáš indexy toho pole.
karolekk
Profil
Zechy:
jo to je dobrej nápad.
Ale to by možná mohlo být i bez těch poli (array). Nešlo by to tak, že bych naházel do souboru en.php - různé proměnné např. $pozdrav ="Hi!";
A pak na webu normálně bych dal tam to na rozpoznání jazyku :D teď nevím jak to je něco jako REQUEST_LANG :D. ztoho poznám o jaký jazyk ma jít, takže načtu například soubor FOpen(en.php) tím pádem budu mít inicializovanou proměnnou $pozdrav, a tu můžu pak použit ve scriptech?
například pak bude echo $pozdrav. $jmeno;
Půjde to tak? :D
Dan Charousek
Profil
Ještě jednodušší by mohlo být jedno globální pole někde v config souboru.
$lang = array(
    "cs" => array(
        "pozdrav" => "Dobrý den",
        "zvire"      => "Zvířátko"
    ),
    "en" => array(
        "pozdrav" => "Hello there!",
        "zvire"      => "Little petty"
    )
);
A na webu potom:
<?=$lang[$jazyk]["pozdrav"]?> :))
To jakým způsobem budeš získávat hodnotu proměnné jazyk je na tobě. Můžeš to řešit přes session, nebo jak jsi uváděl z REQUEST_LANG. To už je potom na tobě.
karolekk
Profil
Paráááda diky moc borci
no čeká mně hodně práce
Alphard
Profil
Pracovat přímo s polem není dobrý nápad, blbě se ošetřuje neexistence nějakého překladu (použití defaultního jazyka, zalogování, ...). A vůbec tady neřešíte skloňování podle počtu, případně doplnění parametru do textu.
Lepší je volat překladovou funkci, která překlad „nějak získá interně“ a vrátí až výsledek. Vnitřní implementaci lze pak měnit beze změny celého systému.
karolekk
Profil
no narazil jsem na problem :D

jak mam postupovat v takovéto situaci?

...


if($skola ==1){

$nazev = "zakladni";

}
else{
$nazev = "střední";
}

echo $nazev;
Dan Charousek
Profil
Co takhle?
$trans = array(
    "cs" => array(
        "skola" => array(
            1 => "zakladni",
            2 => "stredni"
          )
        ),
     "en" => array(
          "skola" => array(
              1 => "primary school",
              2 => "high school"
        )
    )
);

$key = $skola == 1 ? 1 : 2;
echo $nazev = $trans[$jazyk]['skola'][$key];

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: