filters/TranslateGettext.php

Show: inherited
Table of Contents

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

Package: phing\filters

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

Constant  DOMAIN_KEY = "domain"
Constant  DIR_KEY = "dir"
Constant  LOCALE_KEY = "locale"

Properties

Propertyprotected  $_parameters= 'array()'
inherited

The passed in parameter array.

Inherited from: \BaseParamFilterReader::$$_parameters
Default valuearray()Details
Type
n/a
Inherited_from
\BaseParamFilterReader::$$_parameters  
Propertyprivate  $dir= ''

The dir containing LC_MESSAGES

Details
Type
n/a
Propertyprivate  $domain= ''messages''

The domain to use

Default value'messages'Details
Type
n/a
Propertyprotected\Reader  $in= ''
Details
Type
\Reader
Inherited_from
\FilterReader::$$in  
Inherited_from
\BaseFilterReader::$$in  
Inherited_from
\BaseParamFilterReader::$$in  
Propertyprotected  $initialized= 'false'
inherited

Have the parameters passed been interpreted?

Inherited from: \BaseFilterReader::$$initialized\BaseParamFilterReader::$$initialized
Default valuefalseDetails
Type
n/a
Inherited_from
\BaseFilterReader::$$initialized  
Inherited_from
\BaseParamFilterReader::$$initialized  
Propertyprivate  $locale= ''

The locale to use

Details
Type
n/a
Propertyprotected  $project= 'null'
inherited

The Phing project this filter is part of.

Inherited from: \BaseFilterReader::$$project\BaseParamFilterReader::$$project
Default valuenullDetails
Type
n/a
Inherited_from
\BaseFilterReader::$$project  
Inherited_from
\BaseParamFilterReader::$$project  
Propertyprivate  $storedLocale= ''

The system locale before it was changed for this filter.

Details
Type
n/a

Methods

methodpublic__construct( \Reader $in = null ) : void
inherited

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

Parameters
Name Type Description
$in \Reader
methodprivate_initialize( ) : void

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

methodpublicchain( \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 A new filter based on this configuration, but filtering the specified reader
methodprotectedcheckAttributes( ) : void

Make sure that required attributes are set.

Throws
Exception Description
\BuldException - if any required attribs aren't set.
methodpublicclose( ) : void
Throws
Exception Description
\IOException if there is an error closing stream
methodpubliceof( ) : boolean
inherited

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

Inherited from: \BaseFilterReader::eof()\BaseParamFilterReader::eof()
Returns
Type Description
boolean
methodpublicgetDir( ) : \PhingFile

Gets the root locale directory.

Returns
Type Description
\PhingFile
methodpublicgetDomain( ) : string

Get the current domain.

Returns
Type Description
string
methodpublicgetInitialized( ) : boolean
inherited

Returns the initialized status.

Inherited from: \BaseFilterReader::getInitialized()\BaseParamFilterReader::getInitialized()
Returns
Type Description
boolean whether or not the filter is initialized
methodpublicgetLocale( ) : string

Gets the locale to use for translation.

Returns
Type Description
string
methodpublicgetParameters( ) : void
inherited

Inherited from: \BaseParamFilterReader::getParameters()
methodpublicgetProject( ) : object
inherited

Returns the project this filter is part of.

Inherited from: \BaseFilterReader::getProject()\BaseParamFilterReader::getProject()
Returns
Type Description
object The project this filter is part of
methodpublicgetResource( ) : string
inherited

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

Returns
Type Description
string
methodprotectedinitEnvironment( ) : void

Initialize the gettext/locale environment.

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

Throws
Exception Description
\BuildException - if locale cannot be set.
Details
See
\restoreEnvironment()  
methodpubliclog( string $msg, int $level = Project::MSG_INFO ) : void
inherited

Convenience method to support logging in filters.

Inherited from: \BaseFilterReader::log()\BaseParamFilterReader::log()
Parameters
Name Type Description
$msg string

Message to log.

$level int

Priority level.

methodpublicmark( ) : void
inherited

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

methodpublicmarkSupported( ) : boolean
Returns
Type Description
boolean
methodpublicread( \off $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 \off

Offset at which to start storing characters.

Returns
Type Description
mixed the filtered stream, or -1 if the end of the resulting stream has been reached.
Throws
Exception Description
\IOException - if the underlying stream throws an IOException during reading
\BuildException - if the correct params are not supplied
methodpublicreadLine( ) : \the
inherited

Reads 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'.

Returns
Type Description
\the line read, or <code>null</code> if the end of the stream has already been reached
Throws
Exception Description
\IOException if the underlying reader throws one during reading
methodpublicready( ) : boolean
Returns
Type Description
boolean
methodpublicreset( ) : void
inherited

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

Inherited from: \FilterReader::reset()\BaseFilterReader::reset()\BaseParamFilterReader::reset()
methodprotectedrestoreEnvironment( ) : void

Restores environment settings and locale.

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

methodpublicsetDir( \PhingFile $dir ) : void

Sets the root locale directory.

Parameters
Name Type Description
$dir \PhingFile
methodpublicsetDomain( string $domain ) : void

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
methodpublicsetInitialized( boolean $initialized ) : void
inherited

Sets the initialized status.

Inherited from: \BaseFilterReader::setInitialized()\BaseParamFilterReader::setInitialized()
Parameters
Name Type Description
$initialized boolean

Whether or not the filter is initialized.

methodpublicsetLocale( string $locale ) : void

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
methodpublicsetParameters(  $parameters ) : void
inherited

Inherited from: \BaseParamFilterReader::setParameters()
Parameters
Name Type Description
$parameters
methodpublicsetProject( object $project ) : void
inherited

Sets the project to work with.

Inherited from: \BaseFilterReader::setProject()\BaseParamFilterReader::setProject()
Parameters
Name Type Description
$project object

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

methodpublicsetReader(  $in ) : void
Parameters
Name Type Description
$in
methodpublicskip( int $n ) : void
inherited

Move stream position relative to current pos.

Inherited from: \FilterReader::skip()\BaseFilterReader::skip()\BaseParamFilterReader::skip()
Parameters
Name Type Description
$n int
methodprivatexlateStringCallback( 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 Translated text
Documentation was generated by DocBlox 0.18.1.