working multilingual :)
This commit is contained in:
parent
2905c6675a
commit
f020e27f8c
13
app.js
13
app.js
@ -1,3 +1,14 @@
|
||||
const pages = require('./pages/pages')
|
||||
const Language = require("@shypes/language-translator");
|
||||
const globalVariables = require('./lib/globalVars');
|
||||
|
||||
async function main() {
|
||||
lang = await pages.selectLanguage();
|
||||
globalVariables.language = lang.selection
|
||||
await pages.connectWatch()
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
|
||||
|
||||
pages.connectWatch();
|
||||
|
46
lang/es.json
Normal file
46
lang/es.json
Normal file
@ -0,0 +1,46 @@
|
||||
{
|
||||
"main-menu-question": "¿Qué quieres hacer?",
|
||||
"main-menu-item-1": "1-Click Karl0ss Klean",
|
||||
"main-menu-item-2": "Eliminar aplicaciones Xiaomi",
|
||||
"main-menu-item-3": "Restaurar aplicaciones Xiaomi",
|
||||
"main-menu-item-4": "Instalar aplicaciones compatibles",
|
||||
"main-menu-item-5": "Restaura CUALQUIER aplicación",
|
||||
"main-menu-item-6": "Aplicaciones de instalación por lotes",
|
||||
"main-menu-item-7": "Eliminar por lotes las aplicaciones instaladas",
|
||||
"main-menu-item-8": "Salir",
|
||||
"connection-type-message": "¿Cómo desea conectarse?",
|
||||
"connect-wifi-message":"¿Cuál es su MiWatch IpAdress?",
|
||||
"restore-app-message": "¿Qué aplicaciones quieres restaurar?",
|
||||
"install-compatible-apps-message": "¿Qué aplicaciones quieres instalar?",
|
||||
"remove-installed-apps-message": "¿Qué aplicaciones instaladas desea eliminar?",
|
||||
"restore-any-app-message": "¿Qué aplicación desea restaurar?",
|
||||
"header-remove-installed-apps": "Eliminar aplicaciones instaladas",
|
||||
"packages-recieved-from-watch": "Paquetes recibidos desde watch",
|
||||
"device-not-authorised": "Dispositivo no autorizado",
|
||||
"restarting-adb": "Reiniciando ADB",
|
||||
"please-reconnect-to-watch": "Vuelve a conectarte para mirar",
|
||||
"remove-installed-apps-failed": "Falló la eliminación de aplicaciones instaladas",
|
||||
"removing": "Eliminando",
|
||||
"removal-complete": "Eliminación completa",
|
||||
"installing": "Instalando",
|
||||
"restoring": "Restaurando",
|
||||
"remove-selected-user-apps": "Aplicaciones de usuario seleccionadas eliminadas",
|
||||
"install-compatible-apps-header": "Instalar aplicaciones compatibles",
|
||||
"simple-weather-activated-on-watch": "simpleWeather activado en el reloj",
|
||||
"morelocale-activated-on-watch": "moreLocale activado durante el reloj",
|
||||
"alberto-locale-activated-on-watch": "Alberto Locale activado durante el reloj",
|
||||
"compatible-apps-installed": "Aplicaciones compatibles instaladas",
|
||||
"compatible-apps": "Aplicaciones compatibles",
|
||||
"remove-xiaomi-apps": "Eliminar aplicaciones Xiaomi",
|
||||
"downloading-compatible-apps": "Descarga de aplicaciones compatibles",
|
||||
"installing-apps": "Instalar aplicaciones",
|
||||
"downloading-latest": "Descargando la última",
|
||||
"complete": "Completo",
|
||||
"failed": "Falló",
|
||||
"restoring-apps-complete": "Restauración de aplicaciones completa",
|
||||
"batch-install-apps-complete": "Instalación por lotes de aplicaciones completa",
|
||||
"connect-to-watch": "Conectarse al reloj",
|
||||
"connected-via-usb": "Conectado mediante USB",
|
||||
"connected-via-wifi": "Conectado a través de Wifi",
|
||||
"not-connected": "No conectado"
|
||||
}
|
@ -6,7 +6,6 @@ const inquirer = require('../lib/inquirer');
|
||||
const common = require('./common')
|
||||
const chalk = require('chalk');
|
||||
const globalVariables = require('../lib/globalVars');
|
||||
const { removeAppsList } = require('../lib/inquirer');
|
||||
|
||||
if (process.platform === 'win32' || process.platform === 'win64') {
|
||||
adbRun = 'adb'
|
||||
@ -16,6 +15,7 @@ if (process.platform === 'win32' || process.platform === 'win64') {
|
||||
|
||||
module.exports = {
|
||||
installApk: async (element) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
result = await shellExec(adbRun + ' install -r ' + element).then(async function (result) {
|
||||
if (result.stderr != '') {
|
||||
logger.info(await Language.get('device-not-authorised'));
|
||||
@ -49,6 +49,7 @@ module.exports = {
|
||||
});
|
||||
},
|
||||
removeApk: async (package) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
result = await shellExec(adbRun + ' uninstall ' + package)
|
||||
if (result.stderr != '') {
|
||||
logger.info('Error ' + result.stderr);
|
||||
@ -59,6 +60,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
removeXiaomiApk: async (package) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package)
|
||||
if (result.stderr != '') {
|
||||
logger.info('Error ' + result.stderr);
|
||||
@ -69,6 +71,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
restoreXiaomiApk: async (package) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
result = await shellExec(adbRun + ' shell cmd package install-existing ' + package)
|
||||
if (result.stderr != '') {
|
||||
logger.info('Error ' + result.stderr);
|
||||
@ -79,6 +82,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
restoreAnyApk: async (package) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
result = await shellExec(adbRun + ' shell cmd package install-existing ' + package.restoreAnyApp)
|
||||
if (result.stderr != '') {
|
||||
logger.info('Error ' + result.stderr);
|
||||
@ -92,6 +96,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
getInstalledPacakges: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
result = await shellExec(adbRun + ' shell pm list packages -3')
|
||||
logger.info(await Language.get('packages-recieved-from-watch'))
|
||||
if (result.stderr.includes('error')) {
|
||||
@ -119,11 +124,13 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
killAdbServer: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
let result = await shellExec(adbRun + ' kill-server')
|
||||
logger.info('Restarting ADB')
|
||||
logger.info(result.stdout)
|
||||
},
|
||||
watchConnection: async (value) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
if (value.connection === "usb") {
|
||||
await module.exports.killAdbServer()
|
||||
result = await shellExec(adbRun + ' devices')
|
||||
|
@ -7,13 +7,12 @@ const fetch = require('node-fetch');
|
||||
var shell = require('shelljs');
|
||||
const logger = require('perfect-logger');
|
||||
const Language = require("@shypes/language-translator");
|
||||
// var remote = require('remote-file-size')
|
||||
const globalVariables = require('../lib/globalVars');
|
||||
var chalkRainbow = require('chalk-rainbow')
|
||||
|
||||
|
||||
module.exports = {
|
||||
header: async (page) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
clear();
|
||||
console.log(
|
||||
chalkRainbow(
|
||||
@ -24,7 +23,6 @@ module.exports = {
|
||||
);
|
||||
console.log(chalk.red(' ' + pjson.version));
|
||||
console.log();
|
||||
|
||||
console.log(
|
||||
chalk.red(
|
||||
'-------------------------------------------------------------------------------------------------------'
|
||||
@ -38,6 +36,7 @@ module.exports = {
|
||||
await new Promise(resolve => setTimeout(resolve, time));
|
||||
},
|
||||
connectionCheck: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
if (globalVariables.localUSB === "X") {
|
||||
console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-usb')))
|
||||
}
|
||||
@ -49,6 +48,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
downloadFile: async (url, path) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const res = await fetch(url);
|
||||
// await module.exports.downloadSize(url)
|
||||
await new Promise(async (resolve, reject) => {
|
||||
@ -81,6 +81,7 @@ module.exports = {
|
||||
logger.info(await Language.get(item, 'en'))
|
||||
},
|
||||
print: async (item, colour) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
switch (colour) {
|
||||
case 'green':
|
||||
console.log(chalk.green(await Language.get(item)))
|
||||
@ -91,6 +92,9 @@ module.exports = {
|
||||
case 'whiteBright':
|
||||
console.log(chalk.whiteBright(await Language.get(item)))
|
||||
break;
|
||||
case 'rainbow':
|
||||
console.log(chalkRainbow(await Language.get(item)))
|
||||
break;
|
||||
default:
|
||||
console.log(chalk.white(await Language.get(item)))
|
||||
break;
|
||||
|
@ -2,6 +2,10 @@ const fs = require('fs');
|
||||
const path = require('path');
|
||||
const tiny = require("@peterpanhihi/tiny");
|
||||
const getFilesIn = require('get-files-in')
|
||||
const globalVariables = require('../lib/globalVars');
|
||||
const Language = require("@shypes/language-translator");
|
||||
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
|
||||
|
||||
module.exports = {
|
||||
@ -45,4 +49,8 @@ module.exports = {
|
||||
const result = getFilesIn(path, matchFiletypes = ["apk"], checkSubDirectories = false)
|
||||
return result
|
||||
},
|
||||
getLanguageFiles: () => {
|
||||
const result = getFilesIn('./lang/', matchFiletypes = ["json"], checkSubDirectories = false)
|
||||
return result
|
||||
},
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
class globalVariables {
|
||||
localUSB = "";
|
||||
miWatchIpaddress = "";
|
||||
language = "";
|
||||
usersList=[];
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
const inquirer = require("inquirer");
|
||||
const files = require("./files");
|
||||
const common = require("./common");
|
||||
|
||||
const Language = require("@shypes/language-translator");
|
||||
const globalVariables = require('../lib/globalVars');
|
||||
|
||||
module.exports = {
|
||||
mainMenu: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const questions = [{
|
||||
type: "list",
|
||||
name: "mainMenu",
|
||||
@ -26,7 +27,22 @@ module.exports = {
|
||||
},];
|
||||
return inquirer.prompt(questions);
|
||||
},
|
||||
LanguageSelect: async () => {
|
||||
langList = files.getLanguageFiles()
|
||||
langList = langList.map(s => s.slice(5, -5));
|
||||
const questions = [{
|
||||
type: "list",
|
||||
name: "selection",
|
||||
message: await Language.get('Select Language'),
|
||||
choices: langList,
|
||||
filter: function (val) {
|
||||
return val.toLowerCase();
|
||||
},
|
||||
},];
|
||||
return inquirer.prompt(questions);
|
||||
},
|
||||
connectionType: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const questions = [{
|
||||
type: "list",
|
||||
name: "connection",
|
||||
@ -42,6 +58,7 @@ module.exports = {
|
||||
return inquirer.prompt(questions);
|
||||
},
|
||||
connectWifi: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const questions = [{
|
||||
type: "input",
|
||||
name: "connectWifi",
|
||||
@ -50,6 +67,7 @@ module.exports = {
|
||||
return inquirer.prompt(questions);
|
||||
},
|
||||
removeAppsList: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const packages = await files.loadPackageList();
|
||||
|
||||
const questions = [{
|
||||
@ -61,6 +79,7 @@ module.exports = {
|
||||
return inquirer.prompt(questions);
|
||||
},
|
||||
compatibleApps: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const compatibleApps = await common.getCompatibleAppsList()
|
||||
const appList = []
|
||||
for (let element of compatibleApps) {
|
||||
@ -75,6 +94,7 @@ module.exports = {
|
||||
return inquirer.prompt(questions);
|
||||
},
|
||||
installedApps: async (installedApps) => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const questions = [{
|
||||
type: "checkbox",
|
||||
name: "removeAppsList",
|
||||
@ -84,6 +104,7 @@ module.exports = {
|
||||
return inquirer.prompt(questions);
|
||||
},
|
||||
restoreAnyApp: async () => {
|
||||
Language.setActiveLang(globalVariables.language)
|
||||
const questions = [{
|
||||
type: "input",
|
||||
name: "restoreAnyApp",
|
||||
|
@ -5,7 +5,6 @@ const files = require('../lib/files')
|
||||
const logger = require('perfect-logger');
|
||||
const Language = require("@shypes/language-translator");
|
||||
const adb = require('../lib/adb');
|
||||
const { dualLog } = require('../lib/common');
|
||||
|
||||
logger.info(process.platform + " detected")
|
||||
if (process.platform === 'win32' || process.platform === 'win64') {
|
||||
@ -174,35 +173,59 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
|
||||
selectLanguage: async () => {
|
||||
common.header('Select Language')
|
||||
common.log('Select Language')
|
||||
// const value = await inquirer.connectionType()
|
||||
const v = await inquirer.LanguageSelect()
|
||||
// connected = await adb.watchConnection(value)
|
||||
// if (connected != true) {
|
||||
// module.exports.connectWatch()
|
||||
// } else {
|
||||
// module.exports.mainMenu()
|
||||
// }
|
||||
return v
|
||||
},
|
||||
|
||||
mainMenu: async () => {
|
||||
common.header('Main Menu')
|
||||
const mainMenuSelection = await inquirer.mainMenu();
|
||||
menu_1 = await Language.get('main-menu-item-1')
|
||||
menu_2 = await Language.get('main-menu-item-2')
|
||||
menu_3 = await Language.get('main-menu-item-3')
|
||||
menu_4 = await Language.get('main-menu-item-4')
|
||||
menu_5 = await Language.get('main-menu-item-5')
|
||||
menu_6 = await Language.get('main-menu-item-6')
|
||||
menu_7 = await Language.get('main-menu-item-7')
|
||||
menu_8 = await Language.get('main-menu-item-8')
|
||||
menu_9 = await Language.get('main-menu-item-9')
|
||||
|
||||
switch (mainMenuSelection.mainMenu) {
|
||||
case '1-click karl0ss klean':
|
||||
case menu_1.toLowerCase():
|
||||
module.exports.oneClick()
|
||||
break;
|
||||
case 'remove xiaomi apps':
|
||||
case menu_2.toLowerCase():
|
||||
module.exports.removeXiaomiApps()
|
||||
break;
|
||||
case 'restore xiaomi apps':
|
||||
case menu_3.toLowerCase():
|
||||
module.exports.restoreXiaomiApps()
|
||||
break;
|
||||
case 'install compatible apps':
|
||||
case menu_4.toLowerCase():
|
||||
module.exports.installCompatibleApps()
|
||||
break;
|
||||
case 'restore any app':
|
||||
case menu_5.toLowerCase():
|
||||
module.exports.restoreAnyApp()
|
||||
break;
|
||||
case 'batch install apps':
|
||||
case menu_6.toLowerCase():
|
||||
module.exports.batchInstallApps()
|
||||
break;
|
||||
case 'batch remove installed apps':
|
||||
case menu_7.toLowerCase():
|
||||
module.exports.batchRemoveInstalledApps()
|
||||
break;
|
||||
case 'connect to miwatch':
|
||||
case menu_8.toLowerCase():
|
||||
module.exports.connectWatch()
|
||||
break;
|
||||
case 'quit':
|
||||
case menu_9.toLowerCase():
|
||||
break;
|
||||
default:
|
||||
// code block
|
||||
|
Loading…
x
Reference in New Issue
Block a user