GetText ve Zend_Translate ile uygulama çapında yerel ayarlar?

1 Cevap php

Benim include_path içinde olan, örneğin /www/phpstuff, özel bir dizin var. Bu phpstuff dizinin içinde bir klasör i18n. Bu sunucu tarafı seviyesini .mo dosyaları içerir.

Zend_Translate Eğer yapıcı ikinci parametresinde bir dizin belirtmek sağlar, gerçekten yapamam

Zend_Translate( 'gettext', 'i18n/', 'en' );

Ben açıkça /www/phpstuff/i18n belirtmek zorunda değil kullanabileceğiniz hile herhangi bir tür olduğu, bu betik çağrılır olduğu dizinden okumaya çalışır? Ben çalışıyorum, bu çerçeve olmanın nedeni, birçok farklı platformlarda kullanılacak, ve mutlak bir yol daha bir include_path bir dizin belirterek daha kolay olurdu.

Ben elle, ayırıcı tarafından içeren yol, yarma okuma dizinleri herhangi bir 'gettext' olarak adlandırılır olmadığını denetleme ve ardından bulduğu ilk dizinin mutlak yolunu kapmak ve onu ayarlanır ile gelip sadece geçici çözüm.

1 Cevap

Sen yerde uygulama yolu tanımlamak gerekir. Mutlak bir yol ayarlamak istemiyorsanız, göreceli bir yolunu ayarlamak gerekir. Örneğin bu dir yapıyı atın:

/application/
/application/i18n/
/public_html/
/public_html/index.php

Bu durumda, uygulama yolu olacaktır:

define('APPLICATION_PATH', '../application');

Ve bu gibi kullanabilirsiniz:

Zend_Translate( 'gettext', APPLICATION_PATH . '/i18n', 'en' );

Umut olur.