gpt4 book ai didi

Cakephp i18n 获取翻译语言环境

转载 作者:行者123 更新时间:2023-12-01 12:48:47 24 4
gpt4 key购买 nike

我必须说 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com