javascript - 语言检测和 url 重写/重定向

标签 javascript php .htaccess redirect

我的网站有两种语言:EN(英语)和 TR(土耳其语) 现在,它正在加载土耳其语作为默认语言。网址中没有任何语言短语。例如我们的页面:domain.com/index.php、domain.com/aboutus.php 等。

如果有人点击“英语”链接,则页面会重新加载并显示以下短语:?language=EN。例如domain.com/aboutus.php?language=EN

单击此按钮后,所有页面都会加载为英语,但我们在网址中也看不到任何语言短语。其他页面如 services.php、contact.php 正常加载,但是是英文的..

我需要一个简单的浏览器语言重定向器: - 如果用户的浏览器语言是土耳其语,则一切正常,页面可以加载为默认土耳其语。 - 如果用户的浏览器语言不是土耳其语,则页面应通过 ?language=EN 短语加载为英语。例如domain.com/aboutus.php?language=EN

重要的是,这个控制应该在第一次访问任何页面(不仅仅是索引)时发生。如果用户选择土耳其语,那么我们不应该再次加载英语页面。

我们可以使用 php、htaccess 或 javascript。

非常感谢...

最佳答案

如果语法是对称的,那就太好了(即土耳其语的语法与英语的语法相同)。如果这看起来很丑(对我来说确实如此),请将其移至 session 中。我认为这足够干净:

  1. 如果请求是语言更改请求,则更改语言,保存到 session 。否则,
  2. 如果 session 包含语言选择,请使用该语言。否则,
  3. 使用 Accept-Language header 确定浏览器想要什么,设置语言,保存到 session 。

当然,您可以使用带有 URL 参数的同一系统。问题是,在您当前的方案中,您无法区分“未选择语言”和“选择英语”。

关于javascript - 语言检测和 url 重写/重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27810499/

相关文章:

php - 如果产品未发布或未发布,如何在Joomla中显示404错误

apache - Htaccess 301 博客重定向 url

javascript - 动画按钮点击和颜色

javascript - 游戏完成时触发 Javascript 事件

javascript - 为什么 Safari 允许基于滚动的视频按预期工作,而其他浏览器则不允许?

javascript - 如何使用蓝图在 React 中渲染表格

php - 面向对象的反面?

php - 将Google Analytics(分析)代码放在单独的文件中会破坏分析

php - .htaccess 资源被解释为脚本但以 MIME 类型 text/html 传输

.htaccess - htaccess - 将目录重定向到同名文件