制作多语言网站的最佳方式是什么?
What is the best way to make a multilingual site?
我需要制作 2 种语言的着陆页,通过点击旗帜来切换语言。
据我所知,我需要在用户的本地存储/cookie 中保存语言状态。
我在这里看到 3 个选项:
在用户计算机上上传。json 包含 2 种语言的内容。在页面脚本打开时,将检查本地存储的 lang 变量的可用性,然后通过 JS 填充页面。
在cookie中保存lang变量,在向服务器请求时,服务器必须变魔术并返回基于用户语言的页面。
用每种语言复制每个页面。
问题一:
哪种方式更好,何时以及为什么? (案例:一个页面着陆,网站有很多页面)
问题二:
当我复制页面时,根目录中根本没有 index.html
是否正常,但是:
/en/index.html
/ru/index.html
默认重定向到 /en/
的 和 .htaccess
文件,检查 lang 变量的 cookie,如果存在则将用户重定向到特定文件夹。
我会将每个翻译存储在 json 文件(en.json、ru.json)中,并使用 url 参数更改语言。 index.html?lang=ru
(这样你就不必处理不同的路径)
如果 url 参数存在,将其保存在本地存储中,加载相应的 json 并用转换后的字符串填充页面。
如果没有 url 参数,请在本地存储中查找一种语言。如果那里什么都没有,假设一个默认值(例如 en)并加载翻译后的字符串。
问题一:
选项1:
如果您有某种前端框架(如 Angular 或 React),这是很好的做法。
但是如果你有一个静态(或只有服务器端渲染)的页面,那不是真正的方法。因为它给您的代码增加了不必要的复杂性。
选项 2:
如果您只有后端渲染(例如使用 PHP),这是一个很好的方法。
选项 3:
仅当您拥有不会更改的静态网页(仅 HTML/CSS)时才执行此操作。而且你根本没有编程经验。
问题二:
好吧,不,你总是有 index.html,但你可以重定向到默认语言的 index.html。
我需要制作 2 种语言的着陆页,通过点击旗帜来切换语言。
据我所知,我需要在用户的本地存储/cookie 中保存语言状态。
我在这里看到 3 个选项:
在用户计算机上上传。json 包含 2 种语言的内容。在页面脚本打开时,将检查本地存储的 lang 变量的可用性,然后通过 JS 填充页面。
在cookie中保存lang变量,在向服务器请求时,服务器必须变魔术并返回基于用户语言的页面。
用每种语言复制每个页面。
问题一:
哪种方式更好,何时以及为什么? (案例:一个页面着陆,网站有很多页面)
问题二:
当我复制页面时,根目录中根本没有 index.html
是否正常,但是:
/en/index.html
/ru/index.html
默认重定向到 /en/
的 和 .htaccess
文件,检查 lang 变量的 cookie,如果存在则将用户重定向到特定文件夹。
我会将每个翻译存储在 json 文件(en.json、ru.json)中,并使用 url 参数更改语言。 index.html?lang=ru
(这样你就不必处理不同的路径)
如果 url 参数存在,将其保存在本地存储中,加载相应的 json 并用转换后的字符串填充页面。 如果没有 url 参数,请在本地存储中查找一种语言。如果那里什么都没有,假设一个默认值(例如 en)并加载翻译后的字符串。
问题一: 选项1: 如果您有某种前端框架(如 Angular 或 React),这是很好的做法。 但是如果你有一个静态(或只有服务器端渲染)的页面,那不是真正的方法。因为它给您的代码增加了不必要的复杂性。
选项 2: 如果您只有后端渲染(例如使用 PHP),这是一个很好的方法。
选项 3: 仅当您拥有不会更改的静态网页(仅 HTML/CSS)时才执行此操作。而且你根本没有编程经验。
问题二: 好吧,不,你总是有 index.html,但你可以重定向到默认语言的 index.html。