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

hexo-i18n

Package Overview
Dependencies
Maintainers
8
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hexo-i18n - npm Package Compare versions

Comparing version 0.2.1 to 1.0.0

105

lib/i18n.js
'use strict';
var vsprintf = require('sprintf-js').vsprintf;
const { vsprintf } = require('sprintf-js');
function i18n(options){
/* jshint validthis: true */
options = options || {};
function i18n(options = {}) {
this.data = {};
this.languages = options.languages || ['default'];
if (!Array.isArray(this.languages)){
if (!Array.isArray(this.languages)) {
this.languages = [this.languages];

@@ -17,9 +14,8 @@ }

i18n.prototype.get = function(languages){
var data = this.data;
var result = {};
var lang, langData, keys, key, i, leni, j, lenj;
i18n.prototype.get = function(languages) {
const { data } = this;
const result = {};
if (languages){
if (!Array.isArray(languages)){
if (languages) {
if (!Array.isArray(languages)) {
languages = [languages];

@@ -31,12 +27,12 @@ }

for (i = 0, leni = languages.length; i < leni; i++){
lang = languages[i];
langData = data[lang];
for (let i = 0, leni = languages.length; i < leni; i++) {
const lang = languages[i];
const langData = data[lang];
if (!langData) continue;
keys = Object.keys(langData);
const keys = Object.keys(langData);
for (j = 0, lenj = keys.length; j < lenj; j++){
key = keys[j];
if (!result.hasOwnProperty(key)) result[key] = langData[key];
for (let j = 0, lenj = keys.length; j < lenj; j++) {
const key = keys[j];
if (!Object.prototype.hasOwnProperty.call(result, key)) result[key] = langData[key];
}

@@ -48,3 +44,3 @@ }

i18n.prototype.set = function(lang, data){
i18n.prototype.set = function(lang, data) {
if (typeof lang !== 'string') throw new TypeError('lang must be a string!');

@@ -58,3 +54,3 @@ if (typeof data !== 'object') throw new TypeError('data is required!');

i18n.prototype.remove = function(lang){
i18n.prototype.remove = function(lang) {
if (typeof lang !== 'string') throw new TypeError('lang must be a string!');

@@ -67,19 +63,14 @@

i18n.prototype.list = function(){
i18n.prototype.list = function() {
return Object.keys(this.data);
};
function flattenObject(data, obj, parent){
obj = obj || {};
parent = parent || '';
function flattenObject(data, obj = {}, parent = '') {
const keys = Object.keys(data);
var keys = Object.keys(data);
var key = '';
var item;
for (let i = 0, len = keys.length; i < len; i++) {
const key = keys[i];
const item = data[key];
for (var i = 0, len = keys.length; i < len; i++){
key = keys[i];
item = data[key];
if (typeof item === 'object'){
if (typeof item === 'object') {
flattenObject(item, obj, parent + key + '.');

@@ -94,18 +85,10 @@ } else {

i18n.prototype.__ = function(lang){
var data = this.get(lang);
i18n.prototype.__ = function(lang) {
const data = this.get(lang);
return function(){
var len = arguments.length;
if (!len) return '';
return (key, ...args) => {
if (!key) return '';
var args = new Array(len);
const str = data[key] || key;
for (var i = 0; i < len; i++){
args[i] = arguments[i];
}
var key = args.shift();
var str = data[key] || key;
return vsprintf(str, args);

@@ -115,26 +98,18 @@ };

i18n.prototype._p = function(lang){
var data = this.get(lang);
i18n.prototype._p = function(lang) {
const data = this.get(lang);
return function(){
var len = arguments.length;
if (!len) return '';
return (key, ...args) => {
if (!key) return '';
var args = new Array(len);
const number = args.length ? +args[0] : 0;
let str = key;
for (var i = 0; i < len; i++){
args[i] = arguments[i];
}
var key = args.shift();
var number = args.length ? +args[0] : 0;
var str = key;
if (!number && data.hasOwnProperty(key + '.zero')){
if (!number && Object.prototype.hasOwnProperty.call(data, key + '.zero')) {
str = data[key + '.zero'];
} else if (number === 1 && data.hasOwnProperty(key + '.one')){
} else if (number === 1 && Object.prototype.hasOwnProperty.call(data, key + '.one')) {
str = data[key + '.one'];
} else if (data.hasOwnProperty(key + '.other')){
} else if (Object.prototype.hasOwnProperty.call(data, key + '.other')) {
str = data[key + '.other'];
} else if (data.hasOwnProperty(key)){
} else if (Object.prototype.hasOwnProperty.call(data, key)) {
str = data[key];

@@ -147,2 +122,2 @@ }

module.exports = i18n;
module.exports = i18n;
{
"name": "hexo-i18n",
"version": "0.2.1",
"version": "1.0.0",
"description": "i18n module for Hexo.",
"main": "lib/i18n",
"main": "lib/i18n.js",
"scripts": {
"test": "gulp test"
"eslint": "eslint .",
"test": "mocha test/index.js",
"test-cov": "nyc npm run test"
},

@@ -12,4 +14,7 @@ "directories": {

},
"files": [
"lib/"
],
"engines": {
"node": ">= 0.10.0"
"node": ">=8.6.0"
},

@@ -26,16 +31,11 @@ "repository": "hexojs/hexo-i18n",

"dependencies": {
"sprintf-js": "^1.0.2"
"sprintf-js": "^1.0.3"
},
"devDependencies": {
"chai": "^1.9.1",
"coveralls": "^2.11.2",
"gulp": "^3.8.9",
"gulp-istanbul": "^0.5.0",
"gulp-jshint": "^1.8.6",
"gulp-load-plugins": "^0.7.0",
"gulp-mocha": "^2.0.0",
"jshint-stylish": "^1.0.0",
"mocha": "^2.0.1",
"rimraf": "^2.2.8"
"chai": "^4.2.0",
"eslint": "^6.1.0",
"eslint-config-hexo": "^3.0.0",
"mocha": "^6.0.2",
"nyc": "^14.1.1"
}
}
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