hdodov / potext
此包已被废弃且不再维护。作者建议使用https://php.ac.cn/manual/en/book.gettext.php包代替。
以gettext类似的方式翻译文本,实际上不使用gettext,而是解析.po文件。
dev-master
2022-08-23 07:01 UTC
Requires
- sepia/po-parser: 4.2.2
This package is auto-updated.
Last update: 2022-08-23 07:01:54 UTC
README
通过解析.po文件而不是实际使用PHP gettext实现来以gettext类似的方式翻译文本。
默认的gettext实现并不总是有效,并且理解起来有些困难。Potext让您仍然可以使用像_po()
和_npo()
(用于复数)这样的简写函数,但使用一个(po文件,使用PHP-po-parser解析)来显示实际的文本。没有文本域或地区。您只需将这些函数中的文本放入,然后设置一个包含要显示给用户的文本的文件。
⚠ 已弃用!
只需使用Gettext。
安装
克隆此存储库或在Packagist上找到Potext,然后使用Composer安装它
composer require hdodov/potext:dev-master
使用
设置
首先,确保您require
Composer的自动加载文件
require __DIR__ . '/vendor/autoload.php';
然后,创建一个Potext对象。它允许您从po文件中提取数据
$potext_bg = new Potext\Potext('./locales/bg.po');
最后,设置Translate单例以使用您刚刚创建的Potext对象
Potext\Translate::$potext = $potext_bg;
此单例由翻译函数(如_po()
)用于显示文本。如果没有设置$potext
,它将直接显示输入文本。
现在您可以显示一些翻译后的文本了!
翻译函数
_po("Text"); // Get translated string _epo("Text"); // Echo translated string _npo("%d Text", "%d Texts", $n); // Get translated plural string _enpo("%d Text", "%d Texts", $n); // Echo translated plural string
注意
如果您正在使用像Poedit这样的程序来翻译文本,除非您将Potext函数内的字符串添加到Poedit的关键词列表中,否则它们不会被收集!您需要添加以下内容
_po
_epo
_npo:1,2
_enpo:1,2