更改HTML页面语言

r

我想用一个带有按钮的英语制作页面,该按钮可以将语言更改为德语。我已经阅读了数千篇有关该主题的文章,但没有得到答案。我知道我绝对不想使用Google Translator API或任何API来做到这一点。我想用纯JS制作。我只想怎么做?使用具有很多行的按钮可以逐一更改元素的文本:function changeLang () { document.getElementById('someid').innerHTML = "some German text"; ... }

还是用const transLang { from = "en" to = "de" ...}如果您有任何启动方法,请告诉我。

自由度

对于“纯JS”解决方案,换句话说,没有一种通常的解决方案:

  • 没有Ajax来获取翻译后的页面文本/替换html
  • 没有重定向到可以处理布局不一致性的其他页面

一种选择是将翻译存储在每个div上,然后使用进行切换.text()请勿将翻译内容编码到javascript中,因为那样将很快无法维护。

function switchLang(lang)
{
    $("[data-" + lang + "]").text(function(i, e) {
        return $(this).data(lang);
    });
}

switchLang("en");

$(".switchlang").click(function() {
    // change the button caption here, eg a flag
    // UX opinion of whether it should be what it is 
    // or what it will become
    // ie "de" click to make it "de"
    // or "de" it's currently "de", click to change it
    $(this).text($(this).data("lang"));
    
    // switch to other language based on language on the button
    var lang = $(this).data("lang") == "de" ? "en" : "de";
    $(this).data("lang", lang);
    switchLang(lang)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<span data-de="Um die Nachrichten zu lesen" 
      data-en="To read the news"></span>,&nbsp;
<span data-de="Übersetzungsdienst nicht verfügbar" 
      data-en="click here"></span>
<hr/>
<div data-en="no de translation for this line"></div>
<hr/>
<button class='switchlang' data-lang="en">de</button>

然后,您可以轻松添加新语言,而无需更改任何代码(这次使用单独的按钮)

var defaultlang = "en";

function switchLang(lang)
{
    $("[data-" + lang + "]").text(function(i, e) {
        return $(this).data(lang);
    });
}

switchLang("en");

$(".switchlang").click(function() {
    switchLang($(this).data("lang"))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<span data-de="Um die Nachrichten zu lesen" 
      data-es="Para leer las noticias"
      data-en="To read the news"></span>,&nbsp;
<span data-de="Übersetzungsdienst nicht verfügbar" 
      data-es="haga clic aquí"
      data-en="click here"></span>
<hr/>
<div data-es="no hay traducción para esta línea"
     data-en="no de translation for this line"></div>
<hr/>
<button class='switchlang' data-lang="en">en</button>
<button class='switchlang' data-lang="de">de</button>
<button class='switchlang' data-lang="es">es</button>


您可能希望直接在HTML中默认使用该语言,而不是在启动时进行默认设置,例如:

<span data-de="speichern">save</span>

然后将原件.data("en")放在加载位置。这将消除FOUC(加载页面时的延迟),这对您的情况可能很重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Moodle登录页面语言更改

来自分类Dev

更改应用语言后如何更改页面内容的方向

来自分类Dev

更改 HTML 页面的动画

来自分类Dev

HTML type =“ email”错误消息语言更改

来自分类Dev

Rails更改语言环境回到当前页面

来自分类Dev

更改Facebook之类的按钮语言而无需重新加载页面

来自分类Dev

如何更改OneNote部分(或页面/笔记本)的语言

来自分类Dev

更改Facebook之类的按钮语言而无需重新加载页面

来自分类Dev

Symfony 3:更改所有页面的语言环境

来自分类Dev

如何在node.js中获取HTML页面语言?

来自分类Dev

检测浏览器首选语言以提供html页面

来自分类Dev

如果更改语言文件中的行,则登录页面上的OpenCart文本不会更改

来自分类Dev

如何使用值更改侦听器更改JSF页面中的语言环境?

来自分类Dev

如果更改语言文件中的行,则登录页面上的OpenCart文本不会更改

来自分类Dev

HTML下拉值在页面刷新上更改

来自分类Dev

如何更改页面上加载的HTML内容

来自分类Dev

HTML下拉值在页面刷新上更改

来自分类Dev

jQuery在页面加载时更改HTML参数

来自分类Dev

HTML至Excel +更改页面循环

来自分类Dev

如何使用html和CSS更改页面?

来自分类Dev

Selenium 使用 python 更改页面上的 html

来自分类Dev

动态更改语言时,应该更新HTML lang属性吗?

来自分类Dev

使用reactjs更改主要index.html上的语言

来自分类Dev

HTML5:<!DOCTYPE html>更改页面样式

来自分类Dev

iOS 8自定义键盘在“设置”页面中更改语言

来自分类Dev

平滑的页面滚动器不适用于替代语言(即更改的URL结构)

来自分类Dev

更改语言环境但停留在当前页面上

来自分类Dev

更改语言时保持在同一页面上

来自分类Dev

为什么在尝试更改语言时页面重定向到主页?

Related 相关文章

  1. 1

    Moodle登录页面语言更改

  2. 2

    更改应用语言后如何更改页面内容的方向

  3. 3

    更改 HTML 页面的动画

  4. 4

    HTML type =“ email”错误消息语言更改

  5. 5

    Rails更改语言环境回到当前页面

  6. 6

    更改Facebook之类的按钮语言而无需重新加载页面

  7. 7

    如何更改OneNote部分(或页面/笔记本)的语言

  8. 8

    更改Facebook之类的按钮语言而无需重新加载页面

  9. 9

    Symfony 3:更改所有页面的语言环境

  10. 10

    如何在node.js中获取HTML页面语言?

  11. 11

    检测浏览器首选语言以提供html页面

  12. 12

    如果更改语言文件中的行,则登录页面上的OpenCart文本不会更改

  13. 13

    如何使用值更改侦听器更改JSF页面中的语言环境?

  14. 14

    如果更改语言文件中的行,则登录页面上的OpenCart文本不会更改

  15. 15

    HTML下拉值在页面刷新上更改

  16. 16

    如何更改页面上加载的HTML内容

  17. 17

    HTML下拉值在页面刷新上更改

  18. 18

    jQuery在页面加载时更改HTML参数

  19. 19

    HTML至Excel +更改页面循环

  20. 20

    如何使用html和CSS更改页面?

  21. 21

    Selenium 使用 python 更改页面上的 html

  22. 22

    动态更改语言时,应该更新HTML lang属性吗?

  23. 23

    使用reactjs更改主要index.html上的语言

  24. 24

    HTML5:<!DOCTYPE html>更改页面样式

  25. 25

    iOS 8自定义键盘在“设置”页面中更改语言

  26. 26

    平滑的页面滚动器不适用于替代语言(即更改的URL结构)

  27. 27

    更改语言环境但停留在当前页面上

  28. 28

    更改语言时保持在同一页面上

  29. 29

    为什么在尝试更改语言时页面重定向到主页?

热门标签

归档