Skip to content

Loading…

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

Open
Yoric opened this Issue · 10 comments

3 participants

@Yoric
Owner

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.

@pascalchevrel

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.

@nfroidure

@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.

@pascalchevrel

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 ) :)

@Yoric
Owner

@pascalchevrel: navigator.language

@nfroidure

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.

@pascalchevrel

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 :)

@pascalchevrel

@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 :)

@nfroidure

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.

@pascalchevrel

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.

@nfroidure

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
Something went wrong with that request. Please try again.