# classes/phing/filters/TranslateGettext.php

## \TranslateGettext
jump to top

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

`DOMAIN_KEY = 'domain'`

`DIR_KEY = 'dir'`

`LOCALE_KEY = 'locale'`

### Properties

`$dir= ''`

The dir containing LC_MESSAGES

Details

Type

`$domain= 'messages'`

The domain to use

Default value `messages` Details

Type

`$locale= ''`

The locale to use

Details

Type

`$storedLocale= ''`

The system locale before it was changed for this filter.

Details

Type

### Methods

`_initialize( ) :`
Parses the parameters if this filter is being used in "generic" mode.
`chain( \Reader $reader ) : \TranslateGettext`
Creates a new TranslateGettext filter using the passed in Reader for instantiation.
Parameters

Name | Type | Description
--- | --- | ---
$reader | \Reader | A Reader object providing the underlying stream. Must not be `null`.

Returns

Type | Description
--- | ---
\TranslateGettext |

`checkAttributes( ) :`
Make sure that required attributes are set.
Details

throws
  - if any required attribs aren't set.

`getDir( ) : \PhingFile`
Gets the root locale directory.
Returns

Type | Description
--- | ---
\PhingFile |

`getDomain( ) : string`
Get the current domain.
Returns

Type | Description
--- | ---
string |

`getLocale( ) : string`
Gets the locale to use for translation.
Returns

Type | Description
--- | ---
string |

`initEnvironment( ) : void`
Initialize the gettext/locale environment.

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

Details

see
  \restoreEnvironment()
throws
  - if locale cannot be set.

`read( $len = null ) : mixed`
Returns the filtered stream.

The original stream is first read in fully, and then translation is performed.

Parameters

Name | Type | Description
--- | --- | ---
$len |  |

Returns

Type | Description
--- | ---
mixed |

Details

throws
  - if the underlying stream throws an IOException during reading
throws
  - if the correct params are not supplied

`restoreEnvironment( ) : void`
Restores environment settings and locale.

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

`setDir( \PhingFile $dir ) :`
Sets the root locale directory.
Parameters

Name | Type | Description
--- | --- | ---
$dir | \PhingFile |

`setDomain( string $domain ) :`
Set 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

Parameters

Name | Type | Description
--- | --- | ---
$domain | string |

`setLocale( string $locale ) :`
Sets 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.).

Parameters

Name | Type | Description
--- | --- | ---
$locale | string |

`xlateStringCallback( array $matches ) : string`
Performs 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.)

Parameters

Name | Type | Description
--- | --- | ---
$matches | array | Array of matches; we're interested in $matches[2].

Returns

Type | Description
--- | ---
string |

Documentation was generated by DocBlox 0.13.1.