Forums / General / Multilingual meta tags

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Multilingual meta tags

Author Message

Paul Kemper

Tuesday 25 November 2008 11:06:07 pm

Hi all,

I am impressed with eZ and it's multilingual capabilities.

However: I could not find any reference to multilingual meta tags. I did see the descriptions on multi-lingual page content, admin interface, URL aliases.

But can I also have the page title, description/keyword meta tag in a translated version?

Paul Kemper
http://www.tauros.eu

Frédéric DAVID

Wednesday 26 November 2008 1:15:58 am

The page title is already translated.

For description/keyword meta tag, if you have your website in different siteaccess, you can define foreach site different meta tags.

For example, if you have a siteaccess fr, language used is french. You put in your site.ini

MetaDataArray[description]=Système de Gestion de Contenu
MetaDataArray[keywords]=cms, publish, e-commerce, gestion de contenu

and in a siteaccess en, language used is english. You put in your site.ini

MetaDataArray[description]=Content Management System
MetaDataArray[keywords]=cms, publish, e-commerce, content management

Blog : http://www.frefred.fr/blog/ez-publish
feZ Meta Data : http://projects.ez.no/fezmetadata

Arnaud Lafon

Wednesday 26 November 2008 1:37:02 am

Hi Paul,

all the metas are usually built by a template called page_head.tpl and you'll be able to override it. So If you define some class attribute like "site_title" or "site_metas" and enable translation, then you'll be able to customize your <meta /> and <title> tags for all your page.

Looking for information about SQLI ?
Looking for a new job in Paris ?
Please contact me at alafon [at] sqli [dot] com

Paul Kemper

Wednesday 26 November 2008 1:57:29 am

Contrary to Frédéric's example, I assume that every page in my site can have different meta tag contents. Am I correct?

Paul Kemper
http://www.tauros.eu

Arnaud Lafon

Wednesday 26 November 2008 2:08:48 am

Yes it's possible. You'll have to modify the page_head template, but it's quite simple.

Looking for information about SQLI ?
Looking for a new job in Paris ?
Please contact me at alafon [at] sqli [dot] com

Paul Kemper

Wednesday 26 November 2008 2:59:35 am

Thanx Arnaud,

I will dive in and see if I can get a sample to work.

Kind regards,

Paul Kemper
http://www.tauros.eu

Arnaud Lafon

Wednesday 26 November 2008 4:26:11 am

You're welcome. Just let me know If you need more information about this.

Looking for information about SQLI ?
Looking for a new job in Paris ?
Please contact me at alafon [at] sqli [dot] com

Greg Lakomy

Tuesday 02 December 2008 12:21:37 pm

You could also use global persistent_variable and set your title/keywords/description on individual objects and then pass those values back to page_layout or page_head

Example:

Set this in your template:

{set scope=global $persistent_variable=hash(
		'seo_description',$node.object.data_map.description, 
		'seo_keywords', $node.object.data_map.keywords, 
		'seo_title', $node.object.data_map.title)}

Retrieve in page_head:

{$module_result.content_info.persistent_variable['seo_title'].content|wash}

Developer
http://www.duoconsulting.com

Gaetano Giunta

Tuesday 02 December 2008 3:29:55 pm

I second Greg's solution - it allows to have different meta tags per every content object without creating a mess of ini settings or having to fecth the current node again in the pagelayout. Plus, since objects are translated, you will have automatically translated the meta-tags, too.

Just remember that you will have to add the template code that sets the persistent variable to every template overriding node/view/full of your website, or at least for all the content classes that have the meta-tags attributes.

An also remember to check in the pagelayout to see if the persistent var has been populated before using it. When you access a module other than content (such as user/login) it will not contain your meta-tags data.

Principal Consultant International Business
Member of the Community Project Board