Mi sono imbattuto nello stesso problema.
Per esempio io ho
in php
//Gives FORM_HEADER_ADD or FORM_HEADER_EDIT
echo $this->translate('FORM_HEADER_' . strtoupper($this->data));
durante la sincronizzazione con poedit si riprenderà 'FORM_HEADER_' che non è un identificatore che ho (generato) nel codice.
così ho dovuto risolvere il problema dando i miei identificatori pieni poedit ho risolto che facendo quanto segue in php
echo ($this->data === 'add') ? $this->translate('FORM_HEADER_ADD') : $this->translate('FORM_HEADER_EDIT');
UPDATE!
Ho continuato a esaminare questo problema. E attualmente ho rinunciato all'importazione dalla fonte. Continuo così finché non trovo una soluzione migliore
- Creare un'applicazione e utilizzare quanti più identificatori statici possibili.
attivare la registrazione di non tradotti identificatori (dinamici)
protected function _initMyTranslate(){
$date = new Zend_Date();
$fileName = sprintf('/../logs/translation_%1$s.log', $date->toString('dd-MM'));
$writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . $fileName);
$log = new Zend_Log($writer);
// get the translate resource from the ini file and fire it up
$resource = $this->getPluginResource('translate');
$translate = $resource->getTranslate();
// add the log to the translate
$translate->setOptions(
array(
'log' => $log,
'logUntranslated' => true
)
);
// return the translate to get it in the registry and so on
return $translate;
}
Usa poedit per la sincronizzazione con la fonte e tradurre le stringhe che si trovano.
- Durante la fase di test/debug controllare il log per le stringhe non tradotte.
Aggiungere le stringhe non tradotte al file .po.
msgid "IDENTIFIER"
msgstr "TRANSLATION STRING"
Aprire file po e salvarlo per creare il file di mo (NON sincronia con origine o tutto è perduto).
UPDATE 2.
io uso un file separato per i miei identificatori manuali, utilizzando un editor di testo (gedit/notepad). Ora ho due file:
- automatica generata da poedit chiamati <lingua> .po
- editted manualmente file chiamato <lingua> _manual.po
ho configurato il mio tradursi in Application.ini a cercare tutti i file nella directory di lingua
resources.translate.adapter = gettext
resources.translate.content = APPLICATION_PATH "/../library/languages/"
resources.translate.locale = auto ;use en to force english or nl for dutch..etc
resources.translate.scan = directory
resources.translate.options.disableNotices = false
se si desidera tradurre in in un'altra lingua in poedit fai un file -> nuovo catalogo dal file POT, e inizia a tradurre le tue stringhe aggiunte manualmente.
non riuscivo a capire il problema. puoi descriverlo più chiaro? – farzad