如何获取我的 Wiki 的语言?
How to get the language of my Wiki?
我设置了 Wiki 运行 不同的语言,如下所示:
es.myWiki.org
de.myWiki.org
en.myWiki.org
现在我需要为社交按钮挂钩获取不同的语言。它需要根据语言而有所不同。
到目前为止,我在 customSkin.php
:
中使用这样的 JS
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
。
您可以检查 window.location.href
:
var loc = window.location.host;
var userLang = loc.substr(0, loc.indexOf('.'));
这将为您提供 en, es, de
,具体取决于用户使用的子域。
您正在寻找“网站内容语言”。这 不是 页面语言,并且通常在您的变体的所有页面中都是相同的(es
代表 es.myWiki.org
,等等),无论用户使用何种语言设置。换句话说,在es.myWiki.org/aPage?uselang=en
,它仍然是es
。
前端
var contentLang = mw.config.get( 'wgContentLanguage' );
后端
global $wgLanguageCode;
// do something with $wgLanguageCode
API
查询 api.php?action=query&meta=siteinfo
获取数据,例如网站内容语言(query.general.lang
)。 (demo)
另请参阅:
- wgDefaultLanguageVariant,用于确定应该使用哪种脚本变体,例如中文(简体或繁体)或塞尔维亚语(拉丁文或西里尔文)
- Manual:Language,有关页面内容语言、站点内容语言和用户语言的更多信息。
我设置了 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
。
您可以检查 window.location.href
:
var loc = window.location.host;
var userLang = loc.substr(0, loc.indexOf('.'));
这将为您提供 en, es, de
,具体取决于用户使用的子域。
您正在寻找“网站内容语言”。这 不是 页面语言,并且通常在您的变体的所有页面中都是相同的(es
代表 es.myWiki.org
,等等),无论用户使用何种语言设置。换句话说,在es.myWiki.org/aPage?uselang=en
,它仍然是es
。
前端
var contentLang = mw.config.get( 'wgContentLanguage' );
后端
global $wgLanguageCode;
// do something with $wgLanguageCode
API
查询 api.php?action=query&meta=siteinfo
获取数据,例如网站内容语言(query.general.lang
)。 (demo)
另请参阅:
- wgDefaultLanguageVariant,用于确定应该使用哪种脚本变体,例如中文(简体或繁体)或塞尔维亚语(拉丁文或西里尔文)
- Manual:Language,有关页面内容语言、站点内容语言和用户语言的更多信息。