

/* sprintf clone in c++ style */
function sprintf(s) {
    var bits = s.split('%');
    var out = bits[0];
    var re = /^([ds])(.*)$/;
    for (var i=1; i<bits.length; i++) {
        p = re.exec(bits[i]);
        if (!p || arguments[i]==null) continue;
        if (p[1] == 'd') {
            out += parseInt(arguments[i], 10);
        } else if (p[1] == 's') {
            out += arguments[i];
        }
        out += p[2];
    }
    return out;
}

/* gettext clone */
function _(s) {
    if (typeof(i18n)!='undefined') {
        if (i18n.notify[s]) 
            return i18n.notify[s];
        if (i18n.shout[s]) 
            return i18n.shout[s];
        return s;
        
    }
    return s;
}
