Create list of locales from the localization data, and allow data to specify menu title. Update menu when new translations are added. Allow loading of third-party translation data by URL. Fix transaltion files to use addTranslation().

This commit is contained in:
Davide P. Cervone 2013-04-07 11:44:58 -04:00
parent c4d47bb10d
commit f23cb8a6b2
9 changed files with 412 additions and 379 deletions

View File

@ -1058,8 +1058,8 @@ MathJax.Localization = {
locale: "en", locale: "en",
directory: "[MathJax]/localization", directory: "[MathJax]/localization",
strings: { strings: {
en: {isLoaded: true}, // nothing needs to be loaded for this en: {isLoaded: true, menuTitle: "English"}, // nothing needs to be loaded for this
fr: {} fr: {menuTitle: "French"}
}, },
// //
@ -1302,6 +1302,7 @@ MathJax.Localization = {
data = data.domains[domain]; data = data.domains[domain];
} }
MathJax.Hub.Insert(data,definition); MathJax.Hub.Insert(data,definition);
if (!domain && MathJax.Menu) {MathJax.Menu.CreateLocaleMenu()}
}, },
// //

View File

@ -889,7 +889,21 @@
MathJax.Localization.setLocale(CONFIG.settings.locale); MathJax.Localization.setLocale(CONFIG.settings.locale);
// FIXME: Rerender the page? (To force error messages to change?) // FIXME: Rerender the page? (To force error messages to change?)
// Just rerender error messages? // Just rerender error messages?
} };
MENU.LoadLocale = function () {
var url = prompt(_("LoadURL","Load translation data from this URL:"));
if (url) {
if (!url.match(/\.js$/)) {
alert(_("BadURL",
"The URL should be for a javascript file that defines MathJax translation data. " +
"Javascript file names should end with '.js'"
));
}
AJAX.Require(url,function (status) {
if (status != AJAX.STATUS.OK) {alert(_("BadData","Failed to load translation data from %1",url))}
});
}
};
/* /*
* Handle setting MathPlayer events * Handle setting MathPlayer events
@ -1033,7 +1047,8 @@
ITEM.RULE().With({hidden:!CONFIG.showLocale, name:["","locale_rule"]}), ITEM.RULE().With({hidden:!CONFIG.showLocale, name:["","locale_rule"]}),
ITEM.SUBMENU(["Locale","Locale"], {hidden:!CONFIG.showLocale}, ITEM.SUBMENU(["Locale","Locale"], {hidden:!CONFIG.showLocale},
ITEM.RADIO("en", "locale", {action: MENU.Locale}), ITEM.RADIO("en", "locale", {action: MENU.Locale}),
ITEM.RADIO("fr", "locale", {action: MENU.Locale}) ITEM.RULE(),
ITEM.COMMAND(["LoadLocale","Load from URL ..."], MENU.LoadLocale)
) )
), ),
ITEM.RULE(), ITEM.RULE(),
@ -1057,6 +1072,32 @@
}); });
//
// Creates the locale menu from the list of locales in MathJax.Localization.strings
//
MENU.CreateLocaleMenu = function () {
var menu = MENU.menu.Find("Math Settings","Locale").menu, items = menu.items;
//
// Get the names of the languages and sort them
//
var locales = [], LOCALE = MathJax.Localization.strings;
for (var id in LOCALE) {if (LOCALE.hasOwnProperty(id)) {locales.push(id)}}
locales = locales.sort(); menu.items = [];
//
// Add a menu item for each
//
for (var i = 0, m = locales.length; i < m; i++) {
var title = LOCALE[locales[i]].menuTitle;
if (title) {title += " ("+locales[i]+")"} else {title = locales[i]}
menu.items.push(ITEM.RADIO([locales[i],title],"locale",{action:MENU.Locale}));
}
//
// Add the rule and "Load from URL" items
//
menu.items.push(items[items.length-2],items[items.length-1]);
};
MENU.CreateLocaleMenu();
MENU.showRenderer = function (show) { MENU.showRenderer = function (show) {
MENU.cookie.showRenderer = CONFIG.showRenderer = show; MENU.saveCookie(); MENU.cookie.showRenderer = CONFIG.showRenderer = show; MENU.saveCookie();
MENU.menu.Find("Math Settings","Math Renderer").hidden = !show; MENU.menu.Find("Math Settings","Math Renderer").hidden = !show;

View File

@ -1,52 +1,50 @@
MathJax.Hub.Insert(MathJax.Localization.strings.fr.domains,{ MathJax.Localization.addTranslation("fr","FontWarnings",{
FontWarnings: { isLoaded: true,
isLoaded: true, strings: {
strings: {
webFont: webFont:
"MathJax utilise les polices Web pour afficher les expressions " + "MathJax utilise les polices Web pour afficher les expressions " +
"mathématiques sur cette page. Celles-ci mettent du temps à être "+ "mathématiques sur cette page. Celles-ci mettent du temps à être "+
"téléchargées et la page serait affichée plus rapidement si vous "+ "téléchargées et la page serait affichée plus rapidement si vous "+
"installiez les polices mathématiques directement dans le dossier "+ "installiez les polices mathématiques directement dans le dossier "+
"des polices de votre système.", "des polices de votre système.",
imageFonts: imageFonts:
"MathJax utilise des images de caractères plutôt que les polices "+ "MathJax utilise des images de caractères plutôt que les polices "+
"Web ou locales. Ceci rend le rendu plus lent que la normale et "+ "Web ou locales. Ceci rend le rendu plus lent que la normale et "+
"les expressions mathématiques peuvent ne pas s'imprimer à la "+ "les expressions mathématiques peuvent ne pas s'imprimer à la "+
"résolution maximale de votre imprimante", "résolution maximale de votre imprimante",
noFonts: noFonts:
"MathJax n'est pas parvenu à localiser une police pour afficher "+ "MathJax n'est pas parvenu à localiser une police pour afficher "+
"les expressions mathématiques et les images de caractères ne "+ "les expressions mathématiques et les images de caractères ne "+
"sont pas disponibles. Comme solution de dernier recours, il "+ "sont pas disponibles. Comme solution de dernier recours, il "+
"utilise des caractères Unicode génériques en espérant que votre "+ "utilise des caractères Unicode génériques en espérant que votre "+
"navigateur sera capable de les afficher. Certains pourront ne "+ "navigateur sera capable de les afficher. Certains pourront ne "+
"être rendus de façon incorrect voire pas du tout.", "être rendus de façon incorrect voire pas du tout.",
webFonts: webFonts:
"La plupart des navigateurs modernes permettent de télécharger "+ "La plupart des navigateurs modernes permettent de télécharger "+
"des polices à partir du Web. En mettant à jour pour une version "+ "des polices à partir du Web. En mettant à jour pour une version "+
"plus récente de votre navigateur (ou en changeant de navigateur) "+ "plus récente de votre navigateur (ou en changeant de navigateur) "+
"la qualité des expressions mathématiques sur cette page pourrait "+ "la qualité des expressions mathématiques sur cette page pourrait "+
"être améliorée.", "être améliorée.",
fonts: fonts:
"MathJax peut utiliser les %1 ou bien les %2. Téléchargez et"+ "MathJax peut utiliser les %1 ou bien les %2. Téléchargez et"+
"installez l'une de ces familles de polices pour améliorer votre"+ "installez l'une de ces familles de polices pour améliorer votre"+
"expérience avec MathJax.", "expérience avec MathJax.",
PageDesigned: PageDesigned:
"Cette page est conçue pour utiliser les %1. Téléchargez "+ "Cette page est conçue pour utiliser les %1. Téléchargez "+
" et installez ces polices pour améliorer votre expérience "+ " et installez ces polices pour améliorer votre expérience "+
"avec MathJax", "avec MathJax",
STIXfonts: STIXfonts:
"Polices STIX", "Polices STIX",
TeXfonts: TeXfonts:
"Polices TeX de MathJax" "Polices TeX de MathJax"
}
} }
}); });

View File

@ -1,26 +1,25 @@
MathJax.Hub.Insert(MathJax.Localization.strings.fr.domains,{ MathJax.Localization.addTranslation("fr","HTML-CSS",{
"HTML-CSS": { isLoaded: true,
isLoaded: true, strings: {
strings: {
LoadWebFont: "Téléchargement la police Web %1", LoadWebFont:
"Téléchargement la police Web %1",
CantLoadWebFont: "Impossible de télécharcharger la police Web %1", CantLoadWebFont:
"Impossible de télécharcharger la police Web %1",
FirefoxCantLoadWebFont: FirefoxCantLoadWebFont:
"Firefox ne peut télécharger les polices Web à partir d'un hôte "+ "Firefox ne peut télécharger les polices Web à partir d'un hôte "+
"distant", "distant",
CantFindFontUsing: CantFindFontUsing:
"Impossible de trouver une police valide en utilisant %1", "Impossible de trouver une police valide en utilisant %1",
WebFontsNotAvailable: WebFontsNotAvailable:
"Polices Web non disponibles -- des images de caractères vont être "+ "Polices Web non disponibles -- des images de caractères vont être "+
"utilisées à la place" "utilisées à la place"
}
} }
}); });
MathJax.Ajax.loadComplete("[MathJax]/localization/fr/HTML-CSS.js"); MathJax.Ajax.loadComplete("[MathJax]/localization/fr/HTML-CSS.js");

View File

@ -1,48 +1,46 @@
MathJax.Hub.Insert(MathJax.Localization.strings.fr.domains,{ MathJax.Localization.addTranslation("fr","MathML",{
MathML: { isLoaded: true,
isLoaded: true, strings: {
strings: {
BadMglyph: BadMglyph:
"Élement mglyph incorrect: %1", "Élement mglyph incorrect: %1",
BadMglyphFont: BadMglyphFont:
"Police de caractère incorrecte: %1", "Police de caractère incorrecte: %1",
MathPlayer: MathPlayer:
"MathJax n'est pas parvenu à configurer MathPlayer.\n\n"+ "MathJax n'est pas parvenu à configurer MathPlayer.\n\n"+
"Vous devez d'abord installer MathPlayer. Si c'est déjà le cas,\n"+ "Vous devez d'abord installer MathPlayer. Si c'est déjà le cas,\n"+
"vos paramètres de sécurités peuvent empêcher l'exécution des\n"+ "vos paramètres de sécurités peuvent empêcher l'exécution des\n"+
"contrôles ActiveX. Sélectionnez Options Internet dans le menu\n"+ "contrôles ActiveX. Sélectionnez Options Internet dans le menu\n"+
"Outils et sélectionnez l'onglet Sécurité. Appuyez ensuite sur\n"+ "Outils et sélectionnez l'onglet Sécurité. Appuyez ensuite sur\n"+
"le menu Niveau Personalisé. Assurez vous que les paramètres\n"+ "le menu Niveau Personalisé. Assurez vous que les paramètres\n"+
"Exécution des contrôles ActiveX et Comportements des exécutables\n"+ "Exécution des contrôles ActiveX et Comportements des exécutables\n"+
"et des scripts sont activés.\n\n"+ "et des scripts sont activés.\n\n"+
"Actuellement, vous verez des messages d'erreur à la place des\n"+ "Actuellement, vous verez des messages d'erreur à la place des\n"+
"expressions mathématiques.", "expressions mathématiques.",
CantCreateXMLParser: CantCreateXMLParser:
"MathJax ne peut créer un analyseur grammatical XML pour le MathML", "MathJax ne peut créer un analyseur grammatical XML pour le MathML",
UnknownNodeType: UnknownNodeType:
"Type de noeud inconnu: %1", "Type de noeud inconnu: %1",
UnexpectedTextNode: UnexpectedTextNode:
"Noeud de texte inattendu: %1", "Noeud de texte inattendu: %1",
ErrorParsingMathML: ErrorParsingMathML:
"Erreur lors de l'analyse grammaticale du code MathML", "Erreur lors de l'analyse grammaticale du code MathML",
ParsingError: ParsingError:
"Erreur lors de l'analyse du code MathML: %1", "Erreur lors de l'analyse du code MathML: %1",
MathMLSingleElement: MathMLSingleElement:
"Le code MathML doit être formé d'un unique élément", "Le code MathML doit être formé d'un unique élément",
MathMLRootElement: MathMLRootElement:
"Le code MathML doit être formé d'un élément <math> et non un élément %1" "Le code MathML doit être formé d'un élément <math> et non un élément %1"
}
} }
}); });

View File

@ -1,117 +1,116 @@
MathJax.Hub.Insert(MathJax.Localization.strings.fr.domains,{ MathJax.Localization.addTranslation("fr","MathMenu",{
MathMenu: { isLoaded: true,
isLoaded: true, strings: {
strings: {
Show: "Afficher la Formule sous Forme", Show: "Afficher la Formule sous Forme",
MathMLcode: "de Code MathML", MathMLcode: "de Code MathML",
OriginalMathML: "de Code MathML d'Origine", OriginalMathML: "de Code MathML d'Origine",
TeXCommands: "de Commandes TeX", TeXCommands: "de Commandes TeX",
AsciiMathInput: "de code AsciiMathml", AsciiMathInput: "de code AsciiMathml",
Original: "d'Origine", Original: "d'Origine",
ErrorMessage: "de Message d'Erreur", ErrorMessage: "de Message d'Erreur",
texHints: "Afficher les indications TeX dans le code MathML", texHints: "Afficher les indications TeX dans le code MathML",
Settings: "Paramètres des formules", Settings: "Paramètres des formules",
ZoomTrigger: "Déclenchement du Zoom par", ZoomTrigger: "Déclenchement du Zoom par",
Hover: "Survol de la Souris", Hover: "Survol de la Souris",
Click: "Clic de Souris", Click: "Clic de Souris",
DoubleClick: "Double-Clic", DoubleClick: "Double-Clic",
NoZoom: "Pas de Zoom", NoZoom: "Pas de Zoom",
TriggerRequires: "Le déclenchement nécessite l'appui sur la touche", TriggerRequires: "Le déclenchement nécessite l'appui sur la touche",
Option: "Option", Option: "Option",
Alt: "Alt", Alt: "Alt",
Command: "Command", Command: "Command",
Control: "Control", Control: "Control",
Shift: "Shift", Shift: "Shift",
ZoomFactor: "Facteur de Zoom", ZoomFactor: "Facteur de Zoom",
Renderer: "Mode de Rendu", Renderer: "Mode de Rendu",
MPHandles: "Laissez MathPlayer Gérer les", MPHandles: "Laissez MathPlayer Gérer les",
MenuEvents: "Êvénements du menu", MenuEvents: "Êvénements du menu",
MouseEvents: "Êvénements de la Souris", MouseEvents: "Êvénements de la Souris",
MenuAndMouse: "Êvénements de Menu et de la Souris", MenuAndMouse: "Êvénements de Menu et de la Souris",
FontPrefs: "Préférences des Polices", FontPrefs: "Préférences des Polices",
ForHTMLCSS: "Pour le HTML-CSS:", ForHTMLCSS: "Pour le HTML-CSS:",
Auto: "Auto", Auto: "Auto",
TeXLocal: "TeX (locales)", TeXLocal: "TeX (locales)",
TeXWeb: "TeX (web)", TeXWeb: "TeX (web)",
TeXImage: "TeX (image)", TeXImage: "TeX (image)",
STIXLocal: "STIX (locales)", STIXLocal: "STIX (locales)",
ContextMenu: "Menu Contextuel", ContextMenu: "Menu Contextuel",
Browser: "Navigateur", Browser: "Navigateur",
Scale: "Mise à l'échelle des formules ...", Scale: "Mise à l'échelle des formules ...",
Discoverable: "Mettez en Surbrillance lors du Survol", Discoverable: "Mettez en Surbrillance lors du Survol",
About: "À Propos de MathJax", About: "À Propos de MathJax",
Help: "Aide MathJax", Help: "Aide MathJax",
localTeXfonts: "utilisant les polices locales TeX", localTeXfonts: "utilisant les polices locales TeX",
webTeXfonts: "utilisant les polices internet TeX", webTeXfonts: "utilisant les polices internet TeX",
imagefonts: "utilisant les polices d'image", imagefonts: "utilisant les polices d'image",
localSTIXfonts: "utilisant les polices locales STIX", localSTIXfonts: "utilisant les polices locales STIX",
webSVGfonts: "utilisant les polices internet SVG", webSVGfonts: "utilisant les polices internet SVG",
genericfonts: "utilisant les polices locales génériques", genericfonts: "utilisant les polices locales génériques",
wofforotffonts: "les polices woff ou otf", wofforotffonts: "les polices woff ou otf",
eotffonts: "les polices eot", eotffonts: "les polices eot",
svgfonts: "les polices svg", svgfonts: "les polices svg",
WebkitNativeMMLWarning: WebkitNativeMMLWarning:
"Votre navigateur ne semble pas comporter de support MathML, " + "Votre navigateur ne semble pas comporter de support MathML, " +
"changer le mode de rendu pourrait rendre illisibles " + "changer le mode de rendu pourrait rendre illisibles " +
"les expressions mathématiques.", "les expressions mathématiques.",
MSIENativeMMLWarning: MSIENativeMMLWarning:
"Internet Explorer a besoin du module complémentaire MathPlayer " + "Internet Explorer a besoin du module complémentaire MathPlayer " +
"pour afficher le MathML.", "pour afficher le MathML.",
OperaNativeMMLWarning: OperaNativeMMLWarning:
"Le support MathML d'Opera est limité, changer le mode de rendu " + "Le support MathML d'Opera est limité, changer le mode de rendu " +
"pourrait entrainer un affichage médiocre de certaines expressions.", "pourrait entrainer un affichage médiocre de certaines expressions.",
SafariNativeMMLWarning: SafariNativeMMLWarning:
"Le support MathML natif de votre navigateur ne comporte pas " + "Le support MathML natif de votre navigateur ne comporte pas " +
"toutes les fonctionnalités requises par MathJax, certaines " + "toutes les fonctionnalités requises par MathJax, certaines " +
"expressions pourront donc ne pas s'afficher correctement.", "expressions pourront donc ne pas s'afficher correctement.",
FirefoxNativeMMLWarning: FirefoxNativeMMLWarning:
"Le support MathML natif de votre navigateur ne comporte pas " + "Le support MathML natif de votre navigateur ne comporte pas " +
"toutes les fonctionnalités requises par MathJax, certaines " + "toutes les fonctionnalités requises par MathJax, certaines " +
"expressions pourront donc ne pas s'afficher correctement.", "expressions pourront donc ne pas s'afficher correctement.",
SwitchAnyway: SwitchAnyway:
"Êtes vous certain de vouloir changer le mode de rendu ?\n\n" + "Êtes vous certain de vouloir changer le mode de rendu ?\n\n" +
"Appuyez sur OK pour valider ou Annuler pour continuer avec le " + "Appuyez sur OK pour valider ou Annuler pour continuer avec le " +
"mode de rendu actuellement sélectionné.", "mode de rendu actuellement sélectionné.",
ScaleMath: ScaleMath:
"Mise à l'échelle des expressions mathématiques (par rapport au " + "Mise à l'échelle des expressions mathématiques (par rapport au " +
"text environnant) de", "text environnant) de",
NonZeroScale: NonZeroScale:
"L'échelle ne peut être nulle", "L'échelle ne peut être nulle",
PercentScale: PercentScale:
"L'échelle doit être un pourcentage (e.g. 120%%)", "L'échelle doit être un pourcentage (e.g. 120%%)",
IE8warning: IE8warning:
"Ceci désactivera le menu de MathJax et les fonctionalités de " + "Ceci désactivera le menu de MathJax et les fonctionalités de " +
"zoom mais vous pourrez toujours obtenir le menu de MathJax " + "zoom mais vous pourrez toujours obtenir le menu de MathJax " +
"en utilisant la commande Alt+Clic sur une expression.\n\n" + "en utilisant la commande Alt+Clic sur une expression.\n\n" +
"Êtes vous certain de vouloir choisir les options de MathPlayer?", "Êtes vous certain de vouloir choisir les options de MathPlayer?",
IE9warning: IE9warning:
"Le menu contextuel de MathJax sera désactivé, " + "Le menu contextuel de MathJax sera désactivé, " +
"mais vous pourrez toujours obtenir le menu de MathJax " + "mais vous pourrez toujours obtenir le menu de MathJax " +
"en utilisant la commande Alt-Clic sur une expression.", "en utilisant la commande Alt-Clic sur une expression.",
NoOriginalForm: NoOriginalForm:
"Aucune forme d'origine disponible.", "Aucune forme d'origine disponible.",
Close: Close:
"Fermer", "Fermer",
EqSource:
"Source de l'équation MathJax"
EqSource:
"Source de l'équation MathJax"
}
} }
}); });

View File

@ -1,253 +1,250 @@
MathJax.Hub.Insert(MathJax.Localization.strings.fr.domains,{ MathJax.Localization.addTranslation("fr","TeX",{
TeX: { isLoaded: true,
isLoaded: true, strings: {
strings: {
ExtraOpenMissingClose:
"Accolade ouvrant manquante ou accolade fermante non attendue",
ExtraCloseMissingOpen: ExtraOpenMissingClose:
"Accolade fermante non attendue ou accolade ouvrante manquante", "Accolade ouvrant manquante ou accolade fermante non attendue",
MissingLeftExtraRight: ExtraCloseMissingOpen:
"Commande \\left manquante or ou commande \\right non attendue", "Accolade fermante non attendue ou accolade ouvrante manquante",
MissingScript: MissingLeftExtraRight:
"Argument en exposant ou en indice manquant", "Commande \\left manquante or ou commande \\right non attendue",
ExtraLeftMissingRight: MissingScript:
"Commande \\left inattendue or ou commande \\right manquante", "Argument en exposant ou en indice manquant",
Misplaced: ExtraLeftMissingRight:
"Mauvaise position pour la commande %1", "Commande \\left inattendue or ou commande \\right manquante",
MissingOpenForScript: Misplaced:
"Accolade ouvrante manquante pour le script %1", "Mauvaise position pour la commande %1",
AmbiguousUseOf: MissingOpenForScript:
"Usage ambigu de la commande %1", "Accolade ouvrante manquante pour le script %1",
EnvBadEnd: AmbiguousUseOf:
"\\begin{%1} s'est terminé par un \\end{%2}", "Usage ambigu de la commande %1",
EnvMissingEnd: EnvBadEnd:
"\\end{%1} manquant", "\\begin{%1} s'est terminé par un \\end{%2}",
MissingBoxFor: EnvMissingEnd:
"Boite manquante pour la commande %1", "\\end{%1} manquant",
MissingCloseBrace: MissingBoxFor:
"Accolade fermante manquante", "Boite manquante pour la commande %1",
UndefinedControlSequence: MissingCloseBrace:
"Commande %1 non définie", "Accolade fermante manquante",
IllegalControlSequenceName: UndefinedControlSequence:
"Nom de contrôle de séquence non autorisé pour la commande %1", "Commande %1 non définie",
IllegalParamNumber: IllegalControlSequenceName:
"Nombre de paramètres incorrect pour la commande %1", "Nom de contrôle de séquence non autorisé pour la commande %1",
DoubleExponent: IllegalParamNumber:
"Double exposant: utilisez des accolades pour clarifier", "Nombre de paramètres incorrect pour la commande %1",
DoubleSubscripts: DoubleExponent:
"Double indice: utilisez des accolades pour clarifier", "Double exposant: utilisez des accolades pour clarifier",
DoubleExponentPrime: DoubleSubscripts:
"Un prime entraine un double exposant: utilisez "+ "Double indice: utilisez des accolades pour clarifier",
"des accolades pour clarifier",
CantUseHash1: DoubleExponentPrime:
"Vous ne pouvez pas utilisez le caractère #, indiquant un "+ "Un prime entraine un double exposant: utilisez "+
"paramètre de macro, dans le mode mathématique", "des accolades pour clarifier",
CantUseHash2: CantUseHash1:
"Usage du caractère # non autorisé dans le modèle pour la séquence "+ "Vous ne pouvez pas utilisez le caractère #, indiquant un "+
"de contrôle %1", "paramètre de macro, dans le mode mathématique",
MisplacedMiddle: CantUseHash2:
"La commande %1 doit être placée à l'intérieur d'une section "+ "Usage du caractère # non autorisé dans le modèle pour la séquence "+
"\\left ... \right", "de contrôle %1",
MisplacedLimits: MisplacedMiddle:
"La commande %1 n'est autorisée que sur les opérateurs", "La commande %1 doit être placée à l'intérieur d'une section "+
"\\left ... \right",
MisplacedMoveRoot: MisplacedLimits:
"La commande %1 n'est autorisée qu'à l'intérieur d'une racine", "La commande %1 n'est autorisée que sur les opérateurs",
MultipleMoveRoot: MisplacedMoveRoot:
"Commande %1 redondante", "La commande %1 n'est autorisée qu'à l'intérieur d'une racine",
IntegerArg: MultipleMoveRoot:
"L'argument de la commande %1 doit être un entier", "Commande %1 redondante",
PositiveIntegerArg: IntegerArg:
"L'argument de la commande %1 doit être un entier strictement "+ "L'argument de la commande %1 doit être un entier",
"positif",
NotMathMLToken: PositiveIntegerArg:
"L'élément %1 n'est pas un élément MathML élémentaire", "L'argument de la commande %1 doit être un entier strictement "+
"positif",
InvalidMathMLAttr: NotMathMLToken:
"Attribut MathML non valide: %1", "L'élément %1 n'est pas un élément MathML élémentaire",
UnknownAttrForElement: InvalidMathMLAttr:
"Attribut %1 inconnu pour l'élément %2", "Attribut MathML non valide: %1",
MaxMacroSub1: UnknownAttrForElement:
"Le nombre maximal de substitution de macro autorisé par MathJax "+ "Attribut %1 inconnu pour l'élément %2",
"a été dépassé. Il y a t'il un appel de macro récursif?",
MaxMacroSub2: MaxMacroSub1:
"Le nombre maximal de substitution de macro autorisé par MathJax "+ "Le nombre maximal de substitution de macro autorisé par MathJax "+
"a été dépassé. Il y a t'il un environnement LaTeX récursif?", "a été dépassé. Il y a t'il un appel de macro récursif?",
MissingArgFor: MaxMacroSub2:
"Argument manquant pour la commande %1", "Le nombre maximal de substitution de macro autorisé par MathJax "+
"a été dépassé. Il y a t'il un environnement LaTeX récursif?",
ExtraAlignTab: MissingArgFor:
"Tabulation d'alignement non attendu pour le texte de la commande "+ "Argument manquant pour la commande %1",
"\\cases",
BracketMustBeDimension: ExtraAlignTab:
"L'argument entre crochets de la commande %1 doit être une "+ "Tabulation d'alignement non attendu pour le texte de la commande \\cases",
"dimension",
InvalidEnv: BracketMustBeDimension:
"Nom d'environnement '%1' non valide", "L'argument entre crochets de la commande %1 doit être une dimension",
UnknownEnv: InvalidEnv:
"Environnement '%1' inconnu", "Nom d'environnement '%1' non valide",
ExtraClose: UnknownEnv:
"Accolade fermante non attendue", "Environnement '%1' inconnu",
ExtraCloseInBrackets: ExtraClose:
"Accolade fermante non attendue avant le crochet fermant.", "Accolade fermante non attendue",
MissingCloseBracket: ExtraCloseInBrackets:
"Impossible de trouver le crochet fermant pour l'argument de la "+ "Accolade fermante non attendue avant le crochet fermant.",
"commande %1",
MissingOrUnrecognizedDelim: MissingCloseBracket:
"Délimiteur manquant ou non reconnu pour la commande %1", "Impossible de trouver le crochet fermant pour l'argument de la commande %1",
MissingDimOrUnits: MissingOrUnrecognizedDelim:
"Dimension ou unité manquante pour la commande %1", "Délimiteur manquant ou non reconnu pour la commande %1",
ExtraCloseBraceInUpTo: MissingDimOrUnits:
"Accolade fermante non attendue avant la commande %1", "Dimension ou unité manquante pour la commande %1",
TokenNotFoundForCommand: ExtraCloseBraceInUpTo:
"Impossible de trouver la commande %1 pour la commande %2", "Accolade fermante non attendue avant la commande %1",
MathNotTerminated: TokenNotFoundForCommand:
"Expression mathématique non terminée à l'intérieur de cette boite "+ "Impossible de trouver la commande %1 pour la commande %2",
"de texte",
IllegalMacroParam: MathNotTerminated:
"Paramètre de référence de macro non autorisé", "Expression mathématique non terminée à l'intérieur de cette boite "+
"de texte",
MaxBufferSize: IllegalMacroParam:
"Taille maximale du tampon interne de MathJax dépassée. " + "Paramètre de référence de macro non autorisé",
"Il y a t'il un appel de macro récursif?",
CommandNotAllowedInEnv: MaxBufferSize:
"La commande %1 n'est pas autorisé à l'intérieur de "+ "Taille maximale du tampon interne de MathJax dépassée. " +
"l'environnement %2", "Il y a t'il un appel de macro récursif?",
MultipleCommand: CommandNotAllowedInEnv:
"Usage multiple de la commande %1", "La commande %1 n'est pas autorisé à l'intérieur de "+
"l'environnement %2",
MultipleLabel: MultipleCommand:
"Étiquette '%1' déjà définie", "Usage multiple de la commande %1",
CommandAtTheBeginingOfLine: MultipleLabel:
"La commande %1 doit être placée en début de ligne", "Étiquette '%1' déjà définie",
IllegalAlign: CommandAtTheBeginingOfLine:
"Alignement non autorisé pour la commande %1", "La commande %1 doit être placée en début de ligne",
BadMathStyleFor: IllegalAlign:
"Style mathématique non valide pour la commande %1", "Alignement non autorisé pour la commande %1",
ErroneousNestingEq: BadMathStyleFor:
"Emboitement incorrect des structures d'équation", "Style mathématique non valide pour la commande %1",
MultipleRowsOneCol: ErroneousNestingEq:
"Les lignes multiples doivent avoir exactement une colonne", "Emboitement incorrect des structures d'équation",
NoClosingDelim: MultipleRowsOneCol:
"Impossible de trouver le délimiteur fermant pour la commande %1", "Les lignes multiples doivent avoir exactement une colonne",
NoClosingChar: NoClosingDelim:
"Impossible de trouver le délimiteur '%1' fermant", "Impossible de trouver le délimiteur fermant pour la commande %1",
MultipleBBoxProperty: NoClosingChar:
"La propriété %1 de la commande %2 spécifiée deux fois", "Impossible de trouver le délimiteur '%1' fermant",
InvalidBBoxProperty: MultipleBBoxProperty:
"La valeur '%1' ne semble pas être une couleur, une dimension ou "+ "La propriété %1 de la commande %2 spécifiée deux fois",
"de marge intérieur ou un style.",
ExtraEndMissingBegin: InvalidBBoxProperty:
"Commande %1 non attendue ou commande \\begingroup manquante", "La valeur '%1' ne semble pas être une couleur, une dimension ou "+
"de marge intérieur ou un style.",
GlobalNotFollowedBy: ExtraEndMissingBegin:
"Command %1 non suivie d'une commande \\let, \\def ou \newcommand", "Commande %1 non attendue ou commande \\begingroup manquante",
NewextarrowArg1: GlobalNotFollowedBy:
"Le premier argument de la commande %1 doit être le nom d'une "+ "Command %1 non suivie d'une commande \\let, \\def ou \newcommand",
"séquence de contrôle",
NewextarrowArg2: NewextarrowArg1:
"Le second argument de la commande %1 doit être deux entiers "+ "Le premier argument de la commande %1 doit être le nom d'une "+
"séparés par une virgule", "séquence de contrôle",
NewextarrowArg3: NewextarrowArg2:
"Le troisième argument de la commande %1 doit être la valeur d'un "+ "Le second argument de la commande %1 doit être deux entiers "+
"caractère unicode", "séparés par une virgule",
UndefinedColorModel: NewextarrowArg3:
"Le modèle de couleur '%1' n'est pas défini", "Le troisième argument de la commande %1 doit être la valeur d'un "+
"caractère unicode",
rgbArg1: UndefinedColorModel:
"Les couleurs rgb nécéssitent 3 nombres décimaux", "Le modèle de couleur '%1' n'est pas défini",
InvalidDecimalNumber: rgbArg1:
"Nombre décimal non valide", "Les couleurs rgb nécéssitent 3 nombres décimaux",
rgbArg2: InvalidDecimalNumber:
"Les valeurs rgb doivent être comprises entre 0 et 1", "Nombre décimal non valide",
RGBArg1: rgbArg2:
"Les couleurs RGB nécéssitent 3 nombres", "Les valeurs rgb doivent être comprises entre 0 et 1",
InvalidNumber: RGBArg1:
"Nombre non valide", "Les couleurs RGB nécéssitent 3 nombres",
RGBArg2: InvalidNumber:
"Les valeurs RGB doivent être comprises entre 0 et 255", "Nombre non valide",
GrayScalerArg: RGBArg2:
"Les valeurs de dégradé de gris doivent être comprises entre 0 et 1", "Les valeurs RGB doivent être comprises entre 0 et 255",
DoubleBackSlash: GrayScalerArg:
"\\ doit être suivi d'une séquence de contrôle", "Les valeurs de dégradé de gris doivent être comprises entre 0 et 1",
SequentialParam: DoubleBackSlash:
"Les paramètres de la séquence de contrôle %1 doivent être "+ "\\ doit être suivi d'une séquence de contrôle",
"énumérés de façon séquentielle",
MissingReplacementString: SequentialParam:
"Chaine de caractère de remplacement manquante pour la définition %1", "Les paramètres de la séquence de contrôle %1 doivent être "+
"énumérés de façon séquentielle",
MismatchUseDef: MissingReplacementString:
"L'utilisation de la commande %1 ne correspond pas à sa définition", "Chaine de caractère de remplacement manquante pour la définition %1",
MismatchUseDef:
"L'utilisation de la commande %1 ne correspond pas à sa définition",
RunawayArgument:
"Argument manquant pour la commande %1?"
RunawayArgument:
"Argument manquant pour la commande %1?"
}
} }
}); });

View File

@ -1,4 +1,4 @@
MathJax.Hub.Insert(MathJax.Localization.strings.fr,{ MathJax.Localization.addTranslation("fr",null,{
isLoaded: true, isLoaded: true,
domains: { domains: {
"_": { "_": {

View File

@ -1,14 +1,14 @@
MathJax.Hub.Insert(MathJax.Localization.strings.fr.domains,{ MathJax.Localization.addTranslation("fr","v1.0-warning",{
"v1.0-warning": { isLoaded: true,
isLoaded: true, strings: {
strings: {
MissingConfig: MissingConfig:
"MathJax ne charge plus de fichier de configuration par défaut; "+ "MathJax ne charge plus de fichier de configuration par défaut; "+
"vous devez spécifier ces fichiers de façons explicites. Cette "+ "vous devez spécifier ces fichiers de façons explicites. Cette "+
"page semble utiliser l'ancien fichier de configuration par "+ "page semble utiliser l'ancien fichier de configuration par "+
"défaut %1 and doit donc être mise à jour. Ceci est expliqué "+ "défaut %1 and doit donc être mise à jour. Ceci est expliqué "+
"en détails à l'addresse suivante: %2" "en détails à l'addresse suivante: %2"
}
} }
}); });