+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Problem mit = in Sprachdateien

  1. #1
    Neu an Board
    Registriert seit
    07.02.2006
    Beiträge
    57
    Bedankte sich
    4
    Erhielt 10 Danksagungen
    in 6 Beiträgen

    Frage Problem mit = in Sprachdateien

    Hi ho,
    ich trau mich kaum zu fragen, doch ich hab noch n Problem mit meiner Frontendübersetzung:

    Ich möchte eine Fehlermeldung einbauen, dass bei nicht vorhandenem Browser Plugin ein Hinweis samt Link zu dem fehlenden Plugin ausgegeben wird.
    Leider kommen in der HTML-Notation für einen Link ja Gleichheitszeichen vor.
    Doch in den Sprachdatein von Joomla signalisiert das erste Gleichheitszeichen die nachsthende Übersetzung.

    Wie kann ich das lösen, dass auch im zu übersetzenden String Gleichheitszeichen vorkommen dürfen?

    Zur Verdeutlichung:
    Auszug der zuständigen php-Datei:
    Code:
    $javascript .= 'single: "'.JText::_('You must install the <a href="{0}" target="_blank">{1}</a> browser plugin to view this content.', true).'",' . "\n";
    Auszug der deutschen Sprachdatei:
    Code:
    YOU MUST INSTALL THE <A HREF="{0}" TARGET="_BLANK">{1}</A> BROWSER PLUGIN TO VIEW THIS CONTENT.=Um den Inhalt anzeigen zu können muss die Browser-Erweiterung <a href="{0}" target="_blank">{1}</a> installiert werden.
    Da Joomla nun aber das erste Gleichheitszeichen nach HREF als Indikator für die Übersetzung betrachtet kann keine Übersetzung ausgegeben werden (weil der String in der Sprachdatei ja nurnoch "YOU MUST INSTALL THE <A HREF" ist).

    Gibt's ne Möglichkeit, dass Joomla trotzdem den ganzen String anerkennt (YOU MUST INSTALL THE <A HREF="{0}" TARGET="_BLANK">{1}</A> BROWSER PLUGIN TO VIEW THIS CONTENT.) und mir darauf die entsprechende Übersetzung ausgibt?

    Ich bin über jede Hilfe dankbar.
    Grinse

  2. #2
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Probiers mit
    PHP-Code:
    $javascript .= 'single: "'.JText::_('MUST INSTALL PLUGIN'true).'",' "\n"
    und dann in der Sprachdatei
    Code:
    MUST INSTALL PLUGIN=You must install the <a href="{0}" target="_blank">{1}</a> browser plugin to view this content.
    Das hab ich allerdings nicht probiert..

    Du musst aber glaub' ich die Anführungszeichen entweder als einfache schreiben oder maskieren
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

  3. #3
    Neu an Board
    Registriert seit
    07.02.2006
    Beiträge
    57
    Bedankte sich
    4
    Erhielt 10 Danksagungen
    in 6 Beiträgen

    Standard

    Sorry, die Antwort hat etwas gedauert.
    Deine skizzierte Lösung sollte eigentlich mein Notnagel sein.
    Ich möchte versuchen alle Ausgaben in englisch auszugeben, sodass bei einer fehlenden Übersetzung keine kryptischer Kramm ausgegeben wird, sondern die englische Alternative.

    In deiner Lösung würde dann ja z.B. "MUST INSTALL PLUGIN" ausgegeben werden, wenn die verwendete Sprache nicht unterstützt wird. Meine Hoffnung wäre eine Ausgabe gefrei "You must install the Flash browser plugin to view this content.".

  4. #4
    Hat hier eine Zweitwohnung Avatar von progandy
    Registriert seit
    25.06.2007
    Beiträge
    1.932
    Bedankte sich
    13
    Erhielt 635 Danksagungen
    in 572 Beiträgen

    Standard

    da musst du eine eigene Funktion verwenden, die einen Default-Wert annimmt, wenn der text nicht übersetzt werden kann Hab hier einmal eine Klasse und eine Funktion (beide nicht getestet)
    PHP-Code:
    <?php

    class JTextEx extends JText
    {
        
    /**
         * Translates a string into the current language
         *
         * @access    public
         * @param    string $string The string to translate
         * @param    boolean    $jsSafe        Make the result javascript safe
         * @since    1.5
         *
         */
        
    function _($string$jsSafe false$default=false)
        {
            if (
    $default===false) return parent::_($string$jsSafe);
            
    $trans parent::_($string$jsSafe);
            if (
    $trans === $string) return $jsSafe addslashes($default) : $default;
            return 
    $trans;
        }
     
    }
    // oder normale Funktion:
        
    function JTextEx($string$jsSafe false$default=false)
        {
            if (
    $default===false) return JText::_($string$jsSafe);
            
    $trans JText::_($string$jsSafe);
            if (
    $trans === $string) return $jsSafe addslashes($default) : $default;
            return 
    $trans;
        }
    ?>
    Entweder JTextEx::_("SPRCHDATEI", true, "Default text");
    oder JTextEx("SPRCHDATEI", true, "Default text");

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein