php - 基于子域的 symfony 语言选择

标签 php internationalization symfony1

我的 symfony 应用程序应该从子域获取用户的语言:

en.project.com - 英文版 fr.project.com - 法语

等等... 特殊过滤器从当前 uri 获取“GET”参数“lang”并将其保存在用户属性中。 如何为多个子域设置 apache 虚拟主机配置?

最佳答案

<VirtualHost *:80>
ServerName blah.com
ServerAlias de.blah.com en.blah.com fr.blah.com
...
</VirtualHost>

阅读有关服务器别名的更多信息:http://httpd.apache.org/docs/2.0/en/mod/core.html#serveralias

您的 Symfony 过滤器可以在第一次请求期间简单地解析域并设置 session 变量。 这是未经测试的,但应该有效:

<?php class localeFilter extends sfFilter
{
  public function execute($filterChain)
  {
    // Execute this filter only once
    if ($this->isFirstCall()) {
      $host = $_REQUEST['HTTP_HOST'];
      $locale = array_shift(explode(".",$host));
      $this->getUser()->setAttribute('locale', $locale);
    }

    // Execute next filter
    $filterChain->execute();
  }
} ?>

关于php - 基于子域的 symfony 语言选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707582/

相关文章:

php - 左加入 Doctrine 查询语言

php - 如何在 symfony 1.4 中缓存 session 相关数据?

php - `return $this;` 设计模式还是反模式?

php - 从数组中访问唯一值对而无需重复自己

java - GWT/GXT 国际化问题

javascript - JavaScript 的 i18n - 最佳实践?

php - symfony 1.4.8 与 PHP 5.4.7 和 Apache 2.4.3 冲突

PHP 查询多重搜索

php - 如何从我的新帖子管理面板将新博客帖子添加到我的帖子数据库?

cakephp - 如何本地化 CakePHP 插件?