Çoklu dil desteği, CodeIgniter ile en iyi uygulama gettext kullanıyor?

2 Cevap php

Ben. Po dosyalarını ve nasıl oluşturmak. Mo dosyaları oluşturmak ve sonra benim Codeigniter powered sitede çeviri için onları nasıl kullanacağımı biliyorum. Ancak, site GUI dilini değiştirmek için nasıl oldukça emin değilim. Www.domain.com/controllername/method/param1/param2: Ben şema çağrı CodeIgniter'ın varsayılan url sopa istiyorum.

Bu gibi sunucuyu çağıran bir no-beyin olduğunu: www.domain.com/controllername?lang=en

Varsayılan url şemayı kullanarak her kontrolör için bunu yapıyor, sadece setlocale () fonksiyonu lang parametre geçirmek ve sonra benim. Po alan adına bağlamak için, her denetleyicisi aynı yöntemi uygulamak için beni gerektirir. Garip hissediyor ...

Herhangi siz CodeIgniter'daki gettext ile çalışmak nasıl bir fikir? Ve evet, ben gettext ile çalışmak istiyorum.

2 Cevap

Ben "post_controller_constructor" de algılama çengel kullanıcının diline kontrol, ve ben (örneğin zamanında yapılandırma dosyasında dilini değiştirmeyi) mevcut küresel bir yere koyun. Bir denetleyici sadece değerini kullanmak zorundadır.

Dil çare olarak aşağıdaki onay ile tespit edilir

  1. Bir GET parametresi (örneğin? lang = tr) üzerinden kuruldu?
  2. Bir çerez kuruldu?
  3. Tarayıcı önerilen dili nedir?
  4. yapılandırılmış varsayılan dili kullanmak

If a language is not supported, however, use the default. Set or refresh the cookie with the new data.

Yani genellikle kullanıcı dilini değiştirmek için bir yere tıkladığında ise GET parametresini evenctuallly sadece bir kez kullanmanız gerekmez

Ben sadece bazı tek bir görünümde gettext işlevini çağırarak yerine kullanmak istediğiniz durumda otomobil görünümünde {t} ve {/ t} arasındaki tüm metin çevirebilir, ben burada yayınlanan bir kütüphane yapmak:

http://www.chuongduong.net/page/15/codeigniter-gettext-with-smarty-or-parser-template-without-php-code-in-view.html

Görünüm kodu olabilir:

<html>
<head>
<title>{blog_title}</title>
</head>
<body>

<h3>{blog_heading}</h3>
{blog_entries}

<h5>{t}Title is{/t}  {title}</h5>

<p>{t 1="<b>" 2="</b>"}Click here %1to see%2 me{/t}{body}</p>

<p>{t 1="{id}" 2="author"}The id is: %1 wrote by %2{/t}</p>

<p>{t 1="<a href=\"link here\">" 2="</a>"}Please lick on me%2{/t}</p>

{/blog_entries}

</body>

</html>