1

我认为 Wikipedia 在其 URL 中使用了一种很好的语言编写方式:

http://en.wikipedia.org/wiki/Main_Page
http://de.wikipedia.org/wiki/Main_Page
http://fr.wikipedia.org/wiki/Main_Page

(语言在网站名称之前)

有什么方法可以编写这样的语言,还是非常复杂,例如每种语言的页面?我真的很想把它作为一个参数传递,然后我可以用它来设置内容的语言。

我一直在研究一些 httpd 的东西,其中包括像维基百科那样的 AddLanguage,但我不明白它是如何工作的或它做了什么。

我对 httpd 和 PHP 都不是很有经验,所以可能有更好的方法来做到这一点。

我将不胜感激任何帮助 :)

4

1 回答 1

1

我无法验证 Wikipedia 是否以这种方式处理它(我怀疑它在那里要复杂得多),但对于一个简单的站点,您可以使用 DNS 中的通配符域、简单的 URL 重写gettext()或其他国际化方法来完成此操作。

您的通配符域将注册为*.example.com. 使用支持 URL 重写的 Web 服务器,匹配第一个子域组件,并将其作为查询字符串参数传递给 PHP。这是一个使用 Apache mod_rewrite 的示例:

# Example apache rewrite subdomain to lang parameter:
RewriteEngine On
# Capture the language subdomain in %1
RewriteCond %{HTTP_HOST} ^([a-z]+)\.example\.com$ [NC]
# And pass the language into PHP as the lang= querystring param
RewriteRule ^(.*)$ index.php?lang=%1

在 PHP 中,检索语言$_GET['lang']并使用它在您的国际化方案中切换语言。

对于像维基百科这样的东西,他们很可能在他们的数据库中存储了多语言翻译的同一篇文章。如果您只是在 Web 应用程序上翻译字符串,则可以使用国际化函数来完成,例如gettext()intl

如何处理内容的国际化完全取决于您。这里的重要部分是通配符子域可用于在语言之间切换。

于 2012-06-21T23:46:47.240 回答