# TranslateGettext

Extends \BaseParamFilterReader Implements \ChainableReader

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.

Example:

author | Hans Lellelid hans@xmpl.org
version | $Id: ceb6f10071ec525cd89b9f6dba2564971aa67a72 $
see |
package | phing.filters

### Methods

## __construct

    __construct(\Reader $in = null)

inherited

### Arguments

#### $in

`\Reader`

## Parses the parameters if this filter is being used in "generic" mode.

    _initialize()

## Creates a new TranslateGettext filter using the passed in Reader for instantiation.

    chain(\Reader $reader) : \TranslateGettext

### Arguments

#### $reader

`\Reader`

A Reader object providing the underlying stream. Must not be `null`.

### Response

`\TranslateGettext`

A new filter based on this configuration, but filtering the specified reader

## Make sure that required attributes are set.

    checkAttributes()

throws

- if any required attribs aren't set.

## Close stream.

    close()

inherited abstract

throws | if there is an error closing stream

## Returns whether the end of file has been reached with input stream.

    eof() : boolean

inherited

### Response

`boolean`

## Gets the root locale directory.

    getDir() : \PhingFile

### Response

`\PhingFile`

## Get the current domain.

    getDomain() : string

### Response

`string`

## Returns the initialized status.

    getInitialized() : boolean

inherited

### Response

`boolean`

whether or not the filter is initialized

## Gets the locale to use for translation.

    getLocale() : string

### Response

`string`

## Returns the parameters to be used by this filter.

    getParameters() : array

inherited

### Response

`array`

the parameters to be used by this filter

## Returns the project this filter is part of.

    getProject() : object

inherited

### Response

`object`

The project this filter is part of

## Returns the filename, url, etc. that is being read from.

    getResource() : string

inherited abstract

This is critical for, e.g., ExpatParser's ability to know the filename that is throwing an ExpatParserException, etc.

### Response

`string`

## Initialize the gettext/locale environment.

    initEnvironment() : void

This method will change some env vars and locale settings; the restoreEnvironment should put them all back :)

throws

- if locale cannot be set.

see | \TranslateGettext::restoreEnvironment()

## Convenience method to support logging in filters.

    log(string $msg, integer $level = \Project::MSG_INFO) : void

inherited

### Arguments

#### $msg

`string`

Message to log.

#### $level

`integer`

Priority level.

## If supported, places a "marker" (like a bookmark) at current stream position.

    mark()

inherited

A subsequent call to reset() will move stream position back to last marker (if supported).

## Whether marking is supported.

    markSupported() : boolean

inherited

### Response

`boolean`

## Read data from source.

    read(integer $len = null)

inherited abstract

If length is specified, then only that number of chars is read, otherwise stream is read until EOF.

### Arguments

#### $len

`integer`

## Reads a line of text ending with '\n' (or until the end of the stream).

    readLine() : string

inherited

The returned String retains the '\n'.

throws | if the underlying reader throws one during reading

### Response

`string`

the line read, or `null` if the end of the stream has already been reached

## Is stream ready for reading.

    ready() : boolean

inherited

### Response

`boolean`

## Reset the current position in stream to beginning or last mark (if supported).

    reset()

inherited

## Restores environment settings and locale.

    restoreEnvironment() : void

This does not restore any gettext-specific settings (e.g. textdomain()).

## Sets the root locale directory.

    setDir(\PhingFile $dir)

### Arguments

#### $dir

`\PhingFile`

## Set the text domain to use.

    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

### Arguments

#### $domain

`string`

## Sets the initialized status.

    setInitialized(boolean $initialized)

inherited

### Arguments

#### $initialized

`boolean`

Whether or not the filter is initialized.

## Sets the locale to use for translation.

    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.).

### Arguments

#### $locale

`string`

## Sets the parameters used by this filter, and sets the filter to an uninitialized status.

    setParameters(array $parameters) : void

inherited

throws |

### Arguments

#### $parameters

`array`

Array of parameters to be used by this filter. Should not be `null`.

## Sets the project to work with.

    setProject(object|\Project $project)

inherited

### Arguments

#### $project

`object|\Project`

The project this filter is part of. Should not be `null`.

## setReader

    setReader(\Reader $in)

inherited

### Arguments

#### $in

`\Reader`

## Move stream position relative to current pos.

    skip(integer $n)

inherited

### Arguments

#### $n

`integer`

## Performs gettext translation of msgid and returns translated text.

    xlateStringCallback(array $matches) : string

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.)

### Arguments

#### $matches

`array`

Array of matches; we're interested in $matches[2].

### Response

`string`

Translated text

### Constants

## DOMAIN_KEY

    DOMAIN_KEY

## DIR_KEY

    DIR_KEY

## LOCALE_KEY

    LOCALE_KEY

### Properties

## The domain to use

    domain :

### Type(s)

``

## The dir containing LC_MESSAGES

    dir :

### Type(s)

``

## The locale to use

    locale :

### Type(s)

``

## The system locale before it was changed for this filter.

    storedLocale :

### Type(s)

``

## The passed in parameter array.

    _parameters : array

inherited

var |

### Type(s)

`array`

## Have the parameters passed been interpreted?

    initialized :

inherited

### Type(s)

``

## The Phing project this filter is part of.

    project :

inherited

### Type(s)

``

## in

    in : \Reader

inherited

var |

### Type(s)

`\Reader`