Zend Framework çeviri aracı kullanmak nerede

2 Cevap php

Ben bütün MVC-Modeli kurmak ve şablonlar gibi HTML görüşlerini kullanmak var. Ama ben bir noktada diğer dillere çevirmek istiyorum orada Almanca dizeleri var.

Bunu yapmanın en iyi yolu nedir? Ben Zend_Translate kullanmak zorunda biliyorum, ama benim bakış şablonları var her kelime için bir tercüme fonksiyonu tek bir çağrı uygulamak gerekiyor?

2 Cevap

Her şeyden önce, ben senin çeviri için temel olarak tam ifadeler kullanmak öneririm. Kelime ile her zaman cümle yapısı geldiğinde diller tutarlı olmadığını sorun var.

Dizi, Csv, Gettext, Ini, tbx, TMX, Qt, xliff veya XmlTm: Sonra mevcut Zend_Transalate adaptörleri birini seçmek zorunda. Bunların çoğu çeviri bilgileri depolamak için endüstri standartlarına adaptörleri, böylece başından ve kullanım kolaylığı için Dizi, CSV veya Ini seçerseniz muhtemelen yeterli olacaktır. Zend Framework kılavuzda 49.2.1. How to decide which translation adapter to use bakın.

// setup your translation
$translate = new Zend_Translate('csv', '/my/path/source-de.csv', 'de');
$translate->addTranslation('/my/path/source-en.csv', 'en');
// add the translation adapter to the registry
Zend_Registry::set('Zend_Translate', $translate);

Bir Zend_View_Helper_Translate Bu standartlaştırılmış Zend_Registry girişi Zend_Translate varsayılan çeviri kaynağı olarak, siz görüşlerinizi aşağıdaki kullanabileceğiniz erişmek olduğu gibi:

[...]
<title><?php echo this->translate('Title'); ?></title>
[...]
<p>You can also do <?php echo $this->translate('Hello %1$s', $this->userName); ?></p>
[...]

Bu sadece Zend_Translate içine kısa bir giriş ve hiçbir şekilde bu bileşeni tarafından sağlanan işlevselliği tam bir sunum anlamına geldiğini unutmayın. Örneğin çeviri adaptör kullanacak yerel belirleme hakkında söylenecek çok şey var.

Ben yerelleştirme karmaşık bir sorun olabilir ve Zend_Translate Burada tamamen tarif edilemez çünkü, Zend Framework kılavuzda aşağıdaki okumak öneririm:

Hayır, her sözcüğü çevirmek zorunda değilsiniz. Bu anlamda çeviri fikri bir mesaj çeviri fikir daha bir olduğunu.

Benim geçerli projede çevirilerin iki tür yapmak. Sadece kısa bir metin olacak, biz okunabilirlik amacıyla kaynak koduna doğrudan o yazın.

I.E.

<?=$this->translate('Add');?>
<?=$this->translate('Delete');?>
<?=$this->translate('Are you sure you want to delete %1$s?', $thing);?>

Mesajı çok daha uzun Ama eğer, biz genellikle çeviri sistemi için işaretlemek için bir standart izleyin:

<?=$this->translate('controller-action_form-information');?>

Fikir daha sonra çeviri aracı çok uzun bir metin ile değiştirmek olabilir ve bu düzenli görünüm komut tutar olmak.