Guide to Template Toolkit - Localization in Template Toolkit

Introduction

Use localization in Template Toolkit files to produce dynamic interfaces in multiple languages. Localization refers to the translation of text from one language to multiple other languages, as well as the addition of cultural adaptations to make a product usable globally.

cPanel & WHM uses the locale system to localize phrases. 

Note:

Before you write text for localized user interfaces, we strongly recommend that you review our Best Practices documentation. 

Localized text in Template Toolkit

Localized phrases in Template Toolkit files use the following syntax:

[% locale.maketext('Your localized phrase goes here.') %]

The template passes everything between the single quotes ('') through the locale system as a single localized phrase. To reuse phrases as often as possible, which significantly lowers translation costs, we recommend that you divide sentences into separate locale.maketext calls whenever possible.

Important:

  • You must call the locale.maketext function inside of brackets and parentheses ([% %]).
  • The localization system has specific requirements for special characters and other formatting conventions. 
    For example:
    • To use an apostrophe in the text, use a single curly quote () rather than a third single straight quote ('):

      [% locale.maketext('Real life? You couldn't handle real life.') %]
    • To use quotes in the text, use a double curly quote ( “ ” ) rather than double straight quotes (""):

       [% locale.maketext('"Curse your sudden but inevitable betrayal!"') %]
  • You cannot include HTML in locale.maketext strings.

Variables

To pass variables into localized phrases, use the following syntax:

[% locale.maketext('The system set up your email address "[_1]" on your domain "[_2]".', email, domain) %]

This template code passes the phrase through the locale system, and then replaces the variables ([_1] and [_2]) with the variables' values (email and domain, respectively). 

If the email value is user@example.com and the domain value is example.com, the template displays the following text, localized for the authenticated user:

The system set up your email address "user@example.com" on your domain "example.com".

 

Conditionals

To display different localized phrases based on a variable's value, use IF and ELSE conditions:

1
2
3
4
5
[% IF country_name -%]
   [% locale.maketext('This computer's location appears to be: [_1] ([_2]).', country_name, country_code) %]
[% ELSE -%]
   [% locale.maketext('The system failed to look up the IP address's geographical origin because of an error: [_1]', country_lookup_error) %]
[% END -%]
  1. Line 1 and 2 set an IF condition that displays a string if the country_name variable exists and has a value.
  2. Line 3 and 4 set up an ELSE condition that displays an alternate string if the first condition's requirements are not met.
  3. Line 5 ends the conditional statement.
  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

The cPanel Interface

For  cPanel  &  WHM  version  58 Overview The cPanel interface is...

User Preferences

For cPanel & WHM version 58 Overview This document outlines how to access your cPanel...

Manage External Authentications

For cPanel & WHM version 58 Overview Manage credentials Additional documentation...

What is cPanelID?

In This Article:  Overview ServicesHow to get a cPanelID cPanelID External...

Guide to cPanel Interface Customization - cPanel Style Development

Introduction You can develop custom styles that modify the appearance of the cPanel interface....