it-swarm.com.de

Wie erhalte ich die aktive Sprachvariable in Javascript auf einer mehrsprachigen Site?

Ich versuche also, das Facebook Devkit-Skript in meiner index.php so zu ändern, dass es von der aktiven Sprache der Website abhängt. Ich bin mir jedoch nicht sicher, wie ich auf die aktive Sprachvariable zugreifen soll. Ich habe beide versucht var lang ="<?php echo $lang; ?>";die leere Anführungszeichen erzeugt, und var lang = document.documentElement.lang Gib mir nur die Browsersprache, nicht die aktive Sprache auf der Site.

Ich weiß, dass ich dies mit einer sprachspezifischen Vorlage tun und den Sprachwert nur manuell ändern kann, aber ich sehe keine anderen sprachspezifischen Dinge auf Stil- oder Vorlagenebene vor, daher denke ich, dass eine schnelle Regex-Korrektur besser wäre.

Update: Wenn jemand interessiert ist, ist hier der Code, den ich verwendet habe. Nicht schön, aber es funktioniert für meinen Anwendungsfall:

<script>(function(d, s, id) {
  var lang = "<?php echo JFactory::getLanguage()->getTag();?>";  
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  if (lang !="en-GB"){
  js.src = "//connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.8";
  } else {
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8";   
  }

  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
1
nizz0k

$lang, Von dem ich in Ihrem Fall annehme, dass es von $lang = JFactory::getLanguage(); abgeleitet ist, gibt Ihnen das gesamte Sprachobjekt. Über dieses Objekt können Sie dann auf eine seiner Eigenschaften zugreifen.

Um das Sprachkennzeichen zu erhalten, können Sie Folgendes verwenden:

<script>
    var lang = '<?php echo JFactory::getLanguage()->getTag(); ?>';
</script>

Dies wird Folgendes ausgeben:

var lang = 'en-GB';
1
Lodder