Ich habe im Shop mehrere Sprachen und möchte einen Facebook-Like-Button in der jeweiligen Sprache anzeigen.
Der Code sieht etwa so aus:
{block name="frontend_index_top_bar_nav" append}
<!--
<div id="debug"><a href="#">{$Shop->getLocale()->toString()}</a></div>
<div id="debug"><a href="#">{$Locale}</a></div>
<div id="debug"><a href="#">{$Locale=="fr_FR"}</a></div>
-->
{if $Locale=="de_DE"}
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.7";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
{elseif $Locale=="fr_FR"}
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.7";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
...
{else}
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
{/if}
<div class="fb-like" data-href="http://www.mysite.com" data-width="150" data-layout="button" data-action="like" data-show-faces="true" data-share="false"></div>
{/block}
Dies funktioniert für Deutsch, Englisch und auch für weitere Sprachen. Aber für französisch und noch eine Sprache nicht. Ich verstehe nicht, wieso nicht. Der Code ist doch identisch. Französisch wird auch auf der facebook-developer-seite als Beispiel genommen. In der auskommentierten Debug-Ausgabe wird korrekt "fr_FR" ausgegeben.
Sieht einer einen Fehler? Habe ich irgendetwas nicht verstanden?