filters/TranslateGettext.php
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:
- Access
- public
- Author
- Hans Lellelid
- Package
- phing.filters
- See
- \BaseFilterReader
- Version
- $Id$
\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:
- Parent(s)
- \BaseParamFilterReader < \BaseFilterReader < \FilterReader < \Reader
- See
- \BaseFilterReader
- Access
- public
- Author
- Hans Lellelid
- Copyright
- � 2003 seasonfive. All rights reserved
- Version
- $Id$
Constants
Properties

$_parameters= 'array()'
array()Details- Type
- n/a
- Inherited_from
- \BaseParamFilterReader::$$_parameters

\Reader
$in= ''
- Type
- \Reader
- Inherited_from
- \FilterReader::$$in
- Inherited_from
- \BaseFilterReader::$$in
- Inherited_from
- \BaseParamFilterReader::$$in

$initialized= 'false'
Have the parameters passed been interpreted?
Inherited from: \BaseFilterReader::$$initialized\BaseParamFilterReader::$$initializedfalseDetails- Type
- n/a
- Inherited_from
- \BaseFilterReader::$$initialized
- Inherited_from
- \BaseParamFilterReader::$$initialized

$project= 'null'
The Phing project this filter is part of.
Inherited from: \BaseFilterReader::$$project\BaseParamFilterReader::$$projectnullDetails- Type
- n/a
- Inherited_from
- \BaseFilterReader::$$project
- Inherited_from
- \BaseParamFilterReader::$$project
Methods

__construct(
\Reader $in
=
null
)
:
voidConstructor used by Phing's introspection mechanism.
Inherited from: \BaseFilterReader::__construct()\BaseParamFilterReader::__construct()The original filter reader is only used for chaining purposes, never for filtering purposes (and indeed it would be useless for filtering purposes, as it has no real data to filter). ChainedReaderHelper uses this placeholder instance to create a chain of real filters.
| Name | Type | Description |
|---|---|---|
| $in | \Reader |

chain(
\Reader $reader
)
:
\TranslateGettextCreates a new TranslateGettext filter using the passed in Reader for instantiation.
| Name | Type | Description |
|---|---|---|
| $reader | \Reader | A Reader object providing the underlying stream. Must not be |
| Type | Description |
|---|---|
| \TranslateGettext | A new filter based on this configuration, but filtering the specified reader |

checkAttributes(
)
:
voidMake sure that required attributes are set.
| Exception | Description |
|---|---|
| \BuldException | - if any required attribs aren't set. |

close(
)
:
voidClose stream.
Inherited from: \FilterReader::close()\BaseFilterReader::close()\BaseParamFilterReader::close()| Exception | Description |
|---|---|
| \IOException | if there is an error closing stream |

eof(
)
:
booleanReturns whether the end of file has been reached with input stream.
Inherited from: \BaseFilterReader::eof()\BaseParamFilterReader::eof()| Type | Description |
|---|---|
| boolean |

getInitialized(
)
:
booleanReturns the initialized status.
Inherited from: \BaseFilterReader::getInitialized()\BaseParamFilterReader::getInitialized()| Type | Description |
|---|---|
| boolean | whether or not the filter is initialized |

getProject(
)
:
objectReturns the project this filter is part of.
Inherited from: \BaseFilterReader::getProject()\BaseParamFilterReader::getProject()| Type | Description |
|---|---|
| object | The project this filter is part of |

getResource(
)
:
stringReturns the filename, url, etc. that is being read from.
Inherited from: \FilterReader::getResource()\BaseFilterReader::getResource()\BaseParamFilterReader::getResource()This is critical for, e.g., ExpatParser's ability to know the filename that is throwing an ExpatParserException, etc.
| Type | Description |
|---|---|
| string |

initEnvironment(
)
:
voidInitialize the gettext/locale environment.
This method will change some env vars and locale settings; the restoreEnvironment should put them all back :)
| Exception | Description |
|---|---|
| \BuildException | - if locale cannot be set. |
- See
- \restoreEnvironment()

log(
string $msg, int $level
=
Project::MSG_INFO
)
:
voidConvenience method to support logging in filters.
Inherited from: \BaseFilterReader::log()\BaseParamFilterReader::log()| Name | Type | Description |
|---|---|---|
| $msg | string | Message to log. |
| $level | int | Priority level. |

mark(
)
:
voidIf supported, places a "marker" (like a bookmark) at current stream position.
Inherited from: \Reader::mark()\FilterReader::mark()\BaseFilterReader::mark()\BaseParamFilterReader::mark()A subsequent call to reset() will move stream position back to last marker (if supported).

markSupported(
)
:
booleanWhether marking is supported.
Inherited from: \Reader::markSupported()\FilterReader::markSupported()\BaseFilterReader::markSupported()\BaseParamFilterReader::markSupported()| Type | Description |
|---|---|
| boolean |

read(
\off $len
=
null
)
:
mixedReturns the filtered stream.
The original stream is first read in fully, and then translation is performed.
| Name | Type | Description |
|---|---|---|
| $len | \off | Offset at which to start storing characters. |
| Type | Description |
|---|---|
| mixed | the filtered stream, or -1 if the end of the resulting stream has been reached. |
| Exception | Description |
|---|---|
| \IOException | - if the underlying stream throws an IOException during reading |
| \BuildException | - if the correct params are not supplied |

readLine(
)
:
\theReads a line of text ending with '\n' (or until the end of the stream).
Inherited from: \BaseFilterReader::readLine()\BaseParamFilterReader::readLine()The returned String retains the '\n'.
| Type | Description |
|---|---|
| \the | line read, or <code>null</code> if the end of the stream has already been reached |
| Exception | Description |
|---|---|
| \IOException | if the underlying reader throws one during reading |

ready(
)
:
booleanIs stream ready for reading.
Inherited from: \Reader::ready()\FilterReader::ready()\BaseFilterReader::ready()\BaseParamFilterReader::ready()| Type | Description |
|---|---|
| boolean |

reset(
)
:
voidReset the current position in stream to beginning or last mark (if supported).
Inherited from: \FilterReader::reset()\BaseFilterReader::reset()\BaseParamFilterReader::reset()
restoreEnvironment(
)
:
voidRestores environment settings and locale.
This does not restore any gettext-specific settings (e.g. textdomain()).

setDir(
\PhingFile $dir
)
:
voidSets the root locale directory.
| Name | Type | Description |
|---|---|---|
| $dir | \PhingFile |

setDomain(
string $domain
)
:
voidSet the text domain to use.
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 |

setInitialized(
boolean $initialized
)
:
voidSets the initialized status.
Inherited from: \BaseFilterReader::setInitialized()\BaseParamFilterReader::setInitialized()| Name | Type | Description |
|---|---|---|
| $initialized | boolean | Whether or not the filter is initialized. |

setLocale(
string $locale
)
:
voidSets the locale to use for translation.
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 |

setParameters(
$parameters
)
:
void| Name | Type | Description |
|---|---|---|
| $parameters |

setProject(
object $project
)
:
voidSets the project to work with.
Inherited from: \BaseFilterReader::setProject()\BaseParamFilterReader::setProject()| Name | Type | Description |
|---|---|---|
| $project | object | The project this filter is part of. Should not be |

setReader(
$in
)
:
void| Name | Type | Description |
|---|---|---|
| $in |

skip(
int $n
)
:
voidMove stream position relative to current pos.
Inherited from: \FilterReader::skip()\BaseFilterReader::skip()\BaseParamFilterReader::skip()| Name | Type | Description |
|---|---|---|
| $n | int |

xlateStringCallback(
array $matches
)
:
stringPerforms gettext translation of msgid and returns translated text.
This 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 | Translated text |