更改语言环境 symfony 2.3

2023-11-25

我刚开始使用 symfony 我正在尝试构建一个多语言网站,但更改区域设置时遇到问题

我读了一些帖子,并阅读了有关此内容的文档,但区域设置没有改变,我尝试:

public function indexAction()
{    
    $this->get('session')->set('_locale', 'fr');

    $request = $this->getRequest();
    $locale = $request->getLocale();
    return $this->render('PhoneMainBundle:Default:index.html.twig',array('locale'=>$locale));
}

但 $locale 中的值始终为“en”(我的默认区域设置)

我也尝试

public function indexAction()
{    
    $this->get('session')->set('_locale', 'fr');

    $request = $this->getRequest();
    $request->setLocale('fr');
    $locale = $request->getLocale();

    return $this->render('PhoneMainBundle:Default:index.html.twig',array('locale'=>$locale));
}

在本例中 $locale 是 fr 但翻译始终来自 messages.en.yml

我想第一次使用 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 检测用户区域设置,也许在每个页面实现上使用监听器?

之后我将创建一条路线来更改区域设置

但我想找到一种方法来改变语言环境。

感谢您的帮助


基于this and this答案。

语言监听器.php:

<?php

namespace Acme\UserBundle\EventListener;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\HttpKernelInterface;

class LanguageListener
{
    private $session;

    public function setSession(Session $session)
    {
        $this->session = $session;
    }

    public function setLocale(GetResponseEvent $event)
    {
        if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
            return;
        }

        $request = $event->getRequest();
        $request->setLocale($request->getPreferredLanguage(array('en', 'de')));

    }
}

服务.yml:

acme.language.kernel_request_listener:
    class: Acme\UserBundle\EventListener\LanguageListener
    tags:
        - { name: kernel.event_listener, event: kernel.request, method: setLocale }

关于树枝中错误的区域设置检测,可能有很多不同的原因。搜索一下SO,你一定会找到答案。确保您的“_local”变量定义正确,确保将语言文件放在正确的位置等。最后,再次阅读文档的最新版本:http://symfony.com/doc/current/book/translation.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改语言环境 symfony 2.3 的相关文章

  • 搜索引擎如何找到相关内容? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Google 在解析网络时如何找到相关内容 例如 Google 使用 PHP 原生 DOM 库来解析内
  • 简单的 PHP 条件帮助: if($Var1 = in list($List) and $Cond2) - 这可能吗?

    这是一个可能的功能吗 我需要检查一个变量是否存在于我需要检查的变量列表中 并且 cond2 是否为 true 例如 if row name 1 2 3 Cond2 doThis 它对我不起作用 我在复制粘贴中更改的只是我的列表和变量名称 i
  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 删除PHP字符串中所有不匹配的字符?

    我有一个文本 我想从中删除所有不属于以下字符的字符 所需字符 0123456789 abcdefghijklmnopqrstuvwxyz n 最后一个是我确实想保留的 n 换行符 要匹配除列出的字符之外的所有字符 请使用反转字符集 http
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • 为 Symfony 指定备用后备路径以查找捆绑包的树枝模板

    基本问题 如何让 symfony 在非标准目录中查找 最佳 自定义 Twig 模板来加载捆绑视图 Symfony 文档说默认情况下它会在两个位置查找覆盖 Twig 模板 http symfony com doc current book t
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • Android Studio 3.1.4 Gradle 同步失败

    每当我在 Android Studio 中创建一个新项目时 它都会在 Gradle Sync 中失败 并且总是出现相同的错误 Connection timed out connect org gradle internal resource
  • java.lang.NumberFormatException:对于输入字符串:“20,475.00”

    我正在努力使我的系统保持运行平衡 为此 我从 AMOUNT 列中获取 jtable 中所有数字的总和 并将总和减去 txtLoanAmount 内的值 这是我的代码片段 String LoanAmount txtLoanAmount get
  • Oracle 选择今天之间的日期

    我有一个像这样的 Oracle SELECT 查询 Select From Customer Rooms CuRo Where CuRo Date Enter Between TODAY 12 00 00 PM And TODAY 11 5
  • 在子图网格中重新定位子图

    I am trying to make a plot with 7 subplots At the moment I am plotting two columns one with four plots and the other wit
  • AlarmManager 无法正常工作

    我正在尝试创建一个基于警报的应用程序 我在用着AlarmManager 问题是它根本不可靠 在某些设备中它可以工作 在其他设备中它有时可以工作 而在其他设备中它根本不起作用 当我说它不起作用时 很简单 警报不会响起 例如 在我的小米4中 如
  • 无法向我的应用添加广告。

    所以我按照 admob 和 Google Play 服务的指南进行操作 https developers google com mobile ads sdk docs admob fundamentals play我遇到了一个问题 他们在网
  • 单击 Jquery 打开和关闭子菜单

    我有一个主菜单 它将在 jquery 中显示带有单击事件的子菜单 客户端希望单击而不是悬停 所以我让它工作 但是我仍然不明白一件事 我的菜单和子菜单工作正常 所以当我单击 新闻 时 子菜单会很好地向下滑动 当我重新单击 新闻 时 它会关闭
  • Bcrypt 哈希返回类型错误(“在哈希之前必须对 Unicode 对象进行编码”)和无效的盐

    我已经查看了与此相关的所有 StackOverflow 问题 但我似乎无法弄清楚这一点 当我对密码进行哈希处理并对其自身进行检查时 它会使用当前代码返回 TypeError 必须在哈希处理之前对 Unicode 对象进行编码 from sc
  • lubridate 中按时间段聚合

    这个问题询问 R 中按时间段进行的聚合 pandas 称之为重采样 最有用的答案是使用 XTS 包按给定时间段进行分组 并应用 sum 或 Mean 等函数 其中一条评论暗示 lubridate 中有类似的东西 但没有详细说明 有人可以提供
  • 如何在 Jinja 2 中使用第 3 方应用程序模板标签?

    我正在为我的 Django 网站尝试 Jinja2 现在 由于 Jinja2 不是官方的 Django 模板引擎 并且它拒绝识别 加载我在 Jjinja2 之前使用的模板标签 现在 即使必须对模板标签创建进行更改 那么如何才能反映在第 3
  • 为什么局部变量的地址在多次执行时会发生变化,而用GDB调试时却不会变化?

    为什么当从 gdb 运行代码时 我得到声明的变量的相同地址 但在执行二进制文件时却没有得到相同的地址 include
  • 如何将 Spring Cloud Config 与 Git 和 Vault 复合环境存储库结合使用?

    我一直在修改 Spring Cloud Config 但有一个用例 其中配置属性分为两种类型 非秘密值 开发人员应该能够查看和维护 例如 JDBC URL 等 秘密值 只能由具有特殊访问权限的指定人员查看和维护 例如密码 所以我对支持 复合
  • JavaScript 求和值

    我需要在 javascript 中对几个值求和 我尝试使用以下代码 var a 2 var b 5 c a b 但是 输出 c 只组合这两个值 而不是计算 a 和 b 的值 所以给出的输出是 c 25 我相信你们可以轻松地帮助我解决这个问题
  • 如何将 perf.data 缩小到时间子间隔

    我使用 linux perf perf events 生成带有时间戳的 perf data 文件 如何生成子时间间隔 i start i end 内所有事件的报告 我可以将 perf data 缩小为仅包含 i start i end 中的
  • 根据API级别请求权限

    从 Android 6 0 API 级别 23 开始 我们可以在运行时请求权限 然而 根据文档 所有权限仍然需要在 AndroidManifest xml 中定义 因此在低于 23 的 API 中 这些权限将在安装应用程序之前授予 我想请求
  • T4模板和运行时参数

    我正在 VS 2010 中构建一个插件 但我陷入了 T4 一代 现在我已经实现了 就像 MSDN 建议的那样 一个自定义 T4 主机来生成我的 T4 结果 我以这种方式使用它 const string content c Simple tt
  • 如何使用我的应用程序的付费版本作为免费版本的“钥匙”?

    举例来说 我有一些 Android 应用程序可以执行 X 操作 免费版本有广告或基本功能 我想要一个删除广告并添加额外功能的付费版本 如何使用付费应用程序作为 许可证密钥 来解锁免费应用程序中的功能 因此 用户将安装免费应用程序 然后安装付
  • 获取 tt_content uid

    我正在开发一个扩展 允许管理员将内容保存到数据库中 我希望扩展的每个实例都应该在数据库中拥有自己的 ID 有没有办法在扩展 php ini 中获取 tt content uid 我猜是扩展实例 Id 您获取数组中所有 tt content
  • Google Cloud Function 部署失败

    我是 Google Cloud Platform 的新手 我正在尝试 Google Cloud Functions 但它显示出非常奇怪的行为 我正在尝试运行以下代码 exports helloPubSub event context gt
  • 更改语言环境 symfony 2.3

    我刚开始使用 symfony 我正在尝试构建一个多语言网站 但更改区域设置时遇到问题 我读了一些帖子 并阅读了有关此内容的文档 但区域设置没有改变 我尝试 public function indexAction this gt get se