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

Multi-language -- Système multilingue

Date de publication: le vendredi 20 juillet 2007 à 13h03
Dernière modification: par Pascal BOYER le samedi 26 novembre 2011 à 11h27

20/06/2007 2:19

version 3.9, 3.10 et 4.x

Père Soleil
Je veux te remercier
parce que tu nous donnes la lumière
tu nous donnes la chaleur
sans regarder à qui tu la donnes
Père qui rend les jours possibles,
romps l'obscurité, illumine le chemin,
ouvre-nous la vie.
Nous, ne nous oublie pas
protège nos pas
alimente notre espérance.

Apolonio Bartolo Ronquillo

In eZ publish 3.7 and earlier versions, you have to specify one primary / main language that affects every content object (i.e. each object must exist at least in this language). In addition, you are allowed to specify additional languages which the content objects can be translated to. The multi-language functionality is implemented at the version level and allows an object's version to exist in several languages (a language in this case is referred to as a translation). One disadvantage of the old solution is that when several translations are needed, only one translator can work on the object. In other words, the translators must work sequentially and thus wait for eachother because only one user is allowed to edit an object's version. This functionality has been changed.

Dans les versions 3.7 et antérieures d'eZ publish, vous deviez spécifier une langue principale qui affectait tous les objets (e.g: chaque objet devait exister au moins dans cette langue). Par ailleurs, vous pouviez spécifier d'autres langues dans lesquelles pouvaient être traduits vos contenus. La fonction multi-langage est implémentée au niveau de la version des objets et permet donc à une version d'objet d'exister en plusieurs langues (dans ce cas, une langue est référencée en tant que traduction). Un des inconvénients de cette ancienne méthode est que lorsque plusieurs traductions sont nécessaires, un seul traducteur peut travailler sur cet objet. En d'autres termes, les traducteurs doivent travailler séquentiellement et donc attendre que le précédent traducteur ait terminé puisque seul un utilisateur est autorisé à éditer une version d'un objet. Cette fonctionnalité a donc été modifiée.

From 3.8, there is no need for primary / main language anymore. You can have for example one article which is only available in English and another article which is only available in French. After choosing the languages for your content objects, it is possible to translate them to any of these languages. The translations of the same object can be created and edited separately and simultaneously by multiple users (a user only edits one version and translation at a time). The next subsections will briefly explain some main principles and terms that will be used when describing the multi-language functionality.
Depuis la version 3.8, il n'est plus besoin de définir une langue principale. Vous pouvez donc, par exemple, avoir un article uniquement disponible en anglais et un autre article uniquement disponible en français. Après avoir choisi les langues pour les contenus de vos objets, il est possible de traduire les contenus dans n'importe laquelle de ces langues. Les traductions d'un même objet peuvent être créées et éditées séparément et simultanément par plusieurs utilisateurs (un utilisateur édite et traduit un seul objet à la fois). Les paragraphes suivants expliquent brièvement les principes et termes qui seront utilisés pour la description de la fonctionnalité multilingue.

Translatable class attributes / Attributs de classe traduisibles

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, il est possible de traduire les noms des classes et des attributs. Vous pouvez avoir, par exemple, les noms de classes anglais Car et Bil et les noms d'attributs norvégiens Top speed et topphastight. Référez-vous à la documentation Attributs de classe traduisibles pour plus d'informations.

Locales / Paramètres de localisation

A locale is a set of country specific settings i.e. language, character sets, number formats, currency format, date and time format, abbreviations of months and weekdays etc. eZ publish provides many default locale settings where each locale is described in an INI file located in the "share/locale" directory. These configuration files are named according to locale identifiers.
Une locale est un ensemble de paramètres spécifiques à un pays, comme par exemple la langue, les jeux de caractères, les formats des nombres, de la monnaie, des dates et de l'heure, les abréviations des mois et des jours de la semaine, etc... eZ publish propose de nombreuses locales par défaut, toutes décrites dans un fichier .ini placé dans le répertoire share/locale/. Ces fichiers de configuration portent un nom en rapport direct avec l'identifiant de la locale.

A locale identifier consists of a three-letter language code and a two-letter uppercase country code e.g. "eng-US" (English, USA) or "nor-NO" (Norwegian, Norway). Language and country codes are specified by ISO 639 and ISO 3166-1 alpha-2 standards accordingly.
Un identifiant de locale est composé d'un code de trois lettres représentant la langue et d'un code de deux lettres majuscules représentant le pays. Par exemple: eng-US pour l'anglais des USA ou nor-NO pour la langue norvégienne de Norvège. Les codes des langues et pays sont spécifiés par les documents ISO 639 et ISO 3166-1 alpha-2 .

eZ publish uses the "eng-GB" locale by default. Please refer to the "Configuring your site locale" section for information about setting locale for your site, translating the administration interface, creating custom locales etc.
eZ publish utilise par défaut la locale eng-GB (l'anglais de Grande Bretagne). Reportez-vous à la section Configurer la locale de votre site pour plus d'informations sur le paramétrage de la locale de votre site, sur la traduction de l'interface d'administration, sur la création de locales personnalisées, etc...

Default language / Langue par défaut

From 3.8, the "ContentObjectLocale" INI setting does not specify the primary / main language but the default language. This language will be used as the default value in PHP functions that support an optional parameter for language. The default value of this INI setting is "eng-GB".
Depuis la version 3.8, le paramètre ContentObjectLocale ne spécifie plus la langue principale mais la langue par défaut. Cette langue sera utilisée comme valeur par défaut dans les fonctions PHP traitant les paramètres optionnels de la langue. La valeur par défaut de ce paramètre est eng-GB.

Exemple

Let's say that you have specified "nor-NO" in the "ContentObjectLocale" setting. In this case, if you try to instantiate an object of some class using the "eZContentClass::instantiate()" function and do not explicitly specify the language to use then the Norwegian language will be used.
Supposons que vous ayez défini nor-NO pour le paramètre ContentObjectLocale. Partant, si vous instanciez un objet à partir d'une classe en utilisant la fonction eZContentClass::instantiate() sans expliciter la langue alors le norvégien sera utilisé.

Translatable country names / Traduire les noms de pays

From 3.9, it is possible to translate the names of countries to different languages. For example, you can instruct the system to use "Frankrike" instead of "France" and "Norge" instead of "Norway" whenever the list of countries is displayed on a siteaccess where Norwegian locale is used. Refer to the "Translatable country names" documentation page for more information.
Depuis la version 3.9, il est possible de traduire les noms des pays en différentes langues. Vous pouvez, par exemple, indiquer au système d'utiliser Frankrike à la place de France ou Norge à la place de Norway chaque fois que la liste des pays est affichée sur un siteaccess utilisant la locale norvégienne. Référez-vous à la documentation Noms de pays traduisibles pour de plus amples informations.

Translation languages / Langues de traduction

It is possible to choose the languages that you wish your content to be created in and/or translated to. This set of languages is referred to as translation languages. These can be managed via the administration interface. The maximum number of languages that can be used simultaneously is 30.
Il est possible de choisir les langues dans lesquelles vous souhaitez créer ou traduire vos contenus. Ce jeu de langues, référencé en tant que langues de traduction, peut être gérées à partir de l'interface d'administration . Le nombre maximum de langues qu'il est possible d'utiliser simultanément est 30.

Initial/main language / Langue initiale/principale

An object can be created in any of the languages that have been added either using the setup wizard or the "Languages" part of the "Setup" tab in the administration interface. When an object is created, it's initial/main language will be set to the language that was used during creation. For example, if an article is created in Hungarian, it's initial/main language will of course be set to Hungarian.
Un objet peut être créé dans n'importe quelle langue ayant été définie soit lors de l'installation de eZ publish soit par l'intérmédiaire de la partie Langues de l'onglet Administration de l'interface d'administration. Lorsqu'un objet est créé, sa langue principale/initiale sera paramétrée comme langue utilisée lors de la création de l'objet. Par exemple, si un article est créé en Hongrois, sa langue initiale/principale sera bien sûr le Hongrois.

Content that is in the initial/main language can not be removed from the object. However, if the contents of the object exists in several languages, the initial/main language can be changed and thus content that is not in the initial/main language can be removed. Changing the initial/main language and removing languages/translations from an object can be done from within the "Languages" window (in the first three tabs) in the administration interface.
Un contenu qui est dans la langue initiale/principale ne peut être supprimé depuis l'objet (???). Cependant, si le contenu de l'objet existe dans plusieurs langues, la langue initiale/principale peut être modifiée et le contenu qui n'est pas dans cette langue initiale/principale supprimé. Il est possible de changer la langue principale et de supprimer les traductions d'un objet à partir de la fénêtre Langues de l'interface d'administration.

Important note / Note importante

Please note that the terms "initial language" and "main language" refer to the same thing. While the code and database tables use "initial language", the administration interface uses "main language". This inconsistency will hopefully be fixed in a future release.
Retenez que les termes langue initiale et langue principale font référence à la même chose. Alors que le code de eZ Publish et les tables de la base de données utilisent le terme langue initiale, l'interface d'administration utilise le terme langue principale. Cette discordance sera corrigée dans une future version.

Site languages / Langues du site

From 3.8, you can specify which languages the contents of a site should be displayed in. This set of languages is referred to as site languages. These languages can be controlled per siteaccess using the "SiteLanguageList[]" configuration setting located under the "[RegionalSettings]" section of the siteaccess "site.ini.append.php" file. You can specify the site languages and their priorities by adding the corresponding locale identifiers to this array. The languages that appear at the top will get higher priority than the others. The first element in this array determines the most prioritized language. The system will try to display content in this language first. If an object is not translated to this language then the second prioritized language (specified as the second element of the array) will be displayed. If an object does not exist in this language, the third prioritized language will be used and so on. If an object does not exist in any of the site languages, it will not be shown unless it is always available or if you configure the siteaccess to display untranslated content.
Depuis la version 3.8, vous pouvez spécifier les langues dans lesquelles les contenus du site doivent être affichés. Cet ensemble de langues est défini en tant que langues du site. Pour chaque siteaccess, il est possible d'attribuer des langues spécifiques par le biais du tableau SiteLanguageList[] de la section [RegionalSettings] du fichier site.ini.append.php. Vous pouvez spécifier les langues du site et leur priorités en ajoutant au tableau SiteLanguageList[] les identifiants de locale correspondants. Les langues mentionnées en premiers auront une priorité supérieure aux autres langues. Le premier élément de ce tableau détermine la langue de plus haute priorité. Le système essaiera donc d'afficher d'abord les contenus dans cette langue. Si un objet n'est pas traduit dans cette langue alors la seconde langue sera utilisée pour l'affichage du contenu. Si l'objet n'est toujours pas traduit dans cette seconde langue alors la langue de priorité 3 sera employée. Et ainsi de suite. Si un objet n'existe dans aucune des langues du site, alors il ne sera pas affiché à moins qu'il soit toujours visible ou que vous ayez configuré le siteaccess pour afficher les contenus non traduits .

Please note that if the "SiteLanguageList" setting is not specified, the system will use the old "ContentObjectLocale" setting and thus only the default language will be shown.
Retenez que si le paramètre SiteLanguageList[] n'est pas spécifié alors le système utilise l'ancien paramètre ContentObjectLocale et c'est donc la langue par défaut qui est affichée.

Exemple

Let's say that your translation languages are English, French and Norwegian. If you specify two of them as site languages for your public siteaccess (for example English as the most prioritized language and French as the second prioritized one), the system will display content in these two languages to your visitors while Norwegian content will not be shown. If you create one article in English, another one in French and the third one in Norwegian, then only first and second article will be displayed. If you translate the third article from Norwegian into one of the site languages, the translated version of the article will be displayed on your site while the original Norwegian version will still not be shown. If an article is available in both English and French, it will be displayed in English (since English is the most prioritized language for the siteaccess).
Supposons que vos langues de traduction soient l'anglais, le français et le norvégien. Si vous en spécifiez deux d'entre elles en tant que langue du site pour votre siteaccess public (par exemple: l'anglais ayant le niveau le plus prioritaire puis le français en seconde position), le système affichera à vos visiteurs les contenus dans ces deux langues alors que le norvégien ne sera pas utilisé. Si vous créez un article en anglais, un second en français et un troisième en norvégien, alors seuls les premier et second articles seront affichés. Si vous traduisez le troisième article dans une des deux langues du site (en français ou en anglais) alors la version traduite de cet article sera affichée mais pas la version originale en norvégien. Si un article est disponible en français et en anglais il ne sera affiché qu'en anglais puisque l'anglais a été défini avec la plus forte priorité.

Please refer to the "Configuring the site languages" section for more information about site languages.
Reportez-vous au paragraphe Configurer les langues du site pour plus d'informations à propos des langues du site.

Objects which are always available / Objets toujours disponibles

Some objects always need to be available even if they do not exist in any of the languages that are configured for a sitaccess. For example, the system must be able to fetch user objects no matter which siteaccess is used. Because of this, a new flag called "always available" has been introduced at the object level. It makes it possible to individually control the availability of the different objects. When an object doesn't exist in any of the site/prioritized languages and it is always available, the system will use the object's initial/main language to display its contents.
Certains objets doivent toujours être disponibles/visibles même s'ils n'existent dans aucunes des langues configurées pour un siteaccess. Par exemple, le système doit pouvoir rechercher des objets appartenant à un utilisateur indépendemment du siteaccess utilisé. Pour cette raison, un nouveau drapeau nommé toujours disponible a été introduit au niveau des objets. Il permet de contrôler individuellement la disponibilité des différents objets. Lorsqu'un objet n'existe dans aucune langue du site mais est marqué comme étant toujours disponible alors le système utilise la langue initiale/principale de cet objet pour en afficher le contenu.

The default object availability can be controlled on the class level. By default this setting is enabled for the "Folder", "User", "User group", "Image", "File" etc. classes, so that objects of these classes will be marked as "always available" when created. Changing the default setting at the class level will not affect the existing objects because it simply dictates the initial value for the "always available" flag which is stored for each object.
La disponibilité par défaut d'un objet peut être contrôlée au niveau de la classe. Par défaut, ce paramètre est activé pour les classes Folder, User, User group, Image, File, etc... et les objets instanciés par ces classes seront donc marqués comme toujours disponibles. Modifier la valeur de ce paramètre dans les classes n'affectera pas les objets déjà créés (existants) car ce paramètre se contente de positionner la valeur initiale du drapeau toujours disponible, valeur qui est enregistrée pour chaque objet.

Exemple

Let's say that one of your folders only exists in Norwegian, is marked as always available and contains several articles (the articles are in English, French and Norwegian and none of them are marked as always available). If you specify English and French as site languages for your public siteaccess, this folder will still be displayed since it's always available. Your visitors will thus be able to view the articles that are in it. If the folder is not marked as always available then it will not be displayed and thus your visitors will not be able to read the articles located under it until you translate the folder itself into English or French.
Supposons que l'un de vos dossiers n'existe qu'en Norvégien, qu'il soit marqué comme toujours disponible et qu'il contienne plusieurs articles (ces articles sont en anglais, en français et en norvégien et aucun d'eux n'est marqué comme toujours disponible). Si vous spécifiez l'anglais et le français en tant que langue du site pour votre siteaccess alors ce dossier sera toujours affiché puisqu'il est marqué toujours disponible. Les visiteurs de votre site pourront donc voir les articles contenus par ce dossier. Si le dossier n'était pas marqué comme toujours disponible alors il ne serait pas affiché et les visiteurs ne pourraient accéder aux articles qu'il contient. Et ceci tant que vous ne traduirez pas le dossier en anglais ou en français.

Commentaires