Phalcon çok dilli web siteleri için herhangi bir tesis sağlar mı?Tercüme merkezi Phalcon
MVC phalcon tabanlı bir site geliştirmek için en iyi uygulama nedir? Görünüm katmanını nasıl uygulamalıyım?
Phalcon çok dilli web siteleri için herhangi bir tesis sağlar mı?Tercüme merkezi Phalcon
MVC phalcon tabanlı bir site geliştirmek için en iyi uygulama nedir? Görünüm katmanını nasıl uygulamalıyım?
Bu örnek uygulama, (https://github.com/phalcon/php-site) phalcon kullanılarak tercüme uygular.
Phalcon, I18n işlevselliğini sunmamaktadır. intl adı verilen bu tür bir işlev sunan bir PECL uzantısı vardır (bkz. manual). farklı dillerde web sitesi sunulması çoğunlukla ilgileniyorsanız
Ancak,
\Phalcon\Translate\Adapter\NativeArray
bileşeni kullanabilirsiniz. Bu bileşen, dil farkında dizeleri içeren bir dizi anahtar/değer kullanır. Mesela, config kullanabilirsiniz:
$trans_config = array(
'en' => array(
'bye' => 'Good Bye',
'song-key' => 'This song is %song% (%artist%)',
),
'es' => array(
'bye' => 'Adiós',
'song-key' => 'La canción es %song% (%artist%)',
),
);
Bir test yukarıdaki kullanım olduğunu göstermeleri:
public function testVariableSubstitutionTwoEnglish()
{
$language = $trans_config['en'];
$params = array('content' => $language);
$translator = new \Phalcon\Translate\Adapter\NativeArray($params);
$vars = array(
'song' => 'Dust in the wind',
'artist' => 'Kansas',
);
$expected = 'This song is Dust in the wind (Kansas)';
$actual = $translator->_('song-key', $vars);
$this->assertEquals(
$expected,
$actual,
'Translator does not translate English correctly - many parameters'
);
}
yukarıda sadece tutucu değişkenleri ile mesajlar tercüme alabilirsiniz gösterir. Farklı bir dilde bir dize almak için, çeviricideki _()
'u ilgili anahtar ile çağırırsınız ve hiçbir değişken geçmez.
EDIT Görünümde istediğiniz gibi çalışabilirsiniz. Görünüm katmanında görüntülenen değişkenleri ayarlayabilir veya çeviri nesnesini iletebilir ve çeviriyi orada gerçekleştirebilirsiniz. Sana bağlı.
HTH
Teşekkürler, Hangi başka adaptörleri kullanmayı planlıyorsunuz? Bu dizileri yaratmak ve kullanmak biraz endişeli, ayrıca '_ (' x ', array (' 1 ',' 2 ')) 'nin ek olarak kullanabileceği daha iyi olurdu. _ (' X ', array (') bir '=>' 1' , 'b' => '2')) '. Görünümler aracılığıyla erişilmesi gereken bir hizmet adı oluşturmak iyi bir iş midir? – PHPst
Gettext yerine '\ Phalcon \ Translate \ Adapter \ NativeArray' kullanmanın artıları ve eksileri nedir? – PHPst
Re Gettext çok küçük, çoğunlukla performans ve tercih tabanlı. Performans aslında çok büyük bir sorun değil. –
En iyi çözüm, Phalcon Gettext Adapter kullanmaktır. Gettext'in en önemli avantajı çoğulları ele almaktır.
Pletcon mimarisinde gettext'i nasıl kullanabilirim? – PHPst
Sizin için bir örnek oluşturmama izin verin – twistedxtra
Ancak, gettext'in iş parçacığı güvenli olmadığını unutmayın, eğer Apache ile uygulamayı çalıştırıyorsanız, sorunlarınız olabilir – twistedxtra