mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-02-14 20:45:46 +01:00
Annotate most strings which need to be explicitly localified.
This commit is contained in:
@@ -282,11 +282,11 @@ var AddonList = Class("AddonList", {
|
||||
XML.ignoreWhitespace = true;
|
||||
util.xmlToDom(<table highlight="Addons" key="list" xmlns={XHTML}>
|
||||
<tr highlight="AddonHead">
|
||||
<td>Name</td>
|
||||
<td>Version</td>
|
||||
<td>Status</td>
|
||||
<td><!--L-->Name</td>
|
||||
<td><!--L-->Version</td>
|
||||
<td><!--L-->Status</td>
|
||||
<td/>
|
||||
<td>Description</td>
|
||||
<td><!--L-->Description</td>
|
||||
</tr>
|
||||
</table>, this.document, this.nodes);
|
||||
|
||||
|
||||
@@ -657,11 +657,11 @@ var Commands = Module("commands", {
|
||||
<tr highlight="Title">
|
||||
<td/>
|
||||
<td style="padding-right: 1em;"></td>
|
||||
<td style="padding-right: 1ex;">Name</td>
|
||||
<td style="padding-right: 1ex;">Args</td>
|
||||
<td style="padding-right: 1ex;">Range</td>
|
||||
<td style="padding-right: 1ex;">Complete</td>
|
||||
<td style="padding-right: 1ex;">Definition</td>
|
||||
<td style="padding-right: 1ex;"><!--L-->Name</td>
|
||||
<td style="padding-right: 1ex;"><!--L-->Args</td>
|
||||
<td style="padding-right: 1ex;"><!--L-->Range</td>
|
||||
<td style="padding-right: 1ex;"><!--L-->Complete</td>
|
||||
<td style="padding-right: 1ex;"><!--L-->Definition</td>
|
||||
</tr>
|
||||
<col style="min-width: 6em; padding-right: 1em;"/>
|
||||
{
|
||||
|
||||
@@ -960,7 +960,7 @@ var Completion = Module("completion", {
|
||||
context.title = ["URL", "Title"];
|
||||
|
||||
context.fork("additional", 0, this, function (context) {
|
||||
context.title[0] += " (additional)";
|
||||
context.title[0] += /*L*/" (additional)";
|
||||
context.filter = context.parent.filter; // FIXME
|
||||
context.completions = context.parent.completions;
|
||||
// For items whose URL doesn't exactly match the filter,
|
||||
|
||||
@@ -159,7 +159,7 @@ var ConfigBase = Class("ConfigBase", {
|
||||
"--template=hg{rev}-" + this.branch + " ({date|isodate})"]).output;
|
||||
let version = this.addon.version;
|
||||
if ("@DATE@" !== "@" + "DATE@")
|
||||
version += " (created: @DATE@)";
|
||||
version += /*L*/" (created: @DATE@)";
|
||||
return version;
|
||||
}),
|
||||
|
||||
@@ -624,7 +624,7 @@ var ConfigBase = Class("ConfigBase", {
|
||||
HelpEx;;;FontCode display: inline-block; color: #527BBD;
|
||||
|
||||
HelpExample display: block; margin: 1em 0;
|
||||
HelpExample::before content: "Example: "; font-weight: bold;
|
||||
HelpExample::before content: /*L*/"Example: "; font-weight: bold;
|
||||
|
||||
HelpInfo display: block; width: 20em; margin-left: auto;
|
||||
HelpInfoLabel display: inline-block; width: 6em; color: magenta; font-weight: bold; vertical-align: text-top;
|
||||
|
||||
@@ -137,7 +137,7 @@ var Download = Class("Download", {
|
||||
if (this.timeRemaining)
|
||||
this.nodes.time.textContent = util.formatSeconds(this.timeRemaining);
|
||||
else
|
||||
this.nodes.time.textContent = "~1 second";
|
||||
this.nodes.time.textContent = /*L*/"~1 second";
|
||||
}
|
||||
let total = this.nodes.progressTotal.textContent = this.size ? util.formatBytes(this.size, 1, true) : "Unknown";
|
||||
let suffix = RegExp(/( [a-z]+)?$/i.exec(total)[0] + "$");
|
||||
@@ -182,20 +182,20 @@ var DownloadList = Class("DownloadList",
|
||||
|
||||
util.xmlToDom(<table highlight="Downloads" key="list" xmlns={XHTML}>
|
||||
<tr highlight="DownloadHead">
|
||||
<span>Title</span>
|
||||
<span>Status</span>
|
||||
<span><!--L-->Title</span>
|
||||
<span><!--L-->Status</span>
|
||||
<span/>
|
||||
<span>Progress</span>
|
||||
<span><!--L-->Progress</span>
|
||||
<span/>
|
||||
<span>Time remaining</span>
|
||||
<span>Source</span>
|
||||
<span><!--L-->Time remaining</span>
|
||||
<span><!--L-->Source</span>
|
||||
</tr>
|
||||
<tr highlight="Download"><span><div style="min-height: 1ex; /* FIXME */"/></span></tr>
|
||||
<tr highlight="Download" key="totals" active="true">
|
||||
<td><span highlight="Title">Totals:</span> <span key="total"/></td>
|
||||
<td><span highlight="Title"><!--L-->Totals:</span> <span key="total"/></td>
|
||||
<td/>
|
||||
<td highlight="DownloadButtons">
|
||||
<a highlight="Button" key="clear">Clear</a>
|
||||
<a highlight="Button" key="clear"><!--L-->Clear</a>
|
||||
</td>
|
||||
<td highlight="DownloadProgress" key="progress">
|
||||
<span highlight="DownloadProgressHave" key="progressHave"
|
||||
@@ -277,7 +277,7 @@ var DownloadList = Class("DownloadList",
|
||||
|
||||
let active = downloads.filter(function (dl) dl.alive).length;
|
||||
if (active)
|
||||
this.nodes.total.textContent = active + " active";
|
||||
this.nodes.total.textContent = /*L*/active + " active";
|
||||
else for (let key in values(["total", "percent", "time"]))
|
||||
this.nodes[key].textContent = "";
|
||||
},
|
||||
|
||||
@@ -369,7 +369,10 @@ var Highlights = Module("Highlight", {
|
||||
else if (args.completeArg == 1) {
|
||||
let hl = highlight.get(args[0]);
|
||||
if (hl)
|
||||
context.completions = [[hl.value, "Current Value"], [hl.defaultValue || "", "Default Value"]];
|
||||
context.completions = [
|
||||
[hl.value, _("option.currentValue")],
|
||||
[hl.defaultValue || "", _("option.defaultValue")]
|
||||
];
|
||||
context.fork("css", 0, completion, "css");
|
||||
}
|
||||
},
|
||||
|
||||
@@ -208,7 +208,7 @@ var IO = Module("io", {
|
||||
}
|
||||
catch (e) {
|
||||
dactyl.reportError(e);
|
||||
let message = "Sourcing file: " + (e.echoerr || file.path + ": " + e);
|
||||
let message = /*L*/"Sourcing file: " + (e.echoerr || file.path + ": " + e);
|
||||
if (!params.silent)
|
||||
dactyl.echoerr(message);
|
||||
}
|
||||
@@ -831,7 +831,7 @@ unlet s:cpo_save
|
||||
|
||||
let result = io.system(arg);
|
||||
if (result.returnValue != 0)
|
||||
result.output += "\nshell returned " + result.returnValue;
|
||||
result.output += /*L*/"\nshell returned " + result.returnValue;
|
||||
|
||||
modules.commandline.command = "!" + arg;
|
||||
modules.commandline.commandOutput(<span highlight="CmdOutput">{result.output}</span>);
|
||||
@@ -981,9 +981,9 @@ unlet s:cpo_save
|
||||
context.key = match.prefix;
|
||||
context.advance(match.prefix.length + 1);
|
||||
context.generate = function () iter({
|
||||
content: "Chrome content",
|
||||
locale: "Locale-specific content",
|
||||
skin: "Theme-specific content"
|
||||
content: /*L*/"Chrome content",
|
||||
locale: /*L*/"Locale-specific content",
|
||||
skin: /*L*/"Theme-specific content"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ var JavaScript = Module("javascript", {
|
||||
}),
|
||||
|
||||
globals: Class.memoize(function () [
|
||||
[this.modules.userContext, "Global Variables"],
|
||||
[this.modules.userContext, /*L*/"Global Variables"],
|
||||
[this.modules, "modules"],
|
||||
[this.window, "window"]
|
||||
]),
|
||||
@@ -120,9 +120,9 @@ var JavaScript = Module("javascript", {
|
||||
context[JavaScript.EVAL_EXPORT] = function export_(obj) cache[key] = obj;
|
||||
try {
|
||||
if (tmp != null) // Temporary hack until bug 609949 is fixed.
|
||||
this.modules.dactyl.userEval(JavaScript.EVAL_EXPORT + "(" + arg + ")", context, "[Command Line Completion]", 1);
|
||||
this.modules.dactyl.userEval(JavaScript.EVAL_EXPORT + "(" + arg + ")", context, /*L*/"[Command Line Completion]", 1);
|
||||
else
|
||||
cache[key] = this.modules.dactyl.userEval(arg, context, "[Command Line Completion]", 1);
|
||||
cache[key] = this.modules.dactyl.userEval(arg, context, /*L*/"[Command Line Completion]", 1);
|
||||
|
||||
return cache[key];
|
||||
}
|
||||
@@ -170,7 +170,7 @@ var JavaScript = Module("javascript", {
|
||||
|
||||
if (this._top.char != arg) {
|
||||
this.context.highlight(this._top.offset, this._i - this._top.offset, "SPELLCHECK");
|
||||
throw Error("Invalid JS");
|
||||
throw Error(/*L*/"Invalid JS");
|
||||
}
|
||||
|
||||
// The closing character of this stack frame will have pushed a new
|
||||
@@ -308,7 +308,7 @@ var JavaScript = Module("javascript", {
|
||||
if (this._checkFunction(prev, dot, cacheKey))
|
||||
return [];
|
||||
if (prev != statement && obj == null) {
|
||||
this.context.message = "Error: " + cacheKey.quote() + " is " + String(obj);
|
||||
this.context.message = /*L*/"Error: " + cacheKey.quote() + " is " + String(obj);
|
||||
return [];
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ var JavaScript = Module("javascript", {
|
||||
let end = (frame == -1 ? this._lastIdx : this._get(frame + 1).offset);
|
||||
|
||||
this._cacheKey = null;
|
||||
let obj = [[this.cache.evalContext, "Local Variables"]].concat(this.globals);
|
||||
let obj = [[this.cache.evalContext, /*L*/"Local Variables"]].concat(this.globals);
|
||||
// Is this an object dereference?
|
||||
if (dot < statement) // No.
|
||||
dot = statement - 1;
|
||||
@@ -339,7 +339,7 @@ var JavaScript = Module("javascript", {
|
||||
const self = this;
|
||||
|
||||
if (!getOwnPropertyNames && !services.debugger.isOn && !this.context.message)
|
||||
this.context.message = "For better completion data, please enable the JavaScript debugger (:set jsdebugger)";
|
||||
this.context.message = /*L*/"For better completion data, please enable the JavaScript debugger (:set jsdebugger)";
|
||||
|
||||
let base = this.context.fork("js", this._top.offset);
|
||||
base.forceAnchored = true;
|
||||
@@ -419,14 +419,14 @@ var JavaScript = Module("javascript", {
|
||||
objects.forEach(function (obj) {
|
||||
obj.ctxt_p.split(obj[1] + "/anchored", this, function (context) {
|
||||
context.anchored = true;
|
||||
context.title[0] += " (prototypes)";
|
||||
context.title[0] += /*L*/" (prototypes)";
|
||||
});
|
||||
});
|
||||
|
||||
objects.forEach(function (obj) {
|
||||
obj.ctxt_t.split(obj[1] + "/unanchored", this, function (context) {
|
||||
context.anchored = false;
|
||||
context.title[0] += " (substrings)";
|
||||
context.title[0] += /*L*/" (substrings)";
|
||||
context.filters.push(unanchored);
|
||||
});
|
||||
});
|
||||
@@ -434,7 +434,7 @@ var JavaScript = Module("javascript", {
|
||||
objects.forEach(function (obj) {
|
||||
obj.ctxt_p.split(obj[1] + "/unanchored", this, function (context) {
|
||||
context.anchored = false;
|
||||
context.title[0] += " (prototype substrings)";
|
||||
context.title[0] += /*L*/" (prototype substrings)";
|
||||
context.filters.push(unanchored);
|
||||
});
|
||||
});
|
||||
@@ -775,8 +775,8 @@ var JavaScript = Module("javascript", {
|
||||
this.js.newContext = function newContext() modules.newContext(self.context, !sandbox);
|
||||
|
||||
this.js.globals = [
|
||||
[this.context, "REPL Variables"],
|
||||
[context, "REPL Global"]
|
||||
[this.context, /*L*/"REPL Variables"],
|
||||
[context, /*L*/"REPL Global"]
|
||||
].concat(this.js.globals.filter(function ([global]) isPrototypeOf.call(global, context)));
|
||||
|
||||
if (!isPrototypeOf.call(modules.jsmodules, context))
|
||||
|
||||
@@ -115,7 +115,7 @@ var Prefs = Module("prefs", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference])
|
||||
}
|
||||
};
|
||||
|
||||
return template.options(config.host + " Preferences", prefs.call(this));
|
||||
return template.options(/*L*/config.host + " Preferences", prefs.call(this));
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -219,8 +219,8 @@ var Prefs = Module("prefs", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference])
|
||||
function assertType(needType)
|
||||
util.assert(type === Ci.nsIPrefBranch.PREF_INVALID || type === needType,
|
||||
type === Ci.nsIPrefBranch.PREF_INT
|
||||
? "E521: Number required after =: " + name + "=" + value
|
||||
: "E474: Invalid argument: " + name + "=" + value);
|
||||
? /*L*/"E521: Number required after =: " + name + "=" + value
|
||||
: /*L*/"E474: Invalid argument: " + name + "=" + value);
|
||||
|
||||
let type = this.branch.getPrefType(name);
|
||||
switch (typeof value) {
|
||||
|
||||
@@ -183,7 +183,7 @@ var Sanitizer = Module("sanitizer", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakRef
|
||||
append: {
|
||||
SanitizeDialogPane:
|
||||
<groupbox orient="horizontal" xmlns={XUL}>
|
||||
<caption label={config.appName + " (see :help privacy)"}/>
|
||||
<caption label={config.appName + /*L*/" (see :help privacy)"}/>
|
||||
<grid flex="1">
|
||||
<columns><column flex="1"/><column flex="1"/></columns>
|
||||
<rows>{
|
||||
@@ -204,7 +204,7 @@ var Sanitizer = Module("sanitizer", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakRef
|
||||
function (win) prefOverlay(branch, false, {
|
||||
append: {
|
||||
itemList: <>
|
||||
<listitem xmlns={XUL} label="See :help privacy for the following:" disabled="true" style="font-style: italic; font-weight: bold;"/>
|
||||
<listitem xmlns={XUL} label={/*L*/"See :help privacy for the following:"} disabled="true" style="font-style: italic; font-weight: bold;"/>
|
||||
{
|
||||
template.map(ourItems(), function ([item, desc])
|
||||
<listitem xmlns={XUL} type="checkbox"
|
||||
@@ -343,16 +343,18 @@ var Sanitizer = Module("sanitizer", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakRef
|
||||
deny: 2,
|
||||
session: 8
|
||||
},
|
||||
|
||||
UNPERMS: Class.memoize(function () iter(this.PERMS).map(Array.reverse).toObject()),
|
||||
|
||||
COMMANDS: {
|
||||
unset: "Unset",
|
||||
allow: "Allowed",
|
||||
deny: "Denied",
|
||||
session: "Allowed for the current session",
|
||||
list: "List all cookies for domain",
|
||||
clear: "Clear all cookies for domain",
|
||||
"clear-persistent": "Clear all persistent cookies for domain",
|
||||
"clear-session": "Clear all session cookies for domain"
|
||||
unset: /*L*/"Unset",
|
||||
allow: /*L*/"Allowed",
|
||||
deny: /*L*/"Denied",
|
||||
session: /*L*/"Allowed for the current session",
|
||||
list: /*L*/"List all cookies for domain",
|
||||
clear: /*L*/"Clear all cookies for domain",
|
||||
"clear-persistent": /*L*/"Clear all persistent cookies for domain",
|
||||
"clear-session": /*L*/"Clear all session cookies for domain"
|
||||
},
|
||||
|
||||
argPrefMap: {
|
||||
|
||||
@@ -321,9 +321,9 @@ var File = Class("File", {
|
||||
*/
|
||||
iterDirectory: function () {
|
||||
if (!this.exists())
|
||||
throw Error("File does not exist");
|
||||
throw Error(/*L*/"File does not exist");
|
||||
if (!this.isDirectory())
|
||||
throw Error("Not a directory");
|
||||
throw Error(/*L*/"Not a directory");
|
||||
for (let file in iter(this.directoryEntries))
|
||||
yield File(file);
|
||||
},
|
||||
@@ -362,7 +362,7 @@ var File = Class("File", {
|
||||
*/
|
||||
readDirectory: function (sort) {
|
||||
if (!this.isDirectory())
|
||||
throw Error("Not a directory");
|
||||
throw Error(/*L*/"Not a directory");
|
||||
|
||||
let array = [e for (e in this.iterDirectory())];
|
||||
if (sort)
|
||||
@@ -515,7 +515,7 @@ var File = Class("File", {
|
||||
DoesNotExist: function (path, error) ({
|
||||
path: path,
|
||||
exists: function () false,
|
||||
__noSuchMethod__: function () { throw error || Error("Does not exist"); }
|
||||
__noSuchMethod__: function () { throw error || Error(/*L*/"Does not exist"); }
|
||||
}),
|
||||
|
||||
defaultEncoding: "UTF-8",
|
||||
|
||||
@@ -312,9 +312,9 @@ var Styles = Module("Styles", {
|
||||
<tr highlight="Title">
|
||||
<td/>
|
||||
<td/>
|
||||
<td style="padding-right: 1em;">Name</td>
|
||||
<td style="padding-right: 1em;">Filter</td>
|
||||
<td style="padding-right: 1em;">CSS</td>
|
||||
<td style="padding-right: 1em;"><!--L-->Name</td>
|
||||
<td style="padding-right: 1em;"><!--L-->Filter</td>
|
||||
<td style="padding-right: 1em;"><!--L-->CSS</td>
|
||||
</tr>
|
||||
<col style="min-width: 4em; padding-right: 1em;"/>
|
||||
<col style="min-width: 1em; text-align: center; color: red; font-weight: bold;"/>
|
||||
@@ -377,8 +377,8 @@ var Styles = Module("Styles", {
|
||||
context.fork("current", 0, this, function (context) {
|
||||
context.title = ["Current Site"];
|
||||
context.completions = [
|
||||
[content.location.host, "Current Host"],
|
||||
[content.location.href, "Current URL"]
|
||||
[content.location.host, /*L*/"Current Host"],
|
||||
[content.location.href, /*L*/"Current URL"]
|
||||
];
|
||||
});
|
||||
}
|
||||
@@ -389,7 +389,7 @@ var Styles = Module("Styles", {
|
||||
context.generate = function () values(group.sites);
|
||||
|
||||
context.keys.text = util.identity;
|
||||
context.keys.description = function (site) this.sheets.length + " sheet" + (this.sheets.length == 1 ? "" : "s") + ": " +
|
||||
context.keys.description = function (site) this.sheets.length + /*L*/" sheet" + (this.sheets.length == 1 ? "" : "s") + ": " +
|
||||
array.compact(this.sheets.map(function (s) s.name)).join(", ");
|
||||
context.keys.sheets = function (site) group.sheets.filter(function (s) s.sites.indexOf(site) >= 0);
|
||||
context.keys.active = function (site) uris.some(Styles.matchFilter(site));
|
||||
@@ -434,7 +434,7 @@ var Styles = Module("Styles", {
|
||||
for (let item in Iterator({ Active: true, Inactive: false })) {
|
||||
let [name, active] = item;
|
||||
context.split(name, null, function (context) {
|
||||
context.title[0] = name + " " + (title || "Sheets");
|
||||
context.title[0] = /*L*/name + " " + (title || "Sheets");
|
||||
context.filters.push(function (item) !!item.active == active);
|
||||
});
|
||||
}
|
||||
@@ -584,7 +584,9 @@ var Styles = Module("Styles", {
|
||||
}
|
||||
else if (args.completeArg == 1) {
|
||||
if (sheet)
|
||||
context.completions = [[sheet.css, "Current Value"]];
|
||||
context.completions = [
|
||||
[sheet.css, _("option.currentValue")]
|
||||
];
|
||||
context.fork("css", 0, modules.completion, "css");
|
||||
}
|
||||
},
|
||||
|
||||
@@ -363,7 +363,9 @@ var Template = Module("Template", {
|
||||
// <e4x>
|
||||
return <table>
|
||||
<tr style="text-align: left;" highlight="Title">
|
||||
<th colspan="2">jump</th><th>title</th><th>URI</th>
|
||||
<th colspan="2"><!--L-->Jump</th>
|
||||
<th><!--L-->Title</th>
|
||||
<th><!--L-->URI</th>
|
||||
</tr>
|
||||
{
|
||||
this.map(Iterator(elems), function ([idx, val])
|
||||
@@ -494,7 +496,7 @@ var Template = Module("Template", {
|
||||
let (name = item.name || item.names[0], frame = item.definedAt)
|
||||
!frame ? name :
|
||||
template.helpLink(help(item), name, "Title") +
|
||||
<span highlight="LinkInfo" xmlns:dactyl={NS}>Defined at {sourceLink(frame)}</span>
|
||||
<span highlight="LinkInfo" xmlns:dactyl={NS}><!--L-->Defined at {sourceLink(frame)}</span>
|
||||
}</span>
|
||||
</td>
|
||||
{ item.columns ? template.map(item.columns, function (c) <td>{c}</td>) : "" }
|
||||
|
||||
@@ -309,7 +309,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
|
||||
}
|
||||
else if (char === "]") {
|
||||
stack.pop();
|
||||
util.assert(stack.length, "Unmatched %] in format");
|
||||
util.assert(stack.length, /*L*/"Unmatched %] in format");
|
||||
}
|
||||
else {
|
||||
let quote = function quote(obj, char) obj[char];
|
||||
@@ -328,7 +328,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
|
||||
if (end < format.length)
|
||||
stack.top.elements.push(format.substr(end));
|
||||
|
||||
util.assert(stack.length === 1, "Unmatched %[ in format");
|
||||
util.assert(stack.length === 1, /*L*/"Unmatched %[ in format");
|
||||
return stack.top;
|
||||
},
|
||||
|
||||
@@ -375,7 +375,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
|
||||
}
|
||||
else if (close) {
|
||||
stack.pop();
|
||||
util.assert(stack.length, "Unmatched %] in macro");
|
||||
util.assert(stack.length, /*L*/"Unmatched %] in macro");
|
||||
}
|
||||
else {
|
||||
let [, flags, name] = /^((?:[a-z]-)*)(.*)/.exec(macro);
|
||||
@@ -402,7 +402,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
|
||||
if (end < macro.length)
|
||||
stack.top.elements.push(macro.substr(end));
|
||||
|
||||
util.assert(stack.length === 1, "Unmatched <{ in macro");
|
||||
util.assert(stack.length === 1, /*L*/"Unmatched <{ in macro");
|
||||
return stack.top;
|
||||
},
|
||||
|
||||
@@ -759,12 +759,12 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
|
||||
[hours, minutes] = div(minutes, 60);
|
||||
[days, hours] = div(hours, 24);
|
||||
if (days)
|
||||
return days + " days " + hours + " hours"
|
||||
return /*L*/days + " days " + hours + " hours"
|
||||
if (hours)
|
||||
return hours + "h " + minutes + "m";
|
||||
return /*L*/hours + "h " + minutes + "m";
|
||||
if (minutes)
|
||||
return minutes + ":" + pad(2, seconds);
|
||||
return seconds + "s";
|
||||
return /*L*/minutes + ":" + pad(2, seconds);
|
||||
return /*L*/seconds + "s";
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user