gettext ile php sabiti

3 Cevap php

I am using config file which contains: config.php

define('SYS_TITLE','My Application Title');

I load language local for gettext based on SESSION variable in another file included after the config file is loaded. how to make it something like:

echo _(SYS_TITLE);

Ne fazla kod değiştirmeden SYS_TITLE çevirmek için en iyi yoldur.

3 Cevap

Seni almak doğru ise bazı php koduna çevrilmiş dize almak için bir yol arıyoruz.

Nasıl ilk sütunda XL tüm dizeleri yükleme ve basit bir BİRLEŞTİR () çağrısı ile ikinci sütunda php kod oluşturma hakkında?

Eğer A1 "İngilizce" Something saklıyorsanız aşağıdaki gibi kurulum B1 yapabilirsiniz:

=CONCATENATE("define('SYS_TITLE','",A1,"');")

Ile sona

A1                      B1
Something in english    define('SYS_TITLE','Something in english');

Sadece kullanabilirsiniz:

echo _("SYS_TITLE");

ve sonra tüm çeviriler için. po dosyası oluşturun. Bu, elbette, sabitinin value kullanmak istemem, ama bu kabul edilebilir olmadığını karar vermek size kalmış. Tüm bunlardan sonra, need msgstr anlamıyla varsayılan dilin metin içeren etmiyoruz.

Ayrıca gettext çağrı için bazı sarıcı işlevi oluşturabilirsiniz:

function gt(string){
    if(defined(string)){
        echo constant(string);
    } else {
        echo _(string);
    }
}

Tabii ki, tüm sorunları kabul bu (ek çoğul taşıma gibi) birlikte getirecektir.

Ayrıca bunu yapmak mümkün olmalıdır:

echo _(constant("SYS_TITLE"));

Bu daha sonra fonksiyon çağrısına geçirilen edilecektir sabiti değerini almak gerekir. Ben olsa test değil, bu yüzden yanlış olabilir.