classes/phing/filters/TranslateGettext.php
\TranslateGettext
Replaces gettext("message id") and _("message id") with the translated string.
Gettext is great for creating multi-lingual sites, but in some cases (e.g. for performance reasons) you may wish to replace the gettext calls with the translations of the strings; that's what this task is for. Note that this is similar to ReplaceTokens, but both the find and the replace aspect is more complicated -- hence this is a separate, stand-alone filter.
<
p>
Example:
- Extends from
- \BaseParamFilterReader
- Implements
- \ChainableReader
- see
- \BaseFilterReader
- access
- public
- author
- Hans Lellelid
- copyright
- © 2003 seasonfive. All rights reserved
- package
- phing.filters
- version
- $Revision: 526 $ $Date: 2009-08-11 14:11:17 +0200 (Tue, 11 Aug 2009) $
Constants
Properties
Methods

chain(
\Reader $reader
)
:
\TranslateGettext| Name | Type | Description |
|---|---|---|
| $reader | \Reader | A Reader object providing the underlying stream. Must not be |
| Type | Description |
|---|---|
| \TranslateGettext |

checkAttributes(
)
:
- throws
- - if any required attribs aren't set.

initEnvironment(
)
:
voidThis method will change some env vars and locale settings; the restoreEnvironment should put them all back :)
- see
- \restoreEnvironment()
- throws
- - if locale cannot be set.

read(
$len
=
null
)
:
mixedThe original stream is first read in fully, and then translation is performed.
| Name | Type | Description |
|---|---|---|
| $len |
| Type | Description |
|---|---|
| mixed |
- throws
- - if the underlying stream throws an IOException during reading
- throws
- - if the correct params are not supplied

restoreEnvironment(
)
:
voidThis does not restore any gettext-specific settings (e.g. textdomain()).

setDir(
\PhingFile $dir
)
:
| Name | Type | Description |
|---|---|---|
| $dir | \PhingFile |

setDomain(
string $domain
)
:
The text domain must correspond to the name of the compiled .mo files. E.g. "messages" ==> $dir/LC_MESSAGES/messages.mo "mydomain" ==> $dir/LC_MESSAGES/mydomain.mo
| Name | Type | Description |
|---|---|---|
| $domain | string |

setLocale(
string $locale
)
:
Note that for gettext() to work, you have to make sure this locale is specific enough for your system (e.g. some systems may allow an 'en' locale, but others will require 'en_US', etc.).
| Name | Type | Description |
|---|---|---|
| $locale | string |

xlateStringCallback(
array $matches
)
:
stringThis function simply wraps gettext() call, but provides ability to log string replacements. (alternative would be using preg_replace with /e which would probably be faster, but no ability to debug/log.)
| Name | Type | Description |
|---|---|---|
| $matches | array | Array of matches; we're interested in $matches[2]. |
| Type | Description |
|---|---|
| string |