【发布时间】:2020-06-01 20:50:33
【问题描述】:
我正在使用支持多语言的theme 在hugo 开发一个多语言网站。我添加了两种语言的内容,并在配置文件中设置了以下两个设置:
defaultContentLanguage = "en"
defaultContentLanguageInSubdir = true
我还指定了两种语言如下:
[languages]
[languages.en]
baseURL = "https://example.com/en"
weight = 100
[languages.nl]
baseURL = "https://example.com/nl"
当 hugo 生成网站时,会按预期创建两个目录,每个目录对应一种语言。当我部署网站时,导航到其中任何一个 url 都会将我发送到相应语言的网站。但是,导航到基本网址 example.com 让我无处可去,因为在该位置没有生成 html。
我可以通过绕过 hugo 并在站点根目录手动添加 index.html 来实现这一点:
<!DOCTYPE html>
<html lang="en-us">
<head>
<script type="text/javascript">
var languageCookie = getCookie("preferredLanguage")
if (languageCookie) {
var language = languageCookie
} else {
var language = navigator.language || navigator.userLanguage;
}
if (language == "nl") {
window.location.href = "https://example.app/nl"
document.cookie = "preferredLanguage=nl"
}
else {
window.location.href = "https://example.app/en"
}
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
</script>
</head>
</html>
但我宁愿让 hugo 生成这个 html。如何指定一个独立的页面/javascript,它与语言无关?或者还有其他地方可以调用这个javascript吗?任何帮助表示赞赏
【问题讨论】:
标签: javascript redirect multilingual hugo