UNPKG

@eternalheart/ngx-file-preview

Version:

A powerful Angular file preview component library supporting multiple file formats including images, videos, PDFs, Office documents, text files and more.

57 lines 5.81 kB
import ZH from "../../assets/i18n/zh.json"; import EN from "../../assets/i18n/en.json"; const LangMapping = { 'zh': ZH, }; export const I18nUtils = { /** * 获取语言包 * @param locale */ get(locale) { return new I18nParser(locale || 'zh'); }, /** * 注册语言包 */ register(locale, langJson) { LangMapping[locale] = langJson; } }; /** * 注册使用示例 */ I18nUtils.register('en', EN); /** * 单例模式优化语言包的获取 单个语言只会创建一个语言转化实例 */ class I18nParser { static { this.InstanceMap = {}; } constructor(locale) { this.locale = 'zh'; this.locale = locale; if (I18nParser.InstanceMap[locale]) return I18nParser.InstanceMap[locale]; I18nParser.InstanceMap[locale] = this; } // 翻译 t(key, ...args) { const translated = I18nParser.getValue(LangMapping[this.locale], key); if (args.length > 0) return translated.replace(/\${(\d+)}/g, (match, index) => args[index]); if (translated) return translated; return key; } // 获取深层值 static getValue(data, prop) { let ps = Array.isArray(prop) ? prop : prop.split('.'); try { return ps.length == 1 ? data[ps.shift()] : I18nParser.getValue(data[ps.shift()], ps); } catch (e) { return undefined; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmd4LWZpbGUtcHJldmlldy9zcmMvbGliL2kxOG4vaTE4bi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUzQyxNQUFNLFdBQVcsR0FBd0I7SUFDdkMsSUFBSSxFQUFFLEVBQUU7Q0FDVCxDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxNQUFjO1FBQ2hCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFDRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxNQUFjLEVBQUUsUUFBbUI7UUFDMUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0NBQ0YsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFFNUI7O0dBRUc7QUFDSCxNQUFNLFVBQVU7YUFDUCxnQkFBVyxHQUErQixFQUFFLEFBQWpDLENBQWlDO0lBR25ELFlBQVksTUFBYztRQUZuQixXQUFNLEdBQVcsSUFBSSxDQUFDO1FBRzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUE7SUFDdkMsQ0FBQztJQUNELEtBQUs7SUFDRSxDQUFDLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBc0I7UUFDN0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RFLElBQUcsSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDO1lBQUUsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQVMsRUFBRSxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksVUFBVTtZQUFFLE9BQU8sVUFBVSxDQUFBO1FBQ2pDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7SUFDUixNQUFNLENBQUMsUUFBUSxDQUFDLElBQXlCLEVBQUUsSUFBdUI7UUFDaEUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQztZQUNILE9BQU8sRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBaSCBmcm9tIFwiLi4vLi4vYXNzZXRzL2kxOG4vemguanNvblwiO1xuaW1wb3J0IEVOIGZyb20gXCIuLi8uLi9hc3NldHMvaTE4bi9lbi5qc29uXCI7XG5cbmNvbnN0IExhbmdNYXBwaW5nOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAnemgnOiBaSCxcbn1cbmV4cG9ydCBjb25zdCBJMThuVXRpbHMgPSB7XG4gIC8qKlxuICAgKiDojrflj5bor63oqIDljIVcbiAgICogQHBhcmFtIGxvY2FsZVxuICAgKi9cbiAgZ2V0KGxvY2FsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBJMThuUGFyc2VyKGxvY2FsZSB8fCAnemgnKVxuICB9LFxuICAvKipcbiAgICog5rOo5YaM6K+t6KiA5YyFXG4gICAqL1xuICByZWdpc3Rlcihsb2NhbGU6IHN0cmluZywgbGFuZ0pzb246IHR5cGVvZiBaSCkge1xuICAgIExhbmdNYXBwaW5nW2xvY2FsZV0gPSBsYW5nSnNvbjtcbiAgfVxufVxuXG4vKipcbiAqIOazqOWGjOS9v+eUqOekuuS+i1xuICovXG5JMThuVXRpbHMucmVnaXN0ZXIoJ2VuJywgRU4pXG5cbi8qKlxuICog5Y2V5L6L5qih5byP5LyY5YyW6K+t6KiA5YyF55qE6I635Y+WIOWNleS4quivreiogOWPquS8muWIm+W7uuS4gOS4quivreiogOi9rOWMluWunuS+i1xuICovXG5jbGFzcyBJMThuUGFyc2VyIHtcbiAgc3RhdGljIEluc3RhbmNlTWFwOiBSZWNvcmQ8c3RyaW5nLCBJMThuUGFyc2VyPiA9IHt9XG4gIHB1YmxpYyBsb2NhbGU6IHN0cmluZyA9ICd6aCc7XG5cbiAgY29uc3RydWN0b3IobG9jYWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgIGlmIChJMThuUGFyc2VyLkluc3RhbmNlTWFwW2xvY2FsZV0pIHJldHVybiBJMThuUGFyc2VyLkluc3RhbmNlTWFwW2xvY2FsZV07XG4gICAgSTE4blBhcnNlci5JbnN0YW5jZU1hcFtsb2NhbGVdID0gdGhpc1xuICB9XG4gIC8vIOe/u+ivkVxuICBwdWJsaWMgdChrZXk6IHN0cmluZywgLi4uYXJnczooc3RyaW5nfG51bWJlcilbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IEkxOG5QYXJzZXIuZ2V0VmFsdWUoTGFuZ01hcHBpbmdbdGhpcy5sb2NhbGVdLCBrZXkpO1xuICAgIGlmKGFyZ3MubGVuZ3RoPjApIHJldHVybiB0cmFuc2xhdGVkLnJlcGxhY2UoL1xcJHsoXFxkKyl9L2csIChtYXRjaDphbnksIGluZGV4Om51bWJlcikgPT4gYXJnc1tpbmRleF0pO1xuICAgIGlmICh0cmFuc2xhdGVkKSByZXR1cm4gdHJhbnNsYXRlZFxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICAvLyDojrflj5bmt7HlsYLlgLxcbiAgc3RhdGljIGdldFZhbHVlKGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIHByb3A6IHN0cmluZyB8IHN0cmluZ1tdKTogYW55IHtcbiAgICBsZXQgcHMgPSBBcnJheS5pc0FycmF5KHByb3ApID8gcHJvcCA6IHByb3Auc3BsaXQoJy4nKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHBzLmxlbmd0aCA9PSAxID8gZGF0YVtwcy5zaGlmdCgpIV0gOiBJMThuUGFyc2VyLmdldFZhbHVlKGRhdGFbcHMuc2hpZnQoKSFdLCBwcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==