丢失 CakeDC/I18n 语言前缀的 CakePHP 2

CakePHP 2 with CakeDC/I18n language prefix being lost

我有一个 CakePHP 2.5 站点 运行 CakeDC/I18n 插件以允许多语言支持。我已经安装了插件以在切换语言时使用 3 个字母的前缀:

www.example.com/eng/

当我单击按钮更改语言时,这工作正常。语言前缀添加到 url。问题是当我通过单击 link 来切换页面时,前缀被删除了。为什么会这样?我需要在 href 标记中做些什么吗?我的理解是 CakeDC/I18n 插件会处理这个问题。

任何帮助将不胜感激,因为我已经为这个问题挠头了一段时间!

您需要将当前语言作为参数传递。

否则它将始终使用您在 bootstrap.php

中定义的默认语言

这是一个例子。

Router::url(
    'lang' => 'spa',
    'controller' => 'articles',
    'action' => 'view',
    'slug' => 'test'
);