29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don




Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

Content management -- Gestion de contenu

Table des matières

  1. Content management -- Gestion de contenu
  2. Datatypes -- Types de données
  3. The content class -- La classe de contenu
  4. Class attributes -- Attributs de classe
  5. The content object -- L'objet de contenu
  6. Object versioning -- Gestion des versions des objets
  7. Multiple languages -- Plusieurs langues
  8. The content node -- Le noeud de contenu
  9. The content node tree -- L'arbre de noeuds de contenu
  10. Top level nodes -- Noeuds de niveau supérieur
  11. Node visibility -- Visibilité des noeuds
  12. Object relations -- Relations entre objets
  13. Sections -- Les sections
  14. URL storage -- Stockage d'URL
  15. Information collection -- Collecte d'informations

Multiple languages -- Plusieurs langues

Date de publication: le mardi 22 mars 2011 à 18h00
Dernière modification: par Pascal BOYER le vendredi 25 mars 2011 à 13h27

28/09/2010 10:37

versions 3.9, 3.10, 4.x

In addition to the versioning system, the content model of eZ Publish also provides a built-in multi-language framework. This feature allows an object's contents to exist in several languages. The system is able to support up to 30 different languages at the same time. 
En plus du système de gestion des versions, le modèle de contenu de eZ Publish fournit un framework permettant la gestion de plusieurs langues. Il devient dès lors possible que le contenu d'un objet existe en plusieurs langues, le système étant capable de gérer jusqu'à 30 langues en même temps.

The multi-language feature provides a generic one-to-one translation mechanism that can be used to translate any kind of content. A one-to-one translation solution makes it possible to represent the exact same content in multiple languages. For example, when a news article is available in English, Norwegian and Hungarian (same content in all three cases), we say that we have one-to-one translation of the content. The translation mechanism is completely independent of the datatypes. In other words, any kind of content can be translated regardless of the datatypes that are used to realize the content's structure. It is possible to start with only one language and when time comes, add translations and thus extend the spectrum of the target audience. 
La fonction multilingue fournit un mécanisme de traduction "seul à seul" générique utilisé pour traduire n'importe quel type de contenu. Une solution de traduction "seul à seul" permet de présenter un même contenu dans plusieurs langues. Lorsqu'un article de news est disponible, par exemple, en Anglais, Norvégien et Hongrois (même contenu dans les trois cas) alors cette traduction du contenu est appelée traduction "seul à seul". Le mécanisme de traduction étant totalement indépendant des datatypes, cela signifie que n'importe quel type de contenu peut être traduit indépendamment des datatypes utilisés pour construire la structure du contenu. Il est possible de commencer avec une seule langue, puis d'ajouter, lorsque cela devient nécessaire, des traductions afin d'augmenter le panel d'audience du site.

The following illustration shows a simplified example of an object with two versions where each version exists in several languages. A language in this case is often referred to as a translation. 
L'illustration suivante présente un exemple simplifié d'un objet ayant deux versions, chacune d'elles existant en plusieurs langues. Dans ce cas, une langue est référencée en tant que traduction.

 

 

Content object structure (with versions and translations)
Structure d'un objet de contenu (avec ses versions et ses traductions)

As the illustration indicates, each version can have a different set of translations. At minimum, a version always has one translation which by default is the initial/main translation. The initial/main translation can not be removed. However, if the object exists in several languages, it is possible to select which of the translations that should be initial/main and thus the previous initial/main translation can be removed. 
Comme le montre l'illustration, chaque version peut être associée à plusieurs traductions. Une version a toujours au minimum une traduction qui est, par défaut, la traduction initiale/principale. Cette dernière ne peut être supprimée. Cependant, si un objet existe en plusieurs langues, il devient possible de sélectionner celle qui servira de traduction initiale/principale, la précédente traduction initiale/principale pouvant être alors supprimée.

It is important to note that from 3.8, when a user edits an object, it is no longer the entire version that gets edited. Instead, a combination of a version and a translation that is edited. This approach avoids the locking of entire versions (along with all the translations) and thus it allows multiple translators to work with the same content in several languages at the same time. 
Il est important de noter que depuis la version 3.8 de eZ Publish, lorsqu'un utilisateur édite un objet ce n'est plus la version complète qui est éditée mais une combinaison de la version et de la traduction. Cette approche évite que ne soit bloquée des versions entières (ainsi que toutes les traductions) et permet ainsi à plusieurs traducteurs de travailler simultanément sur plusieurs langues d'un même contenu.

The global translation list / Liste globale des traductions

An object can only be edited/translated using languages that exist in the global translation list. Initially, this list contains the languages that were selected during step six of the setup wizard. Additional languages can be added at any time while the site is up and running. The following screenshot shows the global translation list as it appears in the administration interface (under "Setup" and "Languages"). 
Un objet ne peut être édité/traduit que dans les langues présentes dans la liste globale de traduction. Initialement, cette liste ne contient que les langues ayant été sélectionnées à l'étape 6 de la procédure d'installation de eZ Publish. Cependant, d'autres langues peuvent être ajoutées à tout moment alors même que le système est en production. La capture d'écran ci-dessous présente la liste globale de traduction telle qu'elle apparaît dans l'interface d'administration (sous l'onglet Administration=>Langues):

 

Liste des langues disponibles pour la traduction

 

Liste des langues disponibles pour la traduction de contenus

The global translation list simply keeps track of the languages that users are allowed to use when editing/translating content. A translation added to the list will immediately become available for use. Note that from 3.8, it is no longer possible to remove languages from the global translation list unless they are not used by any objects. The global translation list is capable of handling up to 30 languages. 
La liste globale de traduction conserve simplement une trace des langues disponibles lorsque les utilisateurs éditent/traduisent un contenu. Une langue de traduction ajoutée à la liste sera immédiatement disponible. Notez que depuis la version 3.8 de eZ Publish il n'est plus possible de supprimer des langues depuis la liste globale de traduction à moins qu'aucun objet ne les utilisent. La liste globale de traduction peut gérer jusqu'à 30 langues.

Differences between 3.8 and earlier versions / Différences entre la version 3.8 et les versions précédentes

In eZ Publish 3.7 and earlier versions, objects had to be created in the primary language before they could be translated to additional languages. Multiple translators could not work simultaneously because the edit process locked the entire version which also contained the translations. 
Dans les versions 3.7 et antérieures de eZ Publish, les objets devaient être créés dans la langue principale avant de pouvoir être traduits dans d'autres langues. Plusieurs traducteurs ne pouvaient travailler simultanément car le processus d'édition bloquait complétement la version de l'objet, version contenant également les traductions.

In eZ Publish 3.8, the primary language concept is gone and thus objects can be created using different languages. This means that you can for example have an article available only in English and another article available only in Norwegian. Multiple translators can work on the same object because when editing, they actually edit the translation itself instead of the entire version. This means that if you have written an article in English, different translators can go ahead and add translations (for example Hungarian, Norwegian and Russian) to the object simultaneously. They no longer have to wait for each other because they can work with different translations at the same time on the same object. However, this also means that a user can no longer work with multiple translations at the same time. The problem is that the user must leave the edit interface in order to be able to add (and then edit) new translations for an object. There are some other drawbacks as well. For example, unless a user is editing the very first version of an object, it is no longer possible to change the object's locations from the edit interface. However, the locations can still be changed using the "Locations" window when the object isn't being edited. 
Depuis la version 3.8 de eZ Publish, le concept de langue primaire (principale) ayant été supprimé, les objets peuvent donc être à présent créés dans différentes langues. Cela signifie que vous pouvez avoir, par exemple, un article disponible uniquement en anglais et un autre uniquement en norvégien. Plusieurs traducteurs peuvent maintenant travailler sur un même objet car lorsqu'ils l'éditent ils éditent en fait la traduction elle-même plutôt que la version complète. Ce qui veut dire que si vous écrivez un article en anglais, plusieurs traducteurs peuvent ajouter simultanément des traductions à l'objet (en hongrois, norvégien et russe par exemple). Ils ne doivent plus attendre que l'autre ait fini de travailler puisqu'ils peuvent à présent travailler sur plusieurs traductions d'un même objet en même temps. En contre partie, cele signifie qu'un utilisateur ne peut plus travailler avec plusieurs traductions en même temps. En effet, le problème est que cet utilisateur doit quitter l'interface d'édition pour ajouter (et donc éditer) une nouvelle traduction de l'objet. D'autres inconvénients sont également à noter: par exemple, à moins qu'un utilisateur édite la toute première version d'un objet, il n'est plus possible de modifier l'emplacement d'un objet à partir de l'interface d'édition. Cependant, les emplacements peuvent toujours être modifiés à partir du cadre Emplacements (lorsque l'objet n'est pas en mode édition).

Whenever an object is published, the system automatically collects all the latest translations that the previous version(s) of the object contains and puts them into the version being published. The result is a version that contains all the up-to-date translations. The contents of an object can be translated to a maximum number of 30 languages. 
Chaque fois qu'un objet est publié, le système collecte automatiquement toutes les dernières traductions que contient la/les version(s) précédente(s) de l'objet pour les mettre dans la version qui est publiée. Le résultat est une version contenant toutes les traductions à jour. Le contenu d'un objet peut être traduit au maximum dans 30 langues.

Please refer to the "Updating INI settings for multi-language" part of the "Upgrading from 3.6.x (3.7.x) to 3.8.0" page for information about multi-language related INI settings. 
Référez-vous au paragraphe Updating INI settings for multi-language (Mettre à jour les paramètres INI pour le multilinguisme) de la documentation Upgrading from 3.6.x (3.7.x) to 3.8.0  pour de plus amples informations sur les paramètres de gestion du multilinguisme.

Multilingual classes / Classes multilingues

From 3.9, it is possible to translate the class names and the attribute names. In other words, you can for example have "Car" and "Bil" as class names in English and Norwegian along with "Top speed" and "Topphastighet" as attribute names. Refer to the Translatable class attributes documentation page for more information. 
Depuis la version 3.9 de eZ Publish il est possible de traduire les noms des classes et de leurs attributs, c'est à dire que vous pouvez avoir, par exemple, Car et Bil comme noms anglais de classes et Top speed et Topphastighet comme noms norvégiens d'attributs. Référez-vous à la documentation sur les Attributs de classe traduisibles  pour de plus amples informations.

Non-translatable attributes / Les attributs non traduisibles

The data structure defined by a class is built up of attributes where each attribute is represented by a datatype. Among other things, an attribute of a class can be made translatable or not. If an attribute is translatable, the system will allow the translation of its contents when an object of that class is being edited. This is typically convenient when the attribute contains actual text. For example, the written part of a news article can be translated into different languages. However, some attributes are non-translatable by nature. This is typical for images without text, numbers, dates, e-mail addresses and so on. Such attributes can be made non-translatable and thus their contents will simply be copied from the initial/main translation. The copied values can not be edited. 
La structure de données définie par une classe repose sur des attributs dont chacun est réprésenté par un datatype. Un attribut de classe peut, entre autres choses, être ou non affecté d'une option de traduction (il s'agit de l'option Désactiver la traduction). Si un attribut est traduisible, le système autorise alors la traduction de son contenu lorsqu'un objet de cette classe est édité. Ceci est très pratique lorsque l'attribut contient du texte. Le corps d'un article de news par exemple, peut être traduit dans différentes langues. Cependant, certains attributs ne sont intrinsèquement pas traduisibles. C'est typiquement le cas des images ne contenant pas de texte, des nombres, des dates, des adresses mail, etc... Pour de tels attributs on cochera l'option Désactiver la traduction et leur contenu sera simplement copié à partir de la traduction par défaut. Les valeurs copiées ne peuvent être éditées.

For example, let's say that we need to store information about furniture in multiple languages. We could build a furniture class using the following attributes: name, photo, description, height, width, depth and weight. Allowing the translation of anything else then the description attribute would be pointless since the values stored by the other attributes are the same regardless of the language used to describe the furniture. In other words, the name, photo, height, width, depth and weight would be the same in for example both English and Norwegian. Conversion between different measuring units would have to be done within the template that is used to display the information. 
Supposons, par exemple, que nous ayons besoin de stocker, dans plusieurs langues, des informations sur des fournitures. Nous pourrions créer une classe fourniture utilisant les attributs suivants: nom, photo, description, hauteur, largeur, profondeur et poids. Autoriser la traduction de quoique ce soit d'autre que de l'attribut description n'aurait pas de sens puisque les valeurs stockées par les autres attributs sont les mêmes quelque soit la langue utilisée pour décrire la fourniture. En d'autres termes, le nom, la photo, la hauteur, la largeur, la profondeur et le poids seront les mêmes en Anglais et en Norvégien. La conversion dans les différentes unités de mesure doit être faite dans le template utilisé pour afficher les informations.

Access control / Contrôle d'accès

It is possible to control whether a user (or a group of users) should be able to translate content or not. This policy can be controlled on a class, section, language and owner basis. In particular, the language limitation makes it possible to control which user (or user groups) should be able to edit and/or translate different parts of the content using different languages. In addition, it is also possible to control access to the global translation list. This makes it possible to allow users other than the site administrator to add and remove translations on a global basis. 
Il est possible de contrôler si un utilisateur (ou un groupe d'utilisateurs) a le droit ou non de traduire des contenus. Cette règle de contrôle peut être appliquée à une classe, à une section, à une langue ou au propriétaire de l'objet. En particulier, la limitation sur les langues permettent de contrôler qui (quel utilisateur ou groupe d'utilisateur) peut éditer et/ou traduire telles parties d'un contenu en fonction des différentes langues. Par ailleurs, il est également possible de contrôler l'accès à la liste globale de traduction ce qui permet d'autoriser certains utilisateurs autres que l'administrateur du site à ajouter ou supprimer des traductions.

Please refer to the multi-language part of the features section for further details. 
Référez-vous à la documentation Multi-langage  de la section Fonctionnalités pour plus de détails.



Table des matières

  1. Content management -- Gestion de contenu
  2. Datatypes -- Types de données
  3. The content class -- La classe de contenu
  4. Class attributes -- Attributs de classe
  5. The content object -- L'objet de contenu
  6. Object versioning -- Gestion des versions des objets
  7. Multiple languages -- Plusieurs langues
  8. The content node -- Le noeud de contenu
  9. The content node tree -- L'arbre de noeuds de contenu
  10. Top level nodes -- Noeuds de niveau supérieur
  11. Node visibility -- Visibilité des noeuds
  12. Object relations -- Relations entre objets
  13. Sections -- Les sections
  14. URL storage -- Stockage d'URL
  15. Information collection -- Collecte d'informations

Commentaires