Probleme mit einem Script (Einzahl/ Mehrzahl)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit einem Script (Einzahl/ Mehrzahl)

    Hallo an alle.
    Ich bin kein Coder und werde somit nicht wirklich zu anderen Problemlösungen betragen können. Es sei denn es betrifft kein PHP sondern Hard- & Software.

    Aber nun zu meinem Problem.

    Ich nutze ein Script, welches Studen / Minuten und Sekunden angibt.
    Es unterscheidet ob es Einzahl oder Plural ist und hängt je nachdem eine Endung dran.
    z.B. Stunde[COLOR=black]n Minute etc.[/COLOR]

    Nun der eigentliche Clou, das ganze kann auch in English geswitched werden. Nur habe ich jetzt ein Problem. Das Script unterscheidet nicht die Sprachen sondern bindet zwar den jeweiligen Sprachwert ein, aber klatscht die englische Mehrzahl endung "s" dran.

    PHP-Code:
    function _format_when ($iSec) {
     
    $s '';
     if (
    $iSec>0) {
      if (
    $iSec 3600) {
       
    $i round($iSec/60);
       
    $s .= (== $i || == $i) ? _t('_x_minute_ago''1') : _t('_x_minute_ago'$i's');
      } else if (
    $iSec 86400) {
       
    $i round($iSec/60/60);
       
    $s .= (== $i || == $i) ? _t('_x_hour_ago''1') : _t('_x_hour_ago'$i's');
      } else {
       
    $i round($iSec/60/60/24);
       
    $s .= (== $i || == $i) ? _t('_x_day_ago''1') : _t('_x_day_ago'$i's');
      }
     } else {
      if (
    $iSec > -3600) {
       
    $i round($iSec/60);
       
    $s .= (== $i || == $i) ? _t('_in_x_minute''1') : _t('_in_x_minute', -$i's');
      } else if (
    $iSec > -86400) {
       
    $i round($iSec/60/60);
       
    $s .= (== $i || == $i) ? _t('_in_x_hour''1') : _t('_in_x_hour', -$i's');
      } elseif (
    $iSec < -86400) {
       
    $i round($iSec/60/60/24);
       
    $s .= (== $i || == $i) ? _t('_in_x_day''1') : _t('_in_x_day', -$i's');
      }
     }
     return 
    $s;

    der dazugehörige Sprachfile wert lautet z.B. =>
    PHP-Code:
    DE
    '_x_minute_ago' => 'vor {0} Minute{1}',
     
    EN
    '_x_minute_ago' => '{0} minute{1} ago'
    Soweit so gut. Nur habe ich dann im Deutschen immer ein S dahinter hängen.
    Wie kann ich das jetzt u´mgestalten, das ich 2 Sprachfilewerte habe und diese jeweils eingebunden werden?`

    z.B. wenn Wert XY < als Wert dann binde _x_minute_ago ein ansonsten _x_minuten_ago

    Versteht Ihr, was ich möchte?

    Kanns leider nicht besser erklären aber für Tipps bin ich dankbar.

    lg
    deeboo

  • #2
    Wenn es nur um den konkreten Fall geht, könntest Du einfach alle Vorkommen von 's' durch _t('plural_suffix') ersetzen und plural_suffix in den Sprachdateien als 's' bzw. 'n' definieren. Ist natürlich nicht allgemeingültig aber für Stunden, Minuten und Sekunden passt es.

    Kommentar


    • #3
      format_plural | Drupal API

      Kommentar

      Lädt...
      X