问题标签 [poedit]
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 - PHP Gettext - 没有翻译
我正在尝试使用 PHP gettext 扩展来翻译一些字符串。所有函数似乎都返回正确的值,但调用gettext()
/_()
仅返回原始字符串。PO/MO 文件似乎是正确的,我相信我已经正确设置了目录。我在 Windows 上使用 PHP 5.3.10 运行 WAMP 服务器(也尝试运行 5.3.4 和 5.3.8,因为我有安装)。
首先,请参阅/new2/www/index.php
:
我创建了以下文件结构:
我也尝试过替换Spanish_Spain.1252
为:es_ES
, esn
, esp
, Spanish
, 和Spanish_Spain
.
用于生成 MO 的 PO 文件是这样的(仅给出相关条目):
这是使用 PoEdit 生成的。添加任何新的 .MO 文件后,我已重新启动 Apache。另请注意,我之前将 Zend_Translate 与 Gettext 一起使用,并且翻译正确。不过,我希望依赖本机 gettext 扩展,部分原因是我正在尝试创建自己的轻量级框架。
任何帮助,将不胜感激。
编辑:修改目录结构。注意 - 将能够在 24 小时内尝试最近的答案。
python - 生成 POT 文件
PoEdit 会导致问题,因为它还会扫描不需要扫描的子目录中的 Python 源。所以我希望 PoEdit 从 POT 文件中获取有关字符串的新信息。据说这里xgettext
可以让我从源代码创建一个 POT 文件。但我不知道怎么做。它总是生成一个 PO 文件。
如何创建 POT 文件xgettext
?还是旧的pygettext
可以接受?还是有其他工具?
internationalization - 如何保留 gettext() 翻译?
假设我有一个example.php
这样的文件:
如果我提取字符串:
我得到一个messages.mo
文件,我可以用它打开poedit
、翻译、创建一个 .po 文件等。没关系,问题是当我编辑我的原件并已经翻译时example.php
:
我添加了一个新字符串,如果我xgettext
再次执行,我会得到一个messages.mo
所有字符串都为空的文件,所以我必须使用 poedit 并再次翻译所有字符串。如何重复使用我以前的翻译?
php - Zend translate 翻译成英语,而语言环境设置为荷兰语
我的 Zend_translate 正在工作,但由于某种原因它只能翻译成英文。即使我的语言环境手动设置为荷兰语,它也会显示英文翻译。当我删除英语 mo/po 文件时,它将使用荷兰语翻译。
这是在引导程序中设置的:
在语言目录中有:en_US.mo、en_US.po、nl_NL.mo、nl_NL.po。
我究竟做错了什么?
gettext - php gettext 和 poedit - 使用或不使用构造函数会更快
我将一些属性及其选项存储在类 Attributes 中。
为什么我将它们保存在代码中而不是数据库中是另一回事。现在我对 poedit 有疑问,因为它无法读取动态翻译。我现在有两个选择:
a) 将所有数组值放入一个转储文件。此文件将仅由 poedit 解析器使用:
通过这种方式,我可以通过以下方式调用视图中的翻译:
b)我可以使用构造函数并从那里调用 gettext 。
通过这种方式,我可以通过以下方式调用视图中的翻译:
现在我的问题:
假设将有大约 10 个这样的属性,平均有 40 个选项,所以这总共有 400 个数组对。以这种方式使用构造会以任何方式减慢应用程序吗?因为这意味着每次我调用构造函数时,都会为所有数组值调用 gettext,即使此属性值未显示在视图中。如果我不使用构造函数,那么只会为实际使用的单个属性值调用 gettext。
我做了ab测试,但很惊讶,因为没有任何区别。但我担心我一定会遗漏一些东西,因为我的感觉会说以这种方式调用构造函数会减慢速度。
php - PoEdit 和 PHP 注释
我正在寻找一种让 PoEdit 理解 PHP 注释的方法。这是我希望 PoEdit 拾取并放入目录的代码示例:
有趣的部分是@Title
注释。它在前端控制器中访问并分配给主视图,有效地在<title>...</title>
标签内结束。
现在我需要翻译该字符串,但 PoEdit 似乎只能理解_()
表达式,并且添加@Title
到关键字不起作用。这可能是因为 PHP 中的注释位于注释块中。
有什么方法可以强制 PoEdit 理解注释吗?
php - PoEdit 不识别 _n() 复数
我在 POEdit 的源关键字中设置了这个:
它有效,但是当我使用_n()
函数(二十一主题)时,我只得到第一个字符串:
<?php printf(_n('One Comment', '%s Comments', get_comments_number(), 'twentyeleven'), number_format_i18n(get_comments_number())); ?>
任何想法如何让它识别_n()
?这正是我遇到的问题,但没有解决方案:http ://www.poedit.net/trac/ticket/307
php - 国际化 CakePHP 1.3 未更新
很久以前我正在开发这个项目,现在我又回来了。国际化工作正常,从C:\...\cake\app\locale\por\LC_MESSAGES
我有 2 个文件的文件夹中获取翻译:
我编辑了 po 文件,手动插入了一些新的关键字,例如:
然后,我打开 Poedit,验证所有内容,然后单击“保存”,因此 Poedit 会自动创建 .mo 文件。
之后我重新启动了 WAMP,并清除了我的缓存。
我做了很多次,但结果总是一样:旧词翻译得很好,但我最近添加的新词不翻译。
旧的和新的,我在我的 CakePHP 1.3 项目中以这种方式使用:
我在这里错过了什么吗?
zend-framework - 如何在zend翻译表达式中包含视图变量?
我想在我的主页上显示最新的 3 条新闻。我从 MySql 数据库的表中选择最新消息并将它们分配给索引控制器中的视图变量,如下所示:
然后我在视图中声明它:
假设每次我从 MySql 数据库中向我的 News 表中添加一个新行时,都会将一个唯一的标题传递给 Zend_Translate,它会自动被 Poedit 检测并建议进行翻译。但它不会起作用。像这样的选项{$this->latestNew}, '$this->latestNew', "$this->latestNew"
也不起作用。有任何想法吗?
dns - 如何使用 POEdit 从特定域获取(可翻译的)字符串
我已经尝试了几个小时来寻找一种设置POEdit的方法,以便它只能从特定域中获取文本
我的 gettext 函数如下所示:
示例调用:
我只需要获取域 myDomain 的文本进行翻译,或者至少我希望 POEdit 将这些文本放入域特定的文件中。有没有办法做到这一点?
我发现了几个相似的问题,但答案并没有真正告诉我该怎么做(我想我是个菜鸟,必须用简单的英语解释才能理解):