Current

This document is valid for the current version of Plone.

Site language settings

by Plone Documentation Team last modified Dec 12, 2009 10:33 PM
Contributors: Mikko Ohtamma, Martin Aspeli, Kamon Ayeva, Israel Saeta Pérez
How to change site language settings programmatically

You can set site language in code:

# Setup site langauge settings
portal = context.getSite()
ltool = portal.portal_languages
defaultLanguage = 'en'
supportedLanguages = ['en','es']
ltool.manage_setLanguageSettings(defaultLanguage, supportedLanguages, setUseCombinedLanguageCodes=False)

For unit testing, you need to run this in afterSetUp() after setting up the languages:

# THIS IS FOR UNIT TESTING ONLY
# Normally called by pretraverse hook,
# but must be called manually for the unit tests
# Goes only for the current request
ltool.setLanguageBindings()

On vanilla Plone site (no LinguaPlone installed) using profiles/default/propertiestool.xml:

<object name="portal_properties" meta_type="Plone Properties Tool">
   <object name="site_properties" meta_type="Plone Property Sheet">
      <property name="default_language" type="string">en</property>
   </object>
</object>

On Linguaplone enabled sites, your add-on product can use GenericSetup XML profiles/default/portal_languages.xml

<?xml version="1.0"?>
<object>
 <default_language value="fi"/>
 <use_path_negotiation value="False"/>
 <use_cookie_negotiation value="True"/>
 <use_request_negotiation value="False"/>
 <use_cctld_negotiation value="False"/>
 <use_combined_language_codes value="False"/>
 <display_flags value="True"/>
 <start_neutral value="False"/>
 <supported_langs>
  <element value="en"/>
  <element value="fi"/>
 </supported_langs>
</object>