在URL javascript / nodejs中更改语言代码

时间:2019-06-25 03:26:13

标签: javascript jquery html node.js express

我有通用的头文件,其中包括具有多语言下拉列表的导航栏。 当我选择下拉语言时,翻译页面没有任何问题。 但是,当我移至其他页面时,如果应该反映在第一页上选择的语言(例如,如果在第一页上选择了th,则其他页面应该是/th而不是'/ en' 当前常用的头文件始终是/en,当我选择下拉菜单时如何更新a href links JavaScript

从下拉列表中选择特定语言后,需要更新所有href链接。

//header.ejs
<body>
  <nav>
  <ul>
 <li class="nav-item">
            <a class="nav-link" href="/en/about" style="margin-right: 1.5rem!important;">about us</a>//change this link
          </li>
          <li class=" nav-item">
            <a class="nav-link" href="/en/contact"
              style="margin-right: 1.5rem!important;">contact us</a>
          </li>//change this link
  </ul>
    <div class="dropdown">
      <button id="language" class="btn btn-warning dropdown-toggle" type="button" id="dropdownMenu2"
        data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" onclick="clickButton()">
        English
      </button>
      <div id="languagelist" class="dropdown-menu" aria-labelledby="dropdownMenu2" onclick="clickItem(); return false">
        <a class="dropdown-item" href="javascript:" onclick="setLanguage('en')">English</a> 
        <a class="dropdown-item" href="javascript:" onclick="setLanguage('th')">Thai</a>
      </div>
    </div>
  </nav>
</body>

1 个答案:

答案 0 :(得分:0)

  1. load上查看是否在cookie中设置了语言。
  2. cookie通话中的setLanguage中设置所选语言。

$(document).ready(function() {
  //read previously set cookie value
    var selectedLanguage = $.cookie( 'selectedLanguage' );
  // 1. on load see if language is set or not in cookie.
     selectedLanguage = selectedLanguage ? selectedLanguage : 'en';
     setLanguage(selectedLanguage);
     
     
     function setLanguage(lan){
        $.cookie('selectedLanguage', lan);
     }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" integrity="sha256-1A78rJEdiWTzco6qdn3igTBv9VupN3Q1ozZNTR4WE/Y=" crossorigin="anonymous"></script>