oxLang Bezeichnung/Translation der DBSpalte anzeigen lassen

Ich möchte in php den Backendbezeichner der Artikelspalten anzeigen lassen. Beispielsweise ‘GENERAL_ARTICLE_OXARTNUM’ => ‘Artikelnummer’

$oLang = oxLang::getInstance();
echo $oLang->translateString('GENERAL_ARTICLE_OXARTNUM', $oLang->getBaseLanguage);

Leider wird nur der Key ‘GENERAL_ARTICLE_OXARTNUM’ ausgegeben.

Weiß jemand woran das liegt bzw. wo mein denkfehler ist?

So:

echo oxLang::getInstance()->translateString('GENERAL_ARTICLE_OXARTNUM')

oder:

echo oxRegistry::getLang()->translateString( 'GENERAL_ARTICLE_OXARTNUM' );

oder:

$oLang = oxRegistry::getLang(); 
echo $oLang->translateString('GENERAL_ARTICLE_OXARTNUM', $oLang->getBaseLanguage());

Leider sagt er bei mir

Class ‘oxRegistry’ not found

Welche Shopversion?

Gerade noch gesehen: Da fehlen die Klammern:

$oLang->getBaseLanguage[B]()[/B]

Oxid 4.6.5. Leider etwas älter.

Aber hab grad mal geschaut. Da gibts kein oxRegistry.

Hab mir grad die oxLangInstance ausgeben lassen.
print_r($oLang, true);
Irgendwie sind da nicht alle drin.Muss ich da vielleicht noch irgendwie den Bereich wählen?

Wenn ich oxLang::getInstance()->translateString(‘ADDITIONAL_INFO’) ausgebe funktioniert es. Also scheint es wirklich irgendwie daran zu liegen.

[QUOTE=Peter1988;138202]

$oLang = oxLang::getInstance();
echo $oLang->translateString('GENERAL_ARTICLE_OXARTNUM', $oLang->getBaseLanguage);

[/QUOTE]

Für die Übersetzung müssen keine bestimmten Bereiche gewählt werden (bis auf die Sprachen natürlich). Wie geschrieben, fehlen oben die Funktionsklammern.

getBaseLanguage[B]()[/B]

Schönes Wochenende !

Scheinbar aber doch.

hab es mit den Klammern gemacht. Gleiches Ergebnis :frowning:

$oLang->translateString('GENERAL_ARTICLE_OXARTNUM', $oLang->getBaseLanguage())

Und wenn ich mir das $oLang ausgebe sind die ganzen Übersetzungen von der “out/admin/de/lang.php” nicht enthalten.

Daran wird es liegen. Aber ich weiß nicht wie ich an die rankomme :frowning:

Weiß wirklich niemand wie es gehen könnte?

Auch wenn’s schon älter ist, die Antwort sollte für oxid (4.7.5 evtl. auch früher) lauten:


$oLang = oxRegistry::getLang(); 
echo $oLang->translateString('GENERAL_ARTICLE_OXARTNUM', $oLang->getBaseLanguage(), true);  

Der zusätzliche Paramete [B]true[/B] zwingt die Übersetzungsroutine die Sprachkonstanten aus dem Adminbereich des Shops zu laden.

Siehe dazu auch die Datei [I]\core\oxlang.php[/I]

Moin,
nach dem Update auf 4.9.2 funktionierte ein Shop nicht mehr.
Dann habe ich im error.log folgenden Fehler gefunden:

PHP Fatal error:  Call to undefined method oxLang::getInstance() in /var/www/modules/myfile.php on line 11

In dem Modul stand folgender Code in der besagten Zeile:


$oLang = oxLang::getInstance();

Ein Blick in die core/oxlang.php zeigt mir folgendes:


/**
     * returns a single instance of this class
     *
     * @deprecated since v5.0 (2012-08-10); Use Registry getter instead - oxRegistry::getLang();
     *
     * @return oxLang
     */
    public static function getInstance()
    {
        return oxRegistry::getLang();
    }

Also:


$oLang = oxLang::getInstance();

entfernen und stattdessen:


$oLang = oxRegistry::getLang();

nutzen. (hat DrBrain auch schon gesagt, wollte ich nur nochmal deutlicher machen)