minimfiee/hs/hsstatic/cos-i18n/static-1.53/bundles/project.js
2025-05-19 10:39:55 +08:00

55 lines
1.7 KiB
JavaScript

"use strict";
function hs_i18n_log(n) {
console.log("i18n_getmessage: " + n)
}
function hs_i18n_substituteStrings(n, e) {
var s = n.match(new RegExp("\\$[0-9]+", "g"));
if (null == s) return n;
for (var r = 0; r < s.length; r++) {
var l = s[r],
t = parseInt(l.replace("$", ""));
t <= 0 || null == e || t > e.length ? hs_i18n_log("no substitution string at index " + t + " found for string '" + n + "'") : n = n.replace(l, e[t - 1])
}
return n
}
function hs_i18n_insertPlaceholders(n, e) {
var s = n.message,
r = s.match(new RegExp("\\$\\w+\\$", "g"));
if (null == r) return s;
for (var l = 0; l < r.length; l++) {
var t = r[l],
o = t.replace(new RegExp("\\$", "g"), "").toLowerCase(),
a = n.placeholders[o];
null == a && hs_i18n_log("no placeholder found for '" + o + "'");
s = s.replace(t, a.content)
}
return (s = hs_i18n_substituteStrings(s, e)).replace(/\$\$/g, "$")
}
function hs_i18n_getMessage(n, e) {
if (null == n) {
hs_i18n_log("no messages found");
return ""
}
var s = arguments[2];
if (null == s || 0 == s.length || null == s[0]) {
hs_i18n_log("no message name passed");
return ""
}
var r = s[0],
l = e.split("-")[0],
t = n[e] || n[l];
if (null == t) {
hs_i18n_log("no messages found for language '" + e + "'");
return ""
}
var o = t[r] || n[l][r];
if (null == o) {
hs_i18n_log("no message found for language '" + e + "' named '" + r + "'");
return ""
}
return null == o.placeholders ? o.message || "" : hs_i18n_insertPlaceholders(o, s[1])
}