Пример #1
0
/**
 * Traktas <variablonomo> el la gramatiko cxe
 * transformu_tekston().
 */
function &teksttransformo_donu_datumon_rek($variablonomo, &$datumoj)
{
    if ($variablonomo == "") {
        return $datumoj;
    }
    list($komenco, $resto) = explode('.', $variablonomo, 2);
    if (is_array($datumoj)) {
        return teksttransformo_donu_datumon_rek($resto, $datumoj[$komenco]);
    } else {
        if (is_object($datumoj)) {
            if (isset($datumoj->{$komenco})) {
                return teksttransformo_donu_datumon_rek($resto, $datumoj->{$komenco});
            }
            if ($komenco == 'peto') {
                $peto =& $datumoj->sercxu_invitpeton();
                return teksttransformo_donu_datumon_rek($resto, $peto);
            }
            if (isset($datumoj->datoj[$komenco])) {
                return teksttransformo_donu_datumon_rek($resto, $datumoj->datoj[$komenco]);
            }
            if ($resto == "" and substr($komenco, -1) == '#') {
                // tradukenda
                $tradukilo =& kreuTradukilon();
                return $datumoj->tradukita($komenco, $tradukilo->aktuala_lingvo());
            }
            return null;
        } else {
            return $datumoj;
        }
    }
    // teorie ni ne devus veni cxi tien ...
    if ($resto and is_array($datumoj[$komenco])) {
        return teksttransformo_donu_datumon_rek($resto, $datumoj[$komenco]);
    } else {
        return $datumoj[$komenco];
    }
}
 function landonomo_en_lingvo($lingvo = "")
 {
     if ($lingvo == "") {
         $trad = kreuTradukilon();
         $lingvo = $trad->aktuala_lingvo();
     }
     return traduku_datumbazeron("landoj", "nomo", $this->datoj['lando'], $lingvo);
 }
/**
 * informas la traduksistemon, ke ni ne plu volas tradukojn
 * al la lasta lingvo, do resxaltas al antauxa lingvo.
 */
function eliru_lingvon()
{
    $ilo =& kreuTradukilon();
    $ilo->eliru_lingvon();
}
Пример #4
0
 /**
  * donas tradukitan version de iu kampo de tiu ĉi objekto.
  *
  * @param string $kamponomo 
  * @param string $lingvo la ISO-kodo de la lingvo.
  *
  * @return eostring la traduko (se ĝi mankas, la originala
  *    teksto kun indiko, ke la traduko mankas).
  */
 function tradukita($kamponomo, $lingvo = '')
 {
     if (!$lingvo) {
         $tradukilo =& kreuTradukilon();
         $lingvo = $tradukilo->aktuala_lingvo();
     }
     $nia_traduko =& $this->tradukoj[$lingvo][$kamponomo];
     // ni jam antaŭe serĉis kaj trovis (aŭ ne trovis) tiun
     // tradukon
     if (!isset($nia_traduko)) {
         // TODO: elpensu alian manieron eltrovi, ĉu temas pri flag-kampo.
         if (substr($kamponomo, -1) == '#') {
             // flag-kampo.
             $kamponomo = substr($kamponomo, 0, -1);
             $cxenoID = "flag:" . $this->datoj[$kamponomo];
             $nia_traduko = traduku_datumbazeron($this->tabelnomo, $kamponomo, $cxenoID, $lingvo);
             if (!isset($nia_traduko)) {
                 $nia_traduko = traduku_datumbazeron($this->tabelnomo, $kamponomo, $cxenoID, 'eo');
             }
             if (!isset($nia_traduko)) {
                 $nia_traduko = $this->datoj[$kamponomo];
             }
         } else {
             $nia_traduko = traduku_datumbazeron($this->tabelnomo, $kamponomo, $this->datoj['ID'], $lingvo);
             if (!$nia_traduko) {
                 $nia_traduko = $this->datoj[$kamponomo];
                 $GLOBALS['bezonis-eo-tekston'] = true;
                 if (marku_traduko_eo_anstatauxojn) {
                     $nia_traduko .= "¹";
                 }
             }
         }
         /* $nia_traduko =  "(traduko mankas: [" . $lingvo . "]("
            .                  $this->datoj[$kamponomo] . "))"; */
         debug_echo("<!-- " . $this->tabelnomo . "[" . $this->datoj['ID'] . "]->tradukita(" . $kamponomo . ", " . $lingvo . ") ==> '" . $nia_traduko . "' -->");
     }
     return $nia_traduko;
 }