只是一个简单的问题,我想知道为什么有些网站在选择语言后会在其网址中出现类似“?lang = EN”的内容?是因为他们的html文件或包含它的文件夹名为“?lang = EN”,还是其他一些代码?我想为我的网站设置类似的URL(有2种语言)。目前我有这样的文件夹结构:
语言选择:D:/media/index.html
EN网站:D:/media/en/index.html
CN网站:D:/media/cn/index.html
网站文件:D:/ media / site
感谢。
答案 0 :(得分:0)
这是因为他们经常有一个内容管理系统,其内容不是必然存储在文件中,而是存储在数据库中。 lang=en
是他们检索的URL中的GET变量,例如PHP,用于显示正确的内容。但是,在您的情况下,如果用户点击EN
或CN
到适当的位置(例如/en/index.html
和/cn/index.html
),则可以重定向用户。
答案 1 :(得分:0)
PHP使用$_GET
从URL中的变量中获取值。它从该LANG
变量中获取值,然后从文件中选择所有以不同语言存储的所有单词或来自数据库
您无需复制每个文件,然后进行翻译。
在您的案例中搜索php动态页面教程。我找到了THIS。
P.S。 PHP可以通过多种方式实现这一目标。
答案 2 :(得分:0)
首先,文件扩展名(.html)之后的任何内容都是服务器端函数。
?是一个PHP的函数,并将变量添加到超级全局GET数组(格式为:?variable = value& variable2 = value2),该变量是从另一个页面引导的,从那时起,可以使用数据完成许多事情。
使用?lang = EN的网站可能已编程为在所需的地点和语言中打印单页所需的文本块。虽然可以使用此方法重定向到特定于语言的目录。
希望这会有所帮助:)
答案 3 :(得分:0)
您在地址栏中看到的网址,"?"
之后的任何内容称为“QueryString”,而服务器端的网址(基于网站的开发平台)则可以访问这些值。例如,"lang"
的值可以等于"EN"
或"CN"
等。
顺便说一下,你可以让一些http处理程序重写所请求的url,并通过物理上不存在的url获取你的参数。就像你提到的那个,“http://yoursite.com/en/default.whatever”。我本人更喜欢这种方式,但正如您所要求的那样,您应该使用一些服务器端库来访问查询字符串值,并选择要发送给客户端的内容的语言。
同样作为一个解决方案,一旦我使用,您还可以使用一些翻译服务(如translate.google.com)客户端库,并在客户端使用jquery甚至javascript调用它,并在页面加载时翻译所有文本。虽然行动速度很快,但你会看到一些问题。
希望它有所帮助。