[geeklog-devel] [Fwd: Re: Flexy translation]

Tony Bibbs tony at tonybibbs.com
Fri Dec 17 23:34:49 EST 2004


Worth reading.  I'm going to try and get the SOB working tonight.

--Tony

-------- Original Message --------
Subject: 	Re: Flexy translation
Date: 	Sat, 18 Dec 2004 11:32:52 +0800
From: 	Alan Knowles <alan at akbkhome.com>
To: 	Tony Bibbs <tony at tonybibbs.com>
References: 	<41C376A4.5010305 at tonybibbs.com>



Ok, you need the latest CVS (translation2 as well) - as I   there are a 
few fixes in it..

constructor:
$x = new HTML_Template_Flexy(array(
   ..... usual options....
  'locale' => 'fr',
  'Translation2' => array('driver' => 'dataobjectsimple')
));

.. a template containing..
<td>Username</td>

will be compiled to xxx.fr.html
and
<td>Noms.</td>


or you can translate blocks with HTML inside:
{_( ....<B>some text</B>.... )_}

Assuming you have set up the word in Translation2 ok..

Have a look at HTML_Template_Flexy_Translator for a few ideas - the 
trick is that the compiler dumps a 'gettext.serial file.' - which can be 
used to find the words in the template.

Regards
Alan




Tony Bibbs wrote:

> I'm using Flexy in a project that has to support multiple language.  
> Right now we are leaning towards using PEAR::Translation2.   I know 
> Flexy is smart enought to build templates per locale which is great 
> but how do I achieve that using Translation2?
>
> In a template for a login page I have this:
>
> <table>
> <tr>
>    <td>{translate('Username')}:</td>
>    <td><input type="text" name="gl2User->userName"/></td>
> </tr>
> ...
>
> Where translate() is a method on the class that renders this view.  
> I'm guessing I don't want to do it this way because it appears this 
> would cause the translate() method to get called every single request 
> even if the template has been compiled.  Am I right in that assumption?
>
> --Tony
>
>




More information about the geeklog-devel mailing list