【问题标题】:Codeigniter 2.1 switch_uri() and i18n language libraryCodeigniter 2.1 switch_uri() 和 i18n 语言库
【发布时间】:2012-04-06 19:46:53
【问题描述】:

我正在使用 Codeigniter 2.1 构建我的应用程序,并且我正在使用 i18n 多语言库,并且一切正常。唯一的问题是我翻译当前页面时,没关系,但是当我更改页面时,它会以默认语言返回。示例:

myapp.com/en/home

点击锚点(switch_uri('de'))

myapp.com/de/home

现在跟随链接到另一个控制器,它恢复到默认值 语言

myapp.com/en/about

那么我该如何解决它,当我切换控制器时,语言保持最后选择,而不是默认语言?

提前致谢。 :)

编辑:

这些是我更改页面语言的锚点。我想我可能会使用某种 cookie 来保存用户的语言并在每次控制器加载时获取它,但我相信还有更简单和容易的东西。

<ul id="languages">
    <li><a href="<?= base_url($this->lang->switch_uri('bg')) ?>" class="lang-bg"></a></li>
    <li><a href="<?= base_url($this->lang->switch_uri('en')) ?>" class="lang-en"></a></li>
</ul>

主菜单中有我到其他页面的链接:

<li>
    <?= anchor(base_url('about'), 'about') ?>
</li>

【问题讨论】:

  • 你能把代码贴在你有链接的地方吗?
  • 我在上面编辑了我的问题。 :)
  • 不,我指的是控制器的链接。如果您已正确实施,则它们应该可以正常工作并且语言不应该改变,这应该不是问题。我要求提供链接以查看您是否在其中硬编码语言(控制器/功能/en)如果您在这样的链接中硬编码语言,那么您应该在最后删除语言参数。
  • 哦,对不起,我没听懂。但正如您在我上次编辑后在上面看到的那样,链接中的语言不是固定的。所以我认为问题出在其他地方。

标签: codeigniter internationalization


【解决方案1】:

好的,我可以看到问题出在您使用 base_url() 的链接中。在没有 base_url() 的情况下尝试这样的链接。

<?php echo anchor('about/index/', 'About'); ?>

【讨论】:

  • 谢谢。我真的不知道 base_url() 会导致问题。你救了我的命。再次感谢! :)
  • 我有完全相同的问题我不使用 base_url anchor('auth/logout', 'logout') 并且在语言更改后(我更改语言 trhru 链接,例如 localhost/project/enlocalhost/project/fr (单击第二个链接后语言已更改?或者我必须做什么才能更改语言?
  • @Kyslik 我不再使用 codeigniter 但上次我使用 i18n 库时,我使用了这个here。检查一下,看看它是否对您有帮助。
  • 是的,我使用的是同一个。 :)
  • @Kyslik 如果您已正确设置它以更改语言,您将创建一个锚点,如指南末尾所述anchor($this-&gt;lang-&gt;switch_uri('fr'),'Display current page in French'); 此代码将创建一个链接,该链接将更改语言(在这个案例是法语)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-10
  • 2012-08-11
  • 1970-01-01
相关资源
最近更新 更多