├── .babelrc ├── .editorconfig ├── .electron-vue ├── build.js ├── dev-client.js ├── dev-runner.js ├── webpack.main.config.js ├── webpack.renderer.config.js └── webpack.web.config.js ├── .eslintignore ├── .eslintrc.js ├── .github ├── ISSUE_TEMPLATE │ ├── 1_bug_report.yml │ ├── 2_bug_report_cn.yml │ ├── feature_request.md │ └── feature_request_cn.md ├── PULL_REQUEST_TEMPLATE.md ├── lock.yml └── workflows │ ├── codeql-analysis.yml │ └── release.yml ├── .gitignore ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING-CN.md ├── CONTRIBUTING.md ├── LICENSE ├── README-CN.md ├── README.md ├── app-update.yml ├── appveyor.yml ├── build ├── 256x256.png ├── afterPackHook.js ├── afterSignHook.js ├── appx │ ├── Square150x150Logo.png │ ├── Square44x44Logo.png │ ├── StoreLogo.png │ └── Wide310x150Logo.png ├── background.tiff ├── icon.icns ├── icon.ico ├── torrent.icns └── torrent.ico ├── electron-builder.json ├── extra ├── README.md ├── darwin │ ├── arm64 │ │ └── engine │ │ │ ├── aria2.conf │ │ │ └── aria2c │ └── x64 │ │ └── engine │ │ ├── aria2.conf │ │ └── aria2c ├── linux │ ├── arm64 │ │ └── engine │ │ │ ├── aria2.conf │ │ │ └── aria2c │ ├── armv7l │ │ └── engine │ │ │ ├── aria2.conf │ │ │ └── aria2c │ └── x64 │ │ └── engine │ │ ├── aria2.conf │ │ └── aria2c └── win32 │ ├── ia32 │ └── engine │ │ ├── aria2.conf │ │ └── aria2c.exe │ └── x64 │ └── engine │ ├── aria2.conf │ └── aria2c.exe ├── jsconfig.json ├── package.json ├── screenshots ├── electron-apps-banner.png ├── motrix-task-list-downloading-dark@2x.png ├── motrix-task-list-downloading-light@2x.png ├── motrix-task-list-empty-dark@2x.png └── motrix-task-list-empty-light@2x.png ├── src ├── index.ejs ├── main │ ├── Application.js │ ├── Launcher.js │ ├── configs │ │ ├── engine.js │ │ ├── page.js │ │ └── protocol.js │ ├── core │ │ ├── AutoLaunchManager.js │ │ ├── ConfigManager.js │ │ ├── Context.js │ │ ├── EnergyManager.js │ │ ├── Engine.js │ │ ├── EngineClient.js │ │ ├── ExceptionHandler.js │ │ ├── Logger.js │ │ ├── ProtocolManager.js │ │ ├── UPnPManager.js │ │ └── UpdateManager.js │ ├── index.dev.js │ ├── index.js │ ├── menus │ │ ├── darwin.json │ │ ├── linux.json │ │ ├── touchBar.json │ │ ├── tray.json │ │ └── win32.json │ ├── pages │ │ ├── about.html │ │ └── index.html │ ├── ui │ │ ├── DockManager.js │ │ ├── Locale.js │ │ ├── MenuManager.js │ │ ├── ThemeManager.js │ │ ├── TouchBarManager.js │ │ ├── TrayManager.js │ │ └── WindowManager.js │ └── utils │ │ ├── index.js │ │ └── menu.js ├── renderer │ ├── api │ │ ├── Api.js │ │ └── index.js │ ├── assets │ │ ├── .gitkeep │ │ ├── app-icon.png │ │ ├── icons │ │ │ ├── arrow-down.svg │ │ │ ├── arrow-up.svg │ │ │ ├── audio.svg │ │ │ ├── delete.svg │ │ │ ├── dice.svg │ │ │ ├── engine-mode-max.svg │ │ │ ├── folder.svg │ │ │ ├── image.svg │ │ │ ├── inbox.svg │ │ │ ├── info-circle.svg │ │ │ ├── info-square.svg │ │ │ ├── link.svg │ │ │ ├── magnet.svg │ │ │ ├── menu-about.svg │ │ │ ├── menu-add.svg │ │ │ ├── menu-preference.svg │ │ │ ├── menu-task.svg │ │ │ ├── more.svg │ │ │ ├── node.svg │ │ │ ├── preference-advanced.svg │ │ │ ├── preference-basic.svg │ │ │ ├── purge.svg │ │ │ ├── refresh.svg │ │ │ ├── speedometer.svg │ │ │ ├── sync.svg │ │ │ ├── task-done.svg │ │ │ ├── task-history.svg │ │ │ ├── task-pause-line.svg │ │ │ ├── task-pause.svg │ │ │ ├── task-restart.svg │ │ │ ├── task-start-line.svg │ │ │ ├── task-start.svg │ │ │ ├── task-stop-line.svg │ │ │ ├── task-stop.svg │ │ │ ├── trash.svg │ │ │ ├── video.svg │ │ │ ├── win-close.svg │ │ │ ├── win-maximize.svg │ │ │ └── win-minimize.svg │ │ ├── logo-mini.svg │ │ ├── logo.svg │ │ ├── no-task.svg │ │ ├── theme-auto@2x.png │ │ ├── theme-dark@2x.png │ │ └── theme-light@2x.png │ ├── components │ │ ├── About │ │ │ ├── AboutPanel.vue │ │ │ ├── AppInfo.vue │ │ │ └── Copyright.vue │ │ ├── Aside │ │ │ └── Index.vue │ │ ├── Browser │ │ │ └── index.vue │ │ ├── CommandManager │ │ │ ├── index.js │ │ │ └── instance.js │ │ ├── DragSelect │ │ │ └── Index.vue │ │ ├── Dragger │ │ │ └── Index.vue │ │ ├── Icons │ │ │ ├── Icon.vue │ │ │ ├── arrow-down.js │ │ │ ├── arrow-up.js │ │ │ ├── audio.js │ │ │ ├── delete.js │ │ │ ├── dice.js │ │ │ ├── document.js │ │ │ ├── folder.js │ │ │ ├── image.js │ │ │ ├── inbox.js │ │ │ ├── info-circle.js │ │ │ ├── info-square.js │ │ │ ├── link.js │ │ │ ├── magnet.js │ │ │ ├── menu-about.js │ │ │ ├── menu-add.js │ │ │ ├── menu-preference.js │ │ │ ├── menu-task.js │ │ │ ├── more.js │ │ │ ├── node.js │ │ │ ├── preference-advanced.js │ │ │ ├── preference-basic.js │ │ │ ├── preference-lab.js │ │ │ ├── purge.js │ │ │ ├── refresh.js │ │ │ ├── speedometer.js │ │ │ ├── sync.js │ │ │ ├── task-history.js │ │ │ ├── task-pause-line.js │ │ │ ├── task-pause.js │ │ │ ├── task-restart.js │ │ │ ├── task-start-line.js │ │ │ ├── task-start.js │ │ │ ├── task-stop-line.js │ │ │ ├── task-stop.js │ │ │ ├── trash.js │ │ │ ├── video.js │ │ │ ├── win-close.js │ │ │ ├── win-maximize.js │ │ │ └── win-minimize.js │ │ ├── Locale │ │ │ └── index.js │ │ ├── Logo │ │ │ ├── Logo.vue │ │ │ └── LogoMini.vue │ │ ├── Main.vue │ │ ├── Msg │ │ │ └── index.js │ │ ├── Native │ │ │ ├── DynamicTray.vue │ │ │ ├── EngineClient.vue │ │ │ ├── Ipc.vue │ │ │ ├── SelectDirectory.vue │ │ │ ├── ShowInFolder.vue │ │ │ └── TitleBar.vue │ │ ├── Preference │ │ │ ├── Advanced.vue │ │ │ ├── Basic.vue │ │ │ ├── HistoryDirectory.vue │ │ │ ├── Index.vue │ │ │ ├── Lab.vue │ │ │ └── ThemeSwitcher.vue │ │ ├── Speedometer │ │ │ └── Speedometer.vue │ │ ├── Subnav │ │ │ ├── PreferenceSubnav.vue │ │ │ ├── SubnavSwitcher.vue │ │ │ └── TaskSubnav.vue │ │ ├── Task │ │ │ ├── AddTask.vue │ │ │ ├── Index.vue │ │ │ ├── SelectTorrent.vue │ │ │ ├── TaskActions.vue │ │ │ ├── TaskItem.vue │ │ │ ├── TaskItemActions.vue │ │ │ ├── TaskList.vue │ │ │ ├── TaskProgress.vue │ │ │ ├── TaskProgressInfo.vue │ │ │ └── TaskStatus.vue │ │ ├── TaskDetail │ │ │ ├── Index.vue │ │ │ ├── TaskActivity.vue │ │ │ ├── TaskFiles.vue │ │ │ ├── TaskGeneral.vue │ │ │ ├── TaskPeers.vue │ │ │ └── TaskTrackers.vue │ │ ├── TaskGraphic │ │ │ ├── Atom.vue │ │ │ └── Index.vue │ │ └── Theme │ │ │ ├── Dark.scss │ │ │ ├── Dark │ │ │ └── Variables.scss │ │ │ ├── Default.scss │ │ │ ├── Index.scss │ │ │ ├── Light │ │ │ └── Variables.scss │ │ │ └── Variables.scss │ ├── pages │ │ └── index │ │ │ ├── App.vue │ │ │ ├── commands.js │ │ │ └── main.js │ ├── router │ │ └── index.js │ ├── store │ │ ├── index.js │ │ └── modules │ │ │ ├── app.js │ │ │ ├── index.js │ │ │ ├── preference.js │ │ │ └── task.js │ ├── utils │ │ ├── native.js │ │ └── task.js │ └── workers │ │ └── tray.worker.js └── shared │ ├── aria2 │ ├── index.js │ └── lib │ │ ├── Aria2.js │ │ ├── Deferred.js │ │ ├── JSONRPCClient.js │ │ ├── JSONRPCError.js │ │ ├── debug.js │ │ └── promiseEvent.js │ ├── colors.json │ ├── configKeys.js │ ├── constants.js │ ├── keymap.json │ ├── locales │ ├── LocaleManager.js │ ├── all.js │ ├── app.js │ ├── ar │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── bg │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── ca │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── de │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── el │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── en-US │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── es │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── fa │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── fr │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── hu │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── id │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── index.js │ ├── it │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── ja │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── ko │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── nb │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── nl │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── pl │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── pt-BR │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── ro │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── ru │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── th │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── tr │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── uk │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── vi │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── zh-CN │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ └── zh-TW │ │ ├── about.js │ │ ├── app.js │ │ ├── edit.js │ │ ├── help.js │ │ ├── index.js │ │ ├── menu.js │ │ ├── preferences.js │ │ ├── subnav.js │ │ ├── task.js │ │ └── window.js │ ├── ua.js │ └── utils │ ├── curl.js │ ├── index.js │ ├── rename.js │ ├── tracker.js │ └── tray.js ├── static ├── .gitkeep ├── 512x512.png ├── icons │ ├── about.png │ ├── about@2x.png │ ├── new-task.png │ ├── new-task@2x.png │ ├── preferences.png │ ├── preferences@2x.png │ ├── task-active.png │ ├── task-active@2x.png │ ├── task-stopped.png │ ├── task-stopped@2x.png │ ├── task-waiting.png │ └── task-waiting@2x.png ├── mo-tray-colorful-active.ico ├── mo-tray-colorful-active.png ├── mo-tray-colorful-normal.ico ├── mo-tray-colorful-normal.png ├── mo-tray-dark-active@1x.png ├── mo-tray-dark-active@2x.png ├── mo-tray-dark-normal@1x.png ├── mo-tray-dark-normal@2x.png ├── mo-tray-light-active@1x.png ├── mo-tray-light-active@2x.png ├── mo-tray-light-normal@1x.png └── mo-tray-light-normal@2x.png └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "comments": false, 3 | "env": { 4 | "main": { 5 | "presets": ["@babel/preset-env"] 6 | }, 7 | "renderer": { 8 | "presets": [ 9 | "@babel/preset-env" 10 | ], 11 | "plugins": [ 12 | [ 13 | "component", 14 | { 15 | "libraryName": "element-ui", 16 | "styleLibraryName": "theme-chalk" 17 | } 18 | ] 19 | ] 20 | }, 21 | "web": { 22 | "presets": ["@babel/preset-env"], 23 | "plugins": [ 24 | [ 25 | "component", 26 | { 27 | "libraryName": "element-ui", 28 | "styleLibraryName": "theme-chalk" 29 | } 30 | ] 31 | ] 32 | } 33 | }, 34 | "plugins": [ 35 | "@babel/plugin-proposal-class-properties", 36 | "@babel/plugin-transform-runtime" 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | -------------------------------------------------------------------------------- /.electron-vue/dev-client.js: -------------------------------------------------------------------------------- 1 | const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') 2 | 3 | hotClient.subscribe(event => { 4 | /** 5 | * Reload browser when HTMLWebpackPlugin emits a new index.html 6 | * 7 | * Currently disabled until jantimon/html-webpack-plugin#680 is resolved. 8 | * https://github.com/SimulatedGREG/electron-vue/issues/437 9 | * https://github.com/jantimon/html-webpack-plugin/issues/680 10 | */ 11 | // if (event.action === 'reload') { 12 | // window.location.reload() 13 | // } 14 | 15 | /** 16 | * Notify `mainWindow` when `main` process is compiling, 17 | * giving notice for an expected reload of the `electron` process 18 | */ 19 | if (event.action === 'compiling') { 20 | document.body.innerHTML += ` 21 | 34 | 35 |
36 | Compiling Main Process... 37 |
38 | ` 39 | } 40 | }) 41 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | src/renderer/components/Icons/*.js 2 | 3 | src/shared/locales/* 4 | !src/shared/locales/all.js 5 | !src/shared/locales/app.js 6 | !src/shared/locales/index.js 7 | !src/shared/locales/LocalManager.js 8 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true 6 | }, 7 | extends: [ 8 | 'plugin:vue/essential', 9 | '@vue/standard' 10 | ], 11 | parserOptions: { 12 | parser: 'babel-eslint' 13 | }, 14 | globals: { 15 | appId: true, 16 | __static: true 17 | }, 18 | rules: { 19 | 'no-console': 'off', 20 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 21 | indent: ['error', 2], 22 | 'vue/script-indent': ['error', 2, { 23 | baseIndent: 1 24 | }] 25 | }, 26 | overrides: [ 27 | { 28 | files: ['*.vue'], 29 | rules: { 30 | indent: 'off' 31 | } 32 | } 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement ✨ 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request_cn.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 新功能请求 3 | about: 你期望 Motrix 未来添加的新功能 4 | title: '' 5 | labels: enhancement ✨ 6 | assignees: '' 7 | 8 | --- 9 | 10 | 17 | 18 | **请描述一下你的新功能请求是否与已知问题有关?** 19 | 简明扼要地描述了问题所在。 20 | 21 | **描述你想要的解决方案** 22 | 简明扼要地描述你想要的解决方案。 23 | 24 | **描述你考虑过的替代方案** 25 | 简明扼要地描述你考虑过的任何替代解决方案或功能。 26 | 27 | **更多信息** 28 | 补充有关该新功能的其他信息。 29 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Description 4 | 5 | 6 | ## Related Issues 7 | 11 | 12 | ### Checklist: 13 | 14 | * [ ] Have you checked to ensure there aren't other open [Pull Requests](../../../pulls) for the same update/change? 15 | * [ ] Have you linted your code locally prior to submission? 16 | * [ ] Have you successfully ran app with your changes locally? 17 | -------------------------------------------------------------------------------- /.github/lock.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Lock Threads - https://github.com/dessant/lock-threads 2 | 3 | # Number of days of inactivity before a closed issue or pull request is locked 4 | daysUntilLock: 60 5 | 6 | # Skip issues and pull requests created before a given timestamp. Timestamp must 7 | # follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable 8 | skipCreatedBefore: false 9 | 10 | # Issues and pull requests with these labels will be ignored. Set to `[]` to disable 11 | exemptLabels: [] 12 | 13 | # Label to add before locking, such as `outdated`. Set to `false` to disable 14 | lockLabel: false 15 | 16 | # Comment to post before locking. Set to `false` to disable 17 | lockComment: > 18 | This thread has been automatically locked since there has not been 19 | any recent activity after it was closed. Please open a new issue for 20 | related bugs. 21 | 22 | # Assign `resolved` as the reason for locking. Set to `false` to disable 23 | setLockReason: true 24 | 25 | # Limit to only `issues` or `pulls` 26 | # only: issues 27 | 28 | # Optionally, specify configuration settings just for `issues` or `pulls` 29 | # issues: 30 | # exemptLabels: 31 | # - help-wanted 32 | # lockLabel: outdated 33 | 34 | # pulls: 35 | # daysUntilLock: 30 36 | 37 | # Repository to extend settings from 38 | # _extends: repo 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | !.gitkeep 2 | .DS_Store 3 | .env 4 | .idea/ 5 | .vs/ 6 | .vscode/ 7 | *.log 8 | node_modules/ 9 | thumbs.db 10 | 11 | # npm package 12 | .npmrc 13 | npm-debug.log.* 14 | 15 | # Eslint Cache 16 | .eslintcache* 17 | 18 | # electron builder 19 | *.provisionprofile 20 | build/*.plist 21 | dist/electron/* 22 | dist/web/* 23 | 24 | # release 25 | release/* 26 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | dist: trusty 3 | 4 | language: c 5 | 6 | jobs: 7 | include: 8 | - os: osx 9 | osx_image: xcode11.3 10 | - os: linux 11 | env: CC=clang CXX=clang++ npm_config_clang=1 12 | compiler: clang 13 | 14 | cache: 15 | directories: 16 | - node_modules 17 | - $HOME/.cache/electron 18 | - $HOME/.cache/electron-builder 19 | 20 | addons: 21 | apt: 22 | packages: 23 | - libgnome-keyring-dev 24 | - icnsutils 25 | - rpm 26 | 27 | before_install: 28 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils; fi 29 | 30 | install: 31 | - nvm install 12.14.1 32 | - source ~/.bashrc 33 | - npm install -g xvfb-maybe 34 | - npm install 35 | 36 | script: 37 | - npm run release 38 | 39 | before_cache: 40 | - rm -rf $HOME/.cache/electron-builder/wine 41 | 42 | branches: 43 | only: 44 | - master 45 | -------------------------------------------------------------------------------- /CONTRIBUTING-CN.md: -------------------------------------------------------------------------------- 1 | # Motrix 贡献指南 2 | 3 | 开始贡献之前,确保你已经理解了 [GitHub 的协作流程](https://guides.github.com/introduction/flow/)。 4 | 5 | ## 🌍 翻译指南 6 | 7 | 首先你要确定一个语言的英文简写作为 **locale**,如 en-US,这个 locale 值请严格参考 [Electron 的 Locales 文档](https://www.electronjs.org/docs/api/app#appgetlocale) 和 [Chromium 源代码](https://source.chromium.org/chromium/chromium/src/+/main:ui/base/l10n/l10n_util.cc)。 8 | 9 | Motrix 的国际化分两部分: 10 | 11 | - Element UI 12 | - 菜单和主界面 13 | 14 | ### Element UI 15 | 16 | Element UI 的国际化由 [Element 社区](http://element.eleme.io/#/en-US/component/i18n)提供,找到 **locale** 对应的语言包文件「两者 locale 命名可能不一致」,在 `src/shared/locales/all.js` 中引入,如 17 | 18 | ```javascript 19 | import eleLocaleEn from 'element-ui/lib/locale/lang/en' 20 | import eleLocaleZhCN from 'element-ui/lib/locale/lang/zh-CN' 21 | ``` 22 | 23 | ### 菜单和主界面 24 | 25 | Motrix 使用 i18next 作为翻译支持库,所以你可能需要简单了解一下它的[使用方法](https://www.i18next.com/overview/getting-started)。 26 | 配置文件按照语言 (**locale**) 划分目录:`src/shared/locales`,如:`src/shared/locales/en-US` 和 `src/shared/locales/zh-CN`。 27 | 28 | 目录里面有按业务模块划分的语言文件 29 | 30 | 菜单模块经过重构之后,国际化已经打散到了以下文件里了,不再需要再复制 `src/main/menus` 里的配置。 31 | 32 | - about.js 33 | - app.js 34 | - edit.js 35 | - help.js 36 | - index.js 37 | - menu.js 38 | - preferences.js 39 | - subnav.js 40 | - task.js 41 | - window.js 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright 2018-present Dr_rOot 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /app-update.yml: -------------------------------------------------------------------------------- 1 | provider: generic 2 | url: 'https://dl.motrix.app/releases/' 3 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | image: Visual Studio 2017 2 | 3 | platform: 4 | - x64 5 | 6 | cache: 7 | - node_modules 8 | - '%USERPROFILE%\.electron' 9 | 10 | init: 11 | - git config --global core.autocrlf input 12 | 13 | install: 14 | - ps: Install-Product node 12.14.1 x64 15 | - git reset --hard HEAD 16 | - npm install 17 | - node --version 18 | 19 | build_script: 20 | - npm run release 21 | 22 | test: off 23 | 24 | branches: 25 | only: 26 | - master 27 | -------------------------------------------------------------------------------- /build/256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/256x256.png -------------------------------------------------------------------------------- /build/afterSignHook.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config() 2 | const { join } = require('node:path') 3 | const { notarize } = require('@electron/notarize') 4 | const { appId } = require('../electron-builder.json') 5 | 6 | exports.default = async function (context) { 7 | const { electronPlatformName, appOutDir } = context 8 | if (electronPlatformName !== 'darwin') { 9 | return 10 | } 11 | 12 | const skipNotarize = process.env.SKIP_NOTARIZE 13 | if (skipNotarize === 'true') { 14 | console.log('Skipping notarize') 15 | return 16 | } 17 | 18 | const appBundleId = appId 19 | const appName = context.packager.appInfo.productFilename 20 | const appPath = join(appOutDir, `${appName}.app`) 21 | 22 | try { 23 | await notarize({ 24 | tool: 'notarytool', 25 | appBundleId, 26 | appPath, 27 | teamId: process.env.TEAM_ID, 28 | appleId: process.env.APPLE_ID, 29 | appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD 30 | }) 31 | } catch (error) { 32 | console.error(error) 33 | } 34 | 35 | console.log(`Done notarizing ${appId}`) 36 | } 37 | -------------------------------------------------------------------------------- /build/appx/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/appx/Square150x150Logo.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/appx/Square44x44Logo.png -------------------------------------------------------------------------------- /build/appx/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/appx/StoreLogo.png -------------------------------------------------------------------------------- /build/appx/Wide310x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/appx/Wide310x150Logo.png -------------------------------------------------------------------------------- /build/background.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/background.tiff -------------------------------------------------------------------------------- /build/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/icon.icns -------------------------------------------------------------------------------- /build/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/icon.ico -------------------------------------------------------------------------------- /build/torrent.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/torrent.icns -------------------------------------------------------------------------------- /build/torrent.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/build/torrent.ico -------------------------------------------------------------------------------- /extra/README.md: -------------------------------------------------------------------------------- 1 | # aria2 2 | 3 | Source code: https://github.com/agalwood/aria2 4 | -------------------------------------------------------------------------------- /extra/darwin/arm64/engine/aria2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/extra/darwin/arm64/engine/aria2c -------------------------------------------------------------------------------- /extra/darwin/x64/engine/aria2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/extra/darwin/x64/engine/aria2c -------------------------------------------------------------------------------- /extra/linux/arm64/engine/aria2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/extra/linux/arm64/engine/aria2c -------------------------------------------------------------------------------- /extra/linux/armv7l/engine/aria2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/extra/linux/armv7l/engine/aria2c -------------------------------------------------------------------------------- /extra/linux/x64/engine/aria2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/extra/linux/x64/engine/aria2c -------------------------------------------------------------------------------- /extra/win32/ia32/engine/aria2c.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/extra/win32/ia32/engine/aria2c.exe -------------------------------------------------------------------------------- /extra/win32/x64/engine/aria2c.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/extra/win32/x64/engine/aria2c.exe -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "@/*": [ 6 | "./src/renderer/*" 7 | ], 8 | "@shared/*": [ 9 | "./src/shared/*" 10 | ] 11 | } 12 | }, 13 | "exclude": ["node_modules", "dist"] 14 | } 15 | -------------------------------------------------------------------------------- /screenshots/electron-apps-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/screenshots/electron-apps-banner.png -------------------------------------------------------------------------------- /screenshots/motrix-task-list-downloading-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/screenshots/motrix-task-list-downloading-dark@2x.png -------------------------------------------------------------------------------- /screenshots/motrix-task-list-downloading-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/screenshots/motrix-task-list-downloading-light@2x.png -------------------------------------------------------------------------------- /screenshots/motrix-task-list-empty-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/screenshots/motrix-task-list-empty-dark@2x.png -------------------------------------------------------------------------------- /screenshots/motrix-task-list-empty-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/screenshots/motrix-task-list-empty-light@2x.png -------------------------------------------------------------------------------- /src/main/configs/engine.js: -------------------------------------------------------------------------------- 1 | export const engineBinMap = { 2 | darwin: 'aria2c', 3 | win32: 'aria2c.exe', 4 | linux: 'aria2c' 5 | } 6 | 7 | export const engineArchMap = { 8 | darwin: { 9 | x64: 'x64', 10 | arm64: 'arm64' 11 | }, 12 | win32: { 13 | ia32: 'ia32', 14 | x64: 'x64', 15 | arm64: 'x64' 16 | }, 17 | linux: { 18 | x64: 'x64', 19 | arm: 'armv7l', 20 | arm64: 'arm64' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/configs/page.js: -------------------------------------------------------------------------------- 1 | import is from 'electron-is' 2 | 3 | export default { 4 | index: { 5 | attrs: { 6 | title: 'Motrix', 7 | width: 1024, 8 | height: 768, 9 | minWidth: 478, 10 | minHeight: 420, 11 | transparent: is.macOS() 12 | }, 13 | bindCloseToHide: true, 14 | openDevTools: is.dev(), 15 | url: is.dev() ? 'http://localhost:9080' : require('path').join('file://', __dirname, '/index.html') 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/configs/protocol.js: -------------------------------------------------------------------------------- 1 | /* eslint quote-props: ["error", "always"] */ 2 | export default { 3 | 'task-list': 'application:task-list', 4 | 'new-task': 'application:new-task', 5 | 'new-bt-task': 'application:new-bt-task', 6 | 'pause-all-task': 'application:pause-all-task', 7 | 'resume-all-task': 'application:resume-all-task', 8 | 'reveal-in-folder': 'application:reveal-in-folder', 9 | 'preferences': 'application:preferences', 10 | 'about': 'application:about' 11 | } 12 | -------------------------------------------------------------------------------- /src/main/core/AutoLaunchManager.js: -------------------------------------------------------------------------------- 1 | import { app } from 'electron' 2 | 3 | import { LOGIN_SETTING_OPTIONS } from '@shared/constants' 4 | 5 | export default class AutoLaunchManager { 6 | enable () { 7 | return new Promise((resolve, reject) => { 8 | const enabled = app.getLoginItemSettings(LOGIN_SETTING_OPTIONS).openAtLogin 9 | if (enabled) { 10 | resolve() 11 | } 12 | 13 | app.setLoginItemSettings({ 14 | ...LOGIN_SETTING_OPTIONS, 15 | openAtLogin: true 16 | }) 17 | resolve() 18 | }) 19 | } 20 | 21 | disable () { 22 | return new Promise((resolve, reject) => { 23 | app.setLoginItemSettings({ openAtLogin: false }) 24 | resolve() 25 | }) 26 | } 27 | 28 | isEnabled () { 29 | return new Promise((resolve, reject) => { 30 | const enabled = app.getLoginItemSettings(LOGIN_SETTING_OPTIONS).openAtLogin 31 | resolve(enabled) 32 | }) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/core/Context.js: -------------------------------------------------------------------------------- 1 | import logger from './Logger' 2 | import { 3 | getEnginePath, 4 | getAria2BinPath, 5 | getAria2ConfPath, 6 | getSessionPath 7 | } from '../utils' 8 | 9 | const { platform, arch } = process 10 | 11 | export default class Context { 12 | constructor () { 13 | this.init() 14 | } 15 | 16 | getLogPath () { 17 | const { path } = logger.transports.file.getFile() 18 | return path 19 | } 20 | 21 | init () { 22 | // The key of Context cannot be the same as that of userConfig and systemConfig. 23 | this.context = { 24 | platform: platform, 25 | arch: arch, 26 | 'log-path': this.getLogPath(), 27 | 'session-path': getSessionPath(), 28 | 'engine-path': getEnginePath(platform, arch), 29 | 'aria2-bin-path': getAria2BinPath(platform, arch), 30 | 'aria2-conf-path': getAria2ConfPath(platform, arch) 31 | } 32 | 33 | logger.info('[Motrix] Context.init===>', this.context) 34 | } 35 | 36 | get (key) { 37 | if (typeof key === 'undefined') { 38 | return this.context 39 | } 40 | 41 | return this.context[key] 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/core/EnergyManager.js: -------------------------------------------------------------------------------- 1 | import { powerSaveBlocker } from 'electron' 2 | 3 | import logger from './Logger' 4 | 5 | let psbId 6 | export default class EnergyManager { 7 | startPowerSaveBlocker () { 8 | logger.info('[Motrix] EnergyManager.startPowerSaveBlocker', psbId) 9 | if (psbId && powerSaveBlocker.isStarted(psbId)) { 10 | return 11 | } 12 | 13 | psbId = powerSaveBlocker.start('prevent-app-suspension') 14 | logger.info('[Motrix] start power save blocker:', psbId) 15 | } 16 | 17 | stopPowerSaveBlocker () { 18 | logger.info('[Motrix] EnergyManager.stopPowerSaveBlocker', psbId) 19 | if (typeof psbId === 'undefined' || !powerSaveBlocker.isStarted(psbId)) { 20 | return 21 | } 22 | 23 | powerSaveBlocker.stop(psbId) 24 | logger.info('[Motrix] stop power save blocker:', psbId) 25 | psbId = undefined 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/core/ExceptionHandler.js: -------------------------------------------------------------------------------- 1 | import { app, dialog } from 'electron' 2 | import is from 'electron-is' 3 | 4 | import logger from './Logger' 5 | 6 | const defaults = { 7 | showDialog: !is.dev() 8 | } 9 | export default class ExceptionHandler { 10 | constructor (options) { 11 | this.options = { 12 | ...defaults, 13 | ...options 14 | } 15 | 16 | this.setup() 17 | } 18 | 19 | setup () { 20 | if (is.dev()) { 21 | return 22 | } 23 | const { showDialog } = this.options 24 | process.on('uncaughtException', (err) => { 25 | const { message, stack } = err 26 | logger.error(`[Motrix] Uncaught exception: ${message}`) 27 | logger.error(stack) 28 | 29 | if (showDialog && app.isReady()) { 30 | dialog.showErrorBox('Error: ', message) 31 | } 32 | }) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/core/Logger.js: -------------------------------------------------------------------------------- 1 | import { join } from 'node:path' 2 | import is from 'electron-is' 3 | import logger from 'electron-log' 4 | 5 | import { IS_PORTABLE, PORTABLE_EXECUTABLE_DIR } from '@shared/constants' 6 | 7 | const level = is.production() ? 'info' : 'silly' 8 | logger.transports.file.level = level 9 | 10 | if (IS_PORTABLE) { 11 | logger.transports.file.resolvePath = () => join(PORTABLE_EXECUTABLE_DIR, 'main.log') 12 | } 13 | 14 | logger.info('[Motrix] Logger init') 15 | logger.warn('[Motrix] Logger init') 16 | 17 | export default logger 18 | -------------------------------------------------------------------------------- /src/main/index.dev.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is used specifically and only for development. It installs 3 | * `electron-debug` & `vue-devtools`. There shouldn't be any need to 4 | * modify this file, but it can be used to extend your development 5 | * environment. 6 | */ 7 | 8 | /* eslint-disable */ 9 | 10 | // Install `vue-devtools` 11 | require('electron').app.whenReady().then(() => { 12 | let installExtension = require('electron-devtools-installer') 13 | installExtension.default(installExtension.VUEJS_DEVTOOLS) 14 | .then(() => {}) 15 | .catch(err => { 16 | console.log('Unable to install `vue-devtools`: \n', err) 17 | }) 18 | }) 19 | 20 | // Require `main` process to boot app 21 | require('./index') 22 | -------------------------------------------------------------------------------- /src/main/index.js: -------------------------------------------------------------------------------- 1 | import { app } from 'electron' 2 | import is from 'electron-is' 3 | import { initialize } from '@electron/remote/main' 4 | 5 | import Launcher from './Launcher' 6 | 7 | /** 8 | * initialize the main-process side of the remote module 9 | */ 10 | initialize() 11 | 12 | process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true' 13 | 14 | if (process.env.NODE_ENV !== 'development') { 15 | global.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\') 16 | } 17 | 18 | /** 19 | * Fix Windows notification func 20 | * appId defined in .electron-vue/webpack.main.config.js 21 | */ 22 | if (is.windows()) { 23 | app.setAppUserModelId(appId) 24 | } 25 | 26 | global.launcher = new Launcher() 27 | -------------------------------------------------------------------------------- /src/main/menus/touchBar.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "button", "icon": "new-task", "id": "task.new-task", "command": "application:new-task", "command-after": "application:show?page=index" 4 | }, 5 | { 6 | "type": "spacer", "size": "small" 7 | }, 8 | { 9 | "type": "group", 10 | "id": "task.task-list", 11 | "items": [ 12 | { 13 | "type": "button", "icon": "task-active", "command": "application:task-list", "command-arg": { "status": "active" } 14 | }, 15 | { 16 | "type": "button", "icon": "task-waiting", "command": "application:task-list", "command-arg": { "status": "waiting" } 17 | }, 18 | { 19 | "type": "button", "icon": "task-stopped", "command": "application:task-list", "command-arg": { "status": "stopped" } 20 | } 21 | ] 22 | }, 23 | { 24 | "type": "spacer", "size": "large" 25 | }, 26 | { 27 | "type": "button", "icon": "preferences", "id": "app.preferences", "command": "application:preferences" 28 | }, 29 | { 30 | "type": "spacer", "size": "small" 31 | }, 32 | { 33 | "type": "button", "icon": "about", "id": "app.about", "command": "application:about", "command-before": "application:show?page=index" 34 | } 35 | ] 36 | -------------------------------------------------------------------------------- /src/main/menus/tray.json: -------------------------------------------------------------------------------- 1 | [ 2 | { "id": "task.new-task", "command": "application:new-task", "command-after": "application:show?page=index" }, 3 | { "id": "task.new-bt-task", "command": "application:new-bt-task", "command-arg": { "type": "torrent" }, "command-after": "application:show?page=index" }, 4 | { "id": "task.open-file", "command": "application:open-file", "command-before": "application:show?page=index" }, 5 | { "type": "separator" }, 6 | { "id": "app.show", "command": "application:show", "command-arg": { "page": "index" } }, 7 | { "id": "help.manual", "command": "help:manual" }, 8 | { "id": "app.check-for-updates", "command": "application:check-for-updates" }, 9 | { "type": "separator" }, 10 | { "id": "app.task-list", "command": "application:task-list", "command-before": "application:show?page=index" }, 11 | { "id": "app.preferences", "command": "application:preferences", "command-before": "application:show?page=index" }, 12 | { "id": "app.quit", "command": "application:quit" } 13 | ] 14 | -------------------------------------------------------------------------------- /src/main/pages/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/pages/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/ui/Locale.js: -------------------------------------------------------------------------------- 1 | import resources from '@shared/locales/app' 2 | import LocaleManager from '@shared/locales/LocaleManager' 3 | 4 | const localeManager = new LocaleManager({ 5 | resources 6 | }) 7 | 8 | export const getLocaleManager = () => { 9 | return localeManager 10 | } 11 | 12 | export const setupLocaleManager = (locale) => { 13 | localeManager.changeLanguageByLocale(locale) 14 | 15 | return localeManager 16 | } 17 | 18 | export const getI18n = () => { 19 | return localeManager.getI18n() 20 | } 21 | 22 | export const getI18nTranslator = () => { 23 | return localeManager.getI18n().t 24 | } 25 | -------------------------------------------------------------------------------- /src/main/ui/ThemeManager.js: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from 'node:events' 2 | import { nativeTheme } from 'electron' 3 | 4 | import { APP_THEME } from '@shared/constants' 5 | import logger from '../core/Logger' 6 | import { getSystemTheme } from '../utils' 7 | 8 | export default class ThemeManager extends EventEmitter { 9 | constructor (options = {}) { 10 | super() 11 | 12 | this.options = options 13 | this.init() 14 | } 15 | 16 | init () { 17 | this.systemTheme = getSystemTheme() 18 | 19 | this.handleEvents() 20 | } 21 | 22 | getSystemTheme () { 23 | return this.systemTheme 24 | } 25 | 26 | handleEvents () { 27 | nativeTheme.on('updated', () => { 28 | const theme = getSystemTheme() 29 | this.systemTheme = theme 30 | logger.info('[Motrix] nativeTheme updated===>', theme) 31 | this.emit('system-theme-change', theme) 32 | }) 33 | } 34 | 35 | updateSystemTheme (theme) { 36 | theme = theme === APP_THEME.AUTO ? 'system' : theme 37 | nativeTheme.themeSource = theme 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/renderer/api/index.js: -------------------------------------------------------------------------------- 1 | import Api from './Api' 2 | 3 | const api = new Api() 4 | 5 | export default api 6 | -------------------------------------------------------------------------------- /src/renderer/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/src/renderer/assets/.gitkeep -------------------------------------------------------------------------------- /src/renderer/assets/app-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/src/renderer/assets/app-icon.png -------------------------------------------------------------------------------- /src/renderer/assets/icons/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/audio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/delete.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/dice.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/inbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/info-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/info-square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/magnet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/menu-about.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/menu-add.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/menu-preference.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/menu-task.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/node.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/preference-advanced.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/preference-basic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/purge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/refresh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/speedometer.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/sync.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-done.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-history.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-pause-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-restart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-start-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-stop-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/task-stop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/trash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/video.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/win-close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/win-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/renderer/assets/icons/win-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/renderer/assets/logo-mini.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/renderer/assets/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/renderer/assets/theme-auto@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/src/renderer/assets/theme-auto@2x.png -------------------------------------------------------------------------------- /src/renderer/assets/theme-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/src/renderer/assets/theme-dark@2x.png -------------------------------------------------------------------------------- /src/renderer/assets/theme-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/src/renderer/assets/theme-light@2x.png -------------------------------------------------------------------------------- /src/renderer/components/CommandManager/index.js: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from 'node:events' 2 | 3 | export default class CommandManager extends EventEmitter { 4 | constructor () { 5 | super() 6 | 7 | this.commands = {} 8 | } 9 | 10 | register (id, fn) { 11 | if (this.commands[id]) { 12 | console.log('[Motrix] Attempting to register an already-registered command: ' + id) 13 | return null 14 | } 15 | if (!id || !fn) { 16 | console.error('[Motrix] Attempting to register a command with a missing id, or command function.') 17 | return null 18 | } 19 | this.commands[id] = fn 20 | 21 | this.emit('commandRegistered', id) 22 | } 23 | 24 | unregister (id) { 25 | if (this.commands[id]) { 26 | delete this.commands[id] 27 | 28 | this.emit('commandUnregistered', id) 29 | } 30 | } 31 | 32 | execute (id, ...args) { 33 | const fn = this.commands[id] 34 | if (fn) { 35 | try { 36 | this.emit('beforeExecuteCommand', id) 37 | } catch (err) { 38 | console.error(err) 39 | } 40 | const result = fn(...args) 41 | return result 42 | } else { 43 | return false 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/renderer/components/CommandManager/instance.js: -------------------------------------------------------------------------------- 1 | import CommandManager from '.' 2 | 3 | export const commands = new CommandManager() 4 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/arrow-down.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'arrow-down': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | `, 11 | 'g': { 12 | 'stroke': 'currentColor', 13 | 'stroke-linecap': 'round', 14 | 'stroke-linejoin': 'round', 15 | 'stroke-width': '2' 16 | } 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/arrow-up.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'arrow-up': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | `, 11 | 'g': { 12 | 'stroke': 'currentColor', 13 | 'stroke-linecap': 'round', 14 | 'stroke-linejoin': 'round', 15 | 'stroke-width': '2' 16 | } 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/audio.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'audio': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | `, 13 | 'g': { 14 | 'stroke': 'currentColor', 15 | 'stroke-linecap': 'round', 16 | 'stroke-linejoin': 'round', 17 | 'stroke-width': '2' 18 | } 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/delete.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'delete': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ``, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '2' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/dice.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'dice': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | 13 | `, 14 | 'g': { 15 | 'stroke': 'currentColor', 16 | 'stroke-linecap': 'round', 17 | 'stroke-linejoin': 'round', 18 | 'stroke-width': '2' 19 | } 20 | } 21 | }) 22 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/document.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'document': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | `, 13 | 'g': { 14 | 'stroke': 'currentColor', 15 | 'stroke-linecap': 'round', 16 | 'stroke-linejoin': 'round', 17 | 'stroke-width': '2', 18 | 'fill': 'none' 19 | } 20 | } 21 | }) 22 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/folder.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'folder': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ``, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '2' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/image.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'image': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | `, 10 | 'g': { 11 | 'stroke': 'currentColor', 12 | 'stroke-linecap': 'round', 13 | 'stroke-linejoin': 'round', 14 | 'stroke-width': '2' 15 | } 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/inbox.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'inbox': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | `, 11 | 'g': { 12 | 'stroke': 'currentColor', 13 | 'stroke-linecap': 'round', 14 | 'stroke-linejoin': 'round', 15 | 'stroke-width': '1.5' 16 | } 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/info-circle.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'info-circle': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | `, 10 | 'g': { 11 | 'stroke': 'currentColor', 12 | 'stroke-linecap': 'round', 13 | 'stroke-linejoin': 'round', 14 | 'stroke-width': '2' 15 | } 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/info-square.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'info-square': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | `, 10 | 'g': { 11 | 'stroke': 'currentColor', 12 | 'stroke-linecap': 'round', 13 | 'stroke-linejoin': 'round', 14 | 'stroke-width': '2' 15 | } 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/link.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'link': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ``, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '2' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/magnet.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'magnet': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 12 | `, 13 | 'g': { 14 | 'stroke': 'currentColor', 15 | 'stroke-linecap': 'round', 16 | 'stroke-linejoin': 'round', 17 | 'stroke-width': '2' 18 | } 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/menu-about.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'menu-about': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` ` 8 | } 9 | }) 10 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/menu-add.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'menu-add': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | `, 9 | 'g': { 10 | 'stroke': 'currentColor', 11 | 'stroke-linecap': 'round', 12 | 'stroke-linejoin': 'round', 13 | 'stroke-width': '2' 14 | } 15 | } 16 | }) 17 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/menu-preference.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'menu-preference': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` `, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '2' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/menu-task.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'menu-task': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'paths': [{ 8 | 'd': 'M14,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h13c0.6,0,1,0.4,1,1S14.6,13,14,13z' 9 | }, { 10 | 'd': 'M23,6H1C0.4,6,0,5.6,0,5s0.4-1,1-1h22c0.6,0,1,0.4,1,1S23.6,6,23,6z' 11 | }, { 12 | 'd': 'M23,20H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h22c0.6,0,1,0.4,1,1S23.6,20,23,20z' 13 | }] 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/node.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'node': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | `, 13 | 'g': { 14 | 'stroke': 'currentColor', 15 | 'stroke-linecap': 'round', 16 | 'stroke-linejoin': 'round', 17 | 'stroke-width': '2' 18 | } 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/preference-advanced.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'preference-advanced': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'polygons': [{ 8 | 'points': '10.853,9.439 6.707,5.293 8,4 4,0 0,4 4,8 5.293,6.707 9.189,10.603' 9 | }], 10 | 'paths': [{ 11 | 'd': 'M18.94,13.94C18.631,13.976,18.318,14,18,14c-0.305,0-0.608-0.018-0.912-0.053l-3.641,4.499 l4.518,4.518c1.381,1.381,3.619,1.381,5,0v0c1.381-1.381,1.381-3.619,0-5L18.94,13.94z' 12 | }, { 13 | 'd': 'M20.271,6.771l-3.042-3.042l3.208-3.208C19.692,0.189,18.869,0,18,0c-3.314,0-6,2.686-6,6 c0,0.594,0.089,1.166,0.25,1.708l-10.789,8.73c-0.891,0.787-1.423,1.919-1.459,3.106c-0.037,1.188,0.424,2.351,1.264,3.19 C2.082,23.551,3.167,24,4.321,24c1.239,0,2.421-0.532,3.241-1.461l8.73-10.789C16.834,11.911,17.406,12,18,12c3.314,0,6-2.686,6-6 c0-0.869-0.189-1.692-0.521-2.438L20.271,6.771z' 14 | }] 15 | } 16 | }) 17 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/preference-basic.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'preference-basic': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'paths': [{ 8 | 'd': 'M6.5,11h11c3,0,5.5-2.5,5.5-5.5S20.5,0,17.5,0h-11C3.5,0,1,2.5,1,5.5S3.5,11,6.5,11z M6.5,2 C8.4,2,10,3.6,10,5.5S8.4,9,6.5,9S3,7.4,3,5.5S4.6,2,6.5,2z' 9 | }, { 10 | 'd': 'M17.5,13h-11c-3,0-5.5,2.5-5.5,5.5S3.5,24,6.5,24h11c3,0,5.5-2.5,5.5-5.5S20.5,13,17.5,13z M17.5,22c-1.9,0-3.5-1.6-3.5-3.5s1.6-3.5,3.5-3.5s3.5,1.6,3.5,3.5S19.4,22,17.5,22z' 11 | }] 12 | } 13 | }) 14 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/preference-lab.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'preference-lab': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'polygons': [{ 8 | 'points': '9,11.675 5.855,16 18.145,16 15,11.675 15,5 17,5 17,0 7,0 7,5 9,5' 9 | }], 10 | 'paths': [{ 11 | 'd': 'M19.6,18H4.4l-0.898,1.235c-0.668,0.917-0.763,2.115-0.248,3.126S4.793,24,5.928,24h12.145 c1.135,0,2.159-0.628,2.674-1.639s0.42-2.209-0.248-3.126L19.6,18z' 12 | }] 13 | } 14 | }) 15 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/purge.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'purge': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | `, 13 | 'g': { 14 | 'stroke': 'currentColor', 15 | 'stroke-linecap': 'round', 16 | 'stroke-linejoin': 'round', 17 | 'stroke-width': '2' 18 | } 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/refresh.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'refresh': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | `, 9 | 'g': { 10 | 'stroke': 'currentColor', 11 | 'stroke-linecap': 'round', 12 | 'stroke-linejoin': 'round', 13 | 'stroke-width': '2' 14 | } 15 | } 16 | }) 17 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/sync.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'sync': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | 13 | 14 | `, 15 | 'g': { 16 | 'stroke': 'currentColor', 17 | 'stroke-linecap': 'round', 18 | 'stroke-linejoin': 'round', 19 | 'stroke-width': '2' 20 | } 21 | } 22 | }) 23 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-history.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-history': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'paths': [{ 8 | 'd': 'M12,0C5.383,0,0,5.383,0,12s5.383,12,12,12s12-5.383,12-12S18.617,0,12,0z M19,13h-8V5h2v6h6V13z' 9 | }] 10 | } 11 | }) 12 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-pause-line.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-pause-line': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ``, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '2' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-pause.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-pause': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'paths': [{ 8 | 'd': 'M9,1H3C2.447,1,2,1.447,2,2v20c0,0.553,0.447,1,1,1h6c0.553,0,1-0.447,1-1V2C10,1.447,9.553,1,9,1z' 9 | }, { 10 | 'd': 'M21,1h-6c-0.553,0-1,0.447-1,1v20c0,0.553,0.447,1,1,1h6c0.553,0,1-0.447,1-1V2C22,1.447,21.553,1,21,1z' 11 | }] 12 | } 13 | }) 14 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-restart.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-restart': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | `, 10 | 'g': { 11 | 'stroke': 'currentColor', 12 | 'stroke-linecap': 'round', 13 | 'stroke-linejoin': 'round', 14 | 'stroke-width': '2' 15 | } 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-start-line.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-start-line': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ``, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '2' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-start.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-start': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'paths': [{ 8 | 'd': 'M20.555,11.168l-15-10c-0.307-0.204-0.702-0.224-1.026-0.05C4.203,1.292,4,1.631,4,2v20 c0,0.369,0.203,0.708,0.528,0.882C4.676,22.961,4.838,23,5,23c0.194,0,0.388-0.057,0.555-0.168l15-10C20.833,12.646,21,12.334,21,12 S20.833,11.354,20.555,11.168z' 9 | }] 10 | } 11 | }) 12 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-stop-line.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-stop-line': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ``, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '2' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/task-stop.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'task-stop': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'paths': [{ 8 | 'd': 'M22,1H2C1.447,1,1,1.447,1,2v20c0,0.553,0.447,1,1,1h20c0.553,0,1-0.447,1-1V2C23,1.447,22.553,1,22,1z' 9 | }] 10 | } 11 | }) 12 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/trash.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'trash': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | `, 13 | 'g': { 14 | 'stroke': 'currentColor', 15 | 'stroke-linecap': 'round', 16 | 'stroke-linejoin': 'round', 17 | 'stroke-width': '2' 18 | } 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/video.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'video': { 5 | 'width': 24, 6 | 'height': 24, 7 | 'raw': ` 8 | 9 | 10 | 11 | 12 | 13 | 14 | `, 15 | 'g': { 16 | 'stroke': 'currentColor', 17 | 'stroke-linecap': 'round', 18 | 'stroke-linejoin': 'round', 19 | 'stroke-width': '2' 20 | } 21 | } 22 | }) 23 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/win-close.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'win-close': { 5 | 'width': 12, 6 | 'height': 12, 7 | 'raw': ` 8 | `, 9 | 'g': { 10 | 'stroke': 'currentColor', 11 | 'stroke-linecap': 'round', 12 | 'stroke-linejoin': 'round', 13 | 'stroke-width': '1' 14 | } 15 | } 16 | }) 17 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/win-maximize.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'win-maximize': { 5 | 'width': 12, 6 | 'height': 12, 7 | 'raw': ` 8 | `, 9 | 'g': { 10 | 'stroke': 'currentColor', 11 | 'stroke-linecap': 'round', 12 | 'stroke-linejoin': 'round', 13 | 'stroke-width': '1' 14 | } 15 | } 16 | }) 17 | -------------------------------------------------------------------------------- /src/renderer/components/Icons/win-minimize.js: -------------------------------------------------------------------------------- 1 | import Icon from '@/components/Icons/Icon' 2 | 3 | Icon.register({ 4 | 'win-minimize': { 5 | 'width': 12, 6 | 'height': 12, 7 | 'raw': ``, 8 | 'g': { 9 | 'stroke': 'currentColor', 10 | 'stroke-linecap': 'round', 11 | 'stroke-linejoin': 'round', 12 | 'stroke-width': '1' 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/renderer/components/Locale/index.js: -------------------------------------------------------------------------------- 1 | import resources from '@shared/locales/all' 2 | import LocaleManager from '@shared/locales/LocaleManager' 3 | 4 | const localeManager = new LocaleManager({ 5 | resources 6 | }) 7 | 8 | export function getLocaleManager () { 9 | return localeManager 10 | } 11 | -------------------------------------------------------------------------------- /src/renderer/components/Logo/LogoMini.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | 34 | -------------------------------------------------------------------------------- /src/renderer/components/Msg/index.js: -------------------------------------------------------------------------------- 1 | const queue = [] 2 | const maxLength = 5 3 | 4 | export default { 5 | install: function (Vue, Message, defaultOption = {}) { 6 | Vue.prototype.$msg = new Proxy(Message, { 7 | get (obj, prop) { 8 | return (arg) => { 9 | if (!(arg instanceof Object)) { 10 | arg = { message: arg } 11 | } 12 | const task = { 13 | run () { 14 | obj[prop]({ 15 | ...defaultOption, 16 | ...arg, 17 | onClose (...data) { 18 | const currentTask = queue.pop() 19 | if (currentTask) { 20 | currentTask.run() 21 | } 22 | if (arg.onClose) { 23 | arg.onClose(...data) 24 | } 25 | } 26 | }) 27 | } 28 | } 29 | 30 | if (queue.length >= maxLength) { 31 | queue.pop() 32 | } 33 | queue.unshift(task) 34 | 35 | if (queue.length === 1) { 36 | queue.pop().run() 37 | } 38 | } 39 | } 40 | }) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/renderer/components/Native/Ipc.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 28 | -------------------------------------------------------------------------------- /src/renderer/components/Native/SelectDirectory.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 35 | -------------------------------------------------------------------------------- /src/renderer/components/Native/ShowInFolder.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 34 | -------------------------------------------------------------------------------- /src/renderer/components/Task/TaskProgress.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 49 | -------------------------------------------------------------------------------- /src/renderer/components/Task/TaskStatus.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 46 | -------------------------------------------------------------------------------- /src/renderer/components/Theme/Index.scss: -------------------------------------------------------------------------------- 1 | /* Normalize.css 2 | -------------------------- */ 3 | @import '~normalize.css/normalize.css'; 4 | 5 | /* Element UI 6 | -------------------------- */ 7 | @import '~element-ui/packages/theme-chalk/src/index'; 8 | 9 | /* Theme Light (default) 10 | -------------------------- */ 11 | @import './Default.scss'; 12 | 13 | /* Theme Dark 14 | -------------------------- */ 15 | @import './Dark.scss'; 16 | -------------------------------------------------------------------------------- /src/renderer/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | import modules from './modules' 5 | 6 | Vue.use(Vuex) 7 | 8 | export default new Vuex.Store({ 9 | modules, 10 | strict: process.env.NODE_ENV !== 'production' 11 | }) 12 | -------------------------------------------------------------------------------- /src/renderer/store/modules/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The file enables `@/store/index.js` to import all vuex modules 3 | * in a one-shot manner. There should not be any reason to edit this file. 4 | */ 5 | 6 | const files = require.context('.', false, /\.js$/) 7 | const modules = {} 8 | 9 | files.keys().forEach(key => { 10 | if (key === './index.js') return 11 | modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default 12 | }) 13 | 14 | export default modules 15 | -------------------------------------------------------------------------------- /src/renderer/workers/tray.worker.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars: 'off' */ 2 | import { TRAY_CANVAS_CONFIG } from '@shared/constants' 3 | import { draw } from '@shared/utils/tray' 4 | 5 | let idx = 0 6 | let canvas 7 | 8 | const initCanvas = () => { 9 | if (canvas) { 10 | return canvas 11 | } 12 | 13 | const { WIDTH, HEIGHT } = TRAY_CANVAS_CONFIG 14 | return new OffscreenCanvas(WIDTH, HEIGHT) 15 | } 16 | 17 | const drawTray = async (payload) => { 18 | self.postMessage({ 19 | type: 'log', 20 | payload 21 | }) 22 | 23 | if (!canvas) { 24 | canvas = initCanvas() 25 | } 26 | 27 | try { 28 | const tray = await draw({ 29 | canvas, 30 | ...payload 31 | }) 32 | 33 | self.postMessage({ 34 | type: 'tray:drawed', 35 | payload: { 36 | idx, 37 | tray 38 | } 39 | }) 40 | 41 | idx += 1 42 | } catch (error) { 43 | logger(error.message) 44 | } 45 | } 46 | 47 | const logger = (text) => { 48 | self.postMessage({ 49 | type: 'log', 50 | payload: text 51 | }) 52 | } 53 | 54 | self.postMessage({ 55 | type: 'initialized', 56 | payload: Date.now() 57 | }) 58 | 59 | self.addEventListener('message', (event) => { 60 | const { type, payload } = event.data 61 | switch (type) { 62 | case 'tray:draw': 63 | drawTray(payload) 64 | break 65 | default: 66 | logger(JSON.stringify(event.data)) 67 | } 68 | }) 69 | -------------------------------------------------------------------------------- /src/shared/aria2/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const Aria2 = require('./lib/Aria2') 4 | 5 | module.exports = Aria2 6 | -------------------------------------------------------------------------------- /src/shared/aria2/lib/Deferred.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = function Deferred () { 4 | this.promise = new Promise((resolve, reject) => { 5 | this.resolve = resolve 6 | this.reject = reject 7 | }) 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/aria2/lib/JSONRPCError.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | export class JSONRPCError extends Error { 4 | constructor ({ message, code, data }) { 5 | super(message) 6 | this.code = code 7 | if (data) this.data = data 8 | this.name = this.constructor.name 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/shared/aria2/lib/debug.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | import { inspect } from 'util' 4 | 5 | module.exports = (aria2) => { 6 | aria2.on('open', () => { 7 | console.log('aria2', 'OPEN') 8 | }) 9 | 10 | aria2.on('close', () => { 11 | console.log('aria2', 'CLOSE') 12 | }) 13 | 14 | aria2.on('input', (m) => { 15 | console.log('aria2', 'IN') 16 | console.log(inspect(m, { depth: null, colors: true })) 17 | }) 18 | 19 | aria2.on('output', (m) => { 20 | console.log('aria2', 'OUT') 21 | console.log(inspect(m, { depth: null, colors: true })) 22 | }) 23 | } 24 | -------------------------------------------------------------------------------- /src/shared/aria2/lib/promiseEvent.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = function promiseEvent (target, event) { 4 | return new Promise((resolve, reject) => { 5 | function cleanup () { 6 | target.removeListener(event, onEvent) 7 | target.removeListener('error', onError) 8 | } 9 | function onEvent (data) { 10 | resolve(data) 11 | cleanup() 12 | } 13 | function onError (err) { 14 | reject(err) 15 | cleanup() 16 | } 17 | target.addListener(event, onEvent) 18 | target.addListener('error', onError) 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /src/shared/colors.json: -------------------------------------------------------------------------------- 1 | { 2 | "active": "#5b5bea", 3 | "waiting": "#737373", 4 | "paused": "#737373", 5 | "error": "#FF6157", 6 | "complete": "#2ACB42", 7 | "removed": "#737373", 8 | "seeding": "#2ACB42" 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/keymap.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmdctrl-q": "application:quit", 3 | "cmdctrl-n": "application:new-task", 4 | "cmdctrl-shift-n": "application:new-bt-task", 5 | "cmdctrl-o": "application:open-file", 6 | "cmdctrl-l": "application:task-list", 7 | "cmdctrl-,": "application:preferences", 8 | "cmdctrl-shift-p": "application:pause-all-task", 9 | "cmdctrl-shift-r": "application:resume-all-task", 10 | "ctrl-shift-a": "application:select-all-task" 11 | } 12 | -------------------------------------------------------------------------------- /src/shared/locales/LocaleManager.js: -------------------------------------------------------------------------------- 1 | import i18next from 'i18next' 2 | import { getLanguage } from '@shared/locales' 3 | 4 | export default class LocaleManager { 5 | constructor (options = {}) { 6 | this.options = options 7 | 8 | i18next.init({ 9 | fallbackLng: 'en-US', 10 | resources: options.resources 11 | }) 12 | } 13 | 14 | changeLanguage (lng) { 15 | return i18next.changeLanguage(lng) 16 | } 17 | 18 | changeLanguageByLocale (locale) { 19 | const lng = getLanguage(locale) 20 | return this.changeLanguage(lng) 21 | } 22 | 23 | getI18n () { 24 | return i18next 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/shared/locales/ar/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'إصدار المحرك', 3 | 'license': 'الرخصة', 4 | 'about': 'حول', 5 | 'release': 'الإصدار', 6 | 'support': 'الدعم' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ar/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'قائمة التحميلات', 3 | 'add-task': 'إضافة تحميل', 4 | 'about': 'حول موتركس', 5 | 'preferences': 'التفضيلات...', 6 | 'check-for-updates': 'التحقق من وجود تحديثات ...', 7 | 'check-updates-now': 'تحقق الآن', 8 | 'checking-for-updates': 'جاري التحقق من وجود تحديثات...', 9 | 'check-for-updates-title': 'التحقق من وجود تحديثات', 10 | 'update-available-message': 'يتوفر إصدار أحدث من موتركس، تحديث الآن؟', 11 | 'update-not-available-message': 'لديك أحدث إصدار!', 12 | 'update-downloaded-message': 'جاهز للتثبيت...', 13 | 'update-error-message': 'حدث خطأ أثناء التحديث', 14 | 'engine-damaged-message': 'المحرك متضرر، الرجاء إعادة التثبيت : (', 15 | 'engine-missing-message': 'المحرك مفقود، الرجاء إعادة التثبيت : (', 16 | 'system-error-title': 'خطأ في النظام', 17 | 'system-error-message': 'فشل بدء تشغيل التطبيق: {{message}}', 18 | 'hide': 'إخفاء موتركس', 19 | 'hide-others': 'إخفاء الآخرين', 20 | 'unhide': 'إظهار الكل', 21 | 'show': 'إظهار موتركس', 22 | 'quit': 'الخروج من موتركس', 23 | 'under-development-message': 'عذراً، هذه الميزة قيد التطوير...', 24 | 'yes': 'نعم', 25 | 'no': 'لا', 26 | 'save': 'يحفظ', 27 | 'reset': 'ينبذ', 28 | 'cancel': 'إلغاء', 29 | 'submit': 'إرسال', 30 | 'gt1d': 'أكثر من يوم', 31 | 'hour': 'س', 32 | 'minute': 'د', 33 | 'second': 'ث' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/ar/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'تراجع', 3 | 'redo': 'إعادة', 4 | 'cut': 'قص', 5 | 'copy': 'نسخ', 6 | 'paste': 'لصق', 7 | 'delete': 'حذف', 8 | 'select-all': 'تحديد الكل' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/ar/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'موقع موتركس', 3 | 'manual': 'دليل الاستخدام', 4 | 'release-notes': 'ملاحظات الإصدار...', 5 | 'report-problem': 'الإبلاغ عن مشكلة', 6 | 'toggle-dev-tools': 'تفعيل أدوات المطور' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ar/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/ar/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'موتركس', 3 | 'file': 'الملف', 4 | 'task': 'التحميل', 5 | 'edit': 'تعديل', 6 | 'window': 'النافذة', 7 | 'help': 'المساعدة' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ar/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'قائمة التحميلات', 3 | 'preferences': 'التفضيلات' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/ar/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'إعادة تحميل', 3 | 'close': 'إغلاق', 4 | 'minimize': 'تصغير', 5 | 'zoom': 'تكبير', 6 | 'toggle-fullscreen': 'تفعيل وضع ملء الشاشة', 7 | 'front': 'إحضار الكل إلى المقدمة' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/bg/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Версия', 3 | 'license': 'Лиценз', 4 | 'about': 'Информация', 5 | 'release': 'Съобщение', 6 | 'support': 'Подкрепа' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/bg/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Задачи', 3 | 'add-task': 'Добавяне на задача', 4 | 'about': 'О Motrix', 5 | 'preferences': 'Меню...', 6 | 'check-for-updates': 'Проверка на актуализацията...', 7 | 'check-updates-now': 'Проверете сега', 8 | 'checking-for-updates': 'Проверка за актуализации...', 9 | 'check-for-updates-title': 'Проверка за актуализации', 10 | 'update-available-message': 'Новата версия на Motrix е достъпна за изтегляне, Изтеглете сега?', 11 | 'update-not-available-message': 'Вече използвате най-новата версия!', 12 | 'update-downloaded-message': 'Готово за инсталиране...', 13 | 'update-error-message': 'Грешка при обновяване', 14 | 'engine-damaged-message': 'Програмата е повредена, моля преинсталирайте :(', 15 | 'engine-missing-message': 'Програмата е загубена, моля преинсталирайте :(', 16 | 'system-error-title': 'Грешка', 17 | 'system-error-message': 'Грешка при стартиране на приложението: {{message}}', 18 | 'hide': 'Скрия Motrix', 19 | 'hide-others': 'Скрийте всичко останало', 20 | 'unhide': 'Показване на всички', 21 | 'show': 'Показване Motrix', 22 | 'quit': 'Затваряне Motrix', 23 | 'under-development-message': 'За съжаление тази функция все още е в процес на разработка...', 24 | 'yes': 'Да', 25 | 'no': 'Не', 26 | 'save': 'Запазете', 27 | 'reset': 'Изхвърлете', 28 | 'cancel': 'Отказ', 29 | 'submit': 'Потвърдя', 30 | 'gt1d': '> 1 ден', 31 | 'hour': 'ч', 32 | 'minute': 'м', 33 | 'second': 'с' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/bg/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Отказ', 3 | 'redo': 'Повторя', 4 | 'cut': 'Нарежа', 5 | 'copy': 'Копирам', 6 | 'paste': 'Поставя', 7 | 'delete': 'Премахна', 8 | 'select-all': 'Изберете всички' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/bg/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Сайт Motrix', 3 | 'manual': 'Инструкция', 4 | 'release-notes': 'Маркировки...', 5 | 'report-problem': 'Докладвайте за проблем', 6 | 'toggle-dev-tools': 'Превключване на инструменти за разработчици' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/bg/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/bg/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Файл', 4 | 'task': 'Задача', 5 | 'edit': 'Редктиране', 6 | 'window': 'Прозорец', 7 | 'help': 'Грижа' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/bg/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list':'Задачи', 3 | 'preferences':'Настройки' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/bg/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Перезагрузить', 3 | 'close': 'Закрыть', 4 | 'minimize': 'Свернуть', 5 | 'zoom': 'Увеличение', 6 | 'toggle-fullscreen': 'Перейти в полноэкранный режим', 7 | 'front': 'Поверх всех окон' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ca/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Versió del motor', 3 | 'license': 'Llicència', 4 | 'about': 'Sobre ', 5 | 'release': 'Llençaments', 6 | 'support': 'Suport' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ca/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tasques', 3 | 'add-task': 'Afegir tasca', 4 | 'about': 'Sobre Motrix', 5 | 'preferences': 'Preferències...', 6 | 'check-for-updates': 'Comprovar actualitzacions...', 7 | 'check-updates-now': 'Comprovar ara', 8 | 'checking-for-updates': 'Comprovant actualitzacions...', 9 | 'check-for-updates-title': 'Comprovar actualitzacions', 10 | 'update-available-message': 'Hi ha una nova versió de Motrix. Actualitzar ara?', 11 | 'update-not-available-message': 'Estàs en l\'última versió!', 12 | 'update-downloaded-message': 'Llest per instal·lar...', 13 | 'update-error-message': 'Error mentre s\'actualitzava', 14 | 'engine-damaged-message': 'El motor està danyat, per favor reinstal·la :(', 15 | 'engine-missing-message': 'No es troba el motor, por favor reinstal·la :(', 16 | 'system-error-title': 'Error del sistema', 17 | 'system-error-message': 'L\'aplicació va fallar en iniciar: {{message}}', 18 | 'hide': 'Ocultar Motrix', 19 | 'hide-others': 'Ocultar altres', 20 | 'unhide': 'Mostrar tot', 21 | 'show': 'Mostrar Motrix', 22 | 'quit': 'Sortir de Motrix', 23 | 'under-development-message': 'Ho sentim, aquesta característica està en desenvolupament...', 24 | 'yes': 'Sí', 25 | 'no': 'No', 26 | 'save': 'Desa', 27 | 'reset': 'Descarta', 28 | 'cancel': 'Cancel·lar', 29 | 'submit': 'Enviar', 30 | 'gt1d': '> 1 dia', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/ca/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Desfer', 3 | 'redo': 'Refer', 4 | 'cut': 'Retallar', 5 | 'copy': 'Copiar', 6 | 'paste': 'Enganxar', 7 | 'delete': 'Eliminar', 8 | 'select-all': 'Seleccionar tot' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/ca/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Lloc web de Motrix', 3 | 'manual': 'Manual', 4 | 'release-notes': 'Notes de la versió...', 5 | 'report-problem': 'Informar d\'un problema', 6 | 'toggle-dev-tools': 'Alternar les eines de desenvolupament' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ca/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/ca/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Arxiu', 4 | 'task': 'Tasca', 5 | 'edit': 'Editar', 6 | 'window': 'Finestra', 7 | 'help': 'Ajuda' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ca/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tasques', 3 | 'preferences': 'Preferències' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/ca/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Recarregar', 3 | 'close': 'Tancar', 4 | 'minimize': 'Minimitzar', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Posar a Pantalla Completa', 7 | 'front': 'Posar Tot Al Front' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/de/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Engine Version', 3 | 'license': 'Lizenz', 4 | 'about': 'Über', 5 | 'release': 'Versionen', 6 | 'support': 'Unterstützung anfordern' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/de/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Aufgaben', 3 | 'add-task': 'Aufgabe hinzufügen', 4 | 'about': 'Über Motrix', 5 | 'preferences': 'Einstellungen...', 6 | 'check-for-updates': 'Nach Updates suchen...', 7 | 'check-updates-now': 'Jetzt prüfen', 8 | 'checking-for-updates': 'Nach Updates suchen ...', 9 | 'check-for-updates-title': 'Nach Updates suchen', 10 | 'update-available-message': 'Eine neue Version von Motrix ist verfügbar, jetzt aktualisieren?', 11 | 'update-not-available-message': 'Sie sind auf dem neuesten Stand!', 12 | 'update-downloaded-message': 'Bereit zur Installation...', 13 | 'update-error-message': 'Aktualisierungsfehler', 14 | 'engine-damaged-message': 'Der Motor ist beschädigt, bitte neu installieren : (', 15 | 'engine-missing-message': 'Der Motor fehlt, bitte neu installieren : (', 16 | 'system-error-title': 'Systemfehler', 17 | 'system-error-message': 'Die Anwendung konnte nicht gestartet werden: {{message}}', 18 | 'hide': 'Motrix verbergen', 19 | 'hide-others': 'Andere verbergen', 20 | 'unhide': 'Alles anzeigen', 21 | 'show': 'Motrix anzeigen', 22 | 'quit': 'Motrix beenden', 23 | 'under-development-message': 'Entschuldigung, diese Funktion befindet sich in der Entwicklung...', 24 | 'yes': 'Ja', 25 | 'no': 'Nein', 26 | 'save': 'Speichern', 27 | 'reset': 'Verwerfen', 28 | 'cancel': 'Abbrechen', 29 | 'submit': 'Übernehmen', 30 | 'gt1d': '> 1 Tag', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/de/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Rückgängig', 3 | 'redo': 'Wiederholen', 4 | 'cut': 'Ausschneiden', 5 | 'copy': 'Kopieren', 6 | 'paste': 'Einfügen', 7 | 'delete': 'Löschen', 8 | 'select-all': 'Alles auswählen' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/de/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix Website', 3 | 'manual': 'Handbuch', 4 | 'release-notes': 'Versionshinweise...', 5 | 'report-problem': 'Problem melden', 6 | 'toggle-dev-tools': 'Entwicklerwerkzeuge umschalten' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/de/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/de/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Datei', 4 | 'task': 'Aufgabe', 5 | 'edit': 'Bearbeiten', 6 | 'window': 'Fenster', 7 | 'help': 'Hilfe' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/de/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Aufgaben', 3 | 'preferences': 'Einstellungen' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/de/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Neu laden', 3 | 'close': 'Schließen', 4 | 'minimize': 'Minimieren', 5 | 'zoom': 'Zoomen', 6 | 'toggle-fullscreen': 'Vollbildmodus aktivieren', 7 | 'front': 'Alles in den Vordergrund bringen' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/el/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Έκδοση Μηχανής', 3 | 'license': 'Άδεια', 4 | 'about': 'Σχετικά', 5 | 'release': 'Έκδοση', 6 | 'support': 'Υποστήριξη' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/el/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Αναίρεση', 3 | 'redo': 'Ακύρωση Αναίρεσης', 4 | 'cut': 'Αποκοπή', 5 | 'copy': 'Αντιγραφή', 6 | 'paste': 'Επικόλληση', 7 | 'delete': 'Διαγραφή', 8 | 'select-all': 'Επιλογή Όλων' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/el/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Ιστοσελίδα του Motrix', 3 | 'manual': 'Εγχειρίδιο Οδηγιών', 4 | 'release-notes': 'Σημειώσεις έκδοσης...', 5 | 'report-problem': 'Αναφέρετε ένα πρόβλημα', 6 | 'toggle-dev-tools': 'Εμφάνιση εργαλείων για προγραμματιστές' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/el/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/el/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Αρχείο', 4 | 'task': 'Εργασία', 5 | 'edit': 'Επεξεργασία', 6 | 'window': 'Παράθυρο', 7 | 'help': 'Βοήθεια' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/el/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Εργασίες', 3 | 'preferences': 'Προτιμήσεις' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/el/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Επαναφόρτωση', 3 | 'close': 'Κλείσιμο', 4 | 'minimize': 'Ελαχιστοποίηση', 5 | 'zoom': 'Ζουμ', 6 | 'toggle-fullscreen': 'Είσοδος σε πλήρη οθόνη', 7 | 'front': 'Εμφάνιση όλων μπροστά' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Engine Version', 3 | 'license': 'License', 4 | 'about': 'About', 5 | 'release': 'Releases', 6 | 'support': 'Support' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tasks', 3 | 'add-task': 'Add Task', 4 | 'about': 'About Motrix', 5 | 'preferences': 'Preferences...', 6 | 'check-for-updates': 'Check for Updates...', 7 | 'check-updates-now': 'Check now', 8 | 'checking-for-updates': 'Checking for updates ...', 9 | 'check-for-updates-title': 'Check for Updates', 10 | 'update-available-message': 'A newer version of Motrix is available, update now?', 11 | 'update-not-available-message': 'You are up-to-date!', 12 | 'update-downloaded-message': 'Ready to install...', 13 | 'update-error-message': 'Update Error', 14 | 'engine-damaged-message': 'The engine is damaged, please reinstall : (', 15 | 'engine-missing-message': 'The engine is missing, please reinstall : (', 16 | 'system-error-title': 'System Error', 17 | 'system-error-message': 'Application startup failed: {{message}}', 18 | 'hide': 'Hide Motrix', 19 | 'hide-others': 'Hide Others', 20 | 'unhide': 'Show All', 21 | 'show': 'Show Motrix', 22 | 'quit': 'Quit Motrix', 23 | 'under-development-message': 'Sorry, this feature is under development...', 24 | 'yes': 'Yes', 25 | 'no': 'No', 26 | 'save': 'Save', 27 | 'reset': 'Discard', 28 | 'cancel': 'Cancel', 29 | 'submit': 'Submit', 30 | 'gt1d': '> 1 day', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Undo', 3 | 'redo': 'Redo', 4 | 'cut': 'Cut', 5 | 'copy': 'Copy', 6 | 'paste': 'Paste', 7 | 'delete': 'Delete', 8 | 'select-all': 'Select All' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix Website', 3 | 'manual': 'Manual', 4 | 'release-notes': 'Release Notes...', 5 | 'report-problem': 'Report Problem', 6 | 'toggle-dev-tools': 'Toggle Developer Tools' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'File', 4 | 'task': 'Task', 5 | 'edit': 'Edit', 6 | 'window': 'Window', 7 | 'help': 'Help' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tasks', 3 | 'preferences': 'Preferences' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/en-US/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Reload', 3 | 'close': 'Close', 4 | 'minimize': 'Minimize', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Enter Full Screen', 7 | 'front': 'Bring All to Front' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/es/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Versión del motor', 3 | 'license': 'Licencia', 4 | 'about': 'Acerca de', 5 | 'release': 'Versión', 6 | 'support': 'Soporte' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/es/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tareas', 3 | 'add-task': 'Añadir tareas', 4 | 'about': 'Acerca de Motrix', 5 | 'preferences': 'Preferencias...', 6 | 'check-for-updates': 'Comprobar actualizaciones...', 7 | 'check-updates-now': 'Comprobar ahora', 8 | 'checking-for-updates': 'Comprobando actualizaciones...', 9 | 'check-for-updates-title': 'Comprobar actualizaciones', 10 | 'update-available-message': 'Hay una nueva versión de Motrix, ¿Actualizar ahora?', 11 | 'update-not-available-message': '¡Esta es la última versión!', 12 | 'update-downloaded-message': 'Listo para instalar...', 13 | 'update-error-message': 'Error al actualizar', 14 | 'engine-damaged-message': 'El motor está dañado, por favor reinstalar :(', 15 | 'engine-missing-message': 'No se encuentra el motor, por favor reinstalar :(', 16 | 'system-error-title': 'Error del sistema', 17 | 'system-error-message': 'La aplicación falló al iniciar: {{message}}', 18 | 'hide': 'Ocultar Motrix', 19 | 'hide-others': 'Ocultar otros', 20 | 'unhide': 'Mostrar Todo', 21 | 'show': 'Mostrar Motrix', 22 | 'quit': 'Salir de Motrix', 23 | 'under-development-message': 'Disculpa, esta función está en desarrollo...', 24 | 'yes': 'Sí', 25 | 'no': 'No', 26 | 'save': 'Guardar', 27 | 'reset': 'Reiniciar', 28 | 'cancel': 'Cancelar', 29 | 'submit': 'Enviar', 30 | 'gt1d': '> 1 día', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/es/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Deshacer', 3 | 'redo': 'Rehacer', 4 | 'cut': 'Cortar', 5 | 'copy': 'Copiar', 6 | 'paste': 'Pegar', 7 | 'delete': 'Eliminar', 8 | 'select-all': 'Seleccionar Todo' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/es/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Sitio web de Motrix', 3 | 'manual': 'Manual', 4 | 'release-notes': 'Notas de la versión...', 5 | 'report-problem': 'Reportar un problema', 6 | 'toggle-dev-tools': 'Alternar las herramientas de desarrollo' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/es/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/es/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Archivo', 4 | 'task': 'Tarea', 5 | 'edit': 'Editar', 6 | 'window': 'Ventana', 7 | 'help': 'Ayuda' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/es/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tareas', 3 | 'preferences': 'Preferencias' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/es/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Recargar', 3 | 'close': 'Cerrar', 4 | 'minimize': 'Minimizar', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Entrar a Pantalla Completa', 7 | 'front': 'Pasar Todo al frente' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/fa/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'نسخهٔ موتور', 3 | 'license': 'مجوز', 4 | 'about': 'دربارهٔ ما', 5 | 'release': 'نسخه‌های منتشر شده', 6 | 'support': 'حمایت' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/fa/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'وظایف', 3 | 'add-task': 'افزودن وظیفه', 4 | 'about': 'دربارهٔ ماتریکس', 5 | 'preferences': 'ترجیحات...', 6 | 'check-for-updates': 'بررسی برای به‌روز رسانی...', 7 | 'check-updates-now': 'اکنون بررسی کن', 8 | 'checking-for-updates': 'درحال بررسی برای به‌روز رسانی...', 9 | 'check-for-updates-title': 'بررسی برای به‌روز رسانی', 10 | 'update-available-message': 'نسخهٔ جدید ماتریکس در دسترس است. به‌روز رسانی شود؟', 11 | 'update-not-available-message': 'شما به‌روز هستید!', 12 | 'update-downloaded-message': 'آمادهٔ نصب...', 13 | 'update-error-message': 'خطا در به‌روز رسانی', 14 | 'engine-damaged-message': 'موتور صدمه دیده است! لطفا دوباره نصب کنید : (', 15 | 'engine-missing-message': 'موتور گم شده است! لطفا دوباره نصب کنید : (', 16 | 'system-error-title': 'خطای سیستم', 17 | 'system-error-message': 'برنامه نتوانست شروع به کار کند: {{message}}', 18 | 'hide': 'ماتریکس را پنهان کن', 19 | 'hide-others': 'بقیه را پنهان کن', 20 | 'unhide': 'همه را نشان بده', 21 | 'show': 'ماتریکس را نشان بده', 22 | 'quit': 'از ماتریکس خارج شو', 23 | 'under-development-message': 'متأسفیم، این قابلیت در حال توسعه است...', 24 | 'yes': 'بله', 25 | 'no': 'خیر', 26 | 'save': 'ذخیره', 27 | 'reset': 'دور انداختن', 28 | 'cancel': 'لغو', 29 | 'submit': 'ثبت', 30 | 'gt1d': '> یک روز', 31 | 'hour': 'ساعت', 32 | 'minute': 'دقیقه', 33 | 'second': 'ثانیه' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/fa/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'برگردان', 3 | 'redo': 'انجام دوباره', 4 | 'cut': 'برش', 5 | 'copy': 'رونوشت', 6 | 'paste': 'جای‌گذاری', 7 | 'delete': 'حذف', 8 | 'select-all': 'گزینش همه' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/fa/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'سایت ماتریکس', 3 | 'manual': 'کتابچهٔ راهنما', 4 | 'release-notes': 'یادداشت‌های انتشار...', 5 | 'report-problem': 'گزارش مشکل', 6 | 'toggle-dev-tools': 'تغییر حالت ابزارهای توسعه‌دهنده' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/fa/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/fa/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'ماتریکس', 3 | 'file': 'پرونده', 4 | 'task': 'وظیفه', 5 | 'edit': 'ویرایش', 6 | 'window': 'پنجره', 7 | 'help': 'راهنما' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/fa/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'وظایف', 3 | 'preferences': 'ترجیحات' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/fa/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'بارگزاری مجدد', 3 | 'close': 'بستن', 4 | 'minimize': 'کمینه', 5 | 'zoom': 'بزرگنمایی', 6 | 'toggle-fullscreen': 'حالت تمام صفحه', 7 | 'front': 'همه را جلو بیار' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/fr/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Version du moteur', 3 | 'license': 'Licence', 4 | 'about': 'À Propos', 5 | 'release': 'Release', 6 | 'support': 'Support' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/fr/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tâches', 3 | 'add-task': 'Ajouter une tâche', 4 | 'about': 'À Propos de Motrix', 5 | 'preferences': 'Préférences...', 6 | 'check-for-updates': 'Vérifier les mises à jour...', 7 | 'check-updates-now': 'Vérifier maintenant', 8 | 'checking-for-updates': 'Vérification des mises à jour ...', 9 | 'check-for-updates-title': 'Vérifier les mises à jour', 10 | 'update-available-message': 'Une nouvelle version de Motrix est disponible, mise à jour maintenant?', 11 | 'update-not-available-message': 'Vous êtes à jour!', 12 | 'update-downloaded-message': 'Prêt à installer...', 13 | 'update-error-message': 'Erreur de mise à jour', 14 | 'engine-damaged-message': 'Le moteur est endommagé, veuillez réinstaller : (', 15 | 'engine-missing-message': 'Le moteur est manquant, veuillez réinstaller : (', 16 | 'system-error-title': 'Erreur système', 17 | 'system-error-message': 'L\'application n\'a pas pu démarrer: {{message}}', 18 | 'hide': 'Cacher Motrix', 19 | 'hide-others': 'Cacher les autres', 20 | 'unhide': 'Tout montrer', 21 | 'show': 'Montrer Motrix', 22 | 'quit': 'Quitter Motrix', 23 | 'under-development-message': 'Désolé, cette fonctionnalité est en cours de développement...', 24 | 'yes': 'Oui', 25 | 'no': 'Non', 26 | 'save': 'Sauvegarder', 27 | 'reset': 'Jeter', 28 | 'cancel': 'Annuler', 29 | 'submit': 'Envoyer', 30 | 'gt1d': '> 1 jour', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/fr/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Annuler la dernière action', 3 | 'redo': 'Rétablir la dernière action', 4 | 'cut': 'Couper', 5 | 'copy': 'Copier', 6 | 'paste': 'Coller', 7 | 'delete': 'Supprimer', 8 | 'select-all': 'Tout sélectionner' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/fr/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Site web de Motrix ', 3 | 'manual': 'Manuel', 4 | 'release-notes': 'Notes de version...', 5 | 'report-problem': 'Signaler un problème', 6 | 'toggle-dev-tools': 'Activer les outils pour développeurs' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/fr/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/fr/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Fichier', 4 | 'task': 'Tâche', 5 | 'edit': 'Editer', 6 | 'window': 'Fenêtre', 7 | 'help': 'Aide' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/fr/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tâches', 3 | 'preferences': 'Préférences' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/fr/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Recharger', 3 | 'close': 'Fermer', 4 | 'minimize': 'Réduire', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Passer en mode Plein écran', 7 | 'front': 'Tout mettre au premier plan' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/hu/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Motor verziója', 3 | 'license': 'Licensz', 4 | 'about': 'Névjegy', 5 | 'release': 'Kiadások', 6 | 'support': 'Segítség kérés' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/hu/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Feladatok', 3 | 'add-task': 'Feladat hozzáadasa', 4 | 'about': 'Motrix névjegye', 5 | 'preferences': 'Beálittasok...', 6 | 'check-for-updates': 'Frissitések keresése...', 7 | 'check-updates-now': 'Elenörzés most', 8 | 'checking-for-updates': 'Frissitések keresése...', 9 | 'check-for-updates-title': 'Frissitések keresése', 10 | 'update-available-message': 'Egy újabb Motrix verzió elérhető. Telepitsem most?', 11 | 'update-not-available-message': 'Nincs elérhető frissités!', 12 | 'update-downloaded-message': 'Telepitésre kész...', 13 | 'update-error-message': 'Hiba történt frissités közben', 14 | 'engine-damaged-message': 'A motor meghibásodot, kérjük telepitse újra a Motrix-ot : (', 15 | 'engine-missing-message': 'A motor hiányzik, kérjük telepitse újra a Motrix-ot : (', 16 | 'system-error-title': 'Rendszer hiba', 17 | 'system-error-message': 'Motrix inditása sikertelen: {{message}}', 18 | 'hide': 'Motrix elrejtése', 19 | 'hide-others': 'Egyebek elrejtése', 20 | 'unhide': 'Minden megjelenitése', 21 | 'show': 'Motrix mutatása', 22 | 'quit': 'Kilépés', 23 | 'under-development-message': 'Sájnaljuk, de ez a funkció feljesztés allat...', 24 | 'yes': 'Igen', 25 | 'no': 'Nem', 26 | 'save': 'Mentés', 27 | 'reset': 'Eldobni', 28 | 'cancel': 'Mégse', 29 | 'submit': 'Beküldés', 30 | 'gt1d': '> 1 nap', 31 | 'hour': 'ó', 32 | 'minute': 'p', 33 | 'second': 'm' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/hu/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Visszavonás', 3 | 'redo': 'Mégis', 4 | 'cut': 'Kivágas', 5 | 'copy': 'Másolas', 6 | 'paste': 'Beilesztés', 7 | 'delete': 'Törlés', 8 | 'select-all': 'Minden kijelölés' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/hu/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix Weboldala', 3 | 'manual': 'Kézikönyv', 4 | 'release-notes': 'Valtózások...', 5 | 'report-problem': 'Hiba jelentés', 6 | 'toggle-dev-tools': 'Fejlesztöi eszközök' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/hu/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/hu/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Fájl', 4 | 'task': 'Feladat', 5 | 'edit': 'Szerkesztés', 6 | 'window': 'Ablak', 7 | 'help': 'Segitség' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/hu/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Feladat', 3 | 'preferences': 'Beallitás' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/hu/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Újratöltés', 3 | 'close': 'Bezáras', 4 | 'minimize': 'Kis méret', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Belépés teljes képernyöbe', 7 | 'front': 'Minden elöre' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/id/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Versi Mesin', 3 | 'license': 'Lisensi', 4 | 'about': 'Tentang', 5 | 'release': 'Rilis', 6 | 'support': 'Bantuan' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/id/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tugas', 3 | 'add-task': 'Tambah Tugas', 4 | 'about': 'Tentang Motrix', 5 | 'preferences': 'Preferensi...', 6 | 'check-for-updates': 'Periksa Pembaruan...', 7 | 'check-updates-now': 'Periksa Sekarang', 8 | 'checking-for-updates': 'Memeriksa pembaruan...', 9 | 'check-for-updates-title': 'Periksa Pembaruan', 10 | 'update-available-message': 'Versi Motrix terbaru telah tersedia, perbarui sekarang?', 11 | 'update-not-available-message': 'Aplikasi dalam kondisi ter-update!', 12 | 'update-downloaded-message': 'siap meng-install...', 13 | 'update-error-message': 'Update Gagal', 14 | 'engine-damaged-message': 'Mesin rusak, silahkan install ulang : (', 15 | 'engine-missing-message': 'Mesin hilang, silahkan install ulang : (', 16 | 'system-error-title': 'System Error', 17 | 'system-error-message': 'Gagal Menjalankan Aplikasi: {{message}}', 18 | 'hide': 'Sembungikan Motrix', 19 | 'hide-others': 'Sembunyikan yang lain', 20 | 'unhide': 'Tunjukan Semua', 21 | 'show': 'Tunjukan Motrix', 22 | 'quit': 'Keluarkan Motrix', 23 | 'under-development-message': 'Maaf, fitur ini dalam tahap development...', 24 | 'yes': 'Ya', 25 | 'no': 'Tidak', 26 | 'save': 'Menyimpan', 27 | 'reset': 'Membuang', 28 | 'cancel': 'Batal', 29 | 'submit': 'Kirim', 30 | 'gt1d': '> 1 hari', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/id/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Urungkan', 3 | 'redo': 'Ulangi', 4 | 'cut': 'Potong', 5 | 'copy': 'Salin', 6 | 'paste': 'Tempel', 7 | 'delete': 'Hapus', 8 | 'select-all': 'Pilih Semua' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/id/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix Website', 3 | 'manual': 'Panduan', 4 | 'release-notes': 'Catatan Rilis...', 5 | 'report-problem': 'Laporkan Masalah', 6 | 'toggle-dev-tools': 'Alihkan Alat Pengembang' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/id/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/id/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Berlas', 4 | 'task': 'Tugas', 5 | 'edit': 'Edit', 6 | 'window': 'Window', 7 | 'help': 'Bantuan' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/id/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Daftar Tugas', 3 | 'preferences': 'Pengaturan' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/id/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Muat Ulang', 3 | 'close': 'Keluar', 4 | 'minimize': 'Perkecil', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Layar penuh', 7 | 'front': 'Bawa Semua ke Depan' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/it/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Versione Engine', 3 | 'license': 'Licenza', 4 | 'about': 'Chi siamo', 5 | 'release': 'Rilasci', 6 | 'support': 'Supporto' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/it/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Annulla', 3 | 'redo': 'Ripeti', 4 | 'cut': 'Taglia', 5 | 'copy': 'Copia', 6 | 'paste': 'Incolla', 7 | 'delete': 'Elimina', 8 | 'select-all': 'Seleziona Tutto' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/it/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Sito di Motrix', 3 | 'manual': 'Manuale', 4 | 'release-notes': 'Note di rilascio...', 5 | 'report-problem': 'Segnala un\'problema', 6 | 'toggle-dev-tools': 'Attiva/disatttiva gli Strumenti di sviluppo' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/it/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/it/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'File', 4 | 'task': 'Attività', 5 | 'edit': 'Modifica', 6 | 'window': 'Finestra', 7 | 'help': 'Aiuto' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/it/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Attività', 3 | 'preferences': 'Preferenze' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/it/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Ricarica', 3 | 'close': 'Chiudi', 4 | 'minimize': 'Riduci a icona', 5 | 'zoom': 'Zoo', 6 | 'toggle-fullsmcreen': 'Modalità a schermo intero', 7 | 'front': 'Riporta tutto davanti' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ja/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'バージョンを確認', 3 | 'license': 'ライセンス', 4 | 'about': '私たちについて', 5 | 'release': 'リリースノート', 6 | 'support': 'サポート' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ja/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'タスクリスト', 3 | 'add-task': 'タスクを追加', 4 | 'about': 'Motrix について', 5 | 'preferences': '環境設定...', 6 | 'check-for-updates': '更新を確認...', 7 | 'check-updates-now': '今すぐチェック', 8 | 'checking-for-updates': 'アップデートをチェックしています...', 9 | 'check-for-updates-title': 'アップデートをチェック', 10 | 'update-available-message': '新しいバージョンのMotrixが利用可能です、今すぐ更新しますか?', 11 | 'update-not-available-message': 'あなたは最新です!', 12 | 'update-downloaded-message': 'インストールする準備ができています...', 13 | 'update-error-message': '更新エラー', 14 | 'engine-damaged-message': 'エンジンが破損しています、再インストールしてください : (', 15 | 'engine-missing-message': 'エンジンが見つかりません。再インストールしてください : (', 16 | 'system-error-title': 'システムエラー', 17 | 'system-error-message': 'アプリケーションの起動に失敗しました:{{message}}', 18 | 'hide': 'Motrix を隠す', 19 | 'hide-others': 'ほかを隠す', 20 | 'unhide': 'すべてを表示', 21 | 'quit': 'Motrix を終了', 22 | 'under-development-message': 'この機能は開発中です...', 23 | 'yes': 'はい', 24 | 'no': 'いいえ', 25 | 'save': 'セーブ', 26 | 'reset': '放棄', 27 | 'cancel': 'キャンセル', 28 | 'submit': '確認', 29 | 'gt1d': '一日を超える', 30 | 'hour': '時', 31 | 'minute': '分', 32 | 'second': '秒' 33 | } 34 | -------------------------------------------------------------------------------- /src/shared/locales/ja/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': '元に戻す', 3 | 'redo': 'やり直す', 4 | 'cut': '切り取り', 5 | 'copy': 'コピー', 6 | 'paste': '貼り付け', 7 | 'delete': '削除', 8 | 'select-all': 'すべてを選択' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/ja/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix 公式サイト', 3 | 'manual': '使用説明', 4 | 'release-notes': 'リリースノート...', 5 | 'report-problem': '問題を報告', 6 | 'toggle-dev-tools': '開発者ツール' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ja/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/ja/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'ファイル', 4 | 'task': 'タスク', 5 | 'edit': '編集', 6 | 'window': 'ウィンドウ', 7 | 'help': 'ヘルプ' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ja/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'タスクリスト', 3 | 'preferences': '環境設定' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/ja/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'リロード', 3 | 'close': '閉じる', 4 | 'minimize': '最小化', 5 | 'zoom': '拡大', 6 | 'toggle-fullscreen': 'フルスクリーンにする', 7 | 'front': '全てを手前に移動' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ko/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': '엔진 버전', 3 | 'license': '라이선스', 4 | 'about': '정보', 5 | 'release': '릴리스', 6 | 'support': '지원' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ko/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': '작업 목록', 3 | 'add-task': '작업 추가', 4 | 'about': 'Motrix 정보', 5 | 'preferences': '설정...', 6 | 'check-for-updates': '업데이트 확인...', 7 | 'check-updates-now': '지금 확인', 8 | 'checking-for-updates': '업데이트 확인 중...', 9 | 'check-for-updates-title': '업데이트 확인', 10 | 'update-available-message': '새 버전의 Motrix를 사용할 수 있습니다. 지금 업데이트하시겠습니까?', 11 | 'update-not-available-message': '최신 버전을 사용 중입니다!', 12 | 'update-downloaded-message': '설치 준비 완료...', 13 | 'update-error-message': '업데이트 오류', 14 | 'engine-damaged-message': '엔진이 손상되었으므로 다시 설치하십시오: (', 15 | 'engine-missing-message': '엔진이 누락되었으므로 다시 설치하십시오: (', 16 | 'system-error-title': '시스템 오류', 17 | 'system-error-message': '애플리케이션 시작 실패: {{message}}', 18 | 'hide': 'Motrix 숨기기', 19 | 'hide-others': '다른 항목 숨기기', 20 | 'unhide': '모두 보기', 21 | 'show': 'Motrix 보기', 22 | 'quit': 'Motrix 종료', 23 | 'under-development-message': '죄송합니다, 이 기능은 개발 중입니다...', 24 | 'yes': '예', 25 | 'no': '아니요', 26 | 'save': '저장', 27 | 'reset': '취소', 28 | 'cancel': '취소', 29 | 'submit': '확인', 30 | 'gt1d': '> 1일', 31 | 'hour': '시간', 32 | 'minute': '분', 33 | 'second': '초' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/ko/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': '실행 취소', 3 | 'redo': '다시 실행', 4 | 'cut': '잘라내기', 5 | 'copy': '복사', 6 | 'paste': '붙여넣기', 7 | 'delete': '삭제', 8 | 'select-all': '모두 선택' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/ko/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix 웹 사이트', 3 | 'manual': '매뉴얼', 4 | 'release-notes': '릴리스 정보...', 5 | 'report-problem': '문제 보고', 6 | 'toggle-dev-tools': '개발자 도구' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ko/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/ko/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': '파일', 4 | 'task': '작업', 5 | 'edit': '편집', 6 | 'window': '창', 7 | 'help': '도움말' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ko/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': '작업', 3 | 'preferences': '설정' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/ko/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': '다시 불러오기', 3 | 'close': '닫기', 4 | 'minimize': '최소화', 5 | 'zoom': '확대', 6 | 'toggle-fullscreen': '전체 화면', 7 | 'front': '모두 앞으로 가져오기' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/nb/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Motorversjon', 3 | 'license': 'Tillatelse', 4 | 'about': 'Om', 5 | 'release': 'Utgivelser', 6 | 'support': 'Brukerstøtte' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/nb/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Oppgaver', 3 | 'add-task': 'Legg til oppgave', 4 | 'about': 'Om Motrix', 5 | 'preferences': 'Preferanser...', 6 | 'check-for-updates': 'Se etter oppdateringer...', 7 | 'check-updates-now': 'Sjekk nå', 8 | 'checking-for-updates': 'Ser etter oppdateringer...', 9 | 'check-for-updates-title': 'Se etter oppdateringer', 10 | 'update-available-message': 'En nyere versjon av Motrix er tilgjengelig, oppdater nå?', 11 | 'update-not-available-message': 'Du er oppdatert!', 12 | 'update-downloaded-message': 'Klar til å installere...', 13 | 'update-error-message': 'Oppdateringsfeil', 14 | 'engine-damaged-message': 'Motoren er skadet. Vennligst installer den på nytt :(', 15 | 'engine-missing-message': 'Motoren mangler. Vennligst installer den på nytt :(', 16 | 'system-error-title': 'Systemfeil', 17 | 'system-error-message': 'Oppstart av applikasjon mislyktes: {{message}}', 18 | 'hide': 'Skjul Motrix', 19 | 'hide-others': 'Skjul andre', 20 | 'unhide': 'Vis alt', 21 | 'show': 'Vis Motrix', 22 | 'quit': 'Avslutt Motrix', 23 | 'under-development-message': 'Beklager, denne funksjonen er under utvikling...', 24 | 'yes': 'Ja', 25 | 'no': 'Nei', 26 | 'save': 'Lagre', 27 | 'reset': 'Nullstill', 28 | 'cancel': 'Avbryt', 29 | 'submit': 'Send inn', 30 | 'gt1d': '> 1 dag', 31 | 'hour': 't', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/nb/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Angre', 3 | 'redo': 'Utfør igjen', 4 | 'cut': 'Klipp', 5 | 'copy': 'Kopier', 6 | 'paste': 'Lim inn', 7 | 'delete': 'Fjern', 8 | 'select-all': 'Velg alle' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/nb/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix\' nettside', 3 | 'manual': 'Brukerhåndbok', 4 | 'release-notes': 'Utgivelsesnotater...', 5 | 'report-problem': 'Rapporter problem', 6 | 'toggle-dev-tools': 'Vis/skjul utviklerverktøy' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/nb/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/nb/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Fil', 4 | 'task': 'Oppgave', 5 | 'edit': 'Rediger', 6 | 'window': 'Vindu', 7 | 'help': 'Hjelp' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/nb/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Oppgaver', 3 | 'preferences': 'Innstillinger' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/nb/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Last inn på nytt', 3 | 'close': 'Lukk', 4 | 'minimize': 'Minimer', 5 | 'zoom': 'Forstør', 6 | 'toggle-fullscreen': 'Gå til fullskjerm', 7 | 'front': 'Send alle til forgrunnen' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/nl/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Engine Versie', 3 | 'license': 'Licentie', 4 | 'about': 'Over', 5 | 'release': 'Versie', 6 | 'support': 'Ondersteuning' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/nl/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Taken', 3 | 'add-task': 'Taak toevoegen', 4 | 'about': 'Over Motrix', 5 | 'preferences': 'Voorkeuren...', 6 | 'check-for-updates': 'Naar updates zoeken...', 7 | 'check-updates-now': 'Jetzt prüfen', 8 | 'checking-for-updates': 'Updates zoeken ...', 9 | 'check-for-updates-title': 'Naar updates zoeken...', 10 | 'update-available-message': 'Er is een nieuwe versie van Motrix beschikbaar, nu updaten?', 11 | 'update-not-available-message': 'U heeft de laatste versie!', 12 | 'update-downloaded-message': 'Klaar om te installeren...', 13 | 'update-error-message': 'Update fout', 14 | 'engine-damaged-message': 'De engine is beschadigd, opnieuw installeren a.u.b. :(', 15 | 'engine-missing-message': 'De engine mist, opnieuw installeren a.u.b. :(', 16 | 'system-error-title': 'Systeemfout', 17 | 'system-error-message': 'Applicatie kon niet worden gestart: {{message}}', 18 | 'hide': 'Motrix verbergen', 19 | 'hide-others': 'Verberg anderen', 20 | 'unhide': 'Laat alles zien', 21 | 'show': 'Laat Motrix zien', 22 | 'quit': 'Motrix afsluiten', 23 | 'under-development-message': 'Sorry, deze functie is nog in ontwikkeling...', 24 | 'yes': 'Ja', 25 | 'no': 'Nee', 26 | 'save': 'Opslaan', 27 | 'reset': 'Resetten', 28 | 'cancel': 'Annuleren', 29 | 'submit': 'Verzenden', 30 | 'gt1d': '> 1 dag', 31 | 'hour': 'u', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/nl/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Ongedaan maken', 3 | 'redo': 'Opnieuw doen', 4 | 'cut': 'Knipplen', 5 | 'copy': 'Kopiëren', 6 | 'paste': 'Plakken', 7 | 'delete': 'Verwijderen', 8 | 'select-all': 'Alles selecteren' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/nl/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix Website', 3 | 'manual': 'Handleiding', 4 | 'release-notes': 'Versie informatie...', 5 | 'report-problem': 'Probleem melden', 6 | 'toggle-dev-tools': 'Ontwikkelaarstools aan/uit-schakelen' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/nl/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/nl/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Bestand', 4 | 'task': 'Taak', 5 | 'edit': 'Bewerken', 6 | 'window': 'Venster', 7 | 'help': 'Help' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/nl/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Taken', 3 | 'preferences': 'Voorkeuren' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/nl/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Vervesen', 3 | 'close': 'Sluiten', 4 | 'minimize': 'Minimaliseren', 5 | 'zoom': 'Zoomen', 6 | 'toggle-fullscreen': 'Volledig scherm tonen', 7 | 'front': 'Alles naar voorgrond brengen' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/pl/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Wersja silnika', 3 | 'license': 'Licencja', 4 | 'about': 'O programie', 5 | 'release': 'Wydania', 6 | 'support': 'Wsparcie' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/pl/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Zadania', 3 | 'add-task': 'Dodaj zadanie', 4 | 'about': 'O Motrix', 5 | 'preferences': 'Ustawienia...', 6 | 'check-for-updates': 'Sprawdź aktualizacje...', 7 | 'check-updates-now': 'Sprawdź teraz', 8 | 'checking-for-updates': 'Sprawdzanie aktualizacji ...', 9 | 'check-for-updates-title': 'Sprawdź aktualizację', 10 | 'update-available-message': 'Dostępna jest nowa wersja Motrix, czy chcesz zaktualizować program?', 11 | 'update-not-available-message': 'Masz zainstalowaną najnowszą wersję!', 12 | 'update-downloaded-message': 'Gotowe do instalacji...', 13 | 'update-error-message': 'Błąd aktualizacji', 14 | 'engine-damaged-message': 'Silnik został uszkodzony, spróbuj zreinstalować program : (', 15 | 'engine-missing-message': 'Nie można znaleźć silnika, spróbuj zreinstalować program : (', 16 | 'system-error-title': 'Błąd systemu', 17 | 'system-error-message': 'Aplikacja nie mogła zostać uruchomiona: {{message}}', 18 | 'hide': 'Schowaj Motrix', 19 | 'hide-others': 'Schowaj pozostałe', 20 | 'unhide': 'Pokaż wszystkie', 21 | 'show': 'Pokaż Motrix', 22 | 'quit': 'Opuść Motrix', 23 | 'under-development-message': 'Przepraszamy ale ta funkcja nie jest jeszcze gotowa...', 24 | 'yes': 'Tak', 25 | 'no': 'Nie', 26 | 'save': 'Zapisać', 27 | 'reset': 'Odrzucać', 28 | 'cancel': 'Anuluj', 29 | 'submit': 'Dodaj', 30 | 'gt1d': '> 1 dzień', 31 | 'hour': 'g', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/pl/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Cofnij', 3 | 'redo': 'Ponów', 4 | 'cut': 'Wytnij', 5 | 'copy': 'Skopiuj', 6 | 'paste': 'Wklej', 7 | 'delete': 'Usuń', 8 | 'select-all': 'Wybierz wszystkie ' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/pl/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Oficjalna strona internetowa', 3 | 'manual': 'Instrukcja', 4 | 'release-notes': 'Dziennik wydań...', 5 | 'report-problem': 'Zgłoś problem', 6 | 'toggle-dev-tools': 'Włącz narzędzia dla developerów' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/pl/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/pl/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Plik', 4 | 'task': 'Zadanie', 5 | 'edit': 'Edycja', 6 | 'window': 'Okno', 7 | 'help': 'Pomoc' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/pl/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Zadania', 3 | 'preferences': 'Ustawienia' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/pl/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Przeładuj', 3 | 'close': 'Zamknij', 4 | 'minimize': 'Minimalizuj', 5 | 'zoom': 'Powiększ', 6 | 'toggle-fullscreen': 'Włącz tryb pełnoekranowy', 7 | 'front': 'Przenieś wszystko na przód' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Versão da Engine', 3 | 'license': 'Licença', 4 | 'about': 'Sobre', 5 | 'release': 'Release', 6 | 'support': 'Suporte' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tarefas', 3 | 'add-task': 'Adicionar Tarefa', 4 | 'about': 'Sobre o Motrix', 5 | 'preferences': 'Preferências...', 6 | 'check-for-updates': 'Verificar por Atualizações...', 7 | 'check-updates-now': 'Verificar agora', 8 | 'checking-for-updates': 'Verificar atualizações ...', 9 | 'check-for-updates-title': 'Verificar por Atualizações', 10 | 'update-available-message': 'Uma nova versão do Motrix está disponível, atualize agora?', 11 | 'update-not-available-message': 'Você esta atualizado!', 12 | 'update-downloaded-message': 'Pronto para instalar...', 13 | 'update-error-message': 'Atualizar erro', 14 | 'engine-damaged-message': 'O motor está danificado, por favor, reinstale : (', 15 | 'engine-missing-message': 'O motor está faltando, por favor, reinstale : (', 16 | 'system-error-title': 'Erro do sistema', 17 | 'system-error-message': 'O aplicativo falhou ao iniciar: {{message}}', 18 | 'hide': 'Ocultar Motrix', 19 | 'hide-others': 'Ocultar Outros', 20 | 'unhide': 'Exibir Todos', 21 | 'show': 'Exibir Motrix', 22 | 'quit': 'Sair do Motrix', 23 | 'under-development-message': 'Desculpe, essa funcionalidade está em desenvolvimento...', 24 | 'yes': 'Sim', 25 | 'no': 'Não', 26 | 'save': 'Salvar', 27 | 'reset': 'Descartar', 28 | 'cancel': 'Cancelar', 29 | 'submit': 'Enviar', 30 | 'gt1d': '> 1 dia', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Desfazer', 3 | 'redo': 'Refazer', 4 | 'cut': 'Recortar', 5 | 'copy': 'Copiar', 6 | 'paste': 'Copiar', 7 | 'delete': 'Apagar', 8 | 'select-all': 'Selecionar Tudo' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix Website', 3 | 'manual': 'Manual', 4 | 'release-notes': 'Notas de Lançamento...', 5 | 'report-problem': 'Reportar um Problema', 6 | 'toggle-dev-tools': 'Alternar Developer Tools' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Arquivo', 4 | 'task': 'Tarefa', 5 | 'edit': 'Editar', 6 | 'window': 'Janela', 7 | 'help': 'Ajuda' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tarefas', 3 | 'preferences': 'Preferências' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/pt-BR/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Recarregar', 3 | 'close': 'Fechar', 4 | 'minimize': 'Minimizar', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Modo Full Screen', 7 | 'front': 'Trazer Tudo Para a Frente' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ro/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Versiune Motor', 3 | 'license': 'Licență', 4 | 'about': 'Despre', 5 | 'release': 'Versiuni', 6 | 'support': 'Ajutor' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ro/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Sarcini', 3 | 'add-task': 'Adaugă sarcină', 4 | 'about': 'Despre Motrix', 5 | 'preferences': 'Setări...', 6 | 'check-for-updates': 'Verifică actualizări...', 7 | 'check-updates-now': 'Verifică acum', 8 | 'checking-for-updates': 'Verific actualizări ...', 9 | 'check-for-updates-title': 'Verifică actualizări', 10 | 'update-available-message': 'O nouă versiune Motrix este disponibilă, actualizaţi acum?', 11 | 'update-not-available-message': 'Versiunea este la zi!', 12 | 'update-downloaded-message': 'Gata de instalare...', 13 | 'update-error-message': 'Eroare actualizare', 14 | 'engine-damaged-message': 'Motorul este deteriorat, vă rugăm să reinstalați : (', 15 | 'engine-missing-message': 'Motorul lipseşte, vă rugăm să reinstalați : (', 16 | 'system-error-title': 'Eroare sistem', 17 | 'system-error-message': 'Aplicaţia nu a putut porni: {{message}}', 18 | 'hide': 'Ascunde Motrix', 19 | 'hide-others': 'Ascunde celelalte', 20 | 'unhide': 'Arată toate', 21 | 'show': 'Arată Motrix', 22 | 'quit': 'Închide Motrix', 23 | 'under-development-message': 'Scuze, această caracteristică este în curs de dezvoltare...', 24 | 'yes': 'Da', 25 | 'no': 'Nu', 26 | 'save': 'Salvați', 27 | 'reset': 'Aruncați', 28 | 'cancel': 'Anuleaza', 29 | 'submit': 'Trimite', 30 | 'gt1d': '> 1 zi', 31 | 'hour': 'h', 32 | 'minute': 'm', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/ro/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Undo', 3 | 'redo': 'Redo', 4 | 'cut': 'Taie', 5 | 'copy': 'Copiază', 6 | 'paste': 'Lipeşte', 7 | 'delete': 'Şterge', 8 | 'select-all': 'Selectează tot' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/ro/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Website Motrix', 3 | 'manual': 'Manual', 4 | 'release-notes': 'Notele versiunii...', 5 | 'report-problem': 'Raportează problemă', 6 | 'toggle-dev-tools': 'Deschide unelete dezvoltator' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ro/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/ro/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'File', 4 | 'task': 'Sarcină', 5 | 'edit': 'Edit', 6 | 'window': 'Fereastra', 7 | 'help': 'Ajutor' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ro/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Sarcini', 3 | 'preferences': 'Setări' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/ro/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Reîncărcă', 3 | 'close': 'Închide', 4 | 'minimize': 'Minimizează', 5 | 'zoom': 'Zoom', 6 | 'toggle-fullscreen': 'Intră în mod ecran complet', 7 | 'front': 'Adu-le pe toate în față' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ru/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Версия движка', 3 | 'license': 'Лицензия', 4 | 'about': 'Информация', 5 | 'release': 'Релиз', 6 | 'support': 'Поддержка' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ru/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Задачи', 3 | 'add-task': 'Добавить задание', 4 | 'about': 'О Motrix', 5 | 'preferences': 'Настройки...', 6 | 'check-for-updates': 'Проверить обновление...', 7 | 'check-updates-now': 'Проверить сейчас', 8 | 'checking-for-updates': 'Проверка обновлений ...', 9 | 'check-for-updates-title': 'Проверить обновления', 10 | 'update-available-message': 'Новая версия Motrix доступна для скачивания, скачать сейчас?', 11 | 'update-not-available-message': 'Вы уже используете самую последнюю версию!', 12 | 'update-downloaded-message': 'Готово к установке...', 13 | 'update-error-message': 'Ошибка обновления', 14 | 'engine-damaged-message': 'Движок поврежден. Пожалуйста, переустановите его : (', 15 | 'engine-missing-message': 'Движок потерян. Пожалуйста, переустановите его : (', 16 | 'system-error-title': 'Системная ошибка', 17 | 'system-error-message': 'Ошибка запуска приложения: {{message}}', 18 | 'hide': 'Спрятать Motrix', 19 | 'hide-others': 'Спрятать все остальное', 20 | 'unhide': 'Отобразить все', 21 | 'show': 'Отобразить Motrix', 22 | 'quit': 'Закрыть Motrix', 23 | 'under-development-message': 'К сожалению, эта функция все еще в разработке...', 24 | 'yes': 'Да', 25 | 'no': 'Нет', 26 | 'save': 'Сохранить', 27 | 'reset': 'Отмена', 28 | 'cancel': 'Отмена', 29 | 'submit': 'Подтвердить', 30 | 'gt1d': '> 1 день', 31 | 'hour': 'ч', 32 | 'minute': 'м', 33 | 'second': 'с' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/ru/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Отмена', 3 | 'redo': 'Повторить', 4 | 'cut': 'Вырезать', 5 | 'copy': 'Копировать', 6 | 'paste': 'Вставить', 7 | 'delete': 'Удалить', 8 | 'select-all': 'Выбрать все' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/ru/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Сайт Motrix', 3 | 'manual': 'Инструкция', 4 | 'release-notes': 'Пометки к релизу...', 5 | 'report-problem': 'Сообщить о проблеме', 6 | 'toggle-dev-tools': 'Переключить инструменты разработчика' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/ru/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/ru/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Файл', 4 | 'task': 'Задания', 5 | 'edit': 'Редактировать', 6 | 'window': 'Окно', 7 | 'help': 'Помощь' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/ru/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Задачи', 3 | 'preferences': 'Настройки' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/ru/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Перезагрузить', 3 | 'close': 'Закрыть', 4 | 'minimize': 'Свернуть', 5 | 'zoom': 'Увеличение', 6 | 'toggle-fullscreen': 'Перейти в полноэкранный режим', 7 | 'front': 'Поверх всех окон' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/th/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'เวอร์ชั่นเอ็นจิ้น', 3 | 'license': 'ใบอนุญาต', 4 | 'about': 'เกี่ยวกับ', 5 | 'release': 'ปล่อยเวอร์ชั่น', 6 | 'support': 'การสนับสนุน' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/th/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'งาน', 3 | 'add-task': 'เพิ่มงาน', 4 | 'about': 'เกี่ยวกับ Motrix', 5 | 'preferences': 'ปรับแต่ง...', 6 | 'check-for-updates': 'ตรวจสอบการอัพเดต...', 7 | 'check-updates-now': 'ตรวสอบตอนนี้', 8 | 'checking-for-updates': 'กำลังตรวจสอบการอัพเดท ...', 9 | 'check-for-updates-title': 'ตรวจสอบการอัพเดท', 10 | 'update-available-message': 'มีเวอร์ชั่นใหม่ให้พร้อมใช้งาน อัพเดทตอนี้หรือไม่?', 11 | 'update-not-available-message': 'คุณใช้เวอร์ชั่นปัจจุบันแล้ว', 12 | 'update-downloaded-message': 'พร้อมติดตั้ง...', 13 | 'update-error-message': 'อัพเดทล้มเหลว', 14 | 'engine-damaged-message': 'เอ็นจิ้นเกิดความเสียหาย กรุณาติดตั้งใหม่อีกครั้ง : (', 15 | 'engine-missing-message': 'ไม่พบเอ็นจิ้น กรุณาติดตั้งใหม่อีกครั้ง : (', 16 | 'system-error-title': 'ระบบผิดพลาด', 17 | 'system-error-message': 'การเริ่มต้นแอปพลิเคชันล้มเหลว: {{message}}', 18 | 'hide': 'ซ่อน Motrix', 19 | 'hide-others': 'ซ่อนอย่างอืน', 20 | 'unhide': 'แสดงทั้งหมด', 21 | 'show': 'แสดง Motrix', 22 | 'quit': 'ออก Motrix', 23 | 'under-development-message': 'ขออภัย ฟีเจอร์นี้อยู่ระหว่างการพัฒนา...', 24 | 'yes': 'ใช่', 25 | 'no': 'ไม่', 26 | 'save': 'บันทึก', 27 | 'reset': 'ทิ้ง', 28 | 'cancel': 'ยกเลิก', 29 | 'submit': 'ส่ง', 30 | 'gt1d': '> 1 วัน', 31 | 'hour': 'ชม.', 32 | 'minute': 'น.', 33 | 'second': 'วิ' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/th/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'ไม่ทำ', 3 | 'redo': 'ทำซ้ำ', 4 | 'cut': 'ตัด', 5 | 'copy': 'คัดลอก', 6 | 'paste': 'วาง', 7 | 'delete': 'ลบทิ้ง', 8 | 'select-all': 'เลือกทั้งหมด' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/th/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'เว็บไซต์ Motrix', 3 | 'manual': 'คู่มือ', 4 | 'release-notes': 'บันทึกประจำรุ่น...', 5 | 'report-problem': 'รายงานปัญหา', 6 | 'toggle-dev-tools': 'สลับไปยังเครื่องมือสำหรับนักพัฒนา' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/th/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/th/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'ไฟล์', 4 | 'task': 'งาน', 5 | 'edit': 'แก้ไข', 6 | 'window': 'หน้าต่าง', 7 | 'help': 'ช่วยเหลือ' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/th/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'งาน', 3 | 'preferences': 'ปรับแต่ง' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/th/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'โหลดใหม่', 3 | 'close': 'ปิด', 4 | 'minimize': 'ย่อหน้าต่างเล็ก', 5 | 'zoom': 'ขยาย', 6 | 'toggle-fullscreen': 'เข้าสู่เต็มหน้าจอ', 7 | 'front': 'นำทั้งหมดมาไว้ข้างหน้า' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/tr/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Engine Versiyonu', 3 | 'license': 'Lisans', 4 | 'about': 'Hakkında', 5 | 'release': 'Sürüm', 6 | 'support': 'Destek' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/tr/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Görevler', 3 | 'add-task': 'Görev Ekle', 4 | 'about': 'Motrix Hakkında', 5 | 'preferences': 'Ayarlar...', 6 | 'check-for-updates': 'Güncellemeleri kontrol et...', 7 | 'check-updates-now': 'Şimdi kontrol et', 8 | 'checking-for-updates': 'Güncellemeleri kontrol ediyor ...', 9 | 'check-for-updates-title': 'Güncellemeleri kontrol et', 10 | 'update-available-message': 'Motrix\'in yeni bir sürümü var, şimdi güncelle?', 11 | 'update-not-available-message': 'Gündemdesin!', 12 | 'update-downloaded-message': 'Yüklemeye hazır...', 13 | 'update-error-message': 'Güncelleme Hatası', 14 | 'engine-damaged-message': 'Motor hasarlı, lütfen tekrar takın : (', 15 | 'engine-missing-message': 'Motor eksik, lütfen tekrar takın : (', 16 | 'system-error-title': 'Sistem hatası', 17 | 'system-error-message': 'Uygulama başlatılamadı: {{message}}', 18 | 'hide': 'Motrix\'i gizle', 19 | 'hide-others': 'Diğerlerini gizle', 20 | 'unhide': 'Hepsini Göster', 21 | 'show': 'Motrix\'i Göster', 22 | 'quit': 'Motrix\'ten çık', 23 | 'under-development-message': 'Üzgünüz, bu özellik geliştirme aşamasında...', 24 | 'yes': 'Evet', 25 | 'no': 'Hayır', 26 | 'save': 'Kayıt etmek', 27 | 'reset': 'İptal Et', 28 | 'cancel': 'İptal', 29 | 'submit': 'Gönder', 30 | 'gt1d': '> 1 gün', 31 | 'hour': 'S', 32 | 'minute': 'd', 33 | 'second': 's' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/tr/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Geri al', 3 | 'redo': 'Yinele', 4 | 'cut': 'Kes', 5 | 'copy': 'Kopyala', 6 | 'paste': 'Yapıştır', 7 | 'delete': 'Sil', 8 | 'select-all': 'Hepsini seç' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/tr/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix Web Sitesi', 3 | 'manual': 'Kılavuz', 4 | 'release-notes': 'Sürüm Notları...', 5 | 'report-problem': 'Sorun bildir', 6 | 'toggle-dev-tools': 'Geliştirici Aracına geçiş yap' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/tr/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/tr/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Dosya', 4 | 'task': 'Görev', 5 | 'edit': 'Düzenle', 6 | 'window': 'Pencere', 7 | 'help': 'Yardım' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/tr/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Görevler', 3 | 'preferences': 'Ayarlar' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/tr/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Yenile', 3 | 'close': 'Kapat', 4 | 'minimize': 'Küçült', 5 | 'zoom': 'Yakınlaştır', 6 | 'toggle-fullscreen': 'Tam ekran yap', 7 | 'front': 'Tümünü Öne Getir' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/uk/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Версія двигуна', 3 | 'license': 'Ліцензія', 4 | 'about': 'Інформація', 5 | 'release': 'Реліз', 6 | 'support': 'Підтримка' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/uk/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Завдання', 3 | 'add-task': 'Додати завдання', 4 | 'about': 'Про Motrix', 5 | 'preferences': 'Налаштування...', 6 | 'check-for-updates': 'Перевірити оновлення...', 7 | 'check-updates-now': 'Перевірити зараз', 8 | 'checking-for-updates': 'Перевірка оновлень ...', 9 | 'check-for-updates-title': 'Перевірити оновлення', 10 | 'update-available-message': 'Нова версія Motrix доступна для завантаження, завантажити зараз?', 11 | 'update-not-available-message': 'У вас вже є остання версія!', 12 | 'update-downloaded-message': 'Готово для встановлення...', 13 | 'update-error-message': 'Помилка оновлення', 14 | 'engine-damaged-message': 'Двигун пошкоджено, будь ласка переінсталюйте : (', 15 | 'engine-missing-message': 'Двигун загублено, будь ласка переінсталюйте : (', 16 | 'system-error-title': 'Системна помилка', 17 | 'system-error-message': 'Помилка запуску додатка: {{message}}', 18 | 'hide': 'Сховати Motrix', 19 | 'hide-others': 'Сховати інше', 20 | 'unhide': 'Відобразити все', 21 | 'show': 'Відобразити Motrix', 22 | 'quit': 'Закрити Motrix', 23 | 'under-development-message': 'На жаль, ця функція розробляється...', 24 | 'yes': 'Так', 25 | 'no': 'Ні', 26 | 'save': 'Зберегти', 27 | 'reset': 'Відмінити', 28 | 'cancel': 'Відмінити', 29 | 'submit': 'Підтвердити', 30 | 'gt1d': '> 1 день', 31 | 'hour': 'г', 32 | 'minute': 'х', 33 | 'second': 'с' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/uk/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Відміна', 3 | 'redo': 'Повторити', 4 | 'cut': 'Вирізати', 5 | 'copy': 'Копіювати', 6 | 'paste': 'Вставити', 7 | 'delete': 'Видалити', 8 | 'select-all': 'Обрати все' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/uk/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Сайт Motrix', 3 | 'manual': 'Інструкція', 4 | 'release-notes': 'Примітки до релизу...', 5 | 'report-problem': 'Повідомити про проблему', 6 | 'toggle-dev-tools': 'Переключити інстрменти розробника' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/uk/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/uk/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Файл', 4 | 'task': 'Завдання', 5 | 'edit': 'Редагування', 6 | 'window': 'Вікно', 7 | 'help': 'Допомога' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/uk/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Завдання', 3 | 'preferences': 'Налаштування' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/uk/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Перезавнтажити', 3 | 'close': 'Закрити', 4 | 'minimize': 'Згорнути', 5 | 'zoom': 'Збільшення', 6 | 'toggle-fullscreen': 'Перейти до повноекранного режиму', 7 | 'front': 'Поверх всіх вікон' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/vi/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': 'Phiên bản Ứng dụng', 3 | 'license': 'Giấy phép', 4 | 'about': 'Về Motrix', 5 | 'release': 'Phát hành', 6 | 'support': 'Hỗ trợ' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/vi/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Danh sách Tác vụ', 3 | 'add-task': 'Thêm tác vụ', 4 | 'about': 'Về Motrix', 5 | 'preferences': 'Cài đặt...', 6 | 'check-for-updates': 'Kiểm tra cập nhật...', 7 | 'check-updates-now': 'Kiểm tra ngay', 8 | 'checking-for-updates': 'Đang kiểm tra cập nhật...', 9 | 'check-for-updates-title': 'Kiểm tra Cập nhật', 10 | 'update-available-message': 'Có một phiên bản mới của Motrix, cập nhật ngay?', 11 | 'update-not-available-message': 'Bạn đang dùng bản mới nhất!', 12 | 'update-downloaded-message': 'Đã sẵn sàng để cài đặt...', 13 | 'update-error-message': 'Cập nhật lỗi', 14 | 'engine-damaged-message': 'Ứng dụng bị lỗi, vui lòng cài đặt lại : (', 15 | 'engine-missing-message': 'Ứng dụng bị thiếu tập tin, vui lòng cài đặt lại : (', 16 | 'system-error-title': 'Lỗi hệ thống', 17 | 'system-error-message': 'Khởi động ứng dụng thất bại: {{message}}', 18 | 'hide': 'Ẩn Motrix', 19 | 'hide-others': 'Ẩn tất cả', 20 | 'unhide': 'Hiển thị tất cả', 21 | 'show': 'Hiển thị Motrix', 22 | 'quit': 'Thoát Motrix', 23 | 'under-development-message': 'Xin lỗi, tính năng này đang được phát triển...', 24 | 'yes': 'Có', 25 | 'no': 'Không', 26 | 'save': 'Lưu', 27 | 'reset': 'Loại bỏ', 28 | 'cancel': 'Huỷ', 29 | 'submit': 'Tải về', 30 | 'gt1d': '> 1 ngày', 31 | 'hour': ' giờ', 32 | 'minute': ' phút', 33 | 'second': ' giây' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/vi/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': 'Hoàn tác', 3 | 'redo': 'Redo', 4 | 'cut': 'Cắt', 5 | 'copy': 'Sao chép', 6 | 'paste': 'Dán', 7 | 'delete': 'Xóa', 8 | 'select-all': 'Chọn tất cả' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/vi/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Trang web của Motrix', 3 | 'manual': 'Hướng dẫn sử dụng', 4 | 'release-notes': 'Ghi chú Phát hành...', 5 | 'report-problem': 'Báo cáo Vấn đề', 6 | 'toggle-dev-tools': 'Mở công cụ Dành cho Nhà phát triển' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/vi/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/vi/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': 'Tập tin', 4 | 'task': 'Tác vụ', 5 | 'edit': 'Chỉnh sửa', 6 | 'window': 'Cửa sổ', 7 | 'help': 'Trợ giúp' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/vi/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': 'Tác vụ', 3 | 'preferences': 'Cài đặt' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/vi/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': 'Tải lại', 3 | 'close': 'Đóng', 4 | 'minimize': 'Thu nhỏ', 5 | 'zoom': 'Thu phóng', 6 | 'toggle-fullscreen': 'Mở Toàn Màn Hình', 7 | 'front': 'Đưa tất cả lên phía trước' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': '引擎版本', 3 | 'license': '开源许可', 4 | 'about': '关于我们', 5 | 'release': '更新日志', 6 | 'support': '帮助支持' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': '任务列表', 3 | 'add-task': '新建任务', 4 | 'about': '关于 Motrix', 5 | 'preferences': '偏好设置...', 6 | 'check-for-updates': '检查更新...', 7 | 'check-updates-now': '立即检查', 8 | 'checking-for-updates': '正在检查更新...', 9 | 'check-for-updates-title': '检查更新', 10 | 'update-available-message': '发现新版本,是否现在更新?', 11 | 'update-not-available-message': '已是最新版', 12 | 'update-downloaded-message': '更新下载完成,应用程序将退出并开始更新...', 13 | 'update-error-message': '检查更新失败', 14 | 'engine-damaged-message': '引擎损坏,请重新安装 : (', 15 | 'engine-missing-message': '引擎缺失,请重新安装 : (', 16 | 'system-error-title': '系统错误', 17 | 'system-error-message': '应用启动失败: {{message}}', 18 | 'hide': '隐藏 Motrix', 19 | 'hide-others': '隐藏其他', 20 | 'unhide': '显示全部', 21 | 'show': '显示 Motrix', 22 | 'quit': '退出 Motrix', 23 | 'under-development-message': '该功能开发中...', 24 | 'yes': '是', 25 | 'no': '否', 26 | 'save': '保存', 27 | 'reset': '放弃', 28 | 'cancel': '取 消', 29 | 'submit': '提 交', 30 | 'gt1d': '超过一天', 31 | 'hour': '时', 32 | 'minute': '分', 33 | 'second': '秒' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': '撤销', 3 | 'redo': '重做', 4 | 'cut': '剪切', 5 | 'copy': '复制', 6 | 'paste': '黏贴', 7 | 'delete': '删除', 8 | 'select-all': '全选' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix 官网', 3 | 'manual': '使用手册', 4 | 'release-notes': '发行说明...', 5 | 'report-problem': '报告问题', 6 | 'toggle-dev-tools': '开发者工具' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': '文件', 4 | 'task': '任务', 5 | 'edit': '编辑', 6 | 'window': '窗口', 7 | 'help': '帮助' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': '任务列表', 3 | 'preferences': '偏好设置' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/zh-CN/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': '重新加载', 3 | 'close': '关闭', 4 | 'minimize': '最小化', 5 | 'zoom': '放大', 6 | 'toggle-fullscreen': '进入全屏幕', 7 | 'front': '前置全部窗口' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/about.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'engine-version': '引擎版本', 3 | 'license': '授權條款', 4 | 'about': '關於', 5 | 'release': '版本資訊', 6 | 'support': '支援' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/app.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': '任務列表', 3 | 'add-task': '新增任務', 4 | 'about': '關於 Motrix', 5 | 'preferences': '偏好設定...', 6 | 'check-for-updates': '檢查更新...', 7 | 'check-updates-now': '立即檢查', 8 | 'checking-for-updates': '正在檢查更新...', 9 | 'check-for-updates-title': '檢查更新', 10 | 'update-available-message': '發現新版本,是否現在更新?', 11 | 'update-not-available-message': '已是最新版', 12 | 'update-downloaded-message': '更新下載完成,應用程式將退出並開始更新...', 13 | 'update-error-message': '檢查更新失敗', 14 | 'engine-damaged-message': '引擎損壞,請重新安裝 : (', 15 | 'engine-missing-message': '引擎缺失,請重新安裝 : (', 16 | 'system-error-title': '系統錯誤', 17 | 'system-error-message': '應用程式啟動失敗: {{message}}', 18 | 'hide': '隱藏 Motrix', 19 | 'hide-others': '隱藏其它', 20 | 'unhide': '顯示全部', 21 | 'show': '顯示 Motrix', 22 | 'quit': '結束 Motrix', 23 | 'under-development-message': '該功能開發中...', 24 | 'yes': '是', 25 | 'no': '否', 26 | 'save': '儲存', 27 | 'reset': '捨棄', 28 | 'cancel': '取消', 29 | 'submit': '送出', 30 | 'gt1d': '超過一天', 31 | 'hour': '時', 32 | 'minute': '分', 33 | 'second': '秒' 34 | } 35 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/edit.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'undo': '還原', 3 | 'redo': '取消還原', 4 | 'cut': '剪下', 5 | 'copy': '複製', 6 | 'paste': '貼上', 7 | 'delete': '刪除', 8 | 'select-all': '全選' 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/help.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'official-website': 'Motrix 官網', 3 | 'manual': '使用說明', 4 | 'release-notes': '版本資訊...', 5 | 'report-problem': '回報問題', 6 | 'toggle-dev-tools': '開發者工具' 7 | } 8 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/index.js: -------------------------------------------------------------------------------- 1 | import about from './about' 2 | import app from './app' 3 | import edit from './edit' 4 | import help from './help' 5 | import menu from './menu' 6 | import preferences from './preferences' 7 | import subnav from './subnav' 8 | import task from './task' 9 | import window from './window' 10 | 11 | export default { 12 | about, 13 | app, 14 | edit, 15 | help, 16 | menu, 17 | preferences, 18 | subnav, 19 | task, 20 | window 21 | } 22 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/menu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app': 'Motrix', 3 | 'file': '檔案', 4 | 'task': '任務', 5 | 'edit': '編輯', 6 | 'window': '視窗', 7 | 'help': '說明' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/subnav.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'task-list': '任務清單', 3 | 'preferences': '偏好設定' 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/locales/zh-TW/window.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'reload': '重新載入', 3 | 'close': '關閉', 4 | 'minimize': '最小化', 5 | 'zoom': '放大', 6 | 'toggle-fullscreen': '切換全螢幕', 7 | 'front': '將全部視窗移至最前方' 8 | } 9 | -------------------------------------------------------------------------------- /src/shared/ua.js: -------------------------------------------------------------------------------- 1 | export const ARIA2_UA = 'aria2/1.36.0' 2 | export const TRANSMISSION_UA = 'Transmission/3.00' 3 | export const CHROME_UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36' 4 | export const DU_UA = 'netdisk;6.0.0.12;PC;PC-Windows;10.0.16299;WindowsBaiduYunGuanJia' 5 | 6 | export default { 7 | aria2: ARIA2_UA, 8 | transmission: TRANSMISSION_UA, 9 | chrome: CHROME_UA, 10 | du: DU_UA 11 | } 12 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/.gitkeep -------------------------------------------------------------------------------- /static/512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/512x512.png -------------------------------------------------------------------------------- /static/icons/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/about.png -------------------------------------------------------------------------------- /static/icons/about@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/about@2x.png -------------------------------------------------------------------------------- /static/icons/new-task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/new-task.png -------------------------------------------------------------------------------- /static/icons/new-task@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/new-task@2x.png -------------------------------------------------------------------------------- /static/icons/preferences.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/preferences.png -------------------------------------------------------------------------------- /static/icons/preferences@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/preferences@2x.png -------------------------------------------------------------------------------- /static/icons/task-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/task-active.png -------------------------------------------------------------------------------- /static/icons/task-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/task-active@2x.png -------------------------------------------------------------------------------- /static/icons/task-stopped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/task-stopped.png -------------------------------------------------------------------------------- /static/icons/task-stopped@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/task-stopped@2x.png -------------------------------------------------------------------------------- /static/icons/task-waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/task-waiting.png -------------------------------------------------------------------------------- /static/icons/task-waiting@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/icons/task-waiting@2x.png -------------------------------------------------------------------------------- /static/mo-tray-colorful-active.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-colorful-active.ico -------------------------------------------------------------------------------- /static/mo-tray-colorful-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-colorful-active.png -------------------------------------------------------------------------------- /static/mo-tray-colorful-normal.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-colorful-normal.ico -------------------------------------------------------------------------------- /static/mo-tray-colorful-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-colorful-normal.png -------------------------------------------------------------------------------- /static/mo-tray-dark-active@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-dark-active@1x.png -------------------------------------------------------------------------------- /static/mo-tray-dark-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-dark-active@2x.png -------------------------------------------------------------------------------- /static/mo-tray-dark-normal@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-dark-normal@1x.png -------------------------------------------------------------------------------- /static/mo-tray-dark-normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-dark-normal@2x.png -------------------------------------------------------------------------------- /static/mo-tray-light-active@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-light-active@1x.png -------------------------------------------------------------------------------- /static/mo-tray-light-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-light-active@2x.png -------------------------------------------------------------------------------- /static/mo-tray-light-normal@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-light-normal@1x.png -------------------------------------------------------------------------------- /static/mo-tray-light-normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agalwood/Motrix/7012040fec926e16fe8f6c403cf038527f5c18b9/static/mo-tray-light-normal@2x.png --------------------------------------------------------------------------------