= Translator Extension Created By: Phil Burrows, January 2008 peburrows@gmail.com http://philburrows.com http://dev.philburrows.com/svn/radiant-extensions/translator/trunk ------------------------- == Description This extension allows for different page parts to be rendered depending on the user's Accept-Language header. == Disclaimer This extension works well for me, but YMMV. == Dependencies * None, really == Usage In the pages you wish to have different languages available, simply create a page part with a two letter language abbreviation suffix for every part you wish to have available in multiple languages. Defaults to English if a page part is not defined that matches the user's requested language. NOTE: the default language is english, so page parts without the two-letter language suffix will be considered english. Examples: --------- Page Parts: 'body' (English) 'body_de' (German translation) 'body_fr' (French translation) 'sidebar' (English) 'sidebar_de' (German translation) 'sidebar_fr' (French translation) Then, in your layout, simply use the translator tags the same way you would use the standard Radiant content tag each of these will render the appropriate page part, determined by the browser's Accept-Language You can also take advantage of the tag which will render the normal page title by default, but will first check for a config page part that specifies other titles for the different languages. Sample config page part --> translator: es: title: éste es el título de: title: dieses ist der titel Also, if you wish to allow the user to explicitly set their language (instead of relying on the browser sending the proper Accept-Language header), this extension utilizes session variables (and an included controller to set those variables) which override the Accept-Language header. Just hit '/language/set/:lang' and replace :lang with the two-letter language abbreviation. Also, hitting '/language/set/reset' will clear the session variable and fall-back to relying on the Accept-Language header. TODO: * allow setting of the default language to something other than English * support the four letter language abbreviations in the form of lang-REGION (en-US, fr-CA, fr-FR, etc.)