smmoosavi/php-gettext

此包最新版本(v1.0.1)没有提供许可证信息。

由danilo segan编写的php-gettext包装器。此库提供了PHP函数,即使在gettext未编译或在系统中不存在适当的区域设置时,也能读取MO文件。

v1.0.1 2015-10-28 17:41 UTC

This package is not auto-updated.

Last update: 2024-09-28 13:46:08 UTC


README

由danilo segan编写的php-gettext包装器。此库提供了PHP函数,即使在gettext未编译或在系统中不存在适当的区域设置时,也能读取MO文件。

安装方法

使用 Composer

在项目根目录创建composer.json文件

{
    "require": {
        "smmoosavi/php-gettext": "dev-master"
    }
}

然后运行以下composer命令

$ php composer.phar install

如何使用

创建翻译文件

.
├── composer.json
├── composer.lock
├── locale
│   ├── en_US
│   │   └── LC_MESSAGES
│   │       ├── messages.mo
│   │       └── messages.po
│   └── fa_IR
│       └── LC_MESSAGES
│           ├── messages.mo
│           └── messages.po
├── test.php
└── vendor
    ├── autoload.php
    ...

PHP代码

<?php // test.php
require 'vendor/autoload.php';

use smmoosavi\util\gettext\L10n;

$locale = 'fa_IR';
$lang = 'fa';
L10n::init($lang, __DIR__ . "/locale/$locale/LC_MESSAGES/messages.mo");

var_dump(__('Hi'));
var_dump(__('other'));

示例.pot文件

msgid ""
msgstr ""
"Project-Id-Version: php-gettext 0.0.1\n"
"Report-Msgid-Bugs-To: example@example.com\n"
"POT-Creation-Date: 2010-05-28 06:18-0500\n"
"PO-Revision-Date: 2013-08-07 11:34+0330\n"
"Last-Translator: example translator <example@example.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.5\n"

msgid "test"
msgstr "تست"

msgid "Hi"
msgstr "سلام"

将.pot转换为.pom

$ msgfmt -cv -o locale/fa_IR/LC_MESSAGES/messages.mo locale/fa_IR/LC_MESSAGES/messages.po

待办事项

  • 提供ext-gettext。您可以在topic/provide-ext-gettext分支中跟踪进度。

注意

感谢Danilo Segan。此项目使用php-gettext 1.0.11