I'm am developping a theme (call it myTheme) with a layout that needs placing the language switcher into a single line like: English | French.

The Locale module is responsible to create the language switcher block with this function: function locale_block.
and later in this function, we find the themeable line: $block['content'] = theme('links', $links, array());

This relies of the theme_links function which can be overrided as myTheme_links.

There is a line, at the beginning of the theme_links function that reads: $output = '<ul'. drupal_attributes($attributes) .'>';. Well, this drupal_attributes($attributes) is empty in the case of the language switcher.

I understand that we can put temeable functions in the file template.php of my theme. But I don't think we can put a function that resides in a module. Can't we?

Comments

Guy Verville’s picture

i've found the answer: create a special style and make the LI elements inline instead of block.

http://www.guyverville.com

eyalro’s picture

Being new to Drupal I am hoping you can provide a bit more details on how you did it....Thanks!

DSL’s picture

This worked with Danland theme, Drupal 7.x :

.block-locale li {
display: inline;
list-style: none;
}

Added to the theme's style.css

Hope it will help save some time to others (personnaly spent few hours on this).