javascript - 制作多语言网站的最佳方式是什么?
问题描述
我需要制作 2 种语言的登录页面,通过单击标志来交换语言。
我的理解是,我需要将语言状态保存在用户的本地存储/cookies 中。
我在这里看到 3 个选项:
在用户机器上上传 .json 文件,内容为 2 种语言。在页面脚本打开时,将检查 localstorage 中 lang 变量的可用性,并在 JS 填充页面之后。
将 lang 变量保存在 cookie 中,在请求服务器时,服务器必须施展魔法并发送回基于用户语言的页面。
用每种语言制作每个页面的副本。
问题1:
哪种方式更好,何时以及为什么?(案例:一页登陆,网站多页)
问题2:
当我复制页面时,index.html
根目录下根本没有是正常的吗,但是:
/en/index.html
/ru/index.html
和默认.htaccess
重定向到/en/
的文件,检查 cookie 中的 lang 变量,如果存在则将用户重定向到特定文件夹。
解决方案
我会将每个翻译存储在一个 json 文件(en.json、ru.json)中,并使用 url 参数更改语言。index.html?lang=ru
(这样你就不必处理不同的路径)
如果 url 参数存在,将其保存在 localstorage 上,加载相应的 json 并用转换后的字符串填充页面。如果没有 url 参数,则在 localstorage 中查找语言。如果那里什么都没有,假设一个默认值(例如,en)并加载翻译后的字符串。
推荐阅读
- android - 从 Gluon 移动应用程序使用数字键盘
- datetime - 自定义日期的 Elasticsearch 设置格式
- html - 如何使网站适用于任何浏览器大小和移动设备
- java - 如何使用 AsyncHttpClient 构建 URL?
- python-3.x - 从两个不同的数据集创建数据集
- java - 如何将项目作为依赖项添加到我的 common.gradle?
- php - 问题完整性约束违规:1048列
- swift - WKExtension.shared().delegate = self 现在显示无法分配给属性:'delegate' 是仅获取属性
- mysql - 如何从 SQL 子查询返回数组?
- java - 将素数总和 Python 代码转换为 Java 代码