[Wanted] Cours sur l'internationalisation des applications web #4

Open
Yoric opened this Issue Sep 26, 2012 · 10 comments

Comments

Projects
None yet
3 participants
Owner

Yoric commented Sep 26, 2012

Contexte

Pour Mozilla, l'année universitaire 2012-2013 est l'année de Firefox OS, l'année des Open Web Applications et l'année à laquelle la communauté Mozilla lance sa campagne de libération des téléphones et applications portables !

Nous avons besoin de vous pour enseigner les technologies des Open Web Applications aux communautés francophones.

Contenu du cours

Ce cours s'adresse à des étudiants de niveau ingénieur et couvre l'internationalisation des applications web, notamment à travers les points suivants :

  • pages web localisables ;
  • outils de traduction communautaires (transvision).

Modalités

Les cours pourront être donnés, en Français, à l'Université d'Évry, devant une classe d'étudiants en Master, où ils seront enregistrés. Les cours et leur support seront ensuite mis à disposition des publics francophones par Mozilla ou/et l'Université d'Évry.

Je peux probablement participer sauf sur la partie localisation d'applis en javascript sans composantes serveur, on commence tout juste à bosser là dessus pour FirefoxOS et de mon côté je n'ai pas encore du tout bosser dans ce domaine.

@pascalchevrel les principes sont les mêmes, c'est juste que tu le fais en Javascript au lieu de le faire en PHP, Python ou autre.

nfroidure, déjà tu fais comment pour faire de la détection de langue depuis js ? (pas d'accès aux entêtes http accept-lang ) :)

Owner

Yoric commented Sep 26, 2012

@pascalchevrel: navigator.language

Bonus, ma fonction de base pour l'internationalisation :
function localize() // localeName, replacement, values[]
{
var locale=(locales[arguments[0]]?locales[arguments[0]]:arguments[1]);
for(var i=arguments.length-1; i>1; i--)
{
var index=locale.lastIndexOf('$');
if(index!==-1)
locale=locale.substring(0,index)+arguments[i]+locale.substring(index+1);
}
return locale;
}

Tu utilises comme ça :
localize("locale_string_name", "The locale in English with vars inside $, $ and $", varone, vartwo, varthree);

Il me manque une gestion des pluriels efficace.

non, navigator.language contient l'information sur la langue du navigateur pas la langue définie par l'utilisateur comme langue de lecture (ex: je peux avoir un navigateur en russe mais vouloir voir le web en ukrainien). Firefox depuis la version 5 a fusionné ces informations mais à ma connaissance pas les autres navigateurs, donc c'est pas fiable, mais c'est sûrement hors sujet dans ce bug :)

@nfroidure, ça veut dire que tu charges les chaînes de toutes tes langues avant ?
sinon, kaze a une biblio qui gère tout proprement et qui doit gérer le pluriel, ça fait partie des milliers de trucs que je dois tester un jour :)

le tableau associatif locales a été chargé préalablement et contient les locales pour la langue choisie. Pour la détection de la langue, le domaine est redirigé au niveau du serveur (ex: app.elitwork.com -> app.elitwork.com/fr-FR/index.html).

Si navigator.language est pas fiable, il suffit de laisser la possibilité à l'utilisateur de switcher, ça fait que le tableau associatif sera rechargé dans la bonne langue.

oui, c'est bien ce que je disais, c'est plus facile quand on a un serveur qui génère des pages et le js qui va bien avec. Mais sur le mobile, les apps ont pas de serveur :) J'utilise aussi occasionnellement cette méthode mais je pense pas que ce soit l'avenir, donc ça me gène un peu de l'enseigner.

Selon MDN, Chrome, Firefox et IE permettent d'avori une info fiable : https://developer.mozilla.org/en-US/docs/DOM/window.navigator.language#Browser_compatibility

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment