如果这是一个简单的问题,请提前道歉--我对网络开发非常陌生。
我正在尝试建立一个多语言网站(EN & FR)。
我知道如何让按钮从一个英文网站切换到一个法语网站,反之亦然。
HTML:
<body>
<a href="#eng" data-reload>English</a>
<a href="#fr" data-reload>Français</a>
<script>
//define language reload anchors
var dataReload = document.querySelectorAll("{data-reload]");
//Language Translations
var language = {
eng:{
Hello: "Hi!"
},
fr:{
Hello: "Bonjour!"
}
};
//Define language via window hash
if (window.location.hash){
if (window.location.hash === "#fr") {
hi.textContent = language.fr.hello;
}
}
//Define language reload onclick illiteration
for(i=0;i<=dataReload.length;i++){
dataReload[i].onclick=function(){
location.reload(true);
};
}
</script>
整个网站都是英文的。但我不知道怎么翻译法文页..。字数很少,所以我不介意自己翻译。有办法这样做吗?
(我听说过关于i18n的很棒的事情,但还不完全了解如何使用它。)
谢谢!
发布于 2020-05-01 06:13:47
我的经验是Java (特别是Spring)。我猜想这可能不是您所使用的,但也许基本概念将适用于其他框架:
Spring的工作方式是使用所有已翻译的消息定义一组语言(地区)-specific消息文件。这些文件是按地区命名的。因此,对于法语,您可能有一个名为messages_fr.properties
的文件,其内容如下:
greeting=Bonjour! Bienvenue sur notre site!
lang.change=Changez la langue
lang.eng=Anglais
lang.fr=Francais
上面定义了一组特定于语言的键值。不同的语言文件将具有不同的值,但具有相同的键。然后,在html模板中,按如下方式使用键:
<h1><spring:message code="greeting" text="default"/></h1>
然后Spring根据用户的地区设置来查找greeting
键。如果它设置为法语,它将在上面的法语文件中查找结果Bonjour! Bienvenue sur notre site!
。如果它设置为英语,它将在英文文件中查找。
显然,其他框架可能会采取不同的做法,但也许这种概述在某种程度上是有用的。关于Spring方式的更多信息可以在这里找到:
https://www.baeldung.com/spring-boot-internationalization
如果您试图滚动简单的国际化框架(根据使用的程度,idk可能不是最好的计划),那么您可能会有一个类似的设置,一个与用户绑定的全局区域设置,以及一个基于语言无关键+用户区域设置查找文本的消息查找机制。此查找可能只是全局js对象中的查找,或服务器端的查找,这取决于模板的位置。然后,模板代码将只引用查找函数和键,而不必担心硬编码的语言值。您更改站点语言的链接只需更改该用户的区域设置,可能存储在他们的会话中或其他类似的内容中。
https://stackoverflow.com/questions/61537608
复制相似问题