commit 503f9970640b558fde062d65cc49bd09cb77b6a5
parent dd019796b0bcdd79222ad414bf546609bc8e8563
Author: Frédéric Wang <fred.wang@free.fr>
Date: Mon, 25 Feb 2013 18:05:33 +0100
Finishing to find all the strings to localize
Diffstat:
8 files changed, 208 insertions(+), 48 deletions(-)
diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js
@@ -1279,8 +1279,9 @@ MathJax.Hub = {
},
errorSettings: {
- // Localization: should be updated when the language is changed
- message: ["["+MathJax.Localization_("MathProcessingError", "Math Processing Error")+"]"], // HTML snippet structure for message to use
+ // Localization: not defined at that point.
+ // should be updated when the language is changed
+ message: ["[Math Processing Error]"], // HTML snippet structure for message to use
style: {color: "#CC0000", "font-style":"italic"} // style for message
}
},
@@ -2522,6 +2523,8 @@ MathJax.Localization = {
}
},
Message: {
+ isLoaded: true,
+ strings: {
LoadFailed: "Échec du téléchargement de %1",
CantLoadWebFont: "Impossible de télécharcharger la police Web %1",
FirefoxCantLoadWebFont:
@@ -2534,6 +2537,7 @@ MathJax.Localization = {
"utilisées à la place",
MathJaxNotSupported:
"Votre navigateur ne supporte pas MathJax"
+ }
},
FontWarnings: {
isLoaded: true,
@@ -2693,6 +2697,10 @@ MathJax.Localization = {
"Accolade fermante manquante",
UndefinedControlSequence:
"Commande %1 non définie",
+ IllegalControlSequenceName:
+ "Nom de contrôle de séquence non autorisé pour la commande %1",
+ IllegalParamNumber:
+ "Nombre de paramètres incorrect pour la commande %1",
DoubleExponent:
"Double exposant: utilisez des accolades pour clarifier",
DoubleSubscripts:
@@ -2700,12 +2708,15 @@ MathJax.Localization = {
DoubleExponentPrime:
"Un prime entraine un double exposant: utilisez"+
"des accolades pour clarifier",
- CanUseHash:
+ CantUseHash1:
"Vous ne pouvez pas utilisez le caractère #, indiquant un "+
"paramètre de macro, dans le mode mathématique",
+ CantUseHash2:
+ "Usage du caractère # non autorisé dans le modèle pour la séquence"+
+ "de contrôle %1",
MisplacedMiddle:
"La commande %1 doit être placée à l'intérieur d'une section"+
- "\\left ... \right"
+ "\\left ... \right",
MisplacedLimits:
"La commande %1 n'est autorisée que sur les opérateurs",
MisplacedMoveRoot:
@@ -2724,9 +2735,11 @@ MathJax.Localization = {
UnknownAttrForElement:
"Attribut %1 inconnu pour l'élément %2",
MaxMacroSub1:
- "Le nombre maximal de substitution de macro autorisé par MathJax a été dépassé. Il y a t'il un appel de macro récursif?",
+ "Le nombre maximal de substitution de macro autorisé par MathJax "+
+ "a été dépassé. Il y a t'il un appel de macro récursif?",
MaxMacroSub2:
- "Le nombre maximal de substitution de macro autorisé par MathJax a été dépassé. Il y a t'il un environnement LaTeX récursif?",
+ "Le nombre maximal de substitution de macro autorisé par MathJax "+
+ "a été dépassé. Il y a t'il un environnement LaTeX récursif?",
MissingArgFor:
"Argument manquant pour la commande %1",
ExtraAlignTab:
@@ -2760,7 +2773,8 @@ MathJax.Localization = {
IllegalMacroParam:
"Paramètre de référence de macro non autorisé",
MaxBufferSize:
- "Taille maximale du tampon interne de MathJax dépassée. Il y a t'il un appel de macro récursif?",
+ "Taille maximale du tampon interne de MathJax dépassée. " +
+ "Il y a t'il un appel de macro récursif?",
CommandNotAllowedInEnv:
"La commande %1 n'est pas autorisé à l'intérieur de"+
"l'environnement %2",
@@ -2772,16 +2786,53 @@ MathJax.Localization = {
BadMathStyleFor:
"Style mathématique non valide pour la commande %1",
ErroneousNestingEq:
- "Emboitement incorrect des structures d'équation"
+ "Emboitement incorrect des structures d'équation",
MultipleRowsOneCol:
- "Les lignes multiples doivent avoir exactement une colonne"
+ "Les lignes multiples doivent avoir exactement une colonne",
NoClosingDelim:
"Impossible de trouver le délimiteur fermant pour la commande %1",
+ NoClosingChar:
+ "Impossible de trouver le délimiteur '%1' fermant",
MultipleBBoxProperty:
"La propriété %1 de la commande %2 spécifiée deux fois",
InvalidBboxProperty:
"La valeur '%1' ne semble pas être une couleur, une dimension ou"+
- "de marge intérieur ou un style."
+ "de marge intérieur ou un style.",
+ ExtraEndMissingBegin:
+ "Commande %1 non attendue ou commande \\begingroup manquante",
+ GlobalNotFollowedBy:
+ "Command %1 non suivie d'une commande \\let, \\def ou \newcommand",
+ NewextarrowArg1:
+ "Le premier argument de la commande %1 doit être le nom d'une"+
+ "séquence de contrôle",
+ NewextarrowArg2:
+ "Le second argument de la commande %1 doit être deux entiers"+
+ "séparés par une virgule",
+ NewextarrowArg3:
+ "Le troisième argument de la commande %1 doit être la valeur d'un"+
+ "caractère unicode",
+ UndefinedColorModel:
+ "Le modèle de couleur '%1' n'est pas défini",
+ rgbArg1:
+ "Les couleurs rgb nécéssitent 3 nombres décimaux",
+ InvalidDecimalNumber: "Nombre décimal non valide",
+ rgbArg2: "Les valeurs rgb doivent être comprises entre 0 et 1",
+ RGBArg1: "Les couleurs RGB nécéssitent 3 nombres",
+ InvalidNumber: "Nombre non valide",
+ RGBArg2: "Les valeurs RGB doivent être comprises entre 0 et 255",
+ GrayScalerArg:
+ "Les valeurs de dégradé de gris doivent être comprises entre 0 et 1",
+ DoubleBackSlash:
+ "\\ doit être suivi d'une séquence de contrôle",
+ SequentialParam:
+ "Les paramètres de la séquence de contrôle %1 doivent être"+
+ "énumérés de façon séquentielle",
+ MissingReplacementString:
+ "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 ?"
}
},
@@ -2789,7 +2840,7 @@ MathJax.Localization = {
isLoaded: true,
strings: {
BadMglyph: "Élement mglyph incorrect: %1",
- BadMglyphFont: "Police de caractère incorrecte: %1"
+ BadMglyphFont: "Police de caractère incorrecte: %1",
MathPlayer:
"MathJax n'est pas parvenu à configurer MathPlayer.\n\n"+
"Vous devez d'abord installer MathPlayer. Si c'est déjà le cas,\n"+
diff --git a/unpacked/config/default.js b/unpacked/config/default.js
@@ -236,8 +236,10 @@ MathJax.Hub.Config({
// jax that prevents it from operating properly).
//
errorSettings: {
- // Localization: should be updated when the language is changed
- message: ["["+MathJax.Localization._("MathProcessingError", "Math Processing Error"])+"]"], // HTML snippet structure for message to use
+ // Localization:
+ // TODO
+ // should be updated when the language is changed
+ message: ["[MathProcessingError]"], // HTML snippet structure for message to use
style: {color: "#CC0000", "font-style":"italic"} // style for message
},
diff --git a/unpacked/extensions/TeX/begingroup.js b/unpacked/extensions/TeX/begingroup.js
@@ -215,7 +215,12 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
if (TEX.eqnStack.top > 1) {
TEX.eqnStack.Pop();
} else if (TEX.rootStack.top === 1) {
- TEX.Error("Extra "+name+" or missing \\begingroup");
+ TEX.Error(
+ MathJax.Localization._(
+ ["TeX", "ExtraEndMissingBegin"],
+ "Extra %1 or missing \\begingroup", name
+ )
+ )
} else {
TEX.eqnStack.Clear();
TEX.rootStack.Pop();
@@ -290,8 +295,13 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
//
Global: function (name) {
var i = this.i; var cs = this.GetCSname(name); this.i = i;
- if (cs !== "let" && cs !== "def" && cs !== "newcommand")
- {TEX.Error(name+" not followed by \\let, \\def, or \\newcommand")}
+ if (cs !== "let" && cs !== "def" && cs !== "newcommand") {
+ TEX.Error(
+ MathJax.Localization._(
+ ["TeX", "GlobalNotFollowedBy"],
+ "%1 not followed by \\let, \\def, or \\newcommand", name)
+ )
+ }
this.stack.env.isGlobal = true;
}
diff --git a/unpacked/extensions/TeX/color.js b/unpacked/extensions/TeX/color.js
@@ -114,7 +114,12 @@ MathJax.Extension["TeX/color"] = {
getColor: function (model,def) {
if (!model) {model = "named"}
var fn = this["get_"+model];
- if (!fn) {this.TEX.Error("Color model '"+model+"' not defined")}
+ if (!fn) {
+ this.TEX.Error(
+ MathJax.Localization._(["TeX", "UndefinedColorModel"],
+ "Color model '%1' not defined", model)
+ )
+ }
return fn.call(this,def);
},
@@ -123,11 +128,24 @@ MathJax.Extension["TeX/color"] = {
*/
get_rgb: function (rgb) {
rgb = rgb.split(/,/); var RGB = "#";
- if (rgb.length !== 3) {this.TEX.Error("rgb colors require 3 decimal numbers")}
+ if (rgb.length !== 3) {
+ this.TEX.Error(MathJax.Localization._(["TeX", "rgbArg1"],
+ "rgb colors require 3 decimal numbers"))
+ }
for (var i = 0; i < 3; i++) {
- if (!rgb[i].match(/^(\d+(\.\d*)?|\.\d+)$/)) {this.TEX.Error("Invalid decimal number")}
+ if (!rgb[i].match(/^(\d+(\.\d*)?|\.\d+)$/)) {
+ this.TEX.Error(
+ MathJax.Localization._(["TeX", "InvalidDecimalNumber"],
+ "Invalid decimal number")
+ )
+ }
var n = parseFloat(rgb[i]);
- if (n < 0 || n > 1) {this.TEX.Error("rgb values must be between 0 and 1")}
+ if (n < 0 || n > 1) {
+ this.TEX.Error(
+ MathJax.Localization._(["TeX", "rgbArg2"],
+ "rgb values must be between 0 and 1")
+ )
+ }
n = Math.floor(n*255).toString(16); if (n.length < 2) {n = "0"+n}
RGB += n;
}
@@ -139,11 +157,22 @@ MathJax.Extension["TeX/color"] = {
*/
get_RGB: function (rgb) {
rgb = rgb.split(/,/); var RGB = "#";
- if (rgb.length !== 3) {this.TEX.Error("RGB colors require 3 numbers")}
+ if (rgb.length !== 3) {
+ this.TEX.Error(MathJax.Localization._(["TeX", "RGBArg1"],
+ "RGB colors require 3 numbers"))
+ }
for (var i = 0; i < 3; i++) {
- if (!rgb[i].match(/^\d+$/)) {this.TEX.Error("Invalid number")}
+ if (!rgb[i].match(/^\d+$/)) {
+ this.TEX.Error(MathJax.Localization._(["TeX", "InvalidNumber"],
+ "Invalid number"))
+ }
var n = parseInt(rgb[i]);
- if (n > 255) {this.TEX.Error("RGB values must be between 0 and 255")}
+ if (n > 255) {
+ this.TEX.Error(
+ MathJax.Localization._(["TeX", "RGBArg2"],
+ "RGB values must be between 0 and 255")
+ )
+ }
n = n.toString(16); if (n.length < 2) {n = "0"+n}
RGB += n;
}
@@ -154,9 +183,18 @@ MathJax.Extension["TeX/color"] = {
* Get a gray-scale value
*/
get_gray: function (gray) {
- if (!gray.match(/^(\d+(\.\d*)?|\.\d+)$/)) {this.TEX.Error("Invalid decimal number")}
+ if (!gray.match(/^(\d+(\.\d*)?|\.\d+)$/)) {
+ this.TEX.Error(
+ MathJax.Localization._(["TeX", "InvalidDecimalNumber"],
+ "Invalid decimal number")
+ )
+ }
var n = parseFloat(gray);
- if (n < 0 || n > 1) {this.TEX.Error("Grey-scale values must be between 0 and 1")}
+ if (n < 0 || n > 1) {
+ this.TEX.Error(
+ MathJax.Localization._(["TeX", "GrayScalerArg"],
+ "Grey-scale values must be between 0 and 1"))
+ }
n = Math.floor(n*255).toString(16); if (n.length < 2) {n = "0"+n}
return "#"+n+n+n;
},
diff --git a/unpacked/extensions/TeX/extpfeil.js b/unpacked/extensions/TeX/extpfeil.js
@@ -72,12 +72,25 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
var cs = this.GetArgument(name),
space = this.GetArgument(name),
chr = this.GetArgument(name);
- if (!cs.match(/^\\([a-z]+|.)$/i))
- {TEX.Error("First argument to "+name+" must be a control sequence name")}
- if (!space.match(/^(\d+),(\d+)$/))
- {TEX.Error("Second argument to "+name+" must be two integers separated by a comma")}
- if (!chr.match(/^(\d+|0x[0-9A-F]+)$/i))
- {TEX.Error("Third argument to "+name+" must be a unicode character number")}
+ if (!cs.match(/^\\([a-z]+|.)$/i)) {
+ TEX.Error(
+ MathJax.Localization._(["TeX", "NewextarrowArg1"]
+ "First argument to %1 must be a control sequence name", name)
+ )
+ }
+ if (!space.match(/^(\d+),(\d+)$/)) {
+ TEX.Error(
+ MathJax.Localization._(["TeX", "NewextarrowArg2"]
+ "Second argument to %1 must be two integers separated by a comma",
+ name)
+ )
+ }
+ if (!chr.match(/^(\d+|0x[0-9A-F]+)$/i)) {
+ TEX.Error(
+ MathJax.Localization._(["TeX", "NewextarrowArg3"]
+ "Third argument to %1 must be a unicode character number", name)
+ )
+ }
cs = cs.substr(1); space = space.split(","); chr = parseInt(chr);
TEXDEF.macros[cs] = ['xArrow',chr,parseInt(space[0]),parseInt(space[1])];
}
diff --git a/unpacked/extensions/TeX/mhchem.js b/unpacked/extensions/TeX/mhchem.js
@@ -352,11 +352,22 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
if (C === "{") {braces++} else
if (C === "}") {
if (braces) {braces--}
- else {TEX.Error("Extra close brace or missing open brace")}
+ else {
+ TEX.Error(
+ MathJax.Localization._(
+ ["TeX", "ExtraCloseMissingOpen"],
+ "Extra close brace or missing open brace"
+ )
+ )
+ }
}
}
- if (braces) {TEX.Error("Missing close brace")};
- TEX.Error("Can't find closing "+c);
+ if (braces) {
+ TEX.Error(MathJax.Localization._(["TeX", "MissingCloseBrace"],
+ "Missing close brace"))
+ };
+ TEX.Error(MathJax.Localization._(["TeX", "NoClosingChar"],
+ "Can't find closing %1", c)
}
});
diff --git a/unpacked/extensions/TeX/newcommand.js b/unpacked/extensions/TeX/newcommand.js
@@ -30,6 +30,11 @@ MathJax.Extension["TeX/newcommand"] = {
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
+ var _ = function (id) {
+ return MathJax.Localization._.apply(MathJax.Localization,
+ [ ["TeX", id] ].concat([].slice.call(arguments,1)))
+ };
+
var TEX = MathJax.InputJax.TeX;
var TEXDEF = TEX.Definitions;
@@ -55,10 +60,16 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
opt = this.GetBrackets(name),
def = this.GetArgument(name);
if (cs.charAt(0) === "\\") {cs = cs.substr(1)}
- if (!cs.match(/^(.|[a-z]+)$/i)) {TEX.Error("Illegal control sequence name for "+name)}
+ if (!cs.match(/^(.|[a-z]+)$/i)) {
+ TEX.Error(_("IllegalControlSequenceName",
+ "Illegal control sequence name for %1", name))
+ }
if (n) {
n = this.trimSpaces(n);
- if (!n.match(/^[0-9]+$/)) {TEX.Error("Illegal number of parameters specified in "+name)}
+ if (!n.match(/^[0-9]+$/)) {
+ TEX.Error(_("IllegalParamNumber"
+ "Illegal number of parameters specified in %1", name))
+ }
}
this.setDef(cs,['Macro',def,n,opt]);
},
@@ -73,7 +84,10 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
edef = this.GetArgument(name);
if (n) {
n = this.trimSpaces(n);
- if (!n.match(/^[0-9]+$/)) {TEX.Error("Illegal number of parameters specified in "+name)}
+ if (!n.match(/^[0-9]+$/)) {
+ TEX.Error(_("IllegalParamNumber"
+ "Illegal number of parameters specified in %1", name))
+ }
}
this.setEnv(env,['BeginEnv','EndEnv',bdef,edef,n]);
},
@@ -130,7 +144,10 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
*/
GetCSname: function (cmd) {
var c = this.GetNext();
- if (c !== "\\") {TEX.Error("\\ must be followed by a control sequence")}
+ if (c !== "\\") {
+ TEX.Error(_("DoubleBackSlash",
+ "\\ must be followed by a control sequence"))
+ }
var cs = this.trimSpaces(this.GetArgument(cmd));
return cs.substr(1);
},
@@ -146,8 +163,15 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
if (c === '#') {
if (i !== this.i) {params[n] = this.string.substr(i,this.i-i)}
c = this.string.charAt(++this.i);
- if (!c.match(/^[1-9]$/)) {TEX.Error("Illegal use of # in template for "+cs)}
- if (parseInt(c) != ++n) {TEX.Error("Parameters for "+cs+" must be numbered sequentially")}
+ if (!c.match(/^[1-9]$/)) {
+ TEX.Error(_("CantUseHash2",
+ "Illegal use of # in template for %1", cs))
+ }
+ if (parseInt(c) != ++n) {
+ TEX.Error(_(
+ "SequentialParam",
+ "Parameters for %1 must be numbered sequentially", cs))
+ }
i = this.i+1;
} else if (c === '{') {
if (i !== this.i) {params[n] = this.string.substr(i,this.i-i)}
@@ -155,7 +179,8 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
}
this.i++;
}
- TEX.Error("Missing replacement string for definition of "+cmd);
+ TEX.Error(_("MissingReplacementString",
+ "Missing replacement string for definition of %1", cmd));
},
/*
@@ -164,15 +189,23 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
MacroWithTemplate: function (name,text,n,params) {
if (n) {
var args = []; this.GetNext();
- if (params[0] && !this.MatchParam(params[0]))
- {TEX.Error("Use of "+name+" doesn't match its definition")}
+ if (params[0] && !this.MatchParam(params[0])) {
+ TEX.Error(
+ _("MismatchUseDef",
+ "Use of %1 doesn't match its definition", name))
+ )
+ }
for (var i = 0; i < n; i++) {args.push(this.GetParameter(name,params[i+1]))}
text = this.SubstituteArgs(args,text);
}
this.string = this.AddArgs(text,this.string.slice(this.i));
this.i = 0;
- if (++this.macroCount > TEX.config.MAXMACROS)
- {TEX.Error("MathJax maximum macro substitution count exceeded; is there a recursive macro call?")}
+ if (++this.macroCount > TEX.config.MAXMACROS) {
+ TEX.Error(
+ _("MaxMacroSub1",
+ "MathJax maximum macro substitution count exceeded; is there a recursive macro call?")
+ )
+ }
},
/*
@@ -211,7 +244,9 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
this.i++; j++; hasBraces = 0;
}
}
- TEX.Error("Runaway argument for "+name+"?");
+ TEX.Error(
+ _("RunawayArgument", "Runaway argument for %1?", name)
+ );
},
/*
diff --git a/unpacked/jax/input/TeX/jax.js b/unpacked/jax/input/TeX/jax.js
@@ -1267,7 +1267,7 @@
* Handle hash marks outside of definitions
*/
Hash: function (c) {
- TEX.Error(_("CanUseHash",
+ TEX.Error(_("CantUseHash1",
"You can't use 'macro parameter character #' in math mode"));
},
@@ -1323,7 +1323,7 @@
var delim = this.GetDelimiter(name);
if (this.stack.Top().type !== "left") {
TEX.Error(_("MisplacedMiddle",
- "%1 must be within \\left and \\right", name)}
+ "%1 must be within \\left and \\right", name))}
this.Push(MML.mo(delim).With({stretchy:true}));
},