问题标签 [zend-translate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Zend Framework 语言环境和 Zend_Locale、Zend_Translate 和 Zend_Form 形式的翻译问题
我在 Zend_Locale 和 Zend_Translate 方面遇到了一些问题,特别是在 htmlentities 方面。但是还有其他一些奇怪的地方。
首先,在 Zend_Locale 文档中它指出:
Zend Framework 允许使用应用程序范围的语言环境。您只需使用键“Zend_Locale”将 Zend_Locale 实例设置到注册表。然后这个实例将在 Zend Framework 的所有语言环境感知类中使用
这似乎不适用于 Zend_Translate,我假设 Zend_Translate 不是“语言环境感知”类,奇怪的是它不是但没有大问题我只需要显式设置它。下面是我的 Bootstrap 中的 initLocale() 函数:
正如您在此处看到的,我正在使用 Zend_Translate 的数组适配器。我的数组在translation.php 中定义。
与 Zend_Form (http://framework.zend.com/manual/en/zend.form.i18n.html) 文档中的 Zend_Locale 类似,它说向 Zend_Form 添加翻译的最简单方法是在注册表中设置 Zend_Translate 对象使用 'Zend_Translate' 键 - 简单,设置它,任何在数组中具有匹配翻译的表单标签、错误消息等都将被自动翻译。问题是我的法语翻译有很多htmlentities。我可能是错的,但我相信 Zend_Form 的 setLabel 方法会转义文本,因此我的实体会被转换两次。我尝试从翻译中删除所有实体,但这完全失败并给了我一个空白输出。
有没有人有任何想法?用于翻译的 htmlentities 似乎是一个主要的必需品,对吧?
目前我没有自动执行此操作,但我在表单中添加了一个中间函数,它执行以下操作(其中 $this->_translate 是 Zend_Translate 对象):
但这远非理想,因为我必须首先将每个 setLabel 和 errorMessage 包装起来,有点错过 Zend 的语言环境和翻译类的要点。
zend-framework - 禁用 Zend_Form_Element 的翻译器,但不是验证器
我有一个Zend_Form_Element_Select
对象,大约有 3k 个选择选项。当客户要求我进一步研究优化可能性时,我进行了一些调试跟踪,并注意到Zend_Form_Element_Multi->_translateValue
对Zend_Form_Element_Multi->_translateOption
. 我找到了 set 选项$elem->setDisableTranslator(true)
,它负责处理这些我不需要的翻译。但现在的问题是,错误消息不再被翻译。
我想知道的是,是否有办法不翻译值和选项,而是翻译验证器消息?
我试过这个:
但无济于事。
php - 覆盖 gettext .mo 文件
对于我们应用程序中的翻译,我们使用Zend Translate和 gettext 适配器。每个模块中有一个文件夹translations
,包含所有语言的 .mo 文件;
- 大魔
- nl.mo
- 恩莫
通过以下addTranslation()
方法扫描并添加:
我的应用程序中的字符串使用该_()
方法进行翻译,将当前语言作为参数传递(它存储在我的框架的 Language 类中):
现在我需要为特定客户定制荷兰语 (nl) 语言字符串。我不想修改nl.mo
文件,因为这会影响其他客户。所以我创建了一个名为nl_kpn.mo
(kpn 是客户名称)的文件,并将其切换$this->language
为“nl_kpn”。我希望 Zend Transate 将nl.mo
作为基本文件,覆盖在nl_kpn.mo
. 但不幸的是,正如手册所述,我经历过:
fr_CH 将被降级为 fr
所以所有的字符串仍然来自nl.mo
文件,即使$this->language
设置为“nl_kpn”。那么如何创建一种更具体的语言版本,覆盖通用的字符串呢?应该有可能吧?因为还有 en_UK 和 en_US,它们是同一语言的不同“方言”。
zend-framework - 使用 ZF 的 gettext 适配器翻译路线段
我想在 Zend Framework 中尝试路由翻译,但我使用的是 gettext 适配器,而且大多数教程都有 PHP 翻译适配器,所以我在让它工作时遇到了问题。
在主 Bootstrap.php 中,我有设置路由的方法:
这适用于/about
路径。我将粘贴设置 Zend_Translate 的代码,但它基本上*.mo
根据当前会话语言加载一个文件:
这,ofc,它被称为prior
路由。
我的问题:gettext 可以用作路由的翻译适配器吗,因为我不知道如何@about
使用 poEdit 捕获字符串?它可以?万岁!如何?
php - 使用 POEdit/xgettext 翻译变量
我正在使用PHP、Zend Framework和 Zend_Translate(gettext 适配器)。为了编辑翻译,我使用POEdit,它利用xgettext来获取要翻译的字符串。
POEdit (xgettext) 将搜索关键字以查找要翻译的字符串。因此,如果搜索关键字,当文本直接传递给翻译函数时translate
,POEdit 将没有问题找到字符串,如:'Text to translate'
但是,在其他情况下,字符串将被传递给 Zend 函数,这些函数将为我进行翻译,调用带有变量作为参数的 translate 函数:
这将导致 POEdit (xgettext) 无法找到要翻译的字符串。在上面的示例中,我希望 POEdit 查找的字符串是'Another text to translate'
,但由于它没有直接传递给translate
函数,因此找不到。
那么,如何解决问题呢?
我当前的解决方案是创建一个虚拟文件,其中包含 POEdit 未找到的所有字符串的长列表:
但是这个解决方案的缺点是更新字符串时,我都需要更改虚拟文件并找到原始字符串。这将使其更难维护。
我想到的另一个解决方案是在调用后将翻译字符串添加到评论中SomeZendFunction
(参见上面的示例),但我无法让 xgettext 接受它,因为它忽略了评论。
那么,任何人都知道如何让 xgettext 接受评论中的字符串?或者任何人有任何其他可能更好的解决方案?
谢谢你的帮助!
编辑:
我不知道为什么我被否决了。但我试图澄清这个问题。
zend-framework - Zend_Form 中多选项的自动翻译会破坏排序顺序
我有以下问题。我创建了一个 Zend_Select 元素并在一个数组中添加了多选项。Zend 自动翻译选项,之后我的多选项排序不正确。
现在,我唯一的选择似乎是:
有谁知道更好的方法来做到这一点?
zend-framework - 禁用特殊控制器的翻译
是否有可能禁用控制器的语言翻译器?此示例控制器仅提供图像。
TIA 马特
zend-framework - Zend 框架 - 翻译的 url 中的重复
我有这些网址
使用可穿越的路线并像魅力一样工作。但问题是,你什么时候写
它也可以。
一般来说,当你有
到 someController 的哪条路线仍然有效
因为它确实是控制器的名称。
如何解决这个重复的内容问题?
zend-framework - 用于 poEdit 的表单中 addMultiOption 文本的 ZEND 翻译
我不知道为什么翻译不能与 Zend_Form 一起使用。我希望能够翻译选择的选项。现在我有这样的事情:
我的表单类:
在我的引导文件中,我有这样的东西:
它适用于我调用它的控制器、phtml 文件和插件
在插件中
但这些方法在形式上是行不通的。它抛出异常:
警告:表单捕获的异常:没有为键“翻译”注册条目堆栈跟踪:#0
php - ZF语言和翻译
我需要一个在 ZF 内使用语言和翻译的良好工作示例。
我的需求如下:如果没有选择语言,'en'应该是默认的。(在页面顶部有一个语言选择器。)语言应该存储在会话中。翻译应通过 csv 文件完成。我想让语言在 url 中不可见,所以如果可能的话,我不需要重新配置路由。
我找到了一些教程,但它们并没有真正为我工作......
任何帮助将不胜感激......问候安德里亚