Cakephp i18n 获取翻译语言环境

标签 cakephp internationalization cakephp-1.3

我必须说 cakephp(使用 1.3 版本,因为项目是用它设置的)有一个奇怪的 i18n 概念。
我确实成功地翻译了静态字符串,但是动态字符串.. cake 的如何管理多语言内容的想法对我来说似乎有点尴尬。
我确实设置了 i18n 表(稍后当我让它工作时将它分成几个表)并将翻译行为附加到所需的模型。
到目前为止一切顺利,然后,在添加操作中,我添加了一个包含语言环境(en_us,de_de...)的选择字段,以便用户可以决定保存哪一个。
在保存记录之前,我做了一个 $this->Modelname->locale = $locale;告诉模型使用哪个语言环境。
记录保存成功,但是问题来了:

  • 我有一个包含很多记录的索引操作,我希望用户能够为每个项目提供不同的翻译(假设:一个项目被翻译成英语(美国)和德语,另一个项目被翻译成英语(美国)、意大利语和法语,我怎样才能让用户编辑/删除单个翻译?
  • 我确实使用了 $this->Modelname->bindTranslation(...)在我需要获取语言环境名称(存在哪些翻译)以便用户可以决定要编辑哪个操作的内部操作中,是否有另一种更优雅的方法来完成此操作?另外,当我这样做时:$this->Modelname->bindTranslation(...);然后我没有使用 find() 方法,而是使用 paginate(),它不返回任何翻译...
  • 最佳答案

    我有一个适用于 Cakephp2.0 的解决方案,它可能也适用于 Cakephp1.3,我也从未测试过。您必须重命名内容并编辑某些内容,但它可能会起作用。
    以防万一:只要您处于项目的早期状态,我建议您更新到 Cakephp2.0。自从 Cakephp2.1 最终发布以来,1.3 就被弃用了。
    我经历了大约两到三次更新过程,这是一天的工作,也许是两天。在我的情况下,从头开始重新启动项目。我并不真正相信更新后的外壳,尽管它做得非常好。

    长话短说。

    我的方法包括覆盖现有的 TranslateBehavior,添加一个新的 TranslationBehavior、一个助手和一个组件。

    这是包含文件的 zip。

    http://www.func0der.de/cakephp/MultiLanguageForms.zip

    一旦我弄清楚如何正确使用 GIT,我就会向他们提出请求。
    带有文件的票证已在:http://cakephp.lighthouseapp.com/projects/42648/tickets/2463-multi-language-forms#ticket-2463-4 ;)

    用法很简单。
    在 Controller 中,您包含组件和助手。模型获得翻译和翻译行为。由于回调问题,Translatio 先行。但是脚本无论如何都会抛出异常。

    该组件将自行查找“Locale”文件夹中存在的所有语言,并将它们安全地保存到 Configure 类中。

    在 View 中,您使用 $this->Translation->inputs('Modelname.field');。
    模型名称很重要,因为我还没有找到自动确定的方法,因为我不确定我的助手中的 FormHelper 实例是否与 View 中的相同。我有时间泄漏。 ^^

    TranslationBehavior 将验证每个!基于字段名称的语言字段。

    如果有任何问题:问^^
    由于我不经常在这里,我会尝试看看这个问题;)

    问候
    函数器

    关于Cakephp i18n 获取翻译语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9609908/

    相关文章:

    php - 如何在 MYSQL 或特别是 cake 1.3 中获取父 ID 的子代计数

    internationalization - 如何将国际化对象传递给 Flutter 中的子控件

    php - 如何在 Symfony 2 的每个 URL 中设置 {locale}?

    php - CakePHP 1.3 - 提取 URL GET 参数

    php - 如果我使用 $this->Form->textarea() 验证在 cake php 中不起作用

    cakephp - debug为0时出错,更高则不出错

    php - Webtechnick CakePHP-Facebook-Plugin 必须请求两次才能识别登录用户

    php - 如何在 CakePHP 中创建自定义 MySQL 查询?

    python - 生成本地化文件的最简单方法

    php - 我可以隐藏 Controller 并查看名称 cake php 2 吗?