Skip to content

Commit

Permalink
feat(all): 主控制器部分国际化设计思想已实现
Browse files Browse the repository at this point in the history
affects: @muniz/cli-i18n, @muniz/cli, @muniz/ink-ui, @muniz/muniz-plugin-create

实现主控制器cli的多语言规划
实现插件部分多语言使用规划
以插件名称分离多语言资源冲突
  • Loading branch information
1160007652 committed Nov 6, 2020
1 parent 8211ee0 commit 35d7104
Show file tree
Hide file tree
Showing 49 changed files with 459 additions and 274 deletions.
47 changes: 25 additions & 22 deletions packages/@muniz/cli-i18n/dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,26 +26,28 @@ var Locale = /*#__PURE__*/function () {

(0, _createClass2["default"])(Locale, [{
key: "getLocale",
value: function getLocale(name, options) {
var text = this.languages[this.locale][name];

if (!text) {
return this.getLocale('language_not_found', {
name: name,
locale: this.locale
});
}

var localText = text;

if (/{.*?}/.test(localText)) {
Object.keys(options || {}).forEach(function (key) {
var reg = new RegExp("{".concat(key, "}"), 'g');
localText = localText.replace(reg, options[key]);
});
}

return localText;
value: function getLocale(scope) {
var _this = this;

return function (name, options) {
var text = _this.languages[scope][_this.locale][name];

if (!text) {
// return this.getLocale('language_not_found', { name, locale: this.locale });
return "\u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u6587\u6848 - ".concat(name);
}

var localText = text;

if (/{.*?}/.test(localText)) {
Object.keys(options || {}).forEach(function (key) {
var reg = new RegExp("{".concat(key, "}"), 'g');
localText = localText.replace(reg, options[key]);
});
}

return localText;
};
}
/**
* 设置多语言
Expand All @@ -68,8 +70,9 @@ var Locale = /*#__PURE__*/function () {
}, {
key: "setlanguages",
value: function setlanguages(_ref2) {
var languages = _ref2.languages;
this.languages = languages;
var languages = _ref2.languages,
scope = _ref2.scope;
this.languages[scope] = languages;
}
}]);
return Locale;
Expand Down
33 changes: 18 additions & 15 deletions packages/@muniz/cli-i18n/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,26 @@ class Locale {
* @param {string} name , 多语言key
* @param {*} options , 多语言替换“占位符”配置
*/
getLocale(name, options) {
const text = this.languages[this.locale][name];
getLocale(scope) {
return (name, options) => {
const text = this.languages[scope][this.locale][name];

if (!text) {
return this.getLocale('language_not_found', { name, locale: this.locale });
}
if (!text) {
// return this.getLocale('language_not_found', { name, locale: this.locale });
return `找不到对应的文案 - ${name}`;
}

let localText = text;
let localText = text;

if (/{.*?}/.test(localText)) {
Object.keys(options || {}).forEach((key) => {
const reg = new RegExp(`{${key}}`, 'g');
localText = localText.replace(reg, options[key]);
});
}
if (/{.*?}/.test(localText)) {
Object.keys(options || {}).forEach((key) => {
const reg = new RegExp(`{${key}}`, 'g');
localText = localText.replace(reg, options[key]);
});
}

return localText;
return localText;
};
}
/**
* 设置多语言
Expand All @@ -39,8 +42,8 @@ class Locale {
* @param {object}} param
* @param {object}} param.languages 多语言数据集合 ,如 {hello: '你好'}
*/
setlanguages({ languages }) {
this.languages = languages;
setlanguages({ languages, scope }) {
this.languages[scope] = languages;
}
}

Expand Down
18 changes: 5 additions & 13 deletions packages/@muniz/cli/dist/bin/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,15 @@ var _ink = require("ink");

var _CommandApp = require("../core/CommandApp");

var _locales = _interopRequireDefault(require("../configs/locales"));

var _cliI18n = _interopRequireDefault(require("@muniz/cli-i18n"));
var _i18n = _interopRequireDefault(require("../lib/i18n"));

var semver = require('semver');

var requiredVersion = require('../../package.json').engines.node;

var MunizConfig = require('../configs/system.json');
var pkgInfo = require('../../package.json');

_cliI18n["default"].setLocale({
locale: MunizConfig.languageLocale
});
var requiredVersion = pkgInfo.engines.node;

_cliI18n["default"].setlanguages({
languages: _locales["default"]
});
_i18n["default"].initI18n();
/**
*
* @param {String} wanted 设定的最小兼容版本号
Expand All @@ -36,7 +28,7 @@ _cliI18n["default"].setlanguages({

function checkNodeVersion(wanted, id) {
if (!semver.satisfies(process.version, wanted)) {
console.log(_cliI18n["default"].getLocale('check_node_version_tips', {
console.log(_i18n["default"].getLocale('check_node_version_tips', {
version: process.version,
id: id,
wanted: wanted
Expand Down
148 changes: 82 additions & 66 deletions packages/@muniz/cli/dist/command/Add/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/

var _lowdb = require("../../lib/lowdb.js");

var _cliI18n = _interopRequireDefault(require("@muniz/cli-i18n"));

var MunizConfig = require('../../configs/system.json');
var _i18n = _interopRequireDefault(require("../../lib/i18n"));

var execa = require('execa');

Expand All @@ -33,16 +31,16 @@ var ora = require('ora');

var Add = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
var input, pluginCorrectList, pluginFail, pluginSucced, spinner, _i, _pluginCorrectList, _pluginCorrectList$_i, shortName, pkgName, pluginModule, osascriptContent;
var input, pluginCorrectList, pluginFail, pluginSucced, spinner, _loop, _i, _pluginCorrectList;

return _regenerator["default"].wrap(function _callee$(_context) {
return _regenerator["default"].wrap(function _callee$(_context2) {
while (1) {
switch (_context.prev = _context.next) {
switch (_context2.prev = _context2.next) {
case 0:
input = _ref.input;

if (input.length < 1) {
console.log(_cliI18n["default"].getLocale('add_command_empty_tips'));
console.log(_i18n["default"].getLocale('add_command_empty_tips'));
process.exit();
}

Expand All @@ -62,7 +60,7 @@ var Add = /*#__PURE__*/function () {
pluginFail.push({
shortName: shortName,
pkgName: item,
tips: _cliI18n["default"].getLocale('add_command_no_plugin1')
tips: _i18n["default"].getLocale('add_command_no_plugin1')
});
} else {
pluginCorrectList.push({
Expand All @@ -72,93 +70,111 @@ var Add = /*#__PURE__*/function () {
}
});
spinner = ora();
spinner.start(_cliI18n["default"].getLocale('add_command_installing'));
spinner.start(_i18n["default"].getLocale('add_command_installing'));
_loop = /*#__PURE__*/_regenerator["default"].mark(function _loop() {
var _pluginCorrectList$_i, shortName, pkgName;

return _regenerator["default"].wrap(function _loop$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_pluginCorrectList$_i = _pluginCorrectList[_i], shortName = _pluginCorrectList$_i.shortName, pkgName = _pluginCorrectList$_i.pkgName;
_context.prev = 1;
_context.next = 4;
return execa.command("npm install -g ".concat(pkgName), {
shell: true
});

case 4:
_context.next = 6;
return _lowdb.lowdbAction.addPluginPkg({
shortName: shortName,
pkgName: pkgName
});

case 6:
pluginSucced.push({
shortName: shortName,
pkgName: pkgName
}); // 在 MAC 系统中,检查自动执行事件

(function () {
if (os.type() === 'Darwin') {
var pluginModule = require(pkgName)["default"]({
locale: _i18n["default"].currentLocale
});

if (pluginModule === null || pluginModule === void 0 ? void 0 : pluginModule.isStart) {
var osascriptContent = "\n tell application \"Terminal\"\n activate\n do script \"muniz ".concat(shortName, "\"\n end tell\n ");
execa.commandSync("osascript -e '".concat(osascriptContent, "'"), {
shell: true
});
}
}
})();

_context.next = 13;
break;

case 10:
_context.prev = 10;
_context.t0 = _context["catch"](1);
pluginFail.push({
shortName: shortName,
pkgName: pkgName,
tips: _i18n["default"].getLocale('add_command_check_npm_tips')
});

case 13:
case "end":
return _context.stop();
}
}
}, _loop, null, [[1, 10]]);
});
_i = 0, _pluginCorrectList = pluginCorrectList;

case 9:
case 10:
if (!(_i < _pluginCorrectList.length)) {
_context.next = 26;
_context2.next = 15;
break;
}

_pluginCorrectList$_i = _pluginCorrectList[_i], shortName = _pluginCorrectList$_i.shortName, pkgName = _pluginCorrectList$_i.pkgName;
_context.prev = 11;
_context.next = 14;
return execa.command("npm install -g ".concat(pkgName), {
shell: true
});

case 14:
_context.next = 16;
return _lowdb.lowdbAction.addPluginPkg({
shortName: shortName,
pkgName: pkgName
});

case 16:
pluginSucced.push({
shortName: shortName,
pkgName: pkgName
}); // 在 MAC 系统中,检查自动执行事件

if (os.type() === 'Darwin') {
pluginModule = require(pkgName)["default"]({
locale: MunizConfig.languageLocale
});

if (pluginModule === null || pluginModule === void 0 ? void 0 : pluginModule.isStart) {
osascriptContent = "\n tell application \"Terminal\"\n activate\n do script \"muniz ".concat(shortName, "\"\n end tell\n ");
execa.commandSync("osascript -e '".concat(osascriptContent, "'"), {
shell: true
});
}
}

_context.next = 23;
break;

case 20:
_context.prev = 20;
_context.t0 = _context["catch"](11);
pluginFail.push({
shortName: shortName,
pkgName: pkgName,
tips: _cliI18n["default"].getLocale('add_command_check_npm_tips')
});
return _context2.delegateYield(_loop(), "t0", 12);

case 23:
case 12:
_i++;
_context.next = 9;
_context2.next = 10;
break;

case 26:
spinner.succeed(_cliI18n["default"].getLocale('add_command_installed'));
case 15:
spinner.succeed(_i18n["default"].getLocale('add_command_installed'));
(pluginSucced.length > 0 || pluginFail.length > 0) && console.log('\n---------------------------------');
pluginSucced.length > 0 && console.log("\n- ".concat(_cliI18n["default"].getLocale('add_command_plugin_success_list'), "\n"));
pluginSucced.length > 0 && console.log("\n- ".concat(_i18n["default"].getLocale('add_command_plugin_success_list'), "\n"));
pluginSucced.forEach(function (_ref3) {
var pkgName = _ref3.pkgName,
shortName = _ref3.shortName;
console.log(_cliI18n["default"].getLocale('add_command_plugin_success_tips', {
console.log(_i18n["default"].getLocale('add_command_plugin_success_tips', {
pkgName: pkgName,
shortName: shortName
}));
});
pluginFail.length > 0 && console.log("\n- ".concat(_cliI18n["default"].getLocale('add_command_plugin_fail_list'), "\n"));
pluginFail.length > 0 && console.log("\n- ".concat(_i18n["default"].getLocale('add_command_plugin_fail_list'), "\n"));
pluginFail.forEach(function (_ref4) {
var pkgName = _ref4.pkgName,
tips = _ref4.tips;
console.log(_cliI18n["default"].getLocale('add_command_plugin_fail_tips', {
console.log(_i18n["default"].getLocale('add_command_plugin_fail_tips', {
pkgName: pkgName,
tips: tips
}));
});

case 32:
case 21:
case "end":
return _context.stop();
return _context2.stop();
}
}
}, _callee, null, [[11, 20]]);
}, _callee);
}));

return function Add(_x) {
Expand Down
12 changes: 7 additions & 5 deletions packages/@muniz/cli/dist/command/List/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@ var _inkUi = require("@muniz/ink-ui");

var _lowdb = require("../../lib/lowdb.js");

var _i18n = _interopRequireDefault(require("../../lib/i18n"));

/**
* @muniz
* @type react
* @description help_list_desc
*/
var List = function List(props) {
var _useState = (0, _react.useState)([['序号', '命令', '插件名称']]),
var _useState = (0, _react.useState)([[_i18n["default"].getLocale('list_command_table_head1'), _i18n["default"].getLocale('list_command_table_head2'), _i18n["default"].getLocale('list_command_table_head3')]]),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
pkgList = _useState2[0],
setPkgList = _useState2[1];
Expand All @@ -42,13 +44,13 @@ var List = function List(props) {
marginTop: "1"
}, /*#__PURE__*/_react["default"].createElement(_ink.Box, {
marginBottom: "1"
}, /*#__PURE__*/_react["default"].createElement(_ink.Text, null, "Muniz \u811A\u624B\u67B6\uFF0C\u5DF2\u5B89\u88C5", /*#__PURE__*/_react["default"].createElement(_ink.Text, {
color: "green"
}, " ", pkgList.length - 1, " "), "\u4E2A\u63D2\u4EF6")), /*#__PURE__*/_react["default"].createElement(_ink.Box, {
}, /*#__PURE__*/_react["default"].createElement(_ink.Text, null, _i18n["default"].getLocale('list_command_title', {
count: pkgList.length - 1
}))), /*#__PURE__*/_react["default"].createElement(_ink.Box, {
flexDirection: "column"
}, pkgList.length > 1 ? /*#__PURE__*/_react["default"].createElement(_inkUi.Table, {
data: pkgList
}) : /*#__PURE__*/_react["default"].createElement(_ink.Text, null, "\u8FD8\u672A\u5B89\u88C5\u63D2\u4EF6\u6269\u5C55\uFF0C\u8BF7\u6267\u884C muniz add \u547D\u4EE4\uFF0C\u6DFB\u52A0\u9700\u8981\u7684\u63D2\u4EF6")));
}) : /*#__PURE__*/_react["default"].createElement(_ink.Text, null, _i18n["default"].getLocale('list_command_empty_tips'))));
};

var _default = List;
Expand Down
Loading

0 comments on commit 35d7104

Please sign in to comment.