[pmwiki-users] Late translation

Petko Yotov 5ko at 5ko.fr
Sun Jul 21 16:09:23 PDT 2019


You can create new custom page variables that will do the translation. 
For example:

   function TranslatePTV($pn, $var) {
     return XL( PageVar($pn, $var) );
   }

   $FmtPV['$TranslateRole'] = 'TranslatePTV($pn, "$:Role")';
   $FmtPV['$TranslateSummary'] = 'TranslatePTV($pn, "$:Summary")';
   $FmtPV['$TranslateTitle'] = 'TranslatePTV($pn, "$Title")';

Note the quotes.

Every variable that will be translated needs to have an individual 
$FmtPV entry. If you need to translate page-text-variables, use the "$:" 
prefix for the second argument; for page-variables, use just "$" like 
"$Title" above.

Then in your pagelist template you can have:

   label="{{=$FullName}$TranslateSummary}"

Or in another page, {Main.WikiSandbox$TranslateRole}

The translation entries are case- and space-sensitive; if it doesn't 
appear to translate some strings, check that they are exactly as defined 
in XLPage.

Petko

On 17/07/2019 19:11, randy at brownragfilms.com wrote:
> I’d like to populate a form’s selection list with text obtained from a
> page text variable, and show it in the currently selected language if
> possible.
> 
> Unsurprisingly, this approach didn't work for me:
> 
> (:input jumpbox ... label=“$[{{=$FullName}$:PTV}]”:)
> 
> Does anyone know of a way to do late translation?



More information about the pmwiki-users mailing list