New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

grunt-wording

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

grunt-wording - npm Package Compare versions

Comparing version 0.1.0 to 0.1.1

test/templates/file.ejs

2

Gruntfile.js
/*
* grunt-wording
* https://github.com/pix/grunt-contrib-wording
* https://github.com/P1X3L/grunt-wording
*

@@ -5,0 +5,0 @@ * Copyright (c) 2013 pxceccaldi

{
"name": "grunt-wording",
"description": "The best Grunt plugin ever.",
"version": "0.1.0",
"homepage": "https://github.com/pix/grunt-contrib-wording",
"version": "0.1.1",
"homepage": "https://github.com/P1X3L/grunt-wording",
"author": {

@@ -12,6 +12,6 @@ "name": "pxceccaldi",

"type": "git",
"url": "git://github.com/pix/grunt-contrib-wording.git"
"url": "git://github.com/pix/grunt-wording.git"
},
"bugs": {
"url": "https://github.com/pix/grunt-contrib-wording/issues"
"url": "https://github.com/P1X3L/grunt-wording/issues"
},

@@ -21,3 +21,3 @@ "licenses": [

"type": "MIT",
"url": "https://github.com/pix/grunt-contrib-wording/blob/master/LICENSE-MIT"
"url": "https://github.com/P1X3L/grunt-wording/blob/master/LICENSE-MIT"
}

@@ -44,2 +44,2 @@ ],

]
}
}
# grunt-wording
> The best Grunt plugin ever.
> A grunt plugin to help you auto generate wordings in your application.

@@ -14,3 +14,3 @@ ## Getting Started

One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

@@ -29,8 +29,9 @@ ```js

wording: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
compiled {
options: {
// Task-specific options go here.
},
src: [// Add the paths to the files you want the grunt-wording plugin to treat ],
dest: // Destination of compiled files goes here.
}
},

@@ -42,14 +43,36 @@ })

#### options.delimiters
Type: Table
Default value: ['{%', '%}']
A table that is used to set your opening and closing delimiters to add a
wording key in your file.
#### options.sharedPrefix
Type: `String`
Default value: `mutual`
A string that is used to set a prefix in your wording key to deal with
the repeated wordings in your app.
#### options.separator
Type: `String`
Default value: `', '`
Default value: `.`
A string value that is used to do something with whatever.
A string that is used to separate the sharedPrefix from your wording
key.
#### options.punctuation
#### options.wording
Type: `String`
Default value: `'.'`
A string value that is used to do something else with whatever else.
!! WARNING !! This isn't an option, it is a REQUIRED value. It is the path you want your wording.json to be generated.
#### options.rootPapayawhip
Type: Integer
Default value: 0
### Usage Examples

@@ -56,0 +79,0 @@

/*
* grunt-wording
* https://github.com/pix/grunt-contrib-wording
* https://github.com/P1X3L/grunt-wording
*

@@ -14,127 +14,126 @@ * Copyright (c) 2013 pxceccaldi

module.exports = function(grunt) {
var _ = grunt.util._,
options,
data,
shared,
fullPrefix;
// Please see the Grunt documentation for more information regarding task
// creation: http://gruntjs.com/creating-tasks
function isEmptyFile(filePath) {
return !grunt.file.exists(filePath) || !grunt.file.read(filePath).trim().length;
}
grunt.registerMultiTask('wording', 'Create your wording translations file', function() {
function hasWording(fileContent) {
return (getFileKeys(fileContent).filter(function(key) {
return (key.indexOf(fullPrefix) !== 0);
}).length > 0);
}
// Merge task-specific and/or target-specific options with these defaults.
function getFileKeys(fileContent) {
var keys = [], a;
while (a = _.templateSettings.interpolate.exec(fileContent)) {
keys.push(a[1].trim());
}
return keys.sort();
}
var options = this.options({
delimiters: ['{%','%}'],
sharedPrefix: "mutual",
separator: '.',
wording: 'test/wording.json',
rootPapayawhip: 0
function createWording(filePath, fileContent) {
var keys = getFileKeys(fileContent);
var removeExtension = filePath.replace(path.extname(filePath), '');
var splitPath = removeExtension.split(path.sep).slice(options.rootPapayawhip);
// Build nested object using the filepath until filename
var builder = data;
splitPath.forEach(function(dir) {
if (!builder[dir]) {
builder[dir] = {};
grunt.log.ok('Add file or directory ' + dir);
}
builder = builder[dir];
});
var delimiters = options.delimiters;
var sharedPrefix = options.sharedPrefix;
var fullPrefix = options.sharedPrefix + options.separator;
// Build file object with keys
var created = [];
keys.forEach(function(key) {
if (key.indexOf(fullPrefix) !== 0) {
if (typeof builder[key] !== 'undefined') { return; }
builder[key] = '';
created.push(key);
} else {
key = key.replace(fullPrefix, '');
if (typeof shared[key] !== 'undefined') { return; }
shared[key] = '';
created.push(fullPrefix + key);
}
});
// Generate RegExp patterns dynamically.
var a = delimiters[0].replace(/(.)/g, '\\$1');
var b = '([\\s\\S]+?)' + delimiters[1].replace(/(.)/g, '\\$1');
var templateSettings = {
evaluate: new RegExp(a + b, 'g'),
interpolate: new RegExp(a + '=' + b, 'g'),
escape: new RegExp(a + '-' + b, 'g')
};
var interpolate = templateSettings.interpolate;
function isEmptyFile(filepath) {
return grunt.file.read(filepath).trim().length === 0;
// Non used keys
var diff = _.difference(Object.keys(builder), keys);
if (diff.length > 0) {
grunt.log.errorlns('Unused key(s) ' + grunt.log.wordlist(diff, { color: 'red' }) + ' for ' + filePath);
}
var data;
if (!grunt.file.exists(options.wording) || isEmptyFile(options.wording)) {
data = {};
} else {
data = JSON.parse(grunt.file.read(options.wording));
// Created keys
if (created.length > 0) {
grunt.log.oklns('Created key(s) ' + grunt.log.wordlist(created, { color: 'green' }) + ' for ' + filePath);
}
function getFileKeys(file) {
var keys = [], a;
while (a = interpolate.exec(file)) {
keys.push(a[1].trim());
}
return keys;
if (created.length || diff.length) {
grunt.log.writeln();
}
function template(filepath) {
var fileContent = grunt.file.read(filepath);
return _.clone(builder);
}
var keys = getFileKeys(fileContent).sort();
function template(filePath) {
var fileContent = grunt.file.read(filePath);
// Replace keys in templates with their associated wordings
try {
var templateData = hasWording(fileContent) ? createWording(filePath, fileContent) : {};
templateData[options.sharedPrefix] = shared;
var getExtension = path.extname(filepath);
var removeExtension = filepath.replace(getExtension, '');
var splitPath = removeExtension.split(path.sep).slice(options.rootPapayawhip);
var compiled = _.template(fileContent, templateData);
var dest = path.join(this.data.dest, filePath);
var builder = data;
grunt.verbose.write('Creating template ' + dest + '...');
grunt.file.write(dest, compiled);
grunt.verbose.ok();
} catch (e) {
grunt.verbose.error();
grunt.log.errorlns(e);
grunt.fail.warn('Error while templating ' + filePath);
}
}
// force creation of a "mutual" object to centralize shared wordings
data[sharedPrefix] = data[sharedPrefix] || {};
grunt.registerMultiTask('wording', 'Create your wording translations file', function() {
options = this.options({
delimiters: 'config',
sharedPrefix: 'mutual',
wording: 'wording/wording.json',
rootPapayawhip: 0
});
// Build nested object using the filepath until filename
for (var i = 0; i < splitPath.length; i++ ) {
builder[splitPath[i]] = builder[splitPath[i]] || {};
builder = builder[splitPath[i]];
}
grunt.template.setDelimiters(options.delimiters);
// Build file object with keys
for (i = 0; i < keys.length; i++) {
if (keys[i].indexOf(fullPrefix) !== 0 ) {
builder[keys[i]] = builder[keys[i]] || '';
} else {
var key = keys[i].replace(fullPrefix, '');
data[sharedPrefix][key] = data[sharedPrefix][key] || '';
}
}
var templateData = grunt.util._.clone(builder);
templateData[sharedPrefix] = data[sharedPrefix];
if (isEmptyFile(options.wording)) {
data = {};
} else {
data = JSON.parse(grunt.file.read(options.wording));
}
//errors
var errors = grunt.util._.difference(Object.keys(builder), keys);
if (errors.length > 0) {
grunt.log.warn('This or these key(s) ' + errors.join(', ') + " in " + (filepath) + ' are not used.');
}
// full prefix with a dot at the end (i.e. "mutual.")
fullPrefix = options.sharedPrefix + '.';
// Create and fill wording.json
grunt.file.write(options.wording, JSON.stringify(data, null, 2));
// force creation of a "mutual" object to centralize shared wordings
shared = data[options.sharedPrefix] = data[options.sharedPrefix] || {};
// Replace keys in templates with their associated wordings
try {
var compiled = grunt.util._.template(fileContent, templateData, templateSettings);
grunt.file.write(path.join(this.data.dest, filepath), compiled);
}
catch (e) {
grunt.log.warn('Error while templating ' + filepath);
grunt.log.warn(e);
}
}
// Iterate over all specified file groups.
this.files.forEach(function(f) {
// Concat specified files.
var src = f.src.sort().filter(function(filepath) {
// Warn on and remove invalid source files (if nonull was set).
if (!grunt.file.exists(filepath)) {
grunt.log.warn('Source file "' + filepath + '" not found.');
return false;
} else {
return true;
}
}).filter(function(filepath){
var fileContent = grunt.file.read(filepath);
var keys = getFileKeys(fileContent);
if(keys.length === 0) {
return false;
} else {
return true;
}
}).map(template, this);
this.files.forEach(function(file) {
file.src.sort().map(template, this);
}, this);
// Create and fill wording.json
grunt.log.write('Writing ' + options.wording + '...')
grunt.file.write(options.wording, JSON.stringify(data, null, 2));
grunt.log.ok();
});
};
{
"mutual": {
"cancel": "",
"continue": "",
"default": "",
"help": "",
"retry": "",
"close": "",
"access": "",
"validate": "",
"stop": "",
"restart": "",
"params": "",
"pending_update": "",
"update": "",
"connect": "",
"modify": "",
"estimated_time": "",
"pending_storage_init": "",
"reboot": "",
"parental": ""
"restart": ""
},
"templates": {
"block": {
"full": {
"papapapapayaaaaaa": ""
}
"file": {
"message1": "",
"messageun": "",
"messagepour": ""
},
"configs": {
"ethernet": {
"advanced": {
"dns1": "",
"dns2": "",
"gate": "",
"ipv4": "",
"mask": "",
"post.internet.ethernet.menu.advanced": ""
},
"fail": {
"post.internet.ethernet.fail.title": ""
},
"selection": {
"description": "",
"post.internet.ethernet.menu.advanced": "",
"post.internet.ethernet.menu.simple": "",
"post.internet.ethernet.simple.description": "",
"post.internet.menu.ethernet": ""
},
"success": {
"post.internet.ethernet.success.p1": "",
"post.internet.ethernet.success.title": ""
},
"warning": {
"post.internet.ethernet.menu.advanced": "",
"warning": ""
}
},
"index": {
"post.settings.infos.description": "",
"post.settings.menu.infos": "",
"post.settings.menu.mybox": "",
"post.settings.menu.myservices": "",
"post.settings.menu.tvsettings": "",
"post.settings.mybox.description": "",
"post.settings.myservices.description": "",
"post.settings.tvsettings.description": ""
},
"infos": {
"access": {
"post.settings.infos.access.serial": "",
"post.settings.infos.menu.access": ""
},
"access_index": {
"post.settings.infos.access.description": ""
},
"diagnostic_index": {
"post.settings.infos.diagnostic.description": ""
},
"system": {},
"system_index": {
"post.settings.infos.system.description": ""
}
},
"interface": {
"index": {
"post.settings.tvsettings.interface.terminal": "",
"post.settings.tvsettings.interface.zapbande": "",
"post.settings.tvsettings.menu.interface": ""
}
},
"internet": {
"connexion": {
"post.internet.connexion.idle": "",
"post.internet.connexion.title": ""
},
"params": {
"post.internet.menu.params": "",
"post.internet.params.deactivate.description": "",
"post.internet.params.infos.description": "",
"post.internet.params.ip.description": "",
"post.internet.params.menu.deactivate": "",
"post.internet.params.menu.infos": "",
"post.internet.params.menu.ip": ""
},
"selection": {
"post.internet.ethernet.description": "",
"post.internet.menu.ethernet": "",
"post.internet.menu.wifi": "",
"post.internet.subtitle": "",
"post.internet.title": "",
"post.internet.wifi.description": ""
}
},
"parental": {
"channel_lock": {},
"selection": {
"post.settings.tvsettings.menu.parental": "",
"post.settings.tvsettings.parental.lock_channels.description": "",
"post.settings.tvsettings.parental.lock_programs.description": "",
"post.settings.tvsettings.parental.menu.lock_channels": "",
"post.settings.tvsettings.parental.menu.lock_programs": "",
"post.settings.tvsettings.parental.menu.modification": "",
"post.settings.tvsettings.parental.modification.description": ""
}
},
"satellite": {
"antenna": {
"post.settings.mybox.satellite.antenna.hint1": "",
"post.settings.mybox.satellite.antenna.hint2": "",
"post.settings.mybox.satellite.antenna.select": "",
"post.settings.mybox.satellite.antenna.title": "",
"post.settings.mybox.satellite.antenna.type": ""
},
"canal": {
"post.settings.mybox.satellite.canal.convolutive": "",
"post.settings.mybox.satellite.canal.frequency": "",
"post.settings.mybox.satellite.canal.multiplex": "",
"post.settings.mybox.satellite.canal.output": "",
"post.settings.mybox.satellite.canal.polarization": "",
"post.settings.mybox.satellite.canal.search": "",
"post.settings.mybox.satellite.menu.canal": ""
},
"fast": {
"install.mutual.steps.channels.subtitle": "",
"install.mutual.steps.satellite.subtitle": "",
"install.mutual.steps.satellite.title": "",
"install.mutual.steps.update.title": "",
"post.settings.mybox.satellite.fast.pending": "",
"post.settings.mybox.satellite.fast.result": "",
"post.settings.mybox.satellite.fast.title": ""
},
"fast_abort": {
"post.settings.mybox.satellite.fast_abort.message1": "",
"post.settings.mybox.satellite.fast_abort.message2": "",
"post.settings.mybox.satellite.mutual.channels_search": ""
},
"fast_fail": {
"post.settings.mybox.satellite.fast_fail.message1": "",
"post.settings.mybox.satellite.fast_fail.message2": "",
"post.settings.mybox.satellite.fast_fail.message3": "",
"post.settings.mybox.satellite.mutual.channels_search": ""
},
"params": {
"post.settings.mybox.satellite.menu.canal": "",
"post.settings.mybox.satellite.menu.params": "",
"post.settings.mybox.satellite.params.alim": "",
"post.settings.mybox.satellite.params.external": "",
"post.settings.mybox.satellite.params.highfreq": "",
"post.settings.mybox.satellite.params.internal": "",
"post.settings.mybox.satellite.params.lowfreq": ""
},
"pointing": {
"post.settings.mybox.satellite.menu.pointing": "",
"post.settings.mybox.satellite.pointing.subtitle": ""
},
"selection": {
"post.settings.mybox.menu.satellite": "",
"post.settings.mybox.satellite.fast.description": "",
"post.settings.mybox.satellite.menu.channels": "",
"post.settings.mybox.satellite.menu.fast": "",
"post.settings.mybox.satellite.menu.params": "",
"post.settings.mybox.satellite.menu.pointing": "",
"post.settings.mybox.satellite.menu.progressive": "",
"post.settings.mybox.satellite.menu.type": ""
},
"warning": {
"post.settings.mybox.satellite.menu.params": "",
"post.settings.mybox.satellite.params.warning": ""
}
},
"settings": {
"infos": {
"post.settings.infos.access.description": "",
"post.settings.infos.diagnostic.description": "",
"post.settings.infos.menu.access": "",
"post.settings.infos.menu.diagnostic": "",
"post.settings.infos.menu.system": "",
"post.settings.infos.system.description": ""
},
"mybox": {
"post.settings.mybox.energy.description": "",
"post.settings.mybox.hdd.description": "",
"post.settings.mybox.internet.description": "",
"post.settings.mybox.menu.energy": "",
"post.settings.mybox.menu.hdd": "",
"post.settings.mybox.menu.internet": "",
"post.settings.mybox.menu.satellite": "",
"post.settings.mybox.menu.update": "",
"post.settings.mybox.satellite.description": "",
"post.settings.mybox.update.description": ""
},
"myservices": {
"post.settings.myservices.code.description": "",
"post.settings.myservices.eureka.description": "",
"post.settings.myservices.menu.code": "",
"post.settings.myservices.menu.eureka": "",
"post.settings.myservices.menu.record": "",
"post.settings.myservices.record.description": ""
},
"tvsettings": {
"post.settings.tvsettings.audio.description": "",
"post.settings.tvsettings.image.description": "",
"post.settings.tvsettings.interface.description": "",
"post.settings.tvsettings.lang.description": "",
"post.settings.tvsettings.menu.audio": "",
"post.settings.tvsettings.menu.image": "",
"post.settings.tvsettings.menu.interface": "",
"post.settings.tvsettings.menu.lang": "",
"post.settings.tvsettings.menu.parental": "",
"post.settings.tvsettings.parental.description": ""
}
},
"update": {
"fail": {
"configs.update.fail.message1": "",
"configs.update.fail.message2": "",
"configs.update.fail.title": ""
},
"programs": {
"configs.update.programs.title": "",
"configs.update.programs.wait": ""
},
"programs_fail": {
"configs.update.programs.title": "",
"configs.update.programs_fail.message": ""
},
"programs_success": {
"configs.update.programs.title": "",
"configs.update.programs_success.message": ""
},
"reset": {
"configs.update.reset.help1": "",
"configs.update.reset.help2": "",
"configs.update.reset.menu.partial": "",
"configs.update.reset.menu.total": "",
"configs.update.reset.partial.description": "",
"configs.update.reset.title": "",
"configs.update.reset.total.description": ""
},
"selection": {
"configs.update.selection.programs_description": "",
"configs.update.selection.programs_menu": "",
"configs.update.selection.reset_description": "",
"configs.update.selection.reset_menu": "",
"configs.update.selection.system_description": "",
"configs.update.selection.system_menu": "",
"post.settings.mybox.menu.update": ""
},
"system": {
"configs.update.system.channels": "",
"configs.update.system.data": "",
"configs.update.system.rights": "",
"configs.update.system.software": "",
"configs.update.system.title": ""
}
},
"wifi": {
"advanced": {
"post.internet.wifi.advanced.auth": "",
"post.internet.wifi.advanced.key": "",
"post.internet.wifi.advanced.name": "",
"post.internet.wifi.advanced.p1": "",
"post.internet.wifi.advanced.wep": "",
"post.internet.wifi.menu.advanced": ""
},
"easy": {
"post.internet.wifi.easy.detection": "",
"post.internet.wifi.easy.p1": "",
"post.internet.wifi.menu.easy": ""
},
"fail": {
"post.internet.wifi.fail.other": "",
"post.internet.wifi.fail.p1": "",
"post.internet.wifi.fail.title": ""
},
"password": {
"post.internet.wifi.menu.simple": "",
"post.internet.wifi.password.p1": "",
"post.internet.wifi.password.placeholder": ""
},
"selection": {
"post.internet.menu.wifi": "",
"post.internet.wifi.advanced.description": "",
"post.internet.wifi.easy.description": "",
"post.internet.wifi.menu.advanced": "",
"post.internet.wifi.menu.easy": "",
"post.internet.wifi.menu.simple": "",
"post.internet.wifi.simple.description": ""
},
"simple": {
"post.internet.wifi.menu.simple": "",
"post.internet.wifi.simple.notfound": "",
"post.internet.wifi.simple.p1": "",
"post.internet.wifi.simple.p2": ""
},
"success": {
"post.internet.wifi.success.p1": "",
"post.internet.wifi.success.title": ""
}
}
},
"detail": {
"lang": {
"detail.active.fs": "",
"detail.inactive.fs": "",
"detail.none.fs": "",
"detail.none.mp": ""
}
},
"install": {
"channels": {
"failed": {
"install.channels.failed.p1": "",
"install.channels.failed.p2": "",
"install.channels.failed.p3": "",
"install.channels.failed.title": ""
},
"result": {
"install.channels.result.continue": "",
"install.channels.result.found": "",
"install.channels.result.title": ""
},
"scan": {
"install.scan.search": ""
},
"show": {
"install.channels.show.p1": "",
"install.channels.show.title": ""
}
},
"internet": {
"container": {
"install.internet.help": "",
"install.internet.p1": "",
"install.internet.p2": "",
"install.internet.title": "",
"install.mutual.nextStep": ""
},
"failed": {
"install.internet.failed.retry": "",
"install.internet.failed.title": ""
}
},
"parental": {
"container": {
"install.mutual.nextStep": "",
"install.parental.hint0000": "",
"install.parental.hintEqual": "",
"install.parental.p1": "",
"install.parental.repeatLabel": "",
"install.parental.secretLabel": "",
"install.parental.title": ""
},
"honor": {
"install.parental.honor.hint": "",
"install.parental.honor.label": "",
"install.parental.honor.p1": "",
"install.parental.honor.title": ""
},
"success": {
"install.mutual.nextStep": "",
"install.parental.success.header": "",
"install.parental.success.p1": "",
"install.parental.success.title": ""
}
},
"report": {
"container": {
"install.report.access": "",
"install.report.active.f": "",
"install.report.active.m": "",
"install.report.channels.installed": "",
"install.report.channels.see": "",
"install.report.fail": "",
"install.report.footer": "",
"install.report.internet.connexion": "",
"install.report.none.f": "",
"install.report.none.m": "",
"install.report.ok": "",
"install.report.parental": "",
"install.report.storage.init": "",
"install.report.storage.title": "",
"install.report.success": "",
"install.report.title": ""
}
},
"satellite": {
"failed": {
"install.satellite.p1": "",
"install.satellite.p2": "",
"install.satellite.p3": "",
"install.satellite.title": ""
},
"scan": {
"install.scan.search": "",
"install.scan.title": ""
}
},
"shared": {
"steps": {
"install.mutual.steps.access.subtitle": "",
"install.mutual.steps.access.title": "",
"install.mutual.steps.cache.subtitle": "",
"install.mutual.steps.cache.title": "",
"install.mutual.steps.channels.subtitle": "",
"install.mutual.steps.channels.title": "",
"install.mutual.steps.internet.subtitle": "",
"install.mutual.steps.internet.title": "",
"install.mutual.steps.parental.subtitle": "",
"install.mutual.steps.parental.title": "",
"install.mutual.steps.satellite.subtitle": "",
"install.mutual.steps.satellite.title": "",
"install.mutual.steps.storage.subtitle": "",
"install.mutual.steps.storage.title": "",
"install.mutual.steps.update.subtitle": "",
"install.mutual.steps.update.title": ""
}
},
"storage": {
"container": {
"install.storage.detect.p1": "",
"install.storage.title": ""
},
"fail": {
"install.storage.initialize.failed.p1": ""
},
"fail_footer": {
"install.mutual.nextStep": ""
},
"found": {
"install.storage.result.found.p1": "",
"install.storage.result.found.p2": "",
"install.storage.result.found.p3": ""
},
"found_footer": {
"install.mutual.nextStep": "",
"install.storage.initStorage": ""
},
"initialize": {
"install.storage.initialize.p1": "",
"install.storage.initialize.timeleft": ""
},
"notfound": {
"install.storage.result.notfound.p1": "",
"install.storage.result.notfound.p2": ""
},
"notfound_footer": {
"install.mutual.nextStep": ""
},
"result": {
"install.storage.title": ""
}
},
"update": {
"container": {
"install.update.new_update": "",
"install.update.restart": "",
"install.update.title": ""
}
},
"welcome": {
"install.welcome.advanced": "",
"install.welcome.description": "",
"install.welcome.simple": "",
"install.welcome.title": "",
"install.welcome.warning": ""
}
},
"pvr": {
"play": {
"pvr.play.title": ""
},
"popup_record_error": {
"pvr.popup_record_error.message": "",
"pvr.popup_record_error.solution": ""
},
"record": {
"pvr.record.beginning": "",
"pvr.record.diffusion": "",
"pvr.record.end": "",
"pvr.record.protect": "",
"pvr.record.title": ""
},
"stop": {
"pvr.stop.content": "",
"pvr.stop.title": ""
},
"storage": {
"collision": {
"pvr.mutual.hdd": "",
"pvr.storage.collision.message1": "",
"pvr.storage.collision.message2": ""
},
"disconnect": {
"pvr.mutual.hdd": "",
"pvr.storage.disconnect.message": ""
},
"infos": {
"pvr.storage.infos.available_protected": "",
"pvr.storage.infos.available_storage": "",
"pvr.storage.infos.connected": "",
"pvr.storage.infos.message1": "",
"pvr.storage.infos.message2": "",
"pvr.storage.infos.name": "",
"pvr.storage.infos.status": "",
"pvr.storage.infos.title": ""
},
"infos_prev": {
"pvr.storage.infos.available_protected": "",
"pvr.storage.infos.available_storage": "",
"pvr.storage.infos.connected": "",
"pvr.storage.infos.name": "",
"pvr.storage.infos.preview": "",
"pvr.storage.infos.status": ""
},
"init_fail": {
"pvr.mutual.hdd_init": "",
"pvr.storage.init_fail.message": ""
},
"init_pending": {
"pvr.mutual.hdd_init": ""
},
"init_required": {
"pvr.mutual.hdd": "",
"pvr.storage.init_required.message1": "",
"pvr.storage.init_required.message2": ""
},
"init_success": {
"pvr.mutual.hdd_init": "",
"pvr.storage.init_success.message": ""
},
"init_warning": {
"pvr.mutual.hdd_init": "",
"pvr.storage.init_warning.message": ""
},
"memory_fail": {
"pvr.mutual.hdd": "",
"pvr.storage.memory_fail.message": ""
},
"play_warning": {
"pvr.mutual.hdd_disconnect": "",
"pvr.storage.play_warning.message": ""
},
"popup_connect": {
"pvr.storage.popup_connect.message": ""
},
"popup_disconnect": {
"pvr.storage.popup_disconnect.message": ""
},
"reboot_required": {
"pvr.mutual.hdd": "",
"pvr.storage.reboot_required.message": ""
},
"record_play_warning": {
"pvr.mutual.hdd_disconnect": "",
"pvr.storage.record_play_warning.message": ""
},
"record_timeshift_warning": {
"pvr.mutual.hdd_disconnect": "",
"pvr.storage.record_timeshift_warning.message": ""
},
"record_warning": {
"pvr.mutual.hdd_disconnect": "",
"pvr.storage.record_warning.message": ""
},
"required": {
"pvr.mutual.hdd": "",
"pvr.storage.required.message": ""
},
"timeshift_warning": {
"pvr.mutual.hdd": "",
"pvr.storage.timeshift_warning.message1": "",
"pvr.storage.timeshift_warning.message2": ""
},
"unknown": {
"pvr.mutual.hdd": "",
"pvr.storage.unknown.message": ""
},
"unmount": {
"pvr.mutual.hdd": "",
"pvr.storage.unmount.info": "",
"pvr.storage.unmount.message": ""
}
}
},
"shared": {
"codes": {
"channel_auth": {
"shared.codes.mutual.parental_title": "",
"shared.codes.parental_auth.error": "",
"shared.codes.parental_auth.insert": "",
"shared.codes.parental_auth.wrong": ""
},
"parental_auth": {
"shared.codes.mutual.parental_title": "",
"shared.codes.parental_auth.error": "",
"shared.codes.parental_auth.insert": "",
"shared.codes.parental_auth.wrong": ""
},
"parental_auth_fail": {
"shared.codes.mutual.parental_title": "",
"shared.codes.parental_auth_fail.paragraph1": "",
"shared.codes.parental_auth_fail.paragraph2": ""
}
},
"errors": {
"card_insertion": {
"shared.errors.card_insertion.image": "",
"shared.errors.card_insertion.message": "",
"shared.errors.card_insertion.title": ""
},
"connexion": {
"shared.errors.connexion.message": "",
"shared.errors.connexion.title": ""
},
"csa": {
"shared.errors.csa.hint": "",
"shared.errors.csa.message": ""
},
"locked_channel": {
"shared.errors.locked_channel.message": ""
},
"locked_csa": {
"shared.errors.locked_csa.entercode": "",
"shared.errors.locked_csa.message": ""
},
"locked_program": {
"shared.errors.locked_program.message": ""
},
"unauthorized_channel": {
"shared.errors.mutual.unauthorized_action": "",
"shared.errors.mutual.unauthorized_more": "",
"shared.errors.unauthorized_channel.message": ""
},
"unauthorized_program": {
"shared.errors.mutual.unauthorized_action": "",
"shared.errors.mutual.unauthorized_more": "",
"shared.errors.unauthorized_program.message": ""
},
"update_access": {
"shared.errors.update_access.message": "",
"shared.errors.update_access.title": ""
}
},
"popup": {
"battery": {
"shared.popup.battery.message": ""
}
}
},
"ssu": {
"reboot": {
"reboot.message": "",
"reboot.title": ""
}
"tester": {
"message1": "",
"message2": "",
"message3": "",
"message4": "",
"message5": "",
"message6": ""
}
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc