Lokalisierungen wie ru_DE nicht nutzbar

Wir setzen ein kommerzielles Plug-in zur hreflang-Generierung in einem Shop mit zwei Sprachen (Deutsch, Russisch) ein. Da sich der Shop nur an Kunden aus Deutschland richtet, gibt es die Anforderung, bei den beiden hreflang-Angaben de-DE und ru-DE (statt ru-RU) zu verwenden, weil die Region in jedem Fall Deutschland ist, auch bei russischer Sprache. Das ist für Google wichtig. Das Plug-in greift dabei auf die den Shops zugeordneten Lokalisierungen zu. Eine Änderung von ru_RU in ru_DE im Shopware-Backend löst das Problem für den deutschen Sprachshop, sorgt aber dafür, dass der russische Sprachshop nicht mehr aufrufbar ist. Das Log meldet: „core.ERROR: exception ‚Zend_Currency_Exception‘ with message ‚No region found within the locale ‚ru‘‘ in /var/www/shopware/engine/Library/Zend/Currency.php:561“ Das bedeutet wohl, dass eine Kombinbation von de und RU nicht zulässig ist im Zend Framework, und weder Shopware, noch das Plug-in wirklich Schuld an dem Problem haben. In der Locale-Klasse vom Zend Framework stehen alle gültigen Varianten drin und ru_DE fehlt da. Ich sehe so tief im Kern einer Bibliothek auch keine wirkliche Einflussmöglichkeit durch ein eigenes Plug-in, zumal man auch an das hreflang-Plug-in nicht herankommt, da dies verschlüsselt ist. Dennoch irgendwelche Tipps, was man hier tun könnte?

Du könntest im Template eine Abfrage machen, wenn „ru_RU“, dann gib „ru_DE“ aus. Google nutzt allerdings hreflang auch zur Erkennung von Sprachshops auch im Bezug zu doppelter Content, so dass der Russenshop möglichst nicht in Deutschland -Google gelistet ist. Einen ISO Code für „ru_DE“ ist mir neu.

Ich frage mich auch, ob es für Google wirklich einen Unterschied macht, die Sprachshops mit de-DE und ru-DE anzugeben, anstatt einfach nur de und ru (ohne Region) zu benutzen, wie es auch die Standardeinstellung im hreflang-Plug-in ist.

Es macht dann einen Unterschied wenn du en_US oder en_GB hast. ru_DE gibt es nicht, oder ich bin uninformiert.

Also language-Tags sollten generell so kurz wie nötig angegeben werden. Den Country Subtag gibt man nur an, wenn man verdeutlichen möchte, dass die Sprache anders als in anderen Teilen der Welt gesprochen wird. z.b. bei Deutsch (Deutschland, Österreich und Schweiz), Englisch (GB oder Amerika), Spanisch (Spanien, Mexico, Costa Rica, …). Deshalb macht auch ein jp_JP keinen Sinn. Ein ru_DE macht auch keinen Sinn, da in Deutschland kein anderes Russisch als in Russland gesprochen wird. Es ist einfach nur ru. Ganz ohne Country-Code, ein _RU kann man noch dranhängen, macht aber keinen Unterschied, es sei denn es soll klar sein, dass hier das klassische Russisch aus Russland ist, das macht aber eigentlich das ru schon.

Der Language-Tag gibt ja an welche Sprache gesprochen wird, und nicht in welchem Land die Website (oder der Shop) ist. Der Country-Subtag existiert um die Sprache exakt festlegen zu können.

Wir haben uns nun erst mal entschieden, die Standardoption des Plug-ins wiederherzustellen und nur den Sprachcode ohne Region zu verwenden. Ob das dann in Bezug auf Google wirklich der optimale Weg ist, wird sich zeigen.