我得到了一个运行不同语言的Wiki设置:
es.myWiki.org
de.myWiki.org
en.myWiki.org
现在我需要为社交按钮钩子获取不同的语言。它需要根据语言而有所不同。
到目前为止,我在customSkin.php
:
var userLang = navigator.language || navigator.userLanguage;
if (userLang == "en-US") {
userLang = "en_US";
} else if (userLang == "de-DE") {
userLang = "de_DE";
} else if (userLang == "es-ES") {
userLang = "es_ES";
};
如果有人有德语浏览器,我显然有问题,但是用英语浏览页面。如何检测我的Wiki语言?
我的设置使用一个localsettings.php
。
答案 0 :(得分:1)
您可以查看window.location.href
:
var loc = window.location.host;
var userLang = loc.substr(0, loc.indexOf('.'));
这将为您提供en, es, de
,具体取决于用户正在使用的子域。
答案 1 :(得分:1)
您正在寻找“网站内容语言”。这不是不是页面语言,并且在您的变体中的所有页面(es
对于es.myWiki.org
等)通常都是相同的,无论用户是什么语言设定。换句话说,在es.myWiki.org/aPage?uselang=en
上,它仍然是es
。
var contentLang = mw.config.get( 'wgContentLanguage' );
global $wgLanguageCode;
// do something with $wgLanguageCode
查询api.php?action=query&meta=siteinfo
以获取有关数据的信息。网站内容语言(query.general.lang
)。 (demo)