Ne çok dilli web sayfaları oluşturmak için en iyi yolu (tekrarlanan kodunu değiştirerek önlemek için) bulunuyor

4 Cevap php

What's the best way (to avoid modifying repeated code) to building multilingual web pages? I know how to build a multilingual web page without having to modify CSS and Javascript files. But I can't think of a neat solution for HTML and Php files. Because if I have HTML or Php files for each language, I would have to modify each one if, for instance, I add an extra div or other element. I was thinking to have something like this:

<div id="multilingual div">
<p><?php echo($multilingual-paragraph); ?></p>
</div>

(Başka dilde metin değişkeni göstermek çünkü Yani, ben bu unsurları değiştirmek bile, ben sadece, bir kere bunu yapacağız).

Ben Php bilmiyorum, bu yüzden diline göre farklı bir değişken görüntülemek için Php nasıl söyleyeceğimi bilmiyorum (Ben onunla ilgili bir şey olduğunu düşünüyorum EĞER koşulları)

Bu çok dilli web sayfaları oluşturmak için iyi bir yol var mı ya da başka yöntemler vardır?

(Bu ile So

4 Cevap

gettext() fonksiyonu kontrol edin. Eğer gerçekten farklı diller için farklı dosyaları oluşturmak gerekmez. Taşıyamazsınız, size çeviri dosyaları ile mücadele etmek gerekir.

Sen çıktı mesajları için bir sabitler-çözüm uygulayabilirsiniz. APC's cache functions, önbellek içindeki birden fazla mesajı ve görüntülediğiniz sayfalara göre bunları yükleyebilirsiniz kullanma (bu bile kolay bir çözüm olmayabilir, bunun için php bilmeniz gerekir).

Bu önbellek her dil için değerleri bir dizi sürdürmek için izin verecek. Örneğin:

apc_constants_define('en',array('welcomeMessage'=>'Welcome!'));
apc_constants_define('es',array('welcomeMessage'=>'Bienvenidos!'));
apc_constants_define('de',array('welcomeMessage'=>'Willkommen!'));

through AJAX/select form, you can allow the user to choose the language they want to view your pages. This language would be stored inside a session:

$_SESSION['language'] = 'en';

Sonraki her sayfanın üstüne, siz oturumu (basit anahtar statment) kontrol edilmeli ve buna göre önbellekten sabitleri yükleyin.

apc_load_constants($_SESSION['language']);

sonra html sayfası aşağıdaki gibi olacaktır:

<h1><?php echo welcomeMessage; ?></h1>

Bunu, web sitenizin internationalizing en verimli şekilde görmek ve Romence için sayfayı çevirmek istediğiniz zaman kolayca bakımı sistemi ile, bu koduna defterleri gerektirmez gibi bu, bir.

Dediğin gibi, tek yönlü böyle gitmek için, php ve html dil dosyaları:

$lang = '';

switch ($lang_file)
{
   case 'en.php': $lang = 'whatever'; break;
   case 'fr.php': $lang = 'whatever'; break;
   // etc
}

<div id="multilingual div">
<p><?php echo $lang; ?></p>

// or you may include files
<p><?php include_once ($lang); ?></p>
</div>

Belki de bu article on internationalization PHP yardımcı olabilir.