[addon translator] Translator
- jasir
- Člen | 746
Nevím, jestli je to ten správný thread, kdyžtak prosím o smazání, ale mám bug report (alespoň myslím) – v metodě translate je 2× array_shift(), mělo by býť jen 1x:
<?php
public function translate($message, $count = 1)
{
$message = (string)$message;
if (!empty($message) && isset($this->dictionary[$message])) {
$word = $this->dictionary[$message];
$s = preg_replace('/([a-z]+)/', '$$1', "n=$count;" . $this->meta['Plural-Forms']);
eval($s);
$message = $word->translate($plural);
}
$args = func_get_args();
if (count($args) > 1) {
array_shift($args);
array_shift($args); /*** BUG ??? ***/
$message = vsprintf($message, $args);
}
return $message;
}
?>
- jasir
- Člen | 746
timbulko napsal(a):
Myslím si že nepôjde o bug. 2× array_shift() len odstráni z $args prvé dve premenné (message a count), ktoré sú volané priamo.
Ale myslím, že elegantnejšie riešenie by bolo:
array_splice($args, 0, 2);
Je to bug. Pokud zavolám translate("%d messages",10);
, se
dvěma array_shift(), spadne to na ‚Script vsprintf(): Too few arguments‘.
S jedním to šlape. Koukal jsem se do Datagridu, Roman vlastně tuhle featuru
nikde nepoužívá.
Editoval jasir (23. 5. 2009 12:31)
- romansklenar
- Člen | 655
jasir napsal(a):
Pokud zavolám
translate("%d messages", 10)
…
Dík za report, já to používal v datagridu jinak – druhý parametr byl
jen pro předání počtu. Takhle je to lepší a použitelnější, máš
pravdu. Ten druhý array_shift
si klidně smaž, opravím to
v translatoru i datagridu při dalším commitu.
Editoval romansklenar (23. 5. 2009 17:14)
- Inza
- Člen | 330
Hele já mám dotaz ohledně názvu tohoto addonu – název Translator mi totiž dělá bordel v dokumentaci… Co když někdo do budoucna vytvoří nějaký další který bude využívat třeba jinou technologie než gettext – co takhle to pojmenovat nějak méně obecně a přesněji? třeba GettextTranslator, nebo GTTranslator, nebo jen GTranslator? Nebo nějak zcela jinak, ale jinak než jen Translator?
A ideální by bylo v případě, že byste vymysleli nějaký nový název, abyste ten název změnili i v Nette\Extras dokumentaci a v dokumentaci toho Translatoru;-) – A pak mi sem napsali, že je to done;-) – nebo ještě lépe to napsali do milníků, nebo přímo do diskuze k té stránce což je vlastně tato stránka… – jo ale vlastně když to přejmenujete, tak to bude jiná stránka.. nějak jsem se do toho zamotal… prostě to nějak polaďte;-)
- romansklenar
- Člen | 655
Je to přesunuto na
https://componette.org/search/?q=gettext-translator
.
Mělo by stačit, aby autor prvního příspěvku přejmenoval thread na:
[page extras/gettext-translator] Gettext Translator
a ono by se to
mělo IMHO propojit. Ale myslím, že se vůbec nic nestane, když se celý
thread smaže a začne nový.