ajax1Add my vote for this tag internationalization1Add my vote for this tag localization2Add my vote for this tag translation2Add my vote for this tag create new tag
, view all tags


This contrib enables the editing of .po files for translating the TWiki interface. Conceivably this package could also be used for translating any type of .po file.

It supports UTF-8. Version with right-to-left character support is coming.

Using this contrib you can also create new language translations, and edit skin CSS and Images directly. The later is in recognition that some images have text in them that need translating, and some language implementations will need changes to the CSS for layout.

The inline CSS editor and image management can be used to change the Skin look and feel live. In the set-up we have currently you do this for the english (default lang) by choosing the 'en.po' file and going to the "IMAGES & CSS" section.


Localize is a simple mechanism for translating the interface of TWiki. This enables the creation of different language versions.


The above is the 'front page' of our localize tools. These tools help you translate the interface of TWiki into other languages. Please note, this is not the same as translating the content of Topics - the developers (FLOSS Manuals) have another plugin called 'XchangeTranslate' for this purpose.

Localize uses Mochikit for the dymanic loading of language variables into memory. This means that you can fast forward through the strings to be translated without the need to reload and save content as you go. Hence the interface is very fluid and fast, and feels more like a desktop application than a webpage. Pre-loading of the variables is done in stages so the browser does not time-out over slow connections.

Detailed Documentation

Below is the documentation about Localize which was written for its implementation in the developers site. It gives a good idea of how the contrib works from a users point of view.

Future Developments

We have thought of several ways to extend this which we would like to work on - if you are a developer then perhaps you may also wish to consider these:
  • enable the translation of any .po files for any software project (you can do this now by manually uploading to the locale dir)
  • enable form based upload of .po files
  • ability to add fields (strings) for translation
  • version control and roll backs
  • file locking to avoid editing conflicts
  • easy permissions control
  • marking a status on translated items (for proofing, editing, and checking purposes)
  • admin ability to update TWiki .po files with new MAKETEXT variables from the browser

Additionally, it would be useful to work out a nice way for TWiki to be able to change Skin directories depending on the viewing language loaded. Currently we add the 2 letter language suffix to a skin directory (eg ClassicSkinhr, PatternSkinde etc). It would be good if TWiki changed Skin directories to the appropriate directory when a new viewing language was chosen. Ideally, if that directory did not exist TWiki could default to the non-suffixed Skin directory name.

Thumbs Up

Thumbs up to Pootle and its developer Dwayne Bailey. We had a good look at Pootle before building this plugin. Pootle gave us a lot of insights into how to go about the structure. We would have, infact, used Pootle ourselves except we wanted a solution that was integrated with TWiki and could deal with inline editing of Skins.

See Pootle here:


Add the following to your LocalSite.cfg :

# Put the full path to your twiki installation directory
$TWiki::cfg{InstallDirectory} = '/var/www/twiki';
$TWiki::cfg{DefaultLanguage}  = "en";
$TWiki::cfg{UserInterfaceInternationalisation} = 1;

You will also need to create a preference in Main WebPreferences to state who can access Localize. eg.

      * Set ALLOWLOCALIZE = AdamHyde,  AleksandarErkalovic

You may also need to change the permissions on your locale folder. To do this open a terminal onthe computer hosting the TWiki installation, change directories to the install dir and execute this command :

      chmod -R 777 locale/

Installation Instructions

Note: You do not need to install anything on the browser to use this contrib package. The following instructions are for the administrator who installs the package on the server where TWiki is running.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip LocalizeContrib.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/LocalizeContrib.txt Contrib topic
    data/TWiki/LocalizeContrib.txt,v Contrib topic repository
    lib/TWiki/Contrib/LocalizeContrib.pm Contrib Perl module
    bin/localize binary
    pub/TWiki/MochiKit/ Mochikit js lib
    templates/localize.tmpl template file
    pub/TWiki/LocalizeContrib/translate.gif template css
    pub/TWiki/LocalizeContrib/typography_cover.css template image

Contrib Info

Author: TWiki:Main/AleksandarErkalovic
Copyright ©: 2007, Aleksandar Erkalovic
License: GPL (GNU General Public License)
Dependencies: none
Version: 1.0
Change History:  
02 Apr 2008: Initial version
Home: http://TWiki.org/cgi-bin/view/Plugins/LocalizeContrib
Feedback: http://TWiki.org/cgi-bin/view/Plugins/LocalizeContribDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/LocalizeContribAppraisal

Related Topics: TWikiPreferences

-- TWiki:Main/AdamHyde - 02 Apr 2008

Edit | Attach | Watch | Print version | History: r11 < r10 < r9 < r8 < r7 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r11 - 2009-04-10 - PeterThoeny
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.