├── .DS_Store ├── .github └── workflows │ └── build.yml ├── .gitignore ├── .ncurc.json ├── .npmignore ├── .vscode └── launch.json ├── Gruntfile.js ├── LICENSE ├── README.md ├── _config.yml ├── artifacts ├── arm.md ├── flavor.md ├── new-language.md ├── npm.md ├── onenote-2024.icns ├── onenote-icon-2018 │ ├── 256x256.png │ └── onenote-icon.svg ├── onenote-icon-2019 │ └── 1024x1024.png └── screenshot │ ├── screenshot-2020.png │ ├── screenshot-2021.png │ ├── screenshot-2023.png │ └── screenshot-2024.png ├── bin └── p3x-onenote.js ├── change-log.2019.md ├── change-log.2020.md ├── change-log.2021.md ├── change-log.2022.md ├── change-log.2023.md ├── change-log.2024.md ├── change-log.md ├── package.json ├── scripts ├── fix-change-log.js ├── fix-packages-publish.js ├── start-local.cmd └── start-local.sh ├── src ├── electron │ ├── app.js │ ├── images │ │ ├── 128x128.png │ │ ├── 256x256.png │ │ ├── 512x512.png │ │ └── onenote-2024.svg │ ├── lib │ │ ├── natural-compare-document.js │ │ └── remove-cookies.js │ ├── main │ │ ├── action.js │ │ ├── actions │ │ │ ├── relaunch.js │ │ │ └── set-proxy.js │ │ ├── app-events.js │ │ ├── create │ │ │ ├── menu.js │ │ │ ├── tray.js │ │ │ └── window │ │ │ │ └── onenote.js │ │ ├── ipc-main.js │ │ ├── menus.js │ │ └── set-visible.js │ └── window │ │ └── onenote │ │ ├── action │ │ ├── load-proxy.js │ │ ├── multi-action │ │ │ ├── get-location.js │ │ │ └── toast.js │ │ ├── multi-actions.js │ │ └── set-proxy.js │ │ ├── angular.js │ │ ├── angular │ │ ├── prompt │ │ │ └── index.js │ │ └── toast │ │ │ └── index.js │ │ ├── event │ │ └── handler.js │ │ ├── index.html │ │ ├── ipc │ │ └── handler.js │ │ ├── load.js │ │ └── style.css ├── flathub │ ├── metainfo.xml │ └── p3x-onenote.desktop └── translation │ ├── de-DE.js │ ├── en-US.js │ ├── es-ES.js │ ├── fr-FR.js │ ├── it-IT.js │ ├── ja-JP.js │ ├── nl-NL.js │ ├── pl-PL.js │ ├── pt-BR.js │ ├── ru-RU.js │ ├── tr-TR.js │ ├── zh-CN.js │ └── zh-TW.js └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/.DS_Store -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build and Publish on Tag 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*' 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | strategy: 12 | matrix: 13 | node-version: ['lts/*'] 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v2 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - run: npm i -g grunt-cli 21 | - run: npm install 22 | - run: grunt 23 | 24 | publish-windows: 25 | runs-on: windows-latest 26 | steps: 27 | - uses: actions/checkout@v2 28 | - name: Set up Node.js 29 | uses: actions/setup-node@v2 30 | with: 31 | node-version: 'lts/*' 32 | - name: Install dependencies 33 | run: npm install 34 | - name: Fix dependencies before 35 | run: node ./scripts/fix-packages-publish.js before 36 | - name: Publish Windows application 37 | run: npm run publish-windows 38 | env: 39 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 40 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 41 | - name: Fix dependencies after 42 | run: node ./scripts/fix-packages-publish.js after 43 | - name: Upload Windows build to GitHub Release 44 | uses: softprops/action-gh-release@v1 45 | with: 46 | tag_name: ${{ github.ref_name }} 47 | files: | 48 | dist/*.exe 49 | dist/*.msi 50 | dist/*.blockmap 51 | dist/latest.yml 52 | env: 53 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 54 | 55 | 56 | package-and-release-macos: 57 | runs-on: macos-latest 58 | steps: 59 | - uses: actions/checkout@v2 60 | - name: Set up Node.js 61 | uses: actions/setup-node@v2 62 | with: 63 | node-version: 'lts/*' 64 | - name: Install dependencies 65 | run: | 66 | npm install 67 | - name: Fix dependencies before 68 | run: node ./scripts/fix-packages-publish.js before 69 | # - name: Decode and Install Certificates 70 | # env: 71 | # CERTIFICATE_P12_BASE64: ${{ secrets.CERTIFICATE_P12_BASE64 }} 72 | # CERTIFICATE_P12_PASSWORD: ${{ secrets.CERTIFICATE_P12_PASSWORD }} 73 | # run: | 74 | # echo $CERTIFICATE_P12_BASE64 | base64 --decode > certificate.p12 75 | # security create-keychain -p actions temp.keychain 76 | # security import certificate.p12 -k ~/Library/Keychains/temp.keychain -P "$CERTIFICATE_P12_PASSWORD" -T /usr/bin/codesign 77 | # security list-keychains -s temp.keychain 78 | # security default-keychain -s temp.keychain 79 | # security unlock-keychain -p actions temp.keychain 80 | # security set-key-partition-list -S apple-tool:,apple: -s -k actions temp.keychain 81 | - name: Build and package macOS app 82 | # env: 83 | # APPLE_ID: ${{ secrets.APPLE_ID }} 84 | # APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} 85 | # APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} 86 | # DEBUG: "*" 87 | run: npm run publish-macos 88 | - name: Fix dependencies after 89 | run: node ./scripts/fix-packages-publish.js after 90 | - name: Upload macOS build to GitHub Release 91 | uses: softprops/action-gh-release@v1 92 | with: 93 | tag_name: ${{ github.ref_name }} 94 | files: | 95 | dist/*.dmg 96 | dist/*.zip 97 | dist/*.blockmap 98 | dist/latest-mac.yml 99 | env: 100 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /dist 3 | /node_modules 4 | /*.log 5 | /*.iws 6 | .idea/workspace.xml 7 | .idea/tasks.xml 8 | .idea/profiles_settings.xml 9 | .idea/inspectionProfiles/Project_Default.xml 10 | .idea/inspectionProfiles/profiles_settings.xml 11 | 12 | /.flatpak-builder 13 | /.build 14 | /repo -------------------------------------------------------------------------------- /.ncurc.json: -------------------------------------------------------------------------------- 1 | { 2 | "reject": [ 3 | "electron-store" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /artifacts 3 | /build 4 | /test 5 | /node_modules 6 | /*.iml 7 | /*.ipr 8 | /*.iws 9 | /.travis.yml 10 | /.scrutinizer.yml 11 | /Gruntfile.js 12 | /*.lock 13 | *.log 14 | /corifeus-boot.json 15 | /dist 16 | /secure 17 | /.github 18 | /.vscode 19 | /.flatpak-builder 20 | /.build 21 | /repo 22 | /generated-sources.json 23 | /com.patrikx3.onenote.yml -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "run electron", 6 | "program": "${workspaceFolder}/src/electron/app.js", 7 | "request": "launch", 8 | "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 9 | "skipFiles": [ 10 | "/**" 11 | ], 12 | "type": "node", 13 | "env": { 14 | "NODE_ENV": "debug" 15 | } 16 | }, 17 | { 18 | "outputCapture": "std", 19 | "name": "publish-electron", 20 | "type": "node", 21 | "request": "launch", 22 | "cwd": "${workspaceRoot}", 23 | "runtimeExecutable": "npm", 24 | "runtimeArgs": [ 25 | "run", "publish-electron" 26 | ] 27 | } 28 | 29 | ] 30 | } -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = (grunt) => { 2 | const builder = require(`corifeus-builder`); 3 | const loader = new builder.loader(grunt); 4 | loader.js({ 5 | replacer: { 6 | type: 'p3x', 7 | nodejsinfo: true, 8 | }, 9 | }); 10 | grunt.registerTask('default', builder.config.task.build.js); 11 | 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-midnight 2 | -------------------------------------------------------------------------------- /artifacts/arm.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | 8 | ```bash 9 | sudo apt-get install qemu-user qemu-user-static qemu-user-binfmtű 10 | 11 | 12 | docker buildx create --name builder-arm64 --use 13 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 14 | 15 | docker buildx use builder-arm64 16 | docker buildx inspect --bootstrap 17 | 18 | 19 | sudo apt-get remove --purge qemu-user qemu-user-static qemu-user-binfmt 20 | ``` 21 | 22 | [//]: #@corifeus-footer 23 | 24 | --- 25 | 26 | ## 🚀 Quick and Affordable Web Development Services 27 | 28 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 29 | 30 | --- 31 | 32 | ## 🌐 Powerful Online Networking Tool 33 | 34 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 35 | 36 | **🆓 Free** 37 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 38 | Additionally, it offers tools for: 39 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 40 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 41 | 42 | All these features are completely free to use. 43 | 44 | --- 45 | 46 | ## ❤️ Support Our Open-Source Project 47 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 48 | 49 | --- 50 | 51 | ### 🌍 About My Domains 52 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 53 | 54 | --- 55 | 56 | ### 📈 Versioning Policy 57 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 58 | - **Major:** 📅 Corresponds to the current year. 59 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 60 | - **Patch:** 🔧 Incremental, updated with each build. 61 | 62 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 63 | 64 | --- 65 | 66 | 67 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 68 | 69 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 70 | 71 | 72 | 73 | 74 | 75 | [//]: #@corifeus-footer:end 76 | -------------------------------------------------------------------------------- /artifacts/flavor.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | https://github.com/anujdatar/onenote-desktop/blob/master/package.json 8 | https://github.com/peterforgacs/electron-onenote 9 | 10 | 11 | 12 | [//]: #@corifeus-footer 13 | 14 | --- 15 | 16 | ## 🚀 Quick and Affordable Web Development Services 17 | 18 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 19 | 20 | --- 21 | 22 | ## 🌐 Powerful Online Networking Tool 23 | 24 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 25 | 26 | **🆓 Free** 27 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 28 | Additionally, it offers tools for: 29 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 30 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 31 | 32 | All these features are completely free to use. 33 | 34 | --- 35 | 36 | ## ❤️ Support Our Open-Source Project 37 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 38 | 39 | --- 40 | 41 | ### 🌍 About My Domains 42 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 43 | 44 | --- 45 | 46 | ### 📈 Versioning Policy 47 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 48 | - **Major:** 📅 Corresponds to the current year. 49 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 50 | - **Patch:** 🔧 Incremental, updated with each build. 51 | 52 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 53 | 54 | --- 55 | 56 | 57 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 58 | 59 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 60 | 61 | 62 | 63 | 64 | 65 | [//]: #@corifeus-footer:end -------------------------------------------------------------------------------- /artifacts/new-language.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | # New translation 8 | 9 | * `onenote/src/electron/app.js` 10 | * `onenote/src/electron/window/onenote/load.js` 11 | * `translation/en-US.js/menu.language` 12 | 13 | [//]: #@corifeus-footer 14 | 15 | --- 16 | 17 | ## 🚀 Quick and Affordable Web Development Services 18 | 19 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 20 | 21 | --- 22 | 23 | ## 🌐 Powerful Online Networking Tool 24 | 25 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 26 | 27 | **🆓 Free** 28 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 29 | Additionally, it offers tools for: 30 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 31 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 32 | 33 | All these features are completely free to use. 34 | 35 | --- 36 | 37 | ## ❤️ Support Our Open-Source Project 38 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 39 | 40 | --- 41 | 42 | ### 🌍 About My Domains 43 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 44 | 45 | --- 46 | 47 | ### 📈 Versioning Policy 48 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 49 | - **Major:** 📅 Corresponds to the current year. 50 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 51 | - **Patch:** 🔧 Incremental, updated with each build. 52 | 53 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 54 | 55 | --- 56 | 57 | 58 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 59 | 60 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 61 | 62 | 63 | 64 | 65 | 66 | [//]: #@corifeus-footer:end 67 | -------------------------------------------------------------------------------- /artifacts/npm.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | 8 | # NPM install 9 | 10 | If you know what you are doing and you are a Ninja, here you go: 11 | 12 | ```bash 13 | sudo npm install -g p3x-onenote --unsafe-perm=true --allow-root 14 | p3x-onenote & 15 | ``` 16 | 17 | ## Warning 18 | 19 | This installation is not supported at all. 20 | 21 | ### Note 🤔 22 | 23 | Though, I am using it, but some distros are different and I only use Linux Mint and still, I can't support this way. 🤗 24 | 25 | 26 | [//]: #@corifeus-footer 27 | 28 | --- 29 | 30 | ## 🚀 Quick and Affordable Web Development Services 31 | 32 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 33 | 34 | --- 35 | 36 | ## 🌐 Powerful Online Networking Tool 37 | 38 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 39 | 40 | **🆓 Free** 41 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 42 | Additionally, it offers tools for: 43 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 44 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 45 | 46 | All these features are completely free to use. 47 | 48 | --- 49 | 50 | ## ❤️ Support Our Open-Source Project 51 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 52 | 53 | --- 54 | 55 | ### 🌍 About My Domains 56 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 57 | 58 | --- 59 | 60 | ### 📈 Versioning Policy 61 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 62 | - **Major:** 📅 Corresponds to the current year. 63 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 64 | - **Patch:** 🔧 Incremental, updated with each build. 65 | 66 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 67 | 68 | --- 69 | 70 | 71 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 72 | 73 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 74 | 75 | 76 | 77 | 78 | 79 | [//]: #@corifeus-footer:end 80 | -------------------------------------------------------------------------------- /artifacts/onenote-2024.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/artifacts/onenote-2024.icns -------------------------------------------------------------------------------- /artifacts/onenote-icon-2018/256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/artifacts/onenote-icon-2018/256x256.png -------------------------------------------------------------------------------- /artifacts/onenote-icon-2018/onenote-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /artifacts/onenote-icon-2019/1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/artifacts/onenote-icon-2019/1024x1024.png -------------------------------------------------------------------------------- /artifacts/screenshot/screenshot-2020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/artifacts/screenshot/screenshot-2020.png -------------------------------------------------------------------------------- /artifacts/screenshot/screenshot-2021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/artifacts/screenshot/screenshot-2021.png -------------------------------------------------------------------------------- /artifacts/screenshot/screenshot-2023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/artifacts/screenshot/screenshot-2023.png -------------------------------------------------------------------------------- /artifacts/screenshot/screenshot-2024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/artifacts/screenshot/screenshot-2024.png -------------------------------------------------------------------------------- /bin/p3x-onenote.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | //const os = require('os'); 3 | //const process = require('process'); 4 | //const cores = os.cpus().length < 4 ? 4 : os.cpus().length; 5 | //process.env.UV_THREADPOOL_SIZE = cores; 6 | //console.debug(`P3X sets UV_THREADPOOL_SIZE to ${cores} thread pool`) 7 | 8 | if (!require('fs').existsSync(`${__dirname}/../node_modules`)) { 9 | require('child_process').execSync(`cd ${__dirname}/.. && npm install --only=prod`, { 10 | stdio: 'inherit' 11 | }); 12 | } 13 | 14 | const utils = require('corifeus-utils'); 15 | const path = require('path'); 16 | const mz = require('mz'); 17 | 18 | const start = async() => { 19 | try { 20 | const desktopEntry = `${process.env.HOME}/.local/share/applications/p3x-onenote-cli.desktop`; 21 | const exists = await utils.fs.ensureFile(desktopEntry, `[Desktop Entry] 22 | Version=1.0 23 | Type=Application 24 | Name=P3X Onenote 25 | Icon=${path.resolve(__dirname + '/../src/electron/images/128x128.png')} 26 | Exec=${__filename} 27 | Comment=https://www.corifeus.com/onenote 28 | Categories=Office; 29 | Terminal=false 30 | `) 31 | if (!exists) { 32 | await mz.fs.chmod(desktopEntry , '0755'); 33 | await utils.childProcess.exec('gtk-update-icon-cache || true'); 34 | } 35 | 36 | await utils.childProcess.exec(`${__dirname}/../node_modules/.bin/electron ${path.resolve(__dirname + '/../')} ${process.argv.join(' ')}`, true); 37 | } catch (e) { 38 | console.error(e); 39 | throw e; 40 | } 41 | } 42 | 43 | start(); 44 | -------------------------------------------------------------------------------- /change-log.2019.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | ### v2019.10.318 8 | * FEAT: Portuguese locale in the GUI enhance. 9 | 10 | 11 | 12 | ### v2019.10.317 13 | * FEAT: Portuguese locale in the GUI. 14 | 15 | 16 | 17 | ### v2019.10.301 18 | * Bugfix: configstore error 19 | 20 | 21 | 22 | ### v2019.10.211 23 | * CHORE: Upgraded Electron v4 to v6 finally and using just 1 icon 🙌 24 | 25 | 26 | 27 | ### v2019.10.202 28 | * Bugfix: Build error. 29 | 30 | 31 | 32 | ### v2019.10.230 33 | * Bugfix: Electron v6 was generating twice icons so I reverted to v4.2.8 34 | 35 | 36 | 37 | ### v2019.10.127 38 | * CHORE: Upgraded Electron v4 to v6. 39 | 40 | 41 | 42 | ### v2019.10.117 43 | * BUGFIX: DISABLE_WAYLAND fix 44 | * https://github.com/patrikx3/onenote/issues/70 45 | * https://github.com/patrikx3/onenote/pull/71 46 | 47 | 48 | 49 | ### v2019.4.122 50 | * BUGFIX: configstore v5 is not working with SNAP, had to revert to configstore v4 51 | * https://github.com/patrikx3/onenote/issues/68 52 | 53 | 54 | 55 | ### v2019.4.115 56 | * BUGFIX: The cursor sometimes hidden 57 | * https://github.com/patrikx3/onenote/issues/67 58 | 59 | 60 | 61 | ### v2019.4.114 62 | * BUGFIX: Since the `Language` menu shift from the `Check updates` `Help` to `View`. 63 | 64 | 65 | 66 | ### v2019.4.108 67 | * CHORE: Revert to Electron v4, as showing 2 icons with the hack. 68 | 69 | 70 | 71 | ### v2019.4.104 72 | * CHORE: Upgraded to Electron v5 73 | * BUGFIX: Electron was not working sandbox, I worked it out with a script in `src/build/after-pack.js` 74 | 75 | 76 | 77 | ### v2019.4.101 78 | * BUGFIX: Minor translation issue. 79 | 80 | 81 | 82 | ### v2019.4.42 83 | * BUGFIX: Revert Electron to v4.2.1 as there is an SUID permission, https://github.com/patrikx3/onenote/issues/63 84 | 85 | 86 | 87 | ### v2019.4.39 88 | * FEATURE: New `OneNote 2019` icon 89 | * FEATURE: German translation, able to try to guess `Online Onenote` language, but not always working ... 90 | 91 | 92 | 93 | ### v2019.4.33 94 | FEATURE: Added in the `Action` menu to go to any URL. 95 | 96 | 97 | 98 | ### v2019.4.32 99 | FEATURE: The link chooser was missing the cancel button. 100 | 101 | 102 | 103 | ### v2019.4.31 104 | CHORE: Updated all dependencies. 105 | 106 | 107 | 108 | ### v2019.4.26 109 | FEATURE: the Electron GUI color (you can check in the `Set Proxy` theme) is switched form blue to purple 110 | 111 | 112 | 113 | ### v2019.4.24 114 | FEATURE: Allows using multiple instances (with some quirks, as the config will not be synchronized, so it can provide wrong settings) 115 | 116 | 117 | 118 | ### v2019.4.21 119 | FEATURE: Reverted added emoji in the title (notebook) 120 | 121 | 122 | 123 | ### v2019.4.19 124 | FEATURE: Added emoji in the title (notebook) 125 | 126 | 127 | 128 | ### v2019.4.17 129 | FEATURE: The settings tray menu is a checkbox now (it was a button and different labels). 130 | 131 | 132 | 133 | ### v2019.4.12 134 | BUGFIX: the tray was giving a "tray was already destroyed" error 135 | 136 | 137 | 138 | ### v2019.4.8 139 | FEATURE: for all links in P3X OneNote is left for the user to decide how the links are handled - as internal or external 140 | 141 | 142 | 143 | ### v2019.4.7 144 | * BUGFIX: the tray was showing all the time, now, it only shown if the close button behavior is happening by minimize to the tray 145 | 146 | 147 | 148 | ### v2019.02.17 149 | * BUGFIX: Added info, that not every case can be handled. 150 | * BUGFIX: On the sidebar on notebooks it was opening a new window, it is quite hacky, but is supposed to be working. 151 | 152 | 153 | 154 | ### v2019.02.16 155 | * BUGFIX: On the sidebar on notebooks it was opening a new window, it is quite hacky, but is supposed to be working. 156 | 157 | 158 | 159 | ### v2019.02.04 160 | * BUGFIX: Donation button was Hungarian, now is supposed to be automatically by browser locale. 161 | 162 | 163 | 164 | ### v2019.02.02 165 | * FEATURE: Disable/enable main timer on window blur/focus 166 | * CHORE: upgrade to Electron 4.0.4 167 | 168 | 169 | 170 | 171 | ### v2019.01.24 172 | * CHORE: upgrade to Electron 4.0.2 173 | 174 | 175 | 176 | ### v2019.01.18 177 | * BUGFIX: it was saving the window position and size, but it is not correct, because the user could change 2 monitors to 1 monitor and could save incorrect positions, so I disabled this option 178 | 179 | 180 | [//]: #@corifeus-footer 181 | 182 | --- 183 | 184 | ## 🚀 Quick and Affordable Web Development Services 185 | 186 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 187 | 188 | --- 189 | 190 | ## 🌐 Powerful Online Networking Tool 191 | 192 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 193 | 194 | **🆓 Free** 195 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 196 | Additionally, it offers tools for: 197 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 198 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 199 | 200 | All these features are completely free to use. 201 | 202 | --- 203 | 204 | ## ❤️ Support Our Open-Source Project 205 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 206 | 207 | --- 208 | 209 | ### 🌍 About My Domains 210 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 211 | 212 | --- 213 | 214 | ### 📈 Versioning Policy 215 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 216 | - **Major:** 📅 Corresponds to the current year. 217 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 218 | - **Patch:** 🔧 Incremental, updated with each build. 219 | 220 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 221 | 222 | --- 223 | 224 | 225 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 226 | 227 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 228 | 229 | 230 | 231 | 232 | 233 | [//]: #@corifeus-footer:end 234 | -------------------------------------------------------------------------------- /change-log.2020.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | ### v2020.10.189 8 | * BUGFIX: The bookmarks editor title was wrong, showing adding. 9 | 10 | 11 | 12 | ### v2020.10.187 13 | * FEATURE: Add bookmarks menu. 14 | 15 | 16 | 17 | ### v2020.10.179 18 | * BUILD: Removed 32 bit version in Linux. 19 | 20 | 21 | 22 | ### v2020.10.178 23 | * BUGFIX: Fix button order by using Material Design Specs. 24 | 25 | 26 | 27 | ### v2020.10.164 28 | * BUGFIX: Build problem. 29 | 30 | 31 | 32 | ### v2020.10.159 33 | * BUGFIX: French build fix. 34 | 35 | 36 | 37 | ### v2020.10.157 38 | * FEATURE: Added French language. 39 | 40 | 41 | 42 | ### v2020.10.155 43 | * BUILD: Fix newer build from `electron-builder`. 44 | 45 | 46 | 47 | ### v2020.10.132 48 | * CHORE: Updated deps. 49 | 50 | 51 | 52 | ### v2020.10.123 53 | * BUGFIX: Adds new translations for portuguese (https://github.com/patrikx3/onenote/pull/114) 54 | 55 | 56 | 57 | ### v2020.10.111 58 | * BUGFIX: About blank fix (not full solution) 59 | 60 | 61 | 62 | ### v2020.10.109 63 | * FEATURE: Back/forward button 64 | 65 | 66 | 67 | ### v2020.10.107 68 | * FEATURE: Back/forward button 69 | 70 | 71 | 72 | ### v2020.10.105 73 | * FEATURE: Tuned bottom toolbar 74 | 75 | 76 | 77 | ### v2020.10.103 78 | * FEATURE: Since menu is not always showing, on the bottom toolbar is always showing a donate button. 79 | 80 | 81 | 82 | ### v2020.10.101 83 | * FEATURE: GUI align layout on confirm popup (reverse button order) 84 | * FEATURE: The menu is initial hidden, you can enable by clicking ALT. 85 | 86 | 87 | 88 | ### v2020.4.200 89 | * FEATURE: disable all AngularJs/AngularJs Material animations. 90 | 91 | 92 | 93 | ### v2020.4.197 94 | * BUGFIX: Remove Fontawesome and jQuery, as we are not using. 95 | 96 | 97 | 98 | ### v2020.4.185 99 | * CORE: update deps 100 | 101 | 102 | 103 | ### v2020.4.167 104 | * BUGFIX: Minor translation fix, based on [Github Pull 100](https://github.com/patrikx3/onenote/pull/100) 105 | 106 | 107 | 108 | ### v2020.4.157 109 | * FEATURE: Takes care of [Github Issue #97](https://github.com/patrikx3/onenote/issues/97) - Option to Disable Internal / External Popup 110 | 111 | 112 | 113 | ### v2020.4.154 114 | * FEATURE: Added ARM version. 115 | 116 | 117 | 118 | ### v2020.4.131 119 | * CHORE: Update NPM packages. 120 | 121 | 122 | 123 | ### v2020.4.119 124 | * BUG: The set proxy menu was not working. 125 | 126 | 127 | 128 | ### v2020.4.115 129 | * FEATURE: Added Spanish translation. 130 | 131 | 132 | 133 | ### v2020.4.109 134 | * CHORE: Upgrade to Electron v8. 135 | 136 | 137 | 138 | ### v2020.4.100 139 | * FEAT: Ability to hide the main menu (in tray mode only). 140 | 141 | 142 | [//]: #@corifeus-footer 143 | 144 | --- 145 | 146 | ## 🚀 Quick and Affordable Web Development Services 147 | 148 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 149 | 150 | --- 151 | 152 | ## 🌐 Powerful Online Networking Tool 153 | 154 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 155 | 156 | **🆓 Free** 157 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 158 | Additionally, it offers tools for: 159 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 160 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 161 | 162 | All these features are completely free to use. 163 | 164 | --- 165 | 166 | ## ❤️ Support Our Open-Source Project 167 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 168 | 169 | --- 170 | 171 | ### 🌍 About My Domains 172 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 173 | 174 | --- 175 | 176 | ### 📈 Versioning Policy 177 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 178 | - **Major:** 📅 Corresponds to the current year. 179 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 180 | - **Patch:** 🔧 Incremental, updated with each build. 181 | 182 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 183 | 184 | --- 185 | 186 | 187 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 188 | 189 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 190 | 191 | 192 | 193 | 194 | 195 | [//]: #@corifeus-footer:end -------------------------------------------------------------------------------- /change-log.2021.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | ### v2021.10.167 8 | Released on 10/28/2021 9 | * BUGFIX: Enhance boot speed - 1 second faster (but it is still very slow, because the Electron webview issues) 10 | 11 | 12 | 13 | 14 | ### v2021.10.165 15 | Released on 10/28/2021 16 | * BUGFIX: https://github.com/patrikx3/onenote/issues/157 17 | 18 | 19 | 20 | 21 | ### v2021.10.158 22 | Released on 10/26/2021 23 | * FEATURE: Changed the `change-log.md` file name. 24 | 25 | 26 | 27 | 28 | 29 | ### v2021.10.155 30 | Released on 10/21/2021 31 | * FEATURE: Optimized boot speed. 32 | 33 | 34 | 35 | ### v2021.10.130 36 | * BUGFIX: Fix Electron 14 error. 37 | 38 | 39 | 40 | ### v2021.10.111 41 | * BUGFIX: Replace `configstore` to `electron-store` 42 | 43 | 44 | 45 | ### v2021.10.109 46 | * FEATURE: In the link popup external buttons moved from center to the right. 47 | 48 | 49 | 50 | ### v2021.10.108 51 | * BUGFIX: https://github.com/patrikx3/onenote/issues/152 52 | 53 | 54 | 55 | ### v2021.10.106 56 | * BUGFIX: https://github.com/patrikx3/onenote/issues/152 57 | 58 | 59 | 60 | ### v2021.10.104 61 | * CHORE: Update deps. 62 | 63 | 64 | 65 | ### v2021.4.192 66 | * CHORE: Update deps. 67 | 68 | 69 | 70 | ### v2021.4.190 71 | * FEATURE: Enable zoom in the bottom toolbar. 72 | 73 | 74 | 75 | ### v2021.4.187 76 | * FEATURE: Updated German translation. 77 | 78 | 79 | 80 | ### v2021.4.185 81 | * BUGFIX: Proxy got baaaad. Fix is done. 82 | 83 | 84 | 85 | ### v2021.4.175 86 | * FEATURE: The bookmarks are sorted by alphabetically. 87 | 88 | 89 | 90 | ### v2021.4.173 91 | * FEATURE: Enhanced dark mode by keeping the original colors (a bit shift, but not invert like before). 92 | 93 | 94 | 95 | ### v2021.4.171 96 | * FEATURE: Added Italian translation. 97 | 98 | 99 | 100 | ### v2021.4.169 101 | * FEATURE: Enable dark mode (with quirks) using invert all colors. Not perfect, but it works and is bettter for you eyes. 102 | 103 | 104 | 105 | ### v2021.4.166 106 | * FEATURE: Added Dutch translation. 107 | 108 | 109 | 110 | ### v2021.4.162 111 | * BUILD: Add Ubuntu 32 bit AppImage version 112 | 113 | 114 | 115 | ### v2021.4.156 116 | * BUGFIX: Fixed the latest Electron v12 version (it was crashing) 117 | 118 | 119 | 120 | ### v2021.4.154 121 | * BUGFIX: Electron v12 is crashing when clicking on a link (build with Electron v11, works) 122 | 123 | 124 | 125 | ### v2021.4.152 126 | * FEATURE: Corporate login fix. 127 | 128 | 129 | 130 | ### v2021.4.147 131 | * FEATURE: The menu is by default will show the menu, but in the settings, you can hide it and only show with ALT. 132 | 133 | 134 | 135 | ### v2021.4.144 136 | * FEATURE: Add `rpm` package format. 137 | 138 | 139 | 140 | ### v2021.4.140 141 | * FEATURE: Add `deb` package format. 142 | 143 | 144 | 145 | ### v2021.4.136 146 | * BUGFIX: The tray is more stable, but it is a hack, not perfect. 147 | 148 | 149 | 150 | ### v2021.4.132 151 | * BUGFIX: The tray is more stable, but it is a hack, not perfect. 152 | 153 | 154 | 155 | ### v2021.4.122 156 | * BUGFIX: The tray is more stable, but it is a hack, not perfect. 157 | 158 | 159 | 160 | ### v2021.4.113 161 | * BUGFIX: The tray is more stable, but it is a hack, not perfect. 162 | 163 | 164 | 165 | ### v2021.4.103 166 | * CHORE: Update deps 167 | 168 | 169 | 170 | ### v2021.4.101 171 | * BUGFIX: Proxy settings was not loading on runing, only during setting the proxy (https://github.com/patrikx3/onenote/issues/128) 172 | 173 | 174 | [//]: #@corifeus-footer 175 | 176 | --- 177 | 178 | ## 🚀 Quick and Affordable Web Development Services 179 | 180 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 181 | 182 | --- 183 | 184 | ## 🌐 Powerful Online Networking Tool 185 | 186 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 187 | 188 | **🆓 Free** 189 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 190 | Additionally, it offers tools for: 191 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 192 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 193 | 194 | All these features are completely free to use. 195 | 196 | --- 197 | 198 | ## ❤️ Support Our Open-Source Project 199 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 200 | 201 | --- 202 | 203 | ### 🌍 About My Domains 204 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 205 | 206 | --- 207 | 208 | ### 📈 Versioning Policy 209 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 210 | - **Major:** 📅 Corresponds to the current year. 211 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 212 | - **Patch:** 🔧 Incremental, updated with each build. 213 | 214 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 215 | 216 | --- 217 | 218 | 219 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 220 | 221 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 222 | 223 | 224 | 225 | 226 | 227 | [//]: #@corifeus-footer:end -------------------------------------------------------------------------------- /change-log.2022.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | ### v2022.10.117 8 | Released on 10/23/2022 9 | * FEATURE: Update deps 10 | 11 | 12 | 13 | ### v2022.10.111 14 | Released on 10/02/2022 15 | * FEATURE: Added Russian 16 | * FEATURE: Update deps 17 | 18 | 19 | 20 | ### v2022.10.106 21 | Released on 07/27/2022 22 | * CHORE: Update deps 23 | 24 | 25 | 26 | ### v2022.4.127 27 | Released on 05/31/2022 28 | * CHORE: Update Electron 29 | 30 | 31 | 32 | ### v2022.4.114 33 | Released on 02/21/2022 34 | * FEATURE: Simplified-Chinese Translation. 35 | 36 | 37 | 38 | ### v2022.4.112 39 | Released on 02/05/2022 40 | * CHORE: Upgraded to latest versions 41 | 42 | 43 | 44 | ### v2022.4.104 45 | Released on 01/05/2022 46 | * CHORE: Update deps. 47 | 48 | 49 | [//]: #@corifeus-footer 50 | 51 | --- 52 | 53 | ## 🚀 Quick and Affordable Web Development Services 54 | 55 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 56 | 57 | --- 58 | 59 | ## 🌐 Powerful Online Networking Tool 60 | 61 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 62 | 63 | **🆓 Free** 64 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 65 | Additionally, it offers tools for: 66 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 67 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 68 | 69 | All these features are completely free to use. 70 | 71 | --- 72 | 73 | ## ❤️ Support Our Open-Source Project 74 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 75 | 76 | --- 77 | 78 | ### 🌍 About My Domains 79 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 80 | 81 | --- 82 | 83 | ### 📈 Versioning Policy 84 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 85 | - **Major:** 📅 Corresponds to the current year. 86 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 87 | - **Patch:** 🔧 Incremental, updated with each build. 88 | 89 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 90 | 91 | --- 92 | 93 | 94 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 95 | 96 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 97 | 98 | 99 | 100 | 101 | 102 | [//]: #@corifeus-footer:end -------------------------------------------------------------------------------- /change-log.2023.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | ### v2023.10.243 8 | Released on 09/21/2023 9 | * FEATURE: Update Polish language 10 | 11 | 12 | 13 | ### v2023.10.235 14 | Released on 08/03/2023 15 | * BUGFIX: Change color following the OneNote Online color change. 16 | 17 | 18 | 19 | ### v2023.10.233 20 | Released on 07/31/2023 21 | * BUGFIX: After suspend, giving error (blank window) as issue says in GitHub as well, https://github.com/electron/electron/issues/30966 22 | 23 | 24 | 25 | ### v2023.10.228 26 | Released on 07/28/2023 27 | * BUGFIX: https://github.com/patrikx3/onenote/issues/181 28 | 29 | 30 | 31 | ### v2023.10.222 32 | Released on 07/23/2023 33 | * FEATURE: Added windows version 34 | 35 | 36 | 37 | ### v2023.10.220 38 | Released on 07/20/2023 39 | * CHORE: Updated Electron 40 | 41 | 42 | 43 | ### v2023.10.205 44 | Released on 07/19/2022 45 | * TEST: Auto upload with deb and AppImage 46 | 47 | 48 | 49 | ### v2023.10.177 50 | Released on 07/18/2022 51 | * FEATURE: Enhance boot startup speed 52 | * BUGFIX: Auto upload stopped working 53 | 54 | 55 | 56 | ### v2023.4.119 57 | Released on 06/25/2022 58 | * FEATURE: Update deps 59 | 60 | 61 | 62 | ### v2023.4.117 63 | Released on 01/14/2023 64 | * FEATURE: Added Turkish 65 | 66 | 67 | 68 | ### v2023.4.113 69 | Released on 01/10/2023 70 | * FEATURE: Added Polish 71 | 72 | 73 | [//]: #@corifeus-footer 74 | 75 | --- 76 | 77 | ## 🚀 Quick and Affordable Web Development Services 78 | 79 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 80 | 81 | --- 82 | 83 | ## 🌐 Powerful Online Networking Tool 84 | 85 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 86 | 87 | **🆓 Free** 88 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 89 | Additionally, it offers tools for: 90 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 91 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 92 | 93 | All these features are completely free to use. 94 | 95 | --- 96 | 97 | ## ❤️ Support Our Open-Source Project 98 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 99 | 100 | --- 101 | 102 | ### 🌍 About My Domains 103 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 104 | 105 | --- 106 | 107 | ### 📈 Versioning Policy 108 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 109 | - **Major:** 📅 Corresponds to the current year. 110 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 111 | - **Patch:** 🔧 Incremental, updated with each build. 112 | 113 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 114 | 115 | --- 116 | 117 | 118 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 119 | 120 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 121 | 122 | 123 | 124 | 125 | 126 | [//]: #@corifeus-footer:end -------------------------------------------------------------------------------- /change-log.2024.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | 8 | ## Change log 9 | 10 | ### v2024.10.121 11 | Released on 12/21/2024 12 | * BUGFIX: Enable Mac OS build. 13 | 14 | ### v2024.10.119 15 | Released on 12/21/2024 16 | * BUGFIX: Available in Flatpak again. 17 | 18 | 19 | ### v2024.10.118 20 | Released on 12/21/2024 21 | * CHORE: Updated all packages 22 | 23 | ### v2024.10.117 24 | Released on 10/03/2024 25 | * FEATURE: Added Traditional Chinese translation. 26 | 27 | ### v2024.10.110 28 | Released on 07/03/2024 29 | * CHORE: Build error fix. 30 | 31 | ### v2024.10.109 32 | Released on 07/02/2024 33 | * CHORE: Updated all packages. 34 | 35 | ### v2024.4.188 36 | Released on 05/24/2024 37 | * CHORE: Updated all packages and added developer certificate for MacOs. 38 | 39 | ### v2024.4.177 40 | Released on 05/04/2024 41 | * CHORE: Updated all packages and NodeJs using v22. 42 | 43 | ### v2024.4.168 44 | Released on 03/27/2024 45 | * CHORE: Fixed missing Electron dependency. 46 | 47 | ### v2024.4.167 48 | Released on 03/27/2024 49 | * CHORE: Corifeus release. 50 | 51 | ### v2024.4.161 52 | Released on 03/26/2024 53 | * BUILD: Released ARM 32bit on SNAP. 54 | 55 | ### v2024.4.160 56 | Released on 03/21/2024 57 | * CHORE: Flathub release test 3. 58 | 59 | ### v2024.4.157 60 | Released on 03/19/2024 61 | * CHORE: Flathub release test 2. 62 | 63 | ### v2024.4.155 64 | Released on 03/19/2024 65 | * CHORE: Flathub release test. 66 | 67 | ### v2024.4.146 68 | Released on 03/19/2024 69 | * CHORE: Flathub test. 70 | 71 | ### v2024.4.143 72 | Released on 03/18/2024 73 | * CHORE: Updated Electron. 74 | * CHORE: Build task. Changed the Windows Setup filename to be using Microsoft standard. 75 | 76 | ### v2024.4.142 77 | Released on 03/10/2024 78 | * CHORE: Build update. 79 | 80 | ### v2024.4.141 81 | Released on 03/10/2024 82 | * FEATURE: Added Flatpak. 83 | 84 | ### v2024.4.135 85 | Released on 03/09/2024 86 | * CHORE: Update all packages. 87 | 88 | ### v2024.4.125 89 | Released on 03/08/2024 90 | * BUGFIX: Was not saving the proper url when re-start the app (used the previus url). 91 | * BUGFIX: The NPM and Electron app was using different version. Now, it is the same everywhere. 92 | 93 | ### v2024.4.124 94 | Released on 02/25/2024 95 | * FEATURE: Enable a MacOs Intel and Apple silicon build. 96 | 97 | ### v2024.4.120 98 | Released on 02/25/2024 99 | * FEATURE: Building the Windows versions is done via GitHub Actions. 100 | 101 | ### v2024.4.106 102 | Released on 01/26/2024 103 | * FEATURE: Added Japanese 104 | 105 | 106 | 107 | 108 | [//]: #@corifeus-footer 109 | 110 | --- 111 | 112 | ## 🚀 Quick and Affordable Web Development Services 113 | 114 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 115 | 116 | --- 117 | 118 | ## 🌐 Powerful Online Networking Tool 119 | 120 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 121 | 122 | **🆓 Free** 123 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 124 | Additionally, it offers tools for: 125 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 126 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 127 | 128 | All these features are completely free to use. 129 | 130 | --- 131 | 132 | ## ❤️ Support Our Open-Source Project 133 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 134 | 135 | --- 136 | 137 | ### 🌍 About My Domains 138 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 139 | 140 | --- 141 | 142 | ### 📈 Versioning Policy 143 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 144 | - **Major:** 📅 Corresponds to the current year. 145 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 146 | - **Patch:** 🔧 Incremental, updated with each build. 147 | 148 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 149 | 150 | --- 151 | 152 | 153 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 154 | 155 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 156 | 157 | 158 | 159 | 160 | 161 | [//]: #@corifeus-footer:end 162 | -------------------------------------------------------------------------------- /change-log.md: -------------------------------------------------------------------------------- 1 | [//]: #@corifeus-header 2 | 3 | # 📚 P3X OneNote Linux 4 | 5 | 6 | [//]: #@corifeus-header:end 7 | 8 | ## Change log 9 | 10 | ### v2025.4.124 11 | Released on 01/21/2025 12 | * FEATURE/BUGFIX: Saving the position of the window as it was years ago 13 | 14 | 15 | ### v2025.4.101 16 | Released on 01/05/2025 17 | * CHORE: Update all packages. 18 | 19 | 20 | ## Older change logs 21 | [Change log 2024](change-log.2024.md) 22 | [Change log 2023](change-log.2023.md) 23 | [Change log 2022](change-log.2022.md) 24 | [Change log 2021](change-log.2021.md) 25 | [Change log 2020](change-log.2020.md) 26 | [Change log 2019](change-log.2019.md) 27 | 28 | 29 | [//]: #@corifeus-footer 30 | 31 | --- 32 | 33 | ## 🚀 Quick and Affordable Web Development Services 34 | 35 | If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. 36 | 37 | --- 38 | 39 | ## 🌐 Powerful Online Networking Tool 40 | 41 | Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). 42 | 43 | **🆓 Free** 44 | Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. 45 | Additionally, it offers tools for: 46 | - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. 47 | - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. 48 | 49 | All these features are completely free to use. 50 | 51 | --- 52 | 53 | ## ❤️ Support Our Open-Source Project 54 | If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! 55 | 56 | --- 57 | 58 | ### 🌍 About My Domains 59 | All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. 60 | 61 | --- 62 | 63 | ### 📈 Versioning Policy 64 | **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: 65 | - **Major:** 📅 Corresponds to the current year. 66 | - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. 67 | - **Patch:** 🔧 Incremental, updated with each build. 68 | 69 | **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. 70 | 71 | --- 72 | 73 | 74 | [**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2025.4.127 75 | 76 | [![NPM](https://img.shields.io/npm/v/p3x-onenote.svg)](https://www.npmjs.com/package/p3x-onenote) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) 77 | 78 | 79 | 80 | 81 | 82 | [//]: #@corifeus-footer:end 83 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "p3x-onenote", 3 | "version": "2025.4.127", 4 | "description": "📚 P3X OneNote Linux", 5 | "main": "src/electron/app.js", 6 | "corifeus": { 7 | "description-snap": "P3X OneNote Linux", 8 | "description-npm": "📚 P3X OneNote Linux", 9 | "snap": true, 10 | "prefix": "p3x-", 11 | "publish": true, 12 | "type": "p3x", 13 | "code": "Linux", 14 | "nodejs": "v22.13.1", 15 | "reponame": "onenote", 16 | "build": true, 17 | "opencollective": false, 18 | "install-appimage-launcher": "sudo add-apt-repository ppa:appimagelauncher-team/stable && sudo apt install -y appimagelauncher" 19 | }, 20 | "bin": { 21 | "p3x-onenote": "bin/p3x-onenote.js" 22 | }, 23 | "scripts": { 24 | "run": "electron --no-sandbox .", 25 | "test": "grunt", 26 | "dist": "electron-builder", 27 | "build": "electron-builder --x64 build/dist", 28 | "build-test": "electron-builder build/dist -p always", 29 | "postinstall-save": "opencollective postinstall", 30 | "start": "node ./node_modules/.bin/electron ./src/electron/app.js", 31 | "publish-electron-test-flatpak-info": "flatpak install flathub org.freedesktop.Platform//20.08 && flatpak install flathub org.freedesktop.Sdk//20.08 && flatpak install flathub org.electronjs.Electron2.BaseApp//20.08", 32 | "publish-electron-test-flatpak-info-aarch64": "flatpak install flathub org.freedesktop.Platform/aarch64/20.08 && flatpak install flathub org.freedesktop.Sdk/aarch64/20.08 && flatpak install flathub org.electronjs.Electron2.BaseApp/aarch64/20.08", 33 | "publish-electron-test-flatpak-info-arm": "flatpak install flathub org.freedesktop.Platform/arm/18.08 && flatpak install flathub org.freedesktop.Sdk/arm/18.08 && flatpak install flathub org.electronjs.Electron2.BaseApp/arm/18.08", 34 | "publish-electron": "rm -rf dist && electron-builder -p onTagOrDraft --linux --armv7l --arm64 --linux AppImage deb rpm --x64", 35 | "publish-electron-flatpak": "rm -rf dist && electron-builder -p always --linux flatpak --x64 --arm64 ", 36 | "publish-electron-test-flatpak": "rm -rf dist && electron-builder -p always --linux flatpak --x64 --arm64 --armv7l", 37 | "publish-electron-deb": "rm -rf dist && electron-builder -p onTagOrDraft --linux --armv7l --arm64 --linux deb --x64", 38 | "publish-electron-test": "rm -rf dist && electron-builder -p onTagOrDraft --linux --linux AppImage deb --x64", 39 | "publish-electron-snap": "rm -rf dist && electron-builder --linux snap -p never --armv7l --x64", 40 | "publish-electron-arm64": "rm -rf dist && electron-builder --linux snap -p never --arm64", 41 | "publish-windows": "rimraf dist && electron-builder -p always --windows", 42 | "publish-electron-yml": "node ./node_modules/corifeus-builder/src/utils/appimage/post-build.js", 43 | "publish-macos": "electron-builder --mac --publish never" 44 | }, 45 | "repository": { 46 | "type": "git", 47 | "url": "git+https://github.com/patrikx3/onenote.git" 48 | }, 49 | "keywords": [ 50 | "onenote", 51 | "linux" 52 | ], 53 | "author": "Patrik Laszlo ", 54 | "license": "MIT", 55 | "bugs": { 56 | "url": "https://github.com/patrikx3/onenote/issues" 57 | }, 58 | "homepage": "https://corifeus.com/onenote", 59 | "dependencies": { 60 | "@electron/remote": "2.1.2", 61 | "@fontsource/roboto": "5.1.1", 62 | "@fortawesome/fontawesome-free": "6.7.2", 63 | "angular": "1.8.3", 64 | "angular-animate": "1.8.3", 65 | "angular-aria": "1.8.3", 66 | "angular-material": "1.2.5", 67 | "angular-messages": "1.8.3", 68 | "corifeus-utils": "2025.4.123", 69 | "electron-store": "8.2.0", 70 | "electron-updater": "6.3.9", 71 | "semver": "7.7.0", 72 | "electron": "^34.0.2" 73 | }, 74 | "devDependencies": { 75 | "corifeus-builder": "2025.4.135", 76 | "electron-builder": "25.1.8", 77 | "node-fetch": "^3.3.2" 78 | }, 79 | "engines": { 80 | "node": ">=12.13.0" 81 | }, 82 | "build": { 83 | "afterAllArtifactBuild": "./node_modules/corifeus-builder/src/utils/appimage/after-all-artifact-build.js", 84 | "publish": [ 85 | { 86 | "provider": "github", 87 | "owner": "patrikx3", 88 | "repo": "onenote" 89 | } 90 | ], 91 | "appId": "com.patrikx3.onenote", 92 | "copyright": "MIT", 93 | "productName": "P3X-OneNote", 94 | "linux": { 95 | "category": "Office", 96 | "icon": "./src/electron/images/", 97 | "target": "deb" 98 | }, 99 | "win": { 100 | "icon": "src/electron/images/", 101 | "target": "nsis" 102 | }, 103 | "nsis": { 104 | "artifactName": "${productName}-Setup-${version}.${ext}" 105 | }, 106 | "mac": { 107 | "icon": "artifacts/onenote-2024.icns", 108 | "category": "public.app-category.productivity", 109 | "hardenedRuntime": true, 110 | "gatekeeperAssess": false, 111 | "identity": "Patrik László (3GB3S9SH84)", 112 | "extendInfo": { 113 | "ElectronTeamID": "3GB3S9SH84" 114 | }, 115 | "notarize": { 116 | "teamId": "3GB3S9SH84" 117 | }, 118 | "target": [ 119 | { 120 | "target": "default", 121 | "arch": [ 122 | "universal", 123 | "x64", 124 | "arm64" 125 | ] 126 | } 127 | ] 128 | }, 129 | "snap": { 130 | "environment": { 131 | "DISABLE_WAYLAND": 1 132 | } 133 | } 134 | } 135 | } -------------------------------------------------------------------------------- /scripts/fix-change-log.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | // Define the path to the existing changelog 5 | const changelogPath = path.join(process.cwd(), 'change-log.md'); 6 | 7 | // Function to extract unique years from the changelog entries 8 | function extractYears(data) { 9 | const yearRegex = /### v(\d{4})\./g; 10 | const years = new Set(); 11 | let match; 12 | 13 | while ((match = yearRegex.exec(data)) !== null) { 14 | years.add(match[1]); 15 | } 16 | 17 | return Array.from(years); 18 | } 19 | 20 | // Function to write a changelog file for a specific year 21 | function writeChangelogForYear(data, year) { 22 | const newChangelogPath = path.join(process.cwd(), `change-log.${year}.md`); 23 | const yearRegex = new RegExp(`### v${year}\\.[\\d\\.]+\\n(?:(?!### v\\d{4}).)*`, 'gs'); 24 | const matches = data.match(yearRegex); 25 | 26 | if (matches) { 27 | const newChangelogContent = matches.join('\n\n'); 28 | fs.writeFile(newChangelogPath, newChangelogContent, 'utf8', (err) => { 29 | if (err) { 30 | console.error("Failed to write new changelog file:", err); 31 | } else { 32 | console.log(`New changelog file for ${year} created successfully.`); 33 | } 34 | }); 35 | } else { 36 | console.log(`No entries found for the year ${year}.`); 37 | } 38 | } 39 | 40 | // Read the existing changelog 41 | fs.readFile(changelogPath, 'utf8', (err, data) => { 42 | if (err) { 43 | console.error("Failed to read file:", err); 44 | return; 45 | } 46 | 47 | // Extract years and generate a changelog file for each year 48 | const years = extractYears(data); 49 | years.forEach(year => { 50 | writeChangelogForYear(data, year); 51 | }); 52 | }); 53 | -------------------------------------------------------------------------------- /scripts/fix-packages-publish.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const asyncStart = async () => { 4 | 5 | const mode = process.argv[2] 6 | const fs = require('fs').promises 7 | 8 | const pkgFile = __dirname + '/../package.json' 9 | const pkg = JSON.parse((await fs.readFile(pkgFile)).toString()) 10 | 11 | switch(mode) { 12 | case 'flathub-before': 13 | delete pkg.build.afterAllArtifactBuild 14 | break; 15 | 16 | case 'before': 17 | pkg.devDependencies.electron = pkg.dependencies.electron 18 | delete pkg.dependencies.electron 19 | break; 20 | 21 | case 'after': 22 | pkg.dependencies.electron = pkg.devDependencies.electron 23 | delete pkg.devDependencies.electron 24 | break; 25 | 26 | case 'snap-before': 27 | pkg.description = pkg.corifeus['description-snap']; 28 | break; 29 | 30 | case 'snap-after': 31 | pkg.description = pkg.corifeus['description-npm']; 32 | break; 33 | 34 | default: 35 | throw new Error(`Unknown mode ${mode}`) 36 | } 37 | 38 | console.log('pkg dependencies', JSON.stringify(pkg.dependencies, null, 4)) 39 | console.log('pkg devDependencies', JSON.stringify(pkg.devDependencies, null, 4)) 40 | await fs.writeFile(pkgFile, JSON.stringify(pkg, null, 4)) 41 | } 42 | 43 | 44 | asyncStart() 45 | -------------------------------------------------------------------------------- /scripts/start-local.cmd: -------------------------------------------------------------------------------- 1 | .\node_modules\.bin\electron.cmd --no-sandbox . 2 | -------------------------------------------------------------------------------- /scripts/start-local.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 3 | ./node_modules/.bin/electron $DIR/.. $@ 4 | -------------------------------------------------------------------------------- /src/electron/app.js: -------------------------------------------------------------------------------- 1 | const pkg = require('../../package.json'); 2 | const Store = require('electron-store'); 3 | const conf = new Store(); 4 | 5 | const {app} = require('electron'); 6 | //app.allowRendererProcessReuse = true 7 | //app.disableHardwareAcceleration() 8 | 9 | let translationKey = conf.get('lang') 10 | if (translationKey === undefined) { 11 | translationKey = 'en-US' 12 | conf.set('lang', translationKey) 13 | } 14 | let darkThemeInvert = conf.get('darkThemeInvert') 15 | if (darkThemeInvert === undefined) { 16 | darkThemeInvert = false 17 | conf.set('darkThemeInvert', darkThemeInvert) 18 | } 19 | const path = require('path') 20 | 21 | const langTranslations = { 22 | 'en-US': require('../translation/en-US'), 23 | 'de-DE': require('../translation/de-DE'), 24 | 'pt-BR': require('../translation/pt-BR'), 25 | 'es-ES': require('../translation/es-ES'), 26 | 'fr-FR': require('../translation/fr-FR'), 27 | 'nl-NL': require('../translation/nl-NL'), 28 | 'it-IT': require('../translation/it-IT'), 29 | 'zh-CN': require('../translation/zh-CN'), 30 | 'ru-RU': require('../translation/ru-RU'), 31 | 'pl-PL': require('../translation/pl-PL'), 32 | 'tr-TR': require('../translation/tr-TR'), 33 | 'ja-JP': require('../translation/ja-JP'), 34 | 'zh-TW': require('../translation/zh-TW'), 35 | 36 | } 37 | 38 | const translation = langTranslations[translationKey] 39 | 40 | global.p3x = { 41 | onenote: { 42 | pkg: pkg, 43 | darkThemeInvert: darkThemeInvert, 44 | lang: translation, 45 | translationKey: translationKey, 46 | translations: undefined, 47 | title: translation.title, 48 | conf: conf, 49 | disableHide: true, 50 | allowMultiple: false, 51 | optionToDisableInternalExternalPopup: false, 52 | optionToHideMenu: false, 53 | iconFile: path.resolve(`${__dirname}/images/128x128.png`), 54 | tray: undefined, 55 | window: { 56 | onenote: undefined, 57 | }, 58 | action: undefined, 59 | menus: undefined, 60 | mainMenu: undefined, 61 | setVisible: undefined, 62 | bookmarksEditMode: false, 63 | createWindow: { 64 | onenote: undefined, 65 | }, 66 | isVisible: () => { 67 | return global.p3x.onenote.window.onenote.isVisible() && global.p3x.onenote.window.onenote.isFocused() 68 | } 69 | } 70 | } 71 | 72 | global.p3x.onenote.translations = langTranslations 73 | 74 | // configuration 75 | global.p3x.onenote.disableHide = conf.get('disable-hide') 76 | if (global.p3x.onenote.disableHide === undefined) { 77 | conf.set('disable-hide', true) 78 | global.p3x.onenote.disableHide = true; 79 | } 80 | 81 | // optionToHideMenu 82 | global.p3x.onenote.optionToHideMenu = conf.get('option-to-hide-menu') 83 | if (global.p3x.onenote.optionToHideMenu === undefined) { 84 | conf.set('option-to-hide-menu', false) 85 | global.p3x.onenote.optionToHideMenu = false; 86 | } 87 | 88 | // configuration 89 | global.p3x.onenote.optionToDisableInternalExternalPopup = conf.get('option-to-disable-internal-external-popup') 90 | if (global.p3x.onenote.optionToDisableInternalExternalPopup === undefined) { 91 | conf.set('option-to-disable-internal-external-popup', false) 92 | global.p3x.onenote.optionToDisableInternalExternalPopup = false; 93 | } 94 | 95 | // configuration 96 | global.p3x.onenote.allowMultiple = conf.get('allow-multiple') 97 | if (global.p3x.onenote.allowMultiple === undefined) { 98 | conf.set('allow-multiple', false) 99 | global.p3x.onenote.allowMultiple = false; 100 | } 101 | 102 | // loading 103 | global.p3x.onenote.action = require('./main/action'); 104 | global.p3x.onenote.menus = require('./main/menus'); 105 | global.p3x.onenote.mainMenu = require('./main/create/menu') 106 | global.p3x.onenote.mainTray = require('./main/create/tray') 107 | global.p3x.onenote.setVisible = require('./main/set-visible') 108 | global.p3x.onenote.createWindow.onenote = require('./main/create/window/onenote') 109 | 110 | 111 | if (global.p3x.onenote.allowMultiple === false) { 112 | const semver = require('semver') 113 | if (semver.gt(process.versions.electron === undefined ? '4.0.0' : process.versions.electron, '3.0.0')) { 114 | const gotTheLock = app.requestSingleInstanceLock() 115 | 116 | app.on('second-instance', (event, commandLine, workingDirectory) => { 117 | // Someone tried to run a second instance, we should focus our window. 118 | global.p3x.onenote.setVisible(true); 119 | //global.p3x.onenote.window.onenote.webContents.reload(); 120 | }) 121 | 122 | if (!gotTheLock) { 123 | app.quit() 124 | return 125 | } 126 | 127 | } else { 128 | const isSecondInstance = app.makeSingleInstance((commandLine, workingDirectory) => { 129 | global.p3x.onenote.setVisible(true); 130 | //global.p3x.onenote.window.onenote.webContents.reload(); 131 | }) 132 | 133 | if (isSecondInstance) { 134 | return app.quit() 135 | } 136 | } 137 | } 138 | 139 | 140 | // app and ipc main events and configuration 141 | require('./main/ipc-main') 142 | require('./main/app-events') 143 | -------------------------------------------------------------------------------- /src/electron/images/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/src/electron/images/128x128.png -------------------------------------------------------------------------------- /src/electron/images/256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/src/electron/images/256x256.png -------------------------------------------------------------------------------- /src/electron/images/512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrikx3/onenote/6b63332d6cc4a2ce73fd3c59801e0d2c39b9393d/src/electron/images/512x512.png -------------------------------------------------------------------------------- /src/electron/images/onenote-2024.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /src/electron/lib/natural-compare-document.js: -------------------------------------------------------------------------------- 1 | module.exports = ({ byProperty }) => { 2 | return (a, b) => { 3 | if (byProperty !== undefined) { 4 | a = a[byProperty] 5 | b = b[byProperty] 6 | } 7 | const regexTemplate = /(\d+)|(\D+)/g; 8 | const ax = [], bx = []; 9 | 10 | a.replace(regexTemplate, function (_, $1, $2) { 11 | ax.push([$1 || Infinity, $2 || ""]) 12 | }); 13 | b.replace(regexTemplate, function (_, $1, $2) { 14 | bx.push([$1 || Infinity, $2 || ""]) 15 | }); 16 | 17 | while (ax.length && bx.length) { 18 | const an = ax.shift(); 19 | const bn = bx.shift(); 20 | const nn = (parseFloat(an[0]) - parseFloat(bn[0])) || an[1].localeCompare(bn[1]); 21 | if (nn) { 22 | return nn; 23 | } 24 | } 25 | 26 | return ax.length - bx.length; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/electron/lib/remove-cookies.js: -------------------------------------------------------------------------------- 1 | const remote = require('@electron/remote') 2 | 3 | const removeCookies = async(webview) => { 4 | //let session = webview.getWebContents().session; 5 | let session = remote.webContents.fromId(webview.getWebContentsId()).session 6 | try { 7 | const cookies = await session.cookies.get({}); 8 | for (var i = cookies.length - 1; i >= 0; i--) { 9 | const cookie = cookies[i]; 10 | let domain = cookie.domain; 11 | if (domain.startsWith('.')) { 12 | domain = domain.substring(1); 13 | } 14 | const url = "http" + (cookie.secure ? "s" : "") + "://" + domain + cookie.path; 15 | console.info(` 16 | cookie.domain: ${cookie.domain} 17 | cookie.hostOnly: ${cookie.hostOnly} 18 | cookie.httpOnly: ${cookie.httpOnly} 19 | cookie.name: ${cookie.name} 20 | cookie.path: ${cookie.path} 21 | cookie.secure: ${cookie.secure} 22 | cookie.session: ${cookie.session} 23 | cookie.value: ${cookie.value} 24 | url: ${url} 25 | `); 26 | try { 27 | await session.cookies.remove(url, name) 28 | console.log('cookie delete : ', cookie.name); 29 | } catch(error) { 30 | alert(error.message); 31 | console.error(error); 32 | } 33 | } 34 | webview.reload(); 35 | } catch(error) { 36 | alert(error.message); 37 | console.error(error); 38 | } 39 | } 40 | 41 | module.exports = removeCookies; 42 | -------------------------------------------------------------------------------- /src/electron/main/action.js: -------------------------------------------------------------------------------- 1 | const {shell, app} = require('electron') 2 | 3 | const action = { 4 | setProxy: require('./actions/set-proxy'), 5 | 6 | restart: () => { 7 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 8 | action: 'restart' 9 | }) 10 | }, 11 | home: () => { 12 | global.p3x.onenote.window.onenote.show(); 13 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 14 | action: 'home' 15 | }) 16 | }, 17 | corporate: () => { 18 | global.p3x.onenote.window.onenote.show(); 19 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 20 | action: 'corporate' 21 | }) 22 | }, 23 | toggleVisible: () => { 24 | if (global.p3x.onenote.window.onenote === undefined) { 25 | return; 26 | } 27 | global.p3x.onenote.setVisible(!global.p3x.onenote.isVisible()); 28 | }, 29 | quit: function () { 30 | app.isQuiting = true; 31 | app.quit(); 32 | }, 33 | github: () => { 34 | shell.openExternal('https://github.com/patrikx3/onenote') 35 | }, 36 | patrik: () => { 37 | shell.openExternal('https://patrikx3.com') 38 | }, 39 | p3x: () => { 40 | shell.openExternal('https://github.com/patrikx3') 41 | }, 42 | corifeus: () => { 43 | shell.openExternal('https://corifeus.com') 44 | }, 45 | npm: () => { 46 | shell.openExternal('https://www.npmjs.com/~patrikx3') 47 | }, 48 | download: () => { 49 | shell.openExternal('https://github.com/patrikx3/onenote/releases') 50 | }, 51 | } 52 | 53 | module.exports = action; 54 | -------------------------------------------------------------------------------- /src/electron/main/actions/relaunch.js: -------------------------------------------------------------------------------- 1 | module.exports = () => { 2 | let { args, app } = require('electron') 3 | console.log('args', args, 'process.env.APPIMAGE', process.env.APPIMAGE) 4 | 5 | console.trace() 6 | app.relaunch(); 7 | app.exit(0); 8 | 9 | /* 10 | if (process.env.APPIMAGE) { 11 | if (args === undefined) { 12 | args = [] 13 | } 14 | const options = {args}; 15 | options.execPath = process.env.APPIMAGE; 16 | //options.args.unshift('--appimage-extract-and-run'); 17 | app.relaunch(options); 18 | app.exit(0); 19 | } else { 20 | app.relaunch(); 21 | app.exit(0); 22 | } 23 | */ 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/electron/main/actions/set-proxy.js: -------------------------------------------------------------------------------- 1 | const setProxy = () => { 2 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action-set-proxy') 3 | } 4 | 5 | module.exports = setProxy; -------------------------------------------------------------------------------- /src/electron/main/app-events.js: -------------------------------------------------------------------------------- 1 | const { app, powerMonitor } = require('electron'); 2 | const path = require('path') 3 | 4 | let isInSuspended = false; 5 | 6 | const { net } = require('electron'); 7 | function waitForNetworkConnectivity(callback, retries = 60, interval = 1000) { 8 | let attempts = 0; 9 | 10 | function checkNetwork() { 11 | const request = net.request('https://www.bing.com'); // Use any lightweight URL 12 | request.on('response', () => { 13 | console.log('Network is available'); 14 | callback(); 15 | }); 16 | request.on('error', () => { 17 | if (attempts < retries) { 18 | attempts++; 19 | console.log(`Waiting for network (${attempts}/${retries})...`); 20 | setTimeout(checkNetwork, interval); 21 | } else { 22 | console.error('Network unavailable after retries.'); 23 | callback(); 24 | } 25 | }); 26 | request.end(); 27 | } 28 | 29 | checkNetwork(); 30 | } 31 | 32 | app.on('ready', () => { 33 | console.log('P3X-OneNote is ready'); 34 | 35 | // Create the main window 36 | global.p3x.onenote.createWindow.onenote(); 37 | 38 | 39 | /* 40 | // Handle power events 41 | powerMonitor.on('suspend', () => { 42 | if (isInSuspended) { 43 | return 44 | } 45 | isInSuspended = true; 46 | console.log('System is suspending...'); 47 | // Close the window when the system goes to sleep 48 | //if (global.p3x.onenote.window.onenote) { 49 | // global.p3x.onenote.window.onenote.loadURL('about:blank'); 50 | // global.p3x.onenote.window.onenote.hide(); 51 | //} 52 | }); 53 | 54 | powerMonitor.on('resume', () => { 55 | if (!isInSuspended) { 56 | return 57 | } 58 | isInSuspended = false; 59 | console.log('System has resumed...'); 60 | 61 | global.p3x.onenote.window.onenote.loadURL(`about:blank`); 62 | waitForNetworkConnectivity(() => { 63 | const url = path.join(app.getAppPath(), 'src/electron/window/onenote/index.html'); 64 | console.log('resume url', url) 65 | global.p3x.onenote.window.onenote.loadURL(`file://${url}`); 66 | }); 67 | }); 68 | */ 69 | }); 70 | 71 | app.on('window-all-closed', function () { 72 | if (!isInSuspended) { 73 | app.quit(); 74 | } 75 | }); 76 | 77 | app.on('activate', function () { 78 | if (global.p3x.onenote.window.onenote === null) { 79 | global.p3x.onenote.createWindow.onenote(); 80 | } 81 | }); 82 | 83 | app.on('web-contents-created', function (webContentsCreatedEvent, contents) { 84 | if (contents.getType() === 'webview') { 85 | contents.on('new-window', function (newWindowEvent, url) { 86 | newWindowEvent.preventDefault(); 87 | }); 88 | } 89 | }); 90 | -------------------------------------------------------------------------------- /src/electron/main/create/tray.js: -------------------------------------------------------------------------------- 1 | const {app, Menu, Tray } = require('electron') 2 | 3 | const menus = require('../menus'); 4 | const action = require('../action'); 5 | 6 | /* 7 | const destroyTray = () => { 8 | if (global.p3x.onenote.tray !== undefined) { 9 | global.p3x.onenote.tray.destroy() 10 | global.p3x.onenote.tray = undefined 11 | } 12 | } 13 | */ 14 | 15 | function mainTray(opts) { 16 | 17 | if (opts === undefined) { 18 | opts = { 19 | allowQuit: false 20 | } 21 | } 22 | 23 | // app.whenReady().then(() => { 24 | //destroyTray(); 25 | 26 | if (!global.p3x.onenote.disableHide) { 27 | 28 | if (global.p3x.onenote.tray === undefined ) { 29 | global.p3x.onenote.tray = new Tray(global.p3x.onenote.iconFile) 30 | const click = () => { 31 | //console.info('tray on click is executed - if not shown in console. this click is not executed.') 32 | action.toggleVisible() 33 | } 34 | global.p3x.onenote.tray.on('click', click) 35 | } 36 | 37 | global.p3x.onenote.tray.setToolTip(`${global.p3x.onenote.title} v${global.p3x.onenote.pkg.version}`) 38 | 39 | const menu = menus.default() 40 | 41 | const contextMenu = Menu.buildFromTemplate(menu) 42 | global.p3x.onenote.tray.setContextMenu(contextMenu) 43 | 44 | } else if (global.p3x.onenote.tray !== undefined && opts.allowQuit === true) { 45 | require('../actions/relaunch')() 46 | } 47 | // }) 48 | 49 | } 50 | 51 | module.exports = mainTray; 52 | -------------------------------------------------------------------------------- /src/electron/main/create/window/onenote.js: -------------------------------------------------------------------------------- 1 | const {BrowserWindow, app} = require('electron'); 2 | 3 | const remoteMain = require("@electron/remote/main") 4 | remoteMain.initialize() 5 | 6 | function createWindow() { 7 | 8 | 9 | 10 | global.p3x.onenote.window.onenote = new BrowserWindow({ 11 | icon: global.p3x.onenote.iconFile, 12 | title: `${global.p3x.onenote.title} v${global.p3x.onenote.pkg.version}`, 13 | backgroundColor: 'black', 14 | autoHideMenuBar: global.p3x.onenote.optionToHideMenu, 15 | webPreferences: { 16 | nativeWindowOpen: true, 17 | worldSafeExecuteJavaScript: true, 18 | nodeIntegration: true, 19 | nodeIntegrationInSubFrames: true, 20 | contextIsolation: false, 21 | webviewTag: true, 22 | enableRemoteModule: true, 23 | } 24 | }); 25 | const path = require('path') 26 | const loadUrl = path.join(app.getAppPath(), 'src/electron/window/onenote/index.html'); 27 | console.log('loadUrl', loadUrl) 28 | global.p3x.onenote.window.onenote.loadURL(`file://${loadUrl}`); 29 | 30 | global.p3x.onenote.window.onenote.webContents.on("did-attach-webview", (_, contents) => { 31 | contents.setWindowOpenHandler((details) => { 32 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-new-window', details); 33 | return { action: 'deny' } 34 | }) 35 | }) 36 | 37 | remoteMain.enable(global.p3x.onenote.window.onenote.webContents) 38 | 39 | 40 | if (process.env.NODE_ENV === 'debug') { 41 | global.p3x.onenote.window.onenote.openDevTools() 42 | } 43 | 44 | global.p3x.onenote.setVisible(process.argv.includes('--minimized') ? false : true); 45 | 46 | global.p3x.onenote.window.onenote.on('minimize', function (event) { 47 | //event.preventDefault() 48 | //global.p3x.onenote.setVisible(false, true); 49 | }); 50 | 51 | global.p3x.onenote.window.onenote.on('close', function (event) { 52 | if (!app.isQuiting) { 53 | if (!global.p3x.onenote.disableHide) { 54 | event.preventDefault() 55 | global.p3x.onenote.setVisible(false); 56 | } 57 | } 58 | return false; 59 | }); 60 | 61 | global.p3x.onenote.window.onenote.on('focus', () => { 62 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 63 | action: 'focus' 64 | }) 65 | }) 66 | 67 | 68 | global.p3x.onenote.window.onenote.on('focus', function () { 69 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-window-state', { 70 | action: 'focus' 71 | }) 72 | global.p3x.onenote.mainMenu(); 73 | global.p3x.onenote.mainTray() 74 | }); 75 | 76 | 77 | global.p3x.onenote.window.onenote.on('blur', function () { 78 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-window-state', { 79 | action: 'blur' 80 | }) 81 | global.p3x.onenote.mainMenu(); 82 | global.p3x.onenote.mainTray() 83 | }); 84 | 85 | 86 | global.p3x.onenote.window.onenote.on('hide', function () { 87 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-window-state', { 88 | action: 'blur' 89 | }) 90 | }); 91 | 92 | 93 | if (!process.argv.includes('--minimized')) { 94 | const windowBounds = global.p3x.onenote.conf.get('window-bounds'); 95 | const maximized = global.p3x.onenote.conf.get('maximized'); 96 | 97 | if (maximized === true) { 98 | global.p3x.onenote.window.onenote.maximize() 99 | } 100 | else if (windowBounds !== null && windowBounds !== undefined) { 101 | global.p3x.onenote.window.onenote.setBounds(windowBounds); 102 | } 103 | 104 | } 105 | 106 | 107 | global.p3x.onenote.window.onenote.on('close', () => { 108 | if (global.p3x.onenote.conf.get('maximized') !== true) { 109 | global.p3x.onenote.conf.set('window-bounds', global.p3x.onenote.window.onenote.getBounds()) 110 | } 111 | }) 112 | 113 | global.p3x.onenote.window.onenote.on('maximize', () => { 114 | global.p3x.onenote.conf.set('maximized', true) 115 | }) 116 | 117 | 118 | global.p3x.onenote.window.onenote.on('unmaximize', () => { 119 | global.p3x.onenote.conf.set('maximized', false) 120 | 121 | /* 122 | const windowBounds = global.p3x.onenote.conf.get('window-bounds'); 123 | if (windowBounds !== null && windowBounds !== undefined) { 124 | global.p3x.onenote.window.onenote.setBounds(windowBounds); 125 | } 126 | */ 127 | }) 128 | 129 | 130 | const {autoUpdater} = require("electron-updater"); 131 | 132 | autoUpdater.on('checking-for-update', (info) => { 133 | console.log('checking-for-update', info) 134 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 135 | action: 'toast', 136 | message: global.p3x.onenote.lang.updater["checking-for-update"] 137 | }) 138 | }) 139 | autoUpdater.on('update-available', (info) => { 140 | console.log('update-available', info) 141 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 142 | action: 'toast', 143 | message: global.p3x.onenote.lang.updater["update-available"] 144 | }) 145 | }) 146 | 147 | let firstCheck = true 148 | autoUpdater.on('update-not-available', (info) => { 149 | console.log('update-not-available', info) 150 | 151 | if (firstCheck) { 152 | firstCheck = false 153 | return 154 | } 155 | 156 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 157 | action: 'toast', 158 | message: global.p3x.onenote.lang.updater["update-not-available"] 159 | }) 160 | }) 161 | autoUpdater.on('error', (error) => { 162 | console.error('error', error) 163 | 164 | /* 165 | if (global.p3x.onenote.window.onenote) { 166 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 167 | action: 'toast', 168 | error: error, 169 | message: global.p3x.onenote.lang.updater["error"]({ 170 | errorMessage: error.message.split('\n')[0] 171 | }) 172 | }) 173 | }*/ 174 | }) 175 | 176 | /* 177 | autoUpdater.on('download-progress', (progressObj) => { 178 | /* 179 | let log_message = "Download speed: " + progressObj.bytesPerSecond; 180 | log_message = log_message + ' - Downloaded ' + progressObj.percent + '%'; 181 | log_message = log_message + ' (' + progressObj.transferred + "/" + progressObj.total + ')'; 182 | */ 183 | /* 184 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 185 | action: 'toast', 186 | message: p3x.onenote.lang.updater["download-progress"]({ 187 | progressObj: progressObj, 188 | }) 189 | }) 190 | }) 191 | */ 192 | 193 | autoUpdater.on('update-downloaded', (info) => { 194 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 195 | action: 'toast', 196 | message: p3x.onenote.lang.updater["update-downloaded"], 197 | }) 198 | 199 | }); 200 | autoUpdater.checkForUpdatesAndNotify(); 201 | 202 | } 203 | 204 | module.exports = createWindow; 205 | -------------------------------------------------------------------------------- /src/electron/main/ipc-main.js: -------------------------------------------------------------------------------- 1 | const {ipcMain} = require('electron') 2 | 3 | ipcMain.on('did-finish-load', function () { 4 | const toWebview = global.p3x.onenote.conf.get('webview-onenote'); 5 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-onload-user', toWebview); 6 | }); 7 | 8 | ipcMain.on('p3x-onenote-save', function (event, data) { 9 | global.p3x.onenote.conf.set('webview-onenote', data); 10 | //global.p3x.onenote.conf.set('window-bounds', global.p3x.onenote.window.onenote.getBounds()); 11 | }) 12 | 13 | ipcMain.on('p3x-onenote-action-bookmark-result', function (event, data) { 14 | //console.log('p3x-onenote-action-bookmark-result', data) 15 | const bookmarksOriginal = global.p3x.onenote.conf.get('bookmarks') || [] 16 | 17 | const naturalCompareDocument = require('../lib/natural-compare-document') 18 | const sort = naturalCompareDocument({ 19 | byProperty: 'title' 20 | }) 21 | let bookmarks = bookmarksOriginal.sort(sort) 22 | 23 | if (data.opts.edit !== true) { 24 | bookmarks.push(data.model) 25 | } else { 26 | if (data.delete === true) { 27 | bookmarks.splice(data.opts.index, 1); 28 | } else { 29 | bookmarks[data.opts.index] = data.model 30 | } 31 | } 32 | 33 | global.p3x.onenote.conf.set('bookmarks', bookmarks.sort(sort)) 34 | 35 | global.p3x.onenote.mainMenu(); 36 | global.p3x.onenote.mainTray() 37 | }) 38 | 39 | 40 | ipcMain.on('p3x-debug', (event, data) => { 41 | console.log(data) 42 | }) 43 | -------------------------------------------------------------------------------- /src/electron/main/menus.js: -------------------------------------------------------------------------------- 1 | const action = require('./action') 2 | 3 | const menus = { 4 | default: () => { 5 | 6 | let visible = false; 7 | if (global.p3x.onenote.window.onenote !== undefined) { 8 | visible = global.p3x.onenote.isVisible() ? true : false; 9 | } 10 | 11 | let menus = [ 12 | { 13 | label: global.p3x.onenote.lang.label.personalHome, 14 | click: action.home 15 | }, 16 | { 17 | label: global.p3x.onenote.lang.label.corporateHome, 18 | click: action.corporate 19 | }, 20 | { 21 | label: global.p3x.onenote.lang.label.clearCache, 22 | click: action.restart 23 | }, 24 | { type: 'separator' }, 25 | { 26 | label: global.p3x.onenote.lang.label.quit, 27 | click: action.quit 28 | } 29 | ] 30 | 31 | if (!global.p3x.onenote.disableHide) { 32 | const hideMenu = { 33 | label: visible ? global.p3x.onenote.lang.label.hide : global.p3x.onenote.lang.label.show, 34 | click: action.toggleVisible 35 | } 36 | menus.splice(3, 0, hideMenu); 37 | } 38 | 39 | 40 | return menus; 41 | } 42 | } 43 | 44 | module.exports = menus; 45 | -------------------------------------------------------------------------------- /src/electron/main/set-visible.js: -------------------------------------------------------------------------------- 1 | function setVisible(visible = true, force = false) { 2 | if (visible === null) { 3 | visible = true; 4 | } 5 | 6 | 7 | /* 8 | else { 9 | mainWindow.webContents.send('p3x-onenote-action', { 10 | action: 'focus-save' 11 | }) 12 | } 13 | */ 14 | 15 | if (global.p3x.onenote.window.onenote !== undefined) { 16 | 17 | if (visible || (global.p3x.onenote.window.onenote.isMinimized() && !force)) { 18 | visible = true; 19 | global.p3x.onenote.window.onenote.show(); 20 | } else { 21 | global.p3x.onenote.window.onenote.minimize() 22 | if (!global.p3x.onenote.disableHide) { 23 | global.p3x.onenote.window.onenote.hide(); 24 | } 25 | } 26 | } 27 | global.p3x.onenote.conf.set('visible', visible); 28 | global.p3x.onenote.mainMenu(); 29 | global.p3x.onenote.mainTray() 30 | 31 | 32 | if (visible || force) { 33 | global.p3x.onenote.window.onenote.focus(); 34 | 35 | global.p3x.onenote.window.onenote.webContents.send('p3x-onenote-action', { 36 | action: 'focus' 37 | }) 38 | } 39 | } 40 | 41 | module.exports = setVisible; -------------------------------------------------------------------------------- /src/electron/window/onenote/action/load-proxy.js: -------------------------------------------------------------------------------- 1 | const remote = require('@electron/remote') 2 | 3 | const loadProxy = async () => { 4 | //console.log('load proxy'); 5 | await p3x.onenote.wait.domReady() 6 | 7 | const webview = global.p3x.onenote.webview; 8 | 9 | // const session = webview.getWebContents().session; 10 | const session = remote.webContents.fromId(webview.getWebContentsId()).session 11 | const proxy = global.p3x.onenote.data.proxy.trim(); 12 | 13 | await session.setProxy({ 14 | proxyRules: proxy 15 | }) 16 | webview.reload(); 17 | } 18 | 19 | module.exports = loadProxy; 20 | -------------------------------------------------------------------------------- /src/electron/window/onenote/action/multi-action/get-location.js: -------------------------------------------------------------------------------- 1 | let text 2 | module.exports = () => { 3 | var copy = function (e) { 4 | e.preventDefault(); 5 | if (e.clipboardData) { 6 | e.clipboardData.setData('text/plain', text); 7 | } else if (window.clipboardData) { 8 | window.clipboardData.setData('Text', text); 9 | } 10 | } 11 | text = global.p3x.onenote.webview.src 12 | window.addEventListener('copy', copy); 13 | document.execCommand('copy'); 14 | window.removeEventListener('copy', copy); 15 | global.p3x.onenote.toast.action(global.p3x.onenote.lang.label.copyLocationCopied) 16 | } -------------------------------------------------------------------------------- /src/electron/window/onenote/action/multi-action/toast.js: -------------------------------------------------------------------------------- 1 | const toast = (data) => { 2 | 3 | global.p3x.onenote.toast.action({ 4 | message: data.message 5 | }) 6 | 7 | } 8 | 9 | module.exports = toast -------------------------------------------------------------------------------- /src/electron/window/onenote/action/multi-actions.js: -------------------------------------------------------------------------------- 1 | const remote = require('@electron/remote') 2 | 3 | const multiActions = (data) => { 4 | const webview = global.p3x.onenote.webview; 5 | 6 | switch (data.action) { 7 | /* 8 | case 'focus-save': 9 | //console.log('focus-save') 10 | webview.getWebContents().executeJavaScript(`window.p3xOnenoteActiveElement = document.activeElement; window.p3xIframe = document.getElementById('sdx_ow_iframe'); window.p3xIframeDoc = window.p3xIframe.contentDocument || window.p3xIframe.contentWindow.document; console.log(window.p3xIframeDoc.activeElement);`) 11 | break; 12 | */ 13 | case 'focus': 14 | // webview.openDevTools(); 15 | if (webview !== undefined) { 16 | webview.focus() 17 | /* 18 | webview.getWebContents().executeJavaScript(`var a = 'foo'; Promise.resolve(a);`).then(result => { 19 | console.log(result) 20 | }).catch(e => console.error(e)) 21 | */ 22 | //webview.getWebContents().executeJavaScript(`console.log(window.p3xOnenoteActiveElement)`) 23 | 24 | //document.activeElement 25 | } 26 | break; 27 | 28 | 29 | case 'restart': 30 | //const session = webview.getWebContents().session; 31 | const session = remote.webContents.fromId(webview.getWebContentsId()).session 32 | session.clearStorageData().then(() => { 33 | webview.reload() 34 | }) 35 | break; 36 | 37 | case 'home': 38 | webview.src = global.p3x.onenote.url.notebooks 39 | break; 40 | 41 | case 'corporate': 42 | webview.src = 'https://www.onenote.com/notebooks?auth=2' 43 | break; 44 | 45 | case 'get-location': 46 | require('./multi-action/get-location')() 47 | break; 48 | 49 | case 'toast': 50 | require('./multi-action/toast')(data) 51 | break; 52 | 53 | case 'dark-theme-invert': 54 | document.body.classList.remove('p3x-dark-mode-invert-quirks') 55 | if (data.darkThemeInvert === true) { 56 | document.body.classList.add('p3x-dark-mode-invert-quirks') 57 | } 58 | 59 | // alert(`darkThemeInvert: ${data.darkThemeInvert}`) 60 | break; 61 | } 62 | } 63 | 64 | module.exports = multiActions; 65 | -------------------------------------------------------------------------------- /src/electron/window/onenote/action/set-proxy.js: -------------------------------------------------------------------------------- 1 | const {ipcRenderer} = require('electron'); 2 | 3 | module.exports = async (data) => { 4 | 5 | let valueProxy = ''; 6 | let cancelled = false; 7 | try { 8 | valueProxy = await global.p3x.onenote.prompt.setProxy(); 9 | valueProxy = valueProxy === undefined ? '' : valueProxy.trim(); 10 | } catch (e) { 11 | if (e !== undefined) { 12 | console.error(e); 13 | } else { 14 | cancelled = true; 15 | } 16 | } finally { 17 | if (!cancelled) { 18 | global.p3x.onenote.data.proxy = valueProxy; 19 | 20 | if (valueProxy === '') { 21 | global.p3x.onenote.toast.setProxy.clear() 22 | } else { 23 | global.p3x.onenote.toast.setProxy.set(valueProxy) 24 | } 25 | 26 | //console.log('set-proxy', global.p3x.onenote.data.proxy) 27 | ipcRenderer.send('p3x-onenote-save', global.p3x.onenote.data); 28 | require('./load-proxy')() 29 | } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/electron/window/onenote/angular.js: -------------------------------------------------------------------------------- 1 | //const remote = require("@electron/remote"); 2 | //const {shell} = require("electron"); 3 | const execAsync = async () => { 4 | 5 | const {shell} = require('electron'); 6 | //const remote = require('@electron/remote') 7 | 8 | require('angular/angular'); 9 | require('angular-aria'); 10 | require('angular-animate'); 11 | require('angular-messages'); 12 | require('angular-material'); 13 | 14 | global.p3x.onenote.ng = angular.module('p3x-onenote', [ 15 | 'ngMaterial', 'ngMessages' 16 | ]); 17 | require('./angular/prompt'); 18 | require('./angular/toast'); 19 | 20 | p3x.onenote.wait.domReady().then(() => { 21 | let zoom = p3x.onenote.conf.get('zoom') 22 | if (zoom === undefined) { 23 | zoom = 1.0 24 | } 25 | 26 | if (zoom !== 1.0) { 27 | global.p3x.onenote.webview.setZoomFactor(zoom); 28 | } 29 | }) 30 | 31 | /* 32 | win.webContents 33 | .setVisualZoomLevelLimits(1, 5) 34 | .then(console.log("Zoom Levels Have been Set between 100% and 500%")) 35 | .catch((err) => console.error(err)); 36 | */ 37 | 38 | 39 | global.p3x.onenote.ng.config(($mdAriaProvider, $mdThemingProvider) => { 40 | 41 | $mdAriaProvider.disableWarnings(); 42 | 43 | $mdThemingProvider.theme('default').primaryPalette('purple').accentPalette('blue')//.warnPalette('amber'); 44 | }) 45 | 46 | global.p3x.onenote.ng.run((p3xOnenotePrompt, p3xOnenoteToast, $rootScope, $animate, $mdMedia) => { 47 | $animate.enabled(false) 48 | global.p3x.onenote.prompt = p3xOnenotePrompt; 49 | global.p3x.onenote.toast = p3xOnenoteToast; 50 | global.p3x.onenote.root = $rootScope 51 | 52 | $rootScope.$mdMedia = $mdMedia 53 | 54 | p3x.onenote.toast.action(p3x.onenote.lang.slow) 55 | 56 | $rootScope.p3x = { 57 | onenote: { 58 | go: (action) => { 59 | global.p3x.onenote.webview[action === 'back' ? 'goBack' : 'goForward']() 60 | }, 61 | canGo: (action) => { 62 | if (!p3x.onenote.domReady) { 63 | return false; 64 | } 65 | if (action === 'back') { 66 | return global.p3x.onenote.webview && global.p3x.onenote.webview.canGoBack() 67 | } 68 | return global.p3x.onenote.webview && global.p3x.onenote.webview.canGoForward() 69 | }, 70 | lang: global.p3x.onenote.lang, 71 | location: undefined, 72 | copyLocation: require('./action/multi-action/get-location'), 73 | donate: () => { 74 | shell.openExternal('https://paypal.me/patrikx3') 75 | }, 76 | zoom: (zoom) => { 77 | const currentZoom = global.p3x.onenote.webview.getZoomFactor(); 78 | let value 79 | if (zoom >= 0) { 80 | value = currentZoom + 0.1; 81 | } else { 82 | value = currentZoom - 0.1; 83 | } 84 | if (value >= 0.75 && value <= 5.0) { 85 | global.p3x.onenote.webview.setZoomFactor(value) 86 | p3x.onenote.conf.set('zoom', value) 87 | } 88 | }, 89 | get zoomFactor() { 90 | if (!p3x.onenote.domReady) { 91 | return 100.00; 92 | } 93 | return (global.p3x.onenote.webview.getZoomFactor() * 100).toFixed(0) 94 | } 95 | } 96 | } 97 | }) 98 | 99 | angular.element(document).ready(() => { 100 | const bootstrapElement = document.getElementById('p3x-onenote-bootstrap'); 101 | angular.bootstrap(bootstrapElement, ['p3x-onenote']); 102 | }) 103 | 104 | 105 | } 106 | execAsync() 107 | -------------------------------------------------------------------------------- /src/electron/window/onenote/angular/prompt/index.js: -------------------------------------------------------------------------------- 1 | global.p3x.onenote.ng.factory('p3xOnenotePrompt', ($mdDialog) => { 2 | 3 | return new function () { 4 | 5 | this.setProxy = () => { 6 | const confirm = $mdDialog.prompt() 7 | .title(p3x.onenote.lang.label.setProxy) 8 | .textContent(p3x.onenote.lang.dialog.setProxy.info) 9 | .placeholder(p3x.onenote.lang.dialog.setProxy.placeholder) 10 | .ariaLabel(p3x.onenote.lang.dialog.setProxy.placeholder) 11 | .initialValue(global.p3x.onenote.data.proxy) 12 | //.targetEvent(ev) 13 | //.required(true) 14 | .cancel(p3x.onenote.lang.button.cancel) 15 | .ok(p3x.onenote.lang.button.save) 16 | 17 | return $mdDialog.show(confirm) 18 | } 19 | 20 | this.goToUrl = () => { 21 | const confirm = $mdDialog.prompt() 22 | .title(p3x.onenote.lang.label.openUrl) 23 | .textContent(p3x.onenote.lang.dialog.openUrl.info) 24 | .placeholder(p3x.onenote.lang.dialog.openUrl.placeholder) 25 | .ariaLabel(p3x.onenote.lang.dialog.openUrl.placeholder) 26 | //.initialValue(global.p3x.onenote.data.proxy) 27 | //.targetEvent(ev) 28 | //.required(true) 29 | .cancel(p3x.onenote.lang.button.cancel) 30 | .ok(p3x.onenote.lang.button.go) 31 | 32 | return $mdDialog.show(confirm) 33 | 34 | } 35 | 36 | this.configureLanguge = (opts) => { 37 | 38 | return $mdDialog.show({ 39 | template: ` 40 | 41 | 42 | 43 | 44 |

45 | ${p3x.onenote.lang.menu.language.dialog.label} 46 |

47 |
48 |
49 | 50 | 51 | 52 | ${p3x.onenote.lang.menu.language.dialog.personal} 53 | 54 | 55 | ${p3x.onenote.lang.menu.language.dialog.corporate} 56 | 57 | 58 | ${p3x.onenote.lang.button.cancel} 59 | 60 | 61 |
`, 62 | controller: function ($mdDialog, $scope) { 63 | $scope.exit = (answer) => { 64 | $mdDialog.hide(answer); 65 | } 66 | 67 | $scope.cancel = $mdDialog.cancel 68 | } 69 | }); 70 | 71 | } 72 | 73 | this.redirect = (opts) => { 74 | 75 | return $mdDialog.show({ 76 | template: ` 77 | 78 | 79 | 80 | 81 |

82 | ${p3x.onenote.lang.label.promptRedirectUrlTitle} 83 |

84 |
85 | ${p3x.onenote.lang.dialog.redirect.url({url: opts.url})} 86 |
87 |
88 |
89 | 90 | 91 | 92 | ${p3x.onenote.lang.button.cancel} 93 | 94 | 95 | ${p3x.onenote.lang.dialog.redirect.urlInternal} 96 | 97 | 98 | ${p3x.onenote.lang.dialog.redirect.urlExternal} 99 | 100 | 101 |
`, 102 | controller: function ($mdDialog, $scope) { 103 | $scope.exit = (answer) => { 104 | $mdDialog.hide(answer); 105 | } 106 | 107 | $scope.cancel = $mdDialog.cancel 108 | } 109 | }); 110 | 111 | } 112 | 113 | this.bookmarks = (opts) => { 114 | let deleteButton = '' 115 | let title 116 | if (opts.edit === true) { 117 | deleteButton = ` 118 | 119 | ${p3x.onenote.lang.button.delete} 120 | 121 | ` 122 | title = p3x.onenote.lang.bookmarks.edit 123 | } else { 124 | title = p3x.onenote.lang.bookmarks.add 125 | } 126 | return $mdDialog.show({ 127 | template: ` 128 |
129 | 130 | 131 | 132 | 133 |

134 | ${title} 135 |

136 |
137 | 138 | 139 | 140 | 141 |
142 |
${p3x.onenote.lang.validation.required}
143 |
144 |
145 | 146 | 147 | 148 | 149 |
150 |
${p3x.onenote.lang.validation.required}
151 |
${p3x.onenote.lang.validation.url}
152 |
153 |
154 |
155 |
156 |
157 | 158 | 159 | 160 | ${p3x.onenote.lang.button.cancel} 161 | 162 | ${deleteButton} 163 | 164 | ${p3x.onenote.lang.button.save} 165 | 166 | 167 |
168 |
169 | `, 170 | controller: function ($mdDialog, $scope) { 171 | 172 | $scope.model = { 173 | title: undefined, 174 | url: undefined, 175 | } 176 | 177 | if (opts.model) { 178 | $scope.model = opts.model 179 | } 180 | 181 | $scope.submit = () => { 182 | if ($scope.urlForm.$valid) { 183 | $mdDialog.hide({ 184 | opts: opts, 185 | model: $scope.model, 186 | }); 187 | } 188 | } 189 | 190 | $scope.delete = () => { 191 | $mdDialog.hide({ 192 | delete: true, 193 | opts: opts, 194 | model: $scope.model, 195 | }); 196 | } 197 | 198 | $scope.exit = (answer) => { 199 | $mdDialog.hide(answer); 200 | } 201 | 202 | $scope.cancel = $mdDialog.cancel 203 | } 204 | }); 205 | 206 | } 207 | } 208 | 209 | }) 210 | -------------------------------------------------------------------------------- /src/electron/window/onenote/angular/toast/index.js: -------------------------------------------------------------------------------- 1 | global.p3x.onenote.ng.factory('p3xOnenoteToast', ($mdToast) => { 2 | 3 | const toast = (options) => { 4 | if (typeof options === 'string') { 5 | options = { 6 | message: options, 7 | } 8 | } 9 | 10 | const template = '' + options.message + '' 11 | 12 | $mdToast.show({ 13 | controller: function ($scope, $mdToast) { 14 | $scope.closeToast = function() { 15 | $mdToast.hide(); 16 | }; 17 | }, 18 | template: template, 19 | hideDelay: 5000, 20 | position: 'bottom right' 21 | }); 22 | } 23 | 24 | return new function () { 25 | this.action = toast; 26 | this.setProxy = new function () { 27 | this.clear = () => toast(p3x.onenote.lang.dialog.setProxy.clear) 28 | this.set = (value) => toast(p3x.onenote.lang.dialog.setProxy.set(value)) 29 | } 30 | } 31 | }) 32 | -------------------------------------------------------------------------------- /src/electron/window/onenote/event/handler.js: -------------------------------------------------------------------------------- 1 | const electron = require('electron'); 2 | const shell = electron.shell; 3 | const ipc = electron.ipcRenderer; 4 | 5 | const handler = (options) => { 6 | const {webview} = options; 7 | 8 | require('../angular') 9 | 10 | /* 11 | webview.addEventListener('did-stop-loading', function(event) { 12 | // webview.insertCSS(window.cssData); 13 | }); 14 | */ 15 | // const allowedUrlRegex = /^((https?:\/\/((onedrive\.live\.com\/((redir\?resid\=)|((redir|edit).aspx\?)))|((www\.)?onenote\.com)|(login\.)|(g\.live\.))|(about\:blank)))/i 16 | // const allowedUrlRegex2 = /^https?:\/\/d\.docs\.live\.net\/([a-z0-9]{16})\//i 17 | 18 | //const disalledUrl = /^((https?:\/\/))/i 19 | 20 | /* 21 | let windowInterval 22 | const generateInterval = () => { 23 | windowInterval = setInterval(() => { 24 | if (global.p3x.onenote.root && global.p3x.onenote.root.p3x.onenote.location !== webview.src) { 25 | console.log('changed the url via interval', webview.src) 26 | p3x.onenote.wait.angular(() => { 27 | global.p3x.onenote.root.p3x.onenote.location = webview.src 28 | global.p3x.onenote.data.url = webview.src 29 | global.p3x.onenote.root.$digest() 30 | ipc.send('p3x-onenote-save', global.p3x.onenote.data); 31 | }) 32 | } 33 | 34 | }, p3x.onenote.wrongUrlTimeout) 35 | } 36 | 37 | generateInterval() 38 | 39 | ipc.on('p3x-onenote-window-state', function (event, data) { 40 | clearInterval(windowInterval) 41 | if (data.action === 'focus') { 42 | generateInterval() 43 | } 44 | }) 45 | */ 46 | 47 | /* 48 | webview.addEventListener('did-stop-loading', function(event) { 49 | // webview.insertCSS(p3x.onenote.hackCss); 50 | }); 51 | 52 | webview.addEventListener('will-navigate', function(event, url) { 53 | ipc.send('p3x-debug', { 54 | 'will-navigate': event, 55 | url: url, 56 | }); 57 | }); 58 | 59 | webview.addEventListener('will-redirect', function(event, url) { 60 | ipc.send('p3x-debug', { 61 | 'will-redirect': event, 62 | url: url, 63 | }); 64 | }); 65 | */ 66 | 67 | for(let eventName of ['did-navigate', 'did-navigate-in-page']) { 68 | webview.addEventListener(eventName, function (event, url) { 69 | /* 70 | ipc.send('p3x-debug', { 71 | 'did-navigate': event, 72 | url: url, 73 | }); 74 | */ 75 | console.log(`changed the url via ${eventName}`, webview.src) 76 | 77 | //global.p3x.onenote.data.url = webview.src; 78 | global.p3x.onenote.data.url = webview.getURL() 79 | ipc.send('p3x-onenote-save', global.p3x.onenote.data); 80 | 81 | p3x.onenote.wait.angular(() => { 82 | global.p3x.onenote.root.p3x.onenote.location = webview.src 83 | global.p3x.onenote.root.$digest() 84 | }) 85 | 86 | }); 87 | 88 | 89 | } 90 | 91 | 92 | 93 | 94 | 95 | webview.addEventListener('dom-ready', event => { 96 | //TODO Remove this once https://github.com/electron/electron/issues/14474 is fixed 97 | webview.blur(); 98 | webview.focus(); 99 | 100 | p3x.onenote.domReady = true 101 | 102 | if (process.env.NODE_ENV === 'debug') { 103 | webview.openDevTools() 104 | } 105 | 106 | 107 | }); 108 | 109 | /* 110 | webview.addEventListener('new-window', function (event) { 111 | 112 | console.log('new-window', event.url) 113 | 114 | event.preventDefault() 115 | //p3x.onenote.toast.action(p3x.onenote.lang.label.unknownLink) 116 | 117 | if (event.url.trim().startsWith('about:blank')) { 118 | //webview.src = event.url; 119 | return 120 | } 121 | if (global.p3x.onenote.conf.get('option-to-disable-internal-external-popup') === true) { 122 | webview.src = event.url 123 | } else { 124 | global.p3x.onenote.prompt.redirect({url: event.url}).then((answer) => { 125 | if (answer === 'internal') { 126 | webview.src = event.url; 127 | } else { 128 | shell.openExternal(event.url) 129 | } 130 | }) 131 | } 132 | }); 133 | */ 134 | 135 | /* 136 | for(let event of [ 137 | 'did-finish-load', 138 | 'did-frame-finish-load', 139 | 'did-start-loading', 140 | 'page-title-updated', 141 | 'will-navigate', 142 | 'did-start-navigation', 143 | 'did-redirect-navigation', 144 | 'did-navigate', 145 | 'did-frame-navigate', 146 | 'did-navigate-in-page', 147 | 'update-target-url', 148 | ]) { 149 | webview.addEventListener(event, function(eventData) { 150 | if (eventData.url) { 151 | console.log(event, event.url) 152 | } 153 | }) 154 | } 155 | */ 156 | 157 | } 158 | 159 | module.exports = handler 160 | -------------------------------------------------------------------------------- /src/electron/window/onenote/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
43 | 44 |
45 | 46 | 47 | 48 | {{ $root.p3x.onenote.zoomFactor }}% 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
59 | 60 | 61 |   62 | 63 |
64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /src/electron/window/onenote/ipc/handler.js: -------------------------------------------------------------------------------- 1 | const {shell, ipcRenderer} = require('electron'); 2 | 3 | const setProxy = require('../action/set-proxy'); 4 | const multiActions = require('../action/multi-actions'); 5 | 6 | const handler = (options) => { 7 | const {webview} = options; 8 | 9 | ipcRenderer.on('p3x-onenote-onload-user', function (event, data) { 10 | if (data !== null && data !== undefined) { 11 | global.p3x.onenote.data = data; 12 | } 13 | 14 | //console.log('p3x-onenote-onload-user', data) 15 | 16 | 17 | if (typeof (global.p3x.onenote.data) === 'object' && global.p3x.onenote.data.hasOwnProperty('url') && !global.p3x.onenote.data.url.startsWith('about:blank')) { 18 | webview.src = global.p3x.onenote.data.url; 19 | } else { 20 | webview.src = 'https://www.onenote.com/notebooks' 21 | } 22 | if (global.p3x.onenote.data.proxy.trim() !== '') { 23 | require('../action/load-proxy')(); 24 | } 25 | }) 26 | 27 | ipcRenderer.on('p3x-onenote-action', function (event, data) { 28 | multiActions(data); 29 | }) 30 | 31 | ipcRenderer.on('p3x-onenote-action-set-proxy', (event, data) => { 32 | setProxy(data); 33 | }) 34 | 35 | ipcRenderer.on('p3x-onenote-language', async (event, data) => { 36 | global.p3x.onenote.lang = global.p3x.onenote.translations[data.translation] 37 | global.p3x.onenote.toast.action(global.p3x.onenote.lang.menu.language.alert) 38 | 39 | global.p3x.onenote.root.p3x.onenote.lang = global.p3x.onenote.lang 40 | 41 | let type = ''; 42 | let cancelled = false; 43 | try { 44 | type = await global.p3x.onenote.prompt.configureLanguge(data); 45 | type = type === undefined ? '' : type.trim(); 46 | } catch (e) { 47 | if (e !== undefined) { 48 | console.error(e); 49 | } else { 50 | cancelled = true; 51 | } 52 | } finally { 53 | if (!cancelled) { 54 | if (type === 'corporate') { 55 | global.p3x.onenote.webview.src = 'https://www.onenote.com/notebooks?auth=2&omkt=' + data.translation 56 | } else { 57 | global.p3x.onenote.webview.src = 'https://www.onenote.com/notebooks?omkt=' + data.translation 58 | } 59 | } 60 | } 61 | 62 | }) 63 | 64 | ipcRenderer.on('p3x-onenote-action-open-url', async (event, data) => { 65 | let url = ''; 66 | let cancelled = false; 67 | try { 68 | url = await global.p3x.onenote.prompt.goToUrl(); 69 | url = url === undefined ? '' : url.trim(); 70 | if (!url.startsWith('http')) { 71 | url = 'https://' + url 72 | } 73 | } catch (e) { 74 | if (e !== undefined) { 75 | console.error(e); 76 | } else { 77 | cancelled = true; 78 | } 79 | } finally { 80 | if (!cancelled) { 81 | global.p3x.onenote.webview.src = url 82 | } 83 | } 84 | }) 85 | 86 | ipcRenderer.on('p3x-onenote-action-bookmark-open', (event, data) => { 87 | global.p3x.onenote.webview.src = data.url 88 | }) 89 | 90 | ipcRenderer.on('p3x-onenote-action-bookmark-add', async (event, data) => { 91 | try { 92 | const result = await global.p3x.onenote.prompt.bookmarks(data); 93 | ipcRenderer.send('p3x-onenote-action-bookmark-result', result); 94 | 95 | } catch (e) { 96 | if (e !== undefined) { 97 | alert(e.message) 98 | console.error(e); 99 | } 100 | } 101 | }) 102 | 103 | 104 | ipcRenderer.on('p3x-onenote-new-window', (event, data) => { 105 | const url = data.url 106 | if (url.trim().startsWith('about:blank')) { 107 | //webview.src = event.url; 108 | return 109 | } 110 | if (global.p3x.onenote.conf.get('option-to-disable-internal-external-popup') === true) { 111 | webview.src = url 112 | } else { 113 | global.p3x.onenote.prompt.redirect({url: url}).then((answer) => { 114 | if (answer === 'internal') { 115 | webview.src = url; 116 | } else { 117 | shell.openExternal(url) 118 | } 119 | }) 120 | } 121 | }) 122 | 123 | } 124 | 125 | module.exports = handler 126 | -------------------------------------------------------------------------------- /src/electron/window/onenote/load.js: -------------------------------------------------------------------------------- 1 | const {ipcRenderer} = require('electron'); 2 | 3 | const Store = require('electron-store'); 4 | const conf = new Store(); 5 | let translationKey = conf.get('lang') 6 | const langTranslations = { 7 | 'en-US': require('../../../translation/en-US'), 8 | 'de-DE': require('../../../translation/de-DE'), 9 | 'pt-BR': require('../../../translation/pt-BR'), 10 | 'es-ES': require('../../../translation/es-ES'), 11 | 'fr-FR': require('../../../translation/fr-FR'), 12 | 'nl-NL': require('../../../translation/nl-NL'), 13 | 'it-IT': require('../../../translation/it-IT'), 14 | 'zh-CN': require('../../../translation/zh-CN'), 15 | 'ru-RU': require('../../../translation/ru-RU'), 16 | 'pl-PL': require('../../../translation/pl-PL'), 17 | 'tr-TR': require('../../../translation/tr-TR'), 18 | 'ja-JP': require('../../../translation/ja-JP'), 19 | 'zh-TW': require('../../../translation/zh-TW'), 20 | } 21 | if (!translationKey) { 22 | translationKey = 'en-US' 23 | } 24 | const translation = langTranslations[translationKey] 25 | 26 | global.p3x = { 27 | onenote: { 28 | conf: conf, 29 | domReady: false, 30 | url: { 31 | /* 32 | https://www.onenote.com/notebooks?omkt=en-US 33 | https://www.onenote.com/notebooks?omkt=de-DE 34 | https://www.onenote.com/notebooks?omkt=hu-HU 35 | */ 36 | notebooks: 'https://www.onenote.com/notebooks', 37 | }, 38 | ui: {}, 39 | hackCss: undefined, 40 | ng: undefined, 41 | webview: undefined, 42 | pkg: require('../../../../package'), 43 | translations: langTranslations, 44 | lang: translation, 45 | data: { 46 | url: 'about:blank', 47 | proxy: '', 48 | }, 49 | prompt: undefined, 50 | toast: undefined, 51 | root: undefined, 52 | wrongUrlTimeout: 1000, 53 | wrongUrlMaxAllowed: 5, 54 | wait: { 55 | angular: (cb) => { 56 | let timeout 57 | const exec = () => { 58 | if (global.p3x.onenote.root === undefined) { 59 | clearTimeout(timeout) 60 | timeout = setTimeout(exec, 250) 61 | } else { 62 | cb() 63 | } 64 | } 65 | exec() 66 | }, 67 | domReady: async () => { 68 | return new Promise(resolve => { 69 | let timeout 70 | const exec = () => { 71 | if (p3x.onenote.domReady !== true) { 72 | clearTimeout(timeout) 73 | timeout = setTimeout(exec, 250) 74 | } else { 75 | resolve() 76 | } 77 | } 78 | exec() 79 | }) 80 | } 81 | } 82 | } 83 | } 84 | 85 | 86 | document.title = `${global.p3x.onenote.lang.title} v${global.p3x.onenote.pkg.version}`; 87 | 88 | window.p3xOneNoteOnLoad = function () { 89 | 90 | if (conf.get('darkThemeInvert') === true) { 91 | document.body.classList.add('p3x-dark-mode-invert-quirks') 92 | } 93 | 94 | const webview = document.getElementById("p3x-onenote-webview"); 95 | global.p3x.onenote.webview = webview; 96 | webview.focus() 97 | 98 | /* 99 | global.p3x.onenote.webview.addEventListener("dom-ready", function () { 100 | //require('./core/overlay') 101 | require('./angular') 102 | }) 103 | */ 104 | 105 | const ipcHandler = require('./ipc/handler'); 106 | ipcHandler({ 107 | webview: webview, 108 | }) 109 | 110 | const eventHandler = require('./event/handler'); 111 | eventHandler({ 112 | webview: webview, 113 | }) 114 | 115 | ipcRenderer.send('did-finish-load'); 116 | } 117 | -------------------------------------------------------------------------------- /src/electron/window/onenote/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | /* 3 | --p3x-onenote-navbar-color: #7719aa; 4 | */ 5 | --p3x-onenote-navbar-color: black; 6 | --p3x-onenote-navbar-bg: white; 7 | --p3x-onenote-bottom-bar-height: 20px; 8 | --p3x-onenote-bottom-bar-font-size: 12px; 9 | } 10 | 11 | body.p3x-dark-mode-invert-quirks { 12 | filter: invert(1) hue-rotate(180deg); 13 | } 14 | 15 | body { 16 | background-color: white; 17 | padding: 0; 18 | margin: 0; 19 | overflow: hidden; 20 | } 21 | 22 | /* 23 | md-dialog md-dialog-actions { 24 | display: block !important; 25 | } 26 | 27 | md-dialog md-dialog-actions button { 28 | float: right !important; 29 | } 30 | */ 31 | 32 | body * { 33 | transition: none !important; 34 | } 35 | 36 | #p3x-onenote-bottom-bar { 37 | cursor: pointer; 38 | position: fixed; 39 | bottom: 0px; 40 | left: 0px; 41 | width: 100%; 42 | white-space: nowrap; 43 | overflow: hidden; 44 | text-overflow: ellipsis; 45 | height: var(--p3x-onenote-bottom-bar-height); 46 | font-size: var(--p3x-onenote-bottom-bar-font-size); 47 | font-family: Roboto; 48 | line-height: var(--p3x-onenote-bottom-bar-height); 49 | background-color: var(--p3x-onenote-navbar-bg); 50 | color: var(--p3x-onenote-navbar-color); 51 | } 52 | 53 | #p3x-onenote-webview { 54 | position: fixed; 55 | top: 0px; 56 | left: 0px; 57 | overflow: hidden; 58 | width: 100%; 59 | height: calc(100% - var(--p3x-onenote-bottom-bar-height)); 60 | } 61 | 62 | .md-toast-content { 63 | z-index: 110; 64 | } 65 | 66 | .p3x-onenote-toast-default .md-toast-content { 67 | } 68 | -------------------------------------------------------------------------------- /src/flathub/metainfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | P3X Onenote 4 | com.patrikx3.onenote 5 | A Linux compatible version of OneNote 6 | https://corifeus.com/onenote 7 | 8 | MIT 9 | MIT 10 | 11 | 12 |

13 | A Linux compatible version of OneNote 14 |

15 |
16 | 17 | 18 | https://cdn.corifeus.com/git/onenote/artifacts/screenshot/screenshot-2023.png 19 | Light theme 20 | 21 | 22 | https://cdn.corifeus.com/git/onenote/artifacts/screenshot/screenshot-2024.png 23 | Dark mode 24 | 25 | 26 | 27 | 28 | 29 | 30 | patrikx3 31 | com.patrikx3.onenote.desktop 32 |
33 | -------------------------------------------------------------------------------- /src/flathub/p3x-onenote.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=P3X Onenote 4 | Comment=A Linux compatible version of OneNote 5 | Icon=com.patrikx3.onenote 6 | Exec=run.sh 7 | Categories=Office -------------------------------------------------------------------------------- /src/translation/de-DE.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Bitte warten Sie, die Anwendung wird neu gestartet.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Aktivieren Sie den Dunkelmodus mit Macken (mit invertieren)' 7 | }, 8 | hideMenu: 'Hauptmenü ausblenden (mit ALT anzeigen)', 9 | optionToHideMenuState: { 10 | yes: 'Nach dem Neustart wird das Menü ausgeblendet und auf ALT angezeigt.', 11 | }, 12 | donate: 'Spenden', 13 | allowMultiple: { 14 | checkbox: 'Mehrere App-Instanzen erlauben (mit ein paar Tricks)', 15 | message: { 16 | yes: 'Nutzung mehrerer Instanzen aktiv (mit ein paar Tricks).', 17 | no: 'Nutzung mehrerer Instanzen deaktiviert (ohne Tricks).' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: 'Schließen-Knopf Einstellung', 24 | message: { 25 | yes: 'Schließen-Knopf beendet die Anwendung.', 26 | no: 'Schließen-Knopf minimiert die Anwendung.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Deaktivere Popup beim öffnen externener Links (alle Links intern öffnen)', 31 | settings: 'Einstellungen', 32 | setProxy: 'Proxy-Einstellungen', 33 | openUrl: 'URL öffnen', 34 | promptRedirectUrlTitle: 'Weiter zu URL', 35 | edit: 'Bearbeiten', 36 | view: 'Anzeigen', 37 | download: 'Download', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Persönlich', 40 | corporateHome: 'Business', 41 | clearCache: 'Abmelden und Cache leeren', 42 | quit: 'Beenden', 43 | show: 'Maximieren', 44 | hide: 'Minimieren', 45 | copyLocation: 'Speicherort in Zwischenablage kopieren', 46 | copyLocationCopied: 'Speicherort in Zwischenablage kopiert.', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home' 49 | back: 'Zurück', 50 | forward: 'Weiter', 51 | }, 52 | dialog: { 53 | info: 'Info', 54 | openUrl: { 55 | info: 'Sie können zu jeder gewünschten URL gelangen', 56 | placeholder: 'Eine gültige URL', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Minimiere Einstellungen', 61 | }, 62 | setProxy: { 63 | placeholder: 'Proxy-Einstellungen', 64 | info: 'Zum deaktiveren alles löschen.', 65 | clear: 'Der Proxy ist deaktiviert.', 66 | set: (value) => { 67 | return `Proxyserver-Adresse ist ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Extern', 75 | urlInternal: 'Intern', 76 | } 77 | }, 78 | button: { 79 | yes: 'Ja', 80 | no: 'Nein', 81 | ok: 'OK', 82 | cancel: 'Abbrechen', 83 | save: 'Speichern', 84 | clear: 'Neu', 85 | go: 'Los', 86 | delete: 'Löschen', 87 | }, 88 | menu: { 89 | action: 'Bearbeiten', 90 | role: { 91 | edit: { 92 | undo: 'Rückgängig', 93 | redo: 'Wiederherstellen', 94 | cut: 'Ausschneiden', 95 | copy: 'Kopieren', 96 | paste: 'Einfügen', 97 | pasteandmatchstyle: 'Einfügen und Formattierung beibehalten', 98 | delete: 'Löschen', 99 | selectall: 'Alles auswählen', 100 | }, 101 | view: { 102 | reload: 'Neu laden', 103 | forcereload: 'Neu laden erzwingen', 104 | toggledevtools: 'Entwicklereinstellungen aktivieren/deaktivieren', 105 | resetzoom: 'Normale Größe', 106 | zoomin: 'Vergrößern', 107 | zoomout: 'Verkleinern', 108 | togglefullscreen: 'Vollbild', 109 | } 110 | }, 111 | help: { 112 | title: 'Hilfe', 113 | checkUpdates: 'Auf Updates prüfen' 114 | }, 115 | language: { 116 | label: 'Sprache / Language', 117 | alert: 'Sprache auf Deutsch eingestellt.', 118 | dialog: { 119 | label: 'Versuchen Sie, die Online OneNote-Sprache zu konfigurieren?', 120 | corporate: 'Business', 121 | personal: 'Persönlich', 122 | }, 123 | translations: { 124 | 'en-US': 'Englisch / English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Portugisisch / Português', 127 | 'es-ES': 'Spanisch / Spanish', 128 | 'fr-FR': 'Französisch / French', 129 | 'nl-NL': 'Niederländisch / Dutch', 130 | 'it-IT': 'Italiänisch / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | }, 139 | }, 140 | }, 141 | redirecting: 'Einen Moment, es wird zu einem neuen Notzibuch umgeleitet. Dies kann eine Weile dauern...', 142 | slow: 'Einen Moment, das Laden von OneNote kann eine Weile dauern...', 143 | updater: { 144 | 'checking-for-update': 'Prüfen auf neue Updates ...', 145 | 'update-available': 'Aktuellste Version wird geladen ...', 146 | 'update-not-available': 'Version ist aktuell.', 147 | error: (opts) => { 148 | return `Error in auto-updater: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return 'Heruntergeladen ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': 'Aktuellste Version heruntergeladen. Neustarten um den Updatevorgang abzuschließen.' 154 | }, 155 | bookmarks: { 156 | title: 'Lesezeichen', 157 | add: 'Lesezeichen hinzufügen', 158 | edit: 'Lesezeichen bearbeiten', 159 | form: { 160 | title: 'Titel', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Erforderlich', 166 | url: 'Ungültige URL', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/en-US.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Please hang on, the application is restarting.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Enable dark mode with quirks (using invert)' 7 | }, 8 | hideMenu: 'Hide main menu (show with ALT)', 9 | optionToHideMenuState: { 10 | yes: 'After restart, it will hide the menu and show on ALT.', 11 | }, 12 | donate: 'Donate', 13 | allowMultiple: { 14 | checkbox: 'Allow multiple instances (with some quirks)', 15 | message: { 16 | yes: 'Now you can use multiple instance with some quirks.', 17 | no: 'Now, it allows only one instance, no quirks' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: 'Close to the tray', 24 | message: { 25 | yes: 'The close button really closes the app.', 26 | no: 'The close button, instead of quitting, it minimizes the app to the tray.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Disable Internal / External Popup (all link internal)', 31 | settings: 'Settings', 32 | setProxy: 'Set proxy', 33 | openUrl: 'Open an URL', 34 | promptRedirectUrlTitle: 'Redirect to url', 35 | edit: 'Edit', 36 | view: 'View', 37 | download: 'Download', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Personal home', 40 | corporateHome: 'Corporate home', 41 | clearCache: 'First sign off, then click this menu option to clear the cache', 42 | quit: 'Quit', 43 | show: 'Show', 44 | hide: 'Hide', 45 | copyLocation: 'Copy this location to the clipboard', 46 | copyLocationCopied: 'The location is copied to the clipboard.', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: 'Back', 50 | forward: 'Forward', 51 | }, 52 | dialog: { 53 | info: 'Info', 54 | openUrl: { 55 | info: 'You can go to any URL you wish', 56 | placeholder: 'a valid URL', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Minimization behavior', 61 | }, 62 | setProxy: { 63 | placeholder: 'Proxy setting', 64 | info: 'To clear the proxy, use an empty string.', 65 | clear: 'The proxy is turned off.', 66 | set: (value) => { 67 | return `The proxy is set as ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'External', 75 | urlInternal: 'Internal', 76 | } 77 | }, 78 | button: { 79 | yes: 'Yes', 80 | no: 'No', 81 | ok: 'OK', 82 | cancel: 'Cancel', 83 | save: 'Save', 84 | clear: 'Clear', 85 | go: 'Go', 86 | delete: 'Delete', 87 | }, 88 | menu: { 89 | action: 'Action', 90 | role: { 91 | edit: { 92 | undo: 'Undo', 93 | redo: 'Redo', 94 | cut: 'Cut', 95 | copy: 'Copy', 96 | paste: 'Paste', 97 | pasteandmatchstyle: 'Paste and match style', 98 | delete: 'Delete', 99 | selectall: 'Select all', 100 | }, 101 | view: { 102 | reload: 'Reload', 103 | forcereload: 'Force reload', 104 | toggledevtools: 'Toggle development tools', 105 | resetzoom: 'Reset Zoom', 106 | zoomin: 'Zoom In', 107 | zoomout: 'Zoom out', 108 | togglefullscreen: 'Toggle full screen', 109 | } 110 | }, 111 | help: { 112 | title: 'Help', 113 | checkUpdates: 'Check updates' 114 | }, 115 | language: { 116 | label: 'Language', 117 | alert: 'Language set to english.', 118 | dialog: { 119 | label: 'Try to configure Online OneNote language?', 120 | corporate: 'Corporate', 121 | personal: 'Personal', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'Hang on, redirecting to a new notebook. It takes some time...', 142 | slow: 'Hang on, loading OneNote takes some time...', 143 | updater: { 144 | 'checking-for-update': 'Checking for update ...', 145 | 'update-available': 'Downloading latest release ...', 146 | 'update-not-available': 'No new update.', 147 | error: (opts) => { 148 | return `Error in auto-updater: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return 'Downloaded ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': 'Update downloaded. You may restart the app to update.' 154 | }, 155 | bookmarks: { 156 | title: 'Bookmarks', 157 | add: 'Add bookmark', 158 | edit: 'Edit bookmarks', 159 | form: { 160 | title: 'Title', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Required', 166 | url: 'Invalid url', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/es-ES.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Espere, la aplicación se está reiniciando.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Habilite el modo oscuro con peculiaridades (usando invertir)' 7 | }, 8 | hideMenu: 'Ocultar el menú principal (mostrar con ALT)', 9 | optionToHideMenuState: { 10 | yes: 'Después de reiniciar, ocultará el menú y se mostrará en ALT.', 11 | }, 12 | donate: 'Donar', 13 | allowMultiple: { 14 | checkbox: 'Permitir múltiples instancias (podría haber algún comportamiento extraño)', 15 | message: { 16 | yes: 'Puedes usar múltiples instancias, con algún comportamiento extraño.', 17 | no: 'Una sola instancia permitida, sin comportamientos extraños.', 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Configurar el cierre de manera que la aplicación se minimice a la barra de tareas', 22 | //no: 'Configurar el botónn de cierre de manera que se quite la aplicación', 23 | checkbox: 'Minimizar a la barra de tareas', 24 | message: { 25 | yes: 'El botón de cierre cerrará directamente la aplicación.', 26 | no: 'El botón de cierre, en vez de cerrar la aplicación, la minimizará a la barra de tareas.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Deaktivieren Sie das interne / externe Popup (Toda enlace interna)', 31 | settings: 'Configuración', 32 | setProxy: 'Configuración del proxy', 33 | openUrl: 'Abrir URL', 34 | promptRedirectUrlTitle: 'Redireccionar a la URL', 35 | edit: 'Editar', 36 | view: 'Ver', 37 | download: 'Bajar', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Home Personal', 40 | corporateHome: 'Home Corporativo', 41 | clearCache: 'Salga primero y después haga click en esta opción del menú para borrar la caché.', 42 | quit: 'Quitar', 43 | show: 'Mostrar', 44 | hide: 'Esconder', 45 | copyLocation: 'Copiar esta dirección al portapapeles', 46 | copyLocationCopied: 'Dirección copiada al portapapeles.', 47 | //disallowedContent: '¡Contenido no permitido!.Si no funciona, espere. Se reseteará al home por defecto. (Máx 5 segundos).', 48 | //unknownLink: 'Espere, cambiará mientras carga el destino. Si esto no es una página de OneNote, haga clic en el menú dentro de P3X OneNote home' 49 | back: 'Espalda', 50 | forward: 'Adelante', 51 | 52 | }, 53 | dialog: { 54 | info: 'Info', 55 | openUrl: { 56 | info: 'Puede ir a cualquier URL que desee.', 57 | placeholder: 'Inserte una URL válida', 58 | 59 | }, 60 | minimizationBehavior: { 61 | title: 'Comportamiento al minimizar', 62 | }, 63 | setProxy: { 64 | placeholder: 'Configuración del proxy', 65 | info: 'Para limpiar el proxy, introduzca una cadena vacía.', 66 | clear: 'Proxy apagado.', 67 | set: (value) => { 68 | return `Proxy configurado como ${value}` 69 | } 70 | }, 71 | redirect: { 72 | url: (opts) => { 73 | return `${opts.url}` 74 | }, 75 | urlExternal: 'Externa', 76 | urlInternal: 'Interna', 77 | } 78 | }, 79 | button: { 80 | yes: 'Si', 81 | no: 'No', 82 | ok: 'OK', 83 | cancel: 'Cancelar', 84 | save: 'Salvar', 85 | clear: 'Limpiar', 86 | go: 'Ir', 87 | delete: 'Eliminar', 88 | }, 89 | menu: { 90 | action: 'Acción', 91 | role: { 92 | edit: { 93 | undo: 'Deshacer', 94 | redo: 'Rehacer', 95 | cut: 'Cortar', 96 | copy: 'Copiar', 97 | paste: 'Pegar', 98 | pasteandmatchstyle: 'Pegar con el mismo estilo', 99 | delete: 'Borrar', 100 | selectall: 'Seleccionar todo', 101 | }, 102 | view: { 103 | reload: 'Recargar', 104 | forcereload: 'Fozar recarga', 105 | toggledevtools: 'Conmutar herramientas de desarrollo', 106 | resetzoom: 'Resetear Zoom', 107 | zoomin: 'Aumentar zoom', 108 | zoomout: 'Disminuir zoom', 109 | togglefullscreen: 'Cambiar a pantalla completa', 110 | } 111 | }, 112 | help: { 113 | title: 'Ayuda', 114 | checkUpdates: 'Revisar actualizaciones' 115 | }, 116 | language: { 117 | label: 'Lenguaje / Language', 118 | alert: 'Idioma configurado para español.', 119 | dialog: { 120 | label: '¿Configurar el lenguaje en la herramienta en línea de Onenote?', 121 | corporate: 'Corporativo', 122 | personal: 'Personal', 123 | }, 124 | translations: { 125 | 'en-US': 'Inglés / English', 126 | 'de-DE': 'Alemán / German', 127 | 'pt-BR': 'Português / Portuguese', 128 | 'es-ES': 'Español / Spanish', 129 | 'fr-FR': 'Français / French', 130 | 'nl-NL': 'Nederlands / Dutch', 131 | 'it-IT': 'Italiano / Italian', 132 | 'zh-CN': '简体中文 / Simplified Chinese', 133 | 'ru-RU': 'Русский / Russian', 134 | 'pl-PL': 'Polski / Polish', 135 | 'tr-TR': 'Türkçe / Turkish', 136 | 'ja-JP': '日本語 / Japanese', 137 | 'zh-TW': '繁體中文 / Traditional Chinese', 138 | 139 | } 140 | }, 141 | }, 142 | redirecting: 'Espere... redireccionando a una nueva libreta. Tardará un poco...', 143 | slow: 'Espere, cargar OneNote tarda un poco...', 144 | updater: { 145 | 'checking-for-update': 'Buscando actualizaciones...', 146 | 'update-available': 'Bajando la última release ...', 147 | 'update-not-available': 'No existen nuevas actualizaciones.', 148 | error: (opts) => { 149 | return `Error en el auto-updater: ${opts.errorMessage}` 150 | }, 151 | 'download-progress': (opts) => { 152 | return 'Bajado ' + opts.progressObj.percent + '%' 153 | }, 154 | 'update-downloaded': 'Actualización bajada. Reinicie la aplicación para actualizar.' 155 | }, 156 | bookmarks: { 157 | title: 'Marcadores', 158 | add: 'Añadir marcador', 159 | edit: 'Editar marcadores', 160 | form: { 161 | title: 'Título', 162 | url: 'URL' 163 | } 164 | }, 165 | validation: { 166 | required: 'Necesaria', 167 | url: 'URL invalida', 168 | }, 169 | }; 170 | 171 | module.exports = translation; 172 | -------------------------------------------------------------------------------- /src/translation/fr-FR.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Veuillez patienter, l\'application redémarre.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Activer le mode sombre avec des bizarreries (en utilisant l\'inversion)' 7 | }, 8 | hideMenu: 'Masquer le menu principal (afficher avec ALT)', 9 | optionToHideMenuState: { 10 | yes: 'Après le redémarrage, il masquera le menu et s\'affichera sur ALT.', 11 | }, 12 | donate: 'Faire un don', 13 | allowMultiple: { 14 | checkbox: 'Autoriser plusieurs instances (avec quelques bizarreries)', 15 | message: { 16 | yes: 'Vous pouvez maintenant utiliser plusieurs instances avec quelques bizarreries.', 17 | no: 'Une seule instance est possible, pas de bizarreries.' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: 'Fermeture dans la barre des tâches', 24 | message: { 25 | yes: 'Le bouton de fermeture quitte l\'application.', 26 | no: 'Le bouton de fermeture réduit l\'application dans la barre des tâches.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Désactiver les popups interne et externe', 31 | settings: 'Paramètres', 32 | setProxy: 'Sélection du proxy', 33 | openUrl: 'Ouvrir une URL', 34 | promptRedirectUrlTitle: 'Redirige vers l\'URL', 35 | edit: 'Edition', 36 | view: 'Affichage', 37 | download: 'Télécharger', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Compte personnel', 40 | corporateHome: 'Compte professionnel', 41 | clearCache: 'Premièrement déconnectez-vous, puis sélectionnez cette option pour nettoyer le cache', 42 | quit: 'Quitter', 43 | show: 'Afficher', 44 | hide: 'Cacher', 45 | copyLocation: 'Copier cette emplacement', 46 | copyLocationCopied: 'Cette emplacement a été copié dans le presse-papier.', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: 'Reculer', 50 | forward: 'Avancer', 51 | }, 52 | dialog: { 53 | info: 'Info', 54 | openUrl: { 55 | info: 'Il est possible d\'aller sur n\'importe quelle URL', 56 | placeholder: 'Une URL valide', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Comportement pour le bouton de fermeture', 61 | }, 62 | setProxy: { 63 | placeholder: 'Paramètre du proxy', 64 | info: 'Pour supprimer le proxy, utilisez un champ vide.', 65 | clear: 'Le proxy est désactivé', 66 | set: (value) => { 67 | return `Le paramètre du proxy est : ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Externe', 75 | urlInternal: 'Interne', 76 | } 77 | }, 78 | button: { 79 | yes: 'Oui', 80 | no: 'Non', 81 | ok: 'OK', 82 | cancel: 'Annuler', 83 | save: 'Sauvegarder', 84 | clear: 'Nettoyer', 85 | go: 'Aller à', 86 | delete: 'Supprimer', 87 | }, 88 | menu: { 89 | action: 'Action', 90 | role: { 91 | edit: { 92 | undo: 'Annuler', 93 | redo: 'Rétablir', 94 | cut: 'Couper', 95 | copy: 'Copier', 96 | paste: 'Coller', 97 | pasteandmatchstyle: 'Coller en gardant le style d\'origine', 98 | delete: 'Supprimer', 99 | selectall: 'Tout sélectionner', 100 | }, 101 | view: { 102 | reload: 'Actualiser', 103 | forcereload: 'Forcer l\'actualisation', 104 | toggledevtools: 'Afficher les outils de développement', 105 | resetzoom: 'Réintialiser le zoom', 106 | zoomin: 'Zoomer', 107 | zoomout: 'Dézoomer', 108 | togglefullscreen: 'Activer le mode plein écran', 109 | } 110 | }, 111 | help: { 112 | title: 'Aide', 113 | checkUpdates: 'Rechercher des mises à jour' 114 | }, 115 | language: { 116 | label: 'Langue / Language', 117 | alert: 'Langue paramétrée à Français.', 118 | dialog: { 119 | label: 'Essayer de configurer la langue de OneNote en ligne ?', 120 | corporate: 'Entreprise', 121 | personal: 'Personnel', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'Veuillez patienter, redirection en cours ...', 142 | slow: 'Veuillez patienter, le chargement de OneNote peut être lent ...', 143 | updater: { 144 | 'checking-for-update': 'Recherche de mise à jour ...', 145 | 'update-available': 'Téléchargement des dernière mises à jour ...', 146 | 'update-not-available': 'Pas de nouvelles mise à jour.', 147 | error: (opts) => { 148 | return `Erreur dans la mise à jour automatique : ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return 'Téléchargé ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': 'Mise à jour terminée. Vous devez rédemarrer l\'application pour finir la mise à jour.' 154 | }, 155 | bookmarks: { 156 | title: 'Favoris', 157 | add: 'Ajouter un marque-page', 158 | edit: 'Modifier les favoris', 159 | form: { 160 | title: 'Titre', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Obligatoire', 166 | url: 'URL invalide', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/it-IT.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Attendi, l\'applicazione si sta riavviando.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Abilita la modalità oscura con stranezze (usando invert)' 7 | }, 8 | hideMenu: 'Nascondi menu principale (mostra con ALT)', 9 | optionToHideMenuState: { 10 | yes: 'Dopo il riavvio, nasconderà il menu principale e verrà mostrato con il tasto ALT.', 11 | }, 12 | donate: 'Dona', 13 | allowMultiple: { 14 | checkbox: 'Consenti più istanze (con alcune stranezze)', 15 | message: { 16 | yes: 'Ora puoi utilizzare più istanze con alcune stranezze.', 17 | no: 'Ora, consente solo un\'istanza, senza stranezze' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: 'Chiudi nell\'area di notifica', 24 | message: { 25 | yes: 'Il pulsante chiudi chiude veramente l\'app.', 26 | no: 'Il pulsante chiudi, invece di chiudere l\'app, la minimizza nell\'area di notifica.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Disabilita popup interni/esterni (tutti i link interni)', 31 | settings: 'Impostazioni', 32 | setProxy: 'Imposta proxy', 33 | openUrl: 'Apri un URL', 34 | promptRedirectUrlTitle: 'Redirigi all\'url', 35 | edit: 'Modifica', 36 | view: 'Mostra', 37 | download: 'Download', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Home Personale', 40 | corporateHome: 'Home Aziendale', 41 | clearCache: 'Per prima cosa esci, e quindi fai clic su questa opzione del menu per pulire la cache', 42 | quit: 'Esci', 43 | show: 'Mostra', 44 | hide: 'Nascondi', 45 | copyLocation: 'Copia questa posizione nella clipboard', 46 | copyLocationCopied: 'La posizione è stata copiata nella clipboard.', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: 'Indietro', 50 | forward: 'Inoltra', 51 | }, 52 | dialog: { 53 | info: 'Info', 54 | openUrl: { 55 | info: 'Tu puoi andare in qualsiasi URL vuoi', 56 | placeholder: 'un URL valido', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Comportamento minimizzazione', 61 | }, 62 | setProxy: { 63 | placeholder: 'Impostazioni Proxy', 64 | info: 'Per pulire il proxy, usa una stringa vuota.', 65 | clear: 'Il proxy è spento.', 66 | set: (value) => { 67 | return `Il proxy è impostato come ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Esterno', 75 | urlInternal: 'Interno', 76 | } 77 | }, 78 | button: { 79 | yes: 'Si', 80 | no: 'No', 81 | ok: 'OK', 82 | cancel: 'Annulla', 83 | save: 'Salva', 84 | clear: 'Pulisci', 85 | go: 'Vai', 86 | delete: 'Elimina', 87 | }, 88 | menu: { 89 | action: 'Azione', 90 | role: { 91 | edit: { 92 | undo: 'Annulla', 93 | redo: 'Ripeti', 94 | cut: 'Taglia', 95 | copy: 'Copia', 96 | paste: 'Incolla', 97 | pasteandmatchstyle: 'Copia e corrispondi stile', 98 | delete: 'Elimina', 99 | selectall: 'Seleziona tutto', 100 | }, 101 | view: { 102 | reload: 'Ricarica', 103 | forcereload: 'Forza ricarica', 104 | toggledevtools: 'Attiva/Disattiva strumenti di sviluppo', 105 | resetzoom: 'Reimposta Zoom', 106 | zoomin: 'Zoom In', 107 | zoomout: 'Zoom out', 108 | togglefullscreen: 'Attiva/Disattiva Schermo intero', 109 | } 110 | }, 111 | help: { 112 | title: 'Aiuto', 113 | checkUpdates: 'Controlla aggiornamenti' 114 | }, 115 | language: { 116 | label: 'Lingua / Language', 117 | alert: 'Lingua impostata su inglese.', 118 | dialog: { 119 | label: 'Provi a configurare la lingua di OneNote online?', 120 | corporate: 'Aziendale', 121 | personal: 'Personale', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'Attendi, ti sto reindirizzando ad un nuovo blocco appunti. Potrebbe richiedere un pò di tempo...', 142 | slow: 'Attendi, il caricamento di OneNote richiede un pò di tempo...', 143 | updater: { 144 | 'checking-for-update': 'Controllo aggiornamenti ...', 145 | 'update-available': 'Scaricamento ultima versione ...', 146 | 'update-not-available': 'Nessun nuovo aggiornamento.', 147 | error: (opts) => { 148 | return `Errore aggiornamento automatico: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return 'Scaricato ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': 'Aggiornamento scaricato. Potresti riavviare l\'app per aggiornare.' 154 | }, 155 | bookmarks: { 156 | title: 'Segnalibri', 157 | add: 'Aggiungi segnalibro', 158 | edit: 'Modifica segnalibro', 159 | form: { 160 | title: 'Titolo', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Richiesto', 166 | url: 'Url non valido', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/ja-JP.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'アプリケーションを再起動しています。しばらくお待ちください。', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'ダークモードを有効にする(色の反転)' 7 | }, 8 | hideMenu: 'メインメニューを隠す(Altキーで表示)', 9 | optionToHideMenuState: { 10 | yes: '再起動後メニューが非表示になります。Altキーで再表示できます。', 11 | }, 12 | donate: '寄付', 13 | allowMultiple: { 14 | checkbox: '複数のウィンドウを許可する(試験的)', 15 | message: { 16 | yes: '複数ウィンドウを許可しました。予期せぬ動作を起こす可能性があります。', 17 | no: '最大ウィンドウ数を1つに戻しました。複数ウィンドウによる副作用がなくなりました。' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: '閉じるボタンの動作を設定し、終了する代わりにトレイに最小化します', 22 | //no: '閉じるボタンの動作を設定し、アプリを終了します', 23 | checkbox: 'メニューバーにアプリを常駐させる', 24 | message: { 25 | yes: '閉じるボタンはアプリを終了するようになります。', 26 | no: '閉じるボタンは、終了せずアプリをメニューバーへしまいます。', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'リンクのポップアップ確認を無効にする(全て内部リンク扱いにする)', 31 | settings: '設定', 32 | setProxy: 'プロキシの設定', 33 | openUrl: 'URLを開く', 34 | promptRedirectUrlTitle: 'URLにリダイレクト', 35 | edit: '編集', 36 | view: '表示', 37 | download: 'ダウンロード', 38 | developer: 'Patrik Laszlo', 39 | personalHome: '個人のホーム', 40 | corporateHome: '法人のホーム', 41 | clearCache: 'サインアウトしてキャッシュをクリア', 42 | quit: '終了', 43 | show: '表示', 44 | hide: '隠す', 45 | copyLocation: 'URLをクリップボードにコピーする', 46 | copyLocationCopied: 'URLがクリップボードにコピーされました。', 47 | //disallowedContent: '許可されていないコンテンツです! 動作しない場合は、リセットしてデフォルトのホームに戻します。 (最大5秒)。', 48 | //unknownLink: 'しばらくお待ちください。 ロード中に変更される可能性があります。 これがOneNoteページでない場合は、P3X OneNoteメニューホームをクリックしてください', 49 | back: '戻る', 50 | forward: '前へ', 51 | }, 52 | dialog: { 53 | info: '情報', 54 | openUrl: { 55 | info: '任意のURLに移動できます', 56 | placeholder: '有効なURL', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: '最小化の動作', 61 | }, 62 | setProxy: { 63 | placeholder: 'プロキシ設定', 64 | info: 'プロキシをクリアするには、空の文字列のまま保存ボタンを押します。', 65 | clear: 'プロキシ設定を無効にしました。', 66 | set: (value) => { 67 | return `プロキシを${value}に設定しました。` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: '外部アプリ', 75 | urlInternal: 'アプリ内', 76 | } 77 | }, 78 | button: { 79 | yes: 'はい', 80 | no: 'いいえ', 81 | ok: 'OK', 82 | cancel: 'キャンセル', 83 | save: '保存', 84 | clear: 'クリア', 85 | go: '移動', 86 | delete: '削除', 87 | }, 88 | menu: { 89 | action: 'アクション', 90 | role: { 91 | edit: { 92 | undo: '元に戻す', 93 | redo: 'やり直し', 94 | cut: 'カット', 95 | copy: 'コピー', 96 | paste: 'ペースト', 97 | pasteandmatchstyle: 'ペーストしてスタイルを一致させる', 98 | delete: '削除', 99 | selectall: 'すべて選択', 100 | }, 101 | view: { 102 | reload: 'リロード', 103 | forcereload: '強制リロード', 104 | toggledevtools: '開発ツールの表示切り替え', 105 | resetzoom: 'ズームをリセット', 106 | zoomin: '拡大', 107 | zoomout: '縮小', 108 | togglefullscreen: 'フルスクリーンの表示切り替え', 109 | } 110 | }, 111 | help: { 112 | title: 'ヘルプ', 113 | checkUpdates: '更新を確認する' 114 | }, 115 | language: { 116 | label: '言語 / Language', 117 | alert: '言語を日本語に設定しました。', 118 | dialog: { 119 | label: 'OneNote本体の言語も設定しますか?', 120 | corporate: '法人', 121 | personal: '個人', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'しばらくお待ちください。 新しいノートブックにリダイレクトしています。 少し時間がかかります...', 142 | slow: 'しばらくお待ちください。 OneNoteの読み込みは時間がかかります...', 143 | updater: { 144 | 'checking-for-update': '更新を確認しています...', 145 | 'update-available': '最新のリリースをダウンロードしています...', 146 | 'update-not-available': '新しい更新はありません。', 147 | error: (opts) => { 148 | return `自動更新プログラムのエラー:${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return opts.progressObj.percent + '%ダウンロード済み' 152 | }, 153 | 'update-downloaded': '更新がダウンロードされました。 アプリを再起動して更新できます。' 154 | }, 155 | bookmarks: { 156 | title: 'ブックマーク', 157 | add: 'ブックマークを追加', 158 | edit: 'ブックマークを編集', 159 | form: { 160 | title: 'タイトル', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: '必須項目です。', 166 | url: '無効なURLです。', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/nl-NL.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Even wachten, de applicatie start opnieuw op.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Schakel de donkere modus in met eigenaardigheden (met behulp van omkeren)' 7 | }, 8 | hideMenu: 'Verberg hoofd menu (maak zichtbaar met ALT)', 9 | optionToHideMenuState: { 10 | yes: 'Het hoofdmenu is verborgen na een herstart en wordt weer zichtbaar bij het indrukken van ALT.', 11 | }, 12 | donate: 'Donatie', 13 | allowMultiple: { 14 | checkbox: 'Sta meerdere vensters toe (met een aantal eigenaardigheden)', 15 | message: { 16 | yes: 'Nu kunt u meerdere vensters gebruiken (met eigenaardigheden).', 17 | no: 'Nu is alleen maar een venster mogelijk (zonder eigenaardigheden)' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: 'Minimaliseren naar taakbalk', 24 | message: { 25 | yes: 'Om de applicatie te sluiten moet u de afsluiten knop gebruiken.', 26 | no: 'De afsluit knop zal het venster minimaliseren naar de taakbalk, ipv af te sluiten.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Schakel Interne / Externe popup uit (alle links intern)', 31 | settings: 'Instellingen', 32 | setProxy: 'Set proxy', 33 | openUrl: 'Open een URL', 34 | promptRedirectUrlTitle: 'Doorverwijzen naar url', 35 | edit: 'Bewerken', 36 | view: 'Bekijken', 37 | download: 'Download', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Persoonlijke begin pagina', 40 | corporateHome: 'Zakelijke begin pagina', 41 | clearCache: 'Meld u eerst af en klik vervolgens op deze menuoptie om de cache te wissen', 42 | quit: 'Afsluiten', 43 | show: 'Verschijnen', 44 | hide: 'Verbergen', 45 | copyLocation: 'Kopieer deze locatie naar het clipboard', 46 | copyLocationCopied: 'De locatie is naar het clipboard gekopieerd.', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: 'Terug', 50 | forward: 'Vooruit', 51 | }, 52 | dialog: { 53 | info: 'Info', 54 | openUrl: { 55 | info: 'U kunt elke gewensten URL invullen', 56 | placeholder: 'een geldige URL', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Minimalisatiegedrag', 61 | }, 62 | setProxy: { 63 | placeholder: 'Proxy instellingen', 64 | info: 'Door niets in te vullen kunt u de proxy instellingen wissen.', 65 | clear: 'De proxy is uitgeschakeld.', 66 | set: (value) => { 67 | return `De proxy is ingesteld naar ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Extern', 75 | urlInternal: 'Intern', 76 | } 77 | }, 78 | button: { 79 | yes: 'Ja', 80 | no: 'Nee', 81 | ok: 'OK', 82 | cancel: 'Afbreken', 83 | save: 'Opslaan', 84 | clear: 'Wissen', 85 | go: 'Gaan', 86 | delete: 'Verwijderen', 87 | }, 88 | menu: { 89 | action: 'Acties', 90 | role: { 91 | edit: { 92 | undo: 'Ongedaan maken', 93 | redo: 'Herhalen', 94 | cut: 'Knippen', 95 | copy: 'Kopieren', 96 | paste: 'Plakken', 97 | pasteandmatchstyle: 'Plak en match stijl', 98 | delete: 'Verwijderen', 99 | selectall: 'Alles selecteren', 100 | }, 101 | view: { 102 | reload: 'Herladen', 103 | forcereload: 'Geforceerd herladen', 104 | toggledevtools: 'Toggle ontwikkelings gereedschappen', 105 | resetzoom: 'Reset zoom', 106 | zoomin: 'Zoom In', 107 | zoomout: 'Zoom out', 108 | togglefullscreen: 'Schakel volledig scherm', 109 | } 110 | }, 111 | help: { 112 | title: 'Help', 113 | checkUpdates: 'Controleer op updates' 114 | }, 115 | language: { 116 | label: 'Taal / Language', 117 | alert: 'Taal ingesteld naar Nederlands.', 118 | dialog: { 119 | label: 'Probeert u de Online OneNote taal te configureren?', 120 | corporate: 'Zakelijk', 121 | personal: 'Persoonlijk', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'Even geduld, doorverwijzen naar een nieuwe notebook. Dit kan even duren...', 142 | slow: 'Even geduld, het laden van OneNote duurt even...', 143 | updater: { 144 | 'checking-for-update': 'Controleren op update ...', 145 | 'update-available': 'Nieuwste release downloaden ...', 146 | 'update-not-available': 'Geen nieuwe update.', 147 | error: (opts) => { 148 | return `Fout in auto-updater: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return opts.progressObj.percent + '%' + ' gedownload' 152 | }, 153 | 'update-downloaded': 'Update gedownload. U kunt de applicatie opnieuw opstarten om de update door te voeren.' 154 | }, 155 | bookmarks: { 156 | title: 'Bookmarks', 157 | add: 'Bookmark toevoegen', 158 | edit: 'Bookmarks bewerken', 159 | form: { 160 | title: 'Titel', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Nodig', 166 | url: 'Ongeldige url', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/pl-PL.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Proszę czekać, aplikacja jest restartowana.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Włącz tryb ciemny z dziwactwami (używając invert)' 7 | }, 8 | hideMenu: 'Ukryj główne menu (pokaż z ALT)', 9 | optionToHideMenuState: { 10 | yes: 'Po restarcie ukryje menu i pokaże po naciśnięciu ALT.', 11 | }, 12 | donate: 'Darowizna', 13 | allowMultiple: { 14 | checkbox: 'Zezwól na wiele instancji (z pewnymi dziwactwami)', 15 | message: { 16 | yes: 'Teraz można używać wielu instancji z pewnymi dziwactwami.', 17 | no: 'Teraz można używać wyłącznie pojedynczej instancji, bez dziwactw.' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: 'Zminimalizuj do paska zadań', 24 | message: { 25 | yes: 'Przycisk zamknij naprawdę zamyka aplikację.', 26 | no: 'Przycisk zamknij, zamiast zamykać, minimalizuje aplikację do paska zadań.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Wyłącz wewnętrzne / zewnętrzne wyskakujące okienka (wszyskie otwieraj wewnątrz)', 31 | settings: 'Ustawienia', 32 | setProxy: 'Ustaw proxy', 33 | openUrl: 'Otwórz URL', 34 | promptRedirectUrlTitle: 'Przekierowanie na adres URL', 35 | edit: 'Edytuj', 36 | view: 'Widok', 37 | download: 'Pobierz', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Osobiste', 40 | corporateHome: 'Służbowe', 41 | clearCache: 'Najpierw wyloguj się, a następnie kliknij tę opcję menu, aby wyczyścić pamięć podręczną', 42 | quit: 'Zakończ', 43 | show: 'Pokaż', 44 | hide: 'Ukryj', 45 | copyLocation: 'Skopiuj tę ścieżkę do schowka', 46 | copyLocationCopied: 'Ścieżka została skopiowana do schowka.', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: 'Cofnij', 50 | forward: 'Dalej', 51 | }, 52 | dialog: { 53 | info: 'Informacje', 54 | openUrl: { 55 | info: 'Możesz przejść do dowolnego URL', 56 | placeholder: 'prawidłowy URL', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Ustawienia minimalizacji', 61 | }, 62 | setProxy: { 63 | placeholder: 'Ustawienia proxy', 64 | info: 'Aby wyłązcyć, usuń zawartość.', 65 | clear: 'Proxy jest wyłączone.', 66 | set: (value) => { 67 | return `Adres serwera proxy ustawiony na ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Zewnętrzny', 75 | urlInternal: 'Wewnętrzny', 76 | } 77 | }, 78 | button: { 79 | yes: 'Tak', 80 | no: 'Nie', 81 | ok: 'OK', 82 | cancel: 'Anuluj', 83 | save: 'Zapisz', 84 | clear: 'Wyczyść', 85 | go: 'Przejdź', 86 | delete: 'Usuń', 87 | }, 88 | menu: { 89 | action: 'Działanie', 90 | role: { 91 | edit: { 92 | undo: 'Cofnij', 93 | redo: 'Ponów', 94 | cut: 'Wytnij', 95 | copy: 'Kopiuj', 96 | paste: 'Wklej', 97 | pasteandmatchstyle: 'Wklej i dostosuj do formatowania', 98 | delete: 'Usuń', 99 | selectall: 'Zaznacz wszystko', 100 | }, 101 | view: { 102 | reload: 'Załaduj ponownie', 103 | forcereload: 'Wymuś ponowne załadowanie', 104 | toggledevtools: 'Włącz/wyłącz ustawienia dewelopera', 105 | resetzoom: 'Resetowanie powiększenia', 106 | zoomin: 'Powiększ', 107 | zoomout: 'Pomniejsz', 108 | togglefullscreen: 'Włącz/wyłącz pełny ekran', 109 | } 110 | }, 111 | help: { 112 | title: 'Pomoc', 113 | checkUpdates: 'Sprawdź dostępne aktualizacje' 114 | }, 115 | language: { 116 | label: 'Język / Language', 117 | alert: 'Ustawiono język polski.', 118 | dialog: { 119 | label: 'Czy próbujesz skonfigurować język OneNote online?', 120 | corporate: 'Służbowe', 121 | personal: 'Osobiste', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'Proszę czekać, przekierowywanie do nowego notatnika trwa ...', 142 | slow: 'Proszę czekać, ładowanie OneNote trwa ...', 143 | updater: { 144 | 'checking-for-update': 'Sprawdzanie aktualizacji...', 145 | 'update-available': 'Pobieranie najnowszej wersji ...', 146 | 'update-not-available': 'Brak dostępnych aktualizacji.', 147 | error: (opts) => { 148 | return `Błąd automatycznej aktualizacji: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return 'Pobrano ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': 'Aktualizacja pobrana. Proszę uruchomić aplikację ponownie aby zainstalować.' 154 | }, 155 | bookmarks: { 156 | title: 'Zakładki', 157 | add: 'Dodaj zakładkę', 158 | edit: 'Edytuj zakładki', 159 | form: { 160 | title: 'Tytuł', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Wymagane', 166 | url: 'Błędny URL', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/pt-BR.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Aguarde, o aplicativo está reiniciando.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Ative o modo escuro com peculiaridades (usando inverter)' 7 | }, 8 | hideMenu: 'Esconder o menu principal (mostrar com ALT)', 9 | optionToHideMenuState: { 10 | yes: 'Após reiniciar, ele irá ocultar o menu e mostrar no ALT.', 11 | }, 12 | donate: 'Doar', 13 | allowMultiple: { 14 | checkbox: 'Permitir múltiplas instâncias (com algumas pecularidades)', 15 | message: { 16 | yes: 'Agora você pode utilizar múltiplas instâncias com algumas peculiaridades.', 17 | no: 'Agora, é permitido somente uma instância, sem peculiaridades' 18 | } 19 | }, 20 | disableHide: { 21 | yes: 'Defina o comportamento do botão Fechar que irá minimizar para a bandeja em vez de sair', 22 | no: 'Defina o comportamento do botão Fechar para realmente sair da aplicação', 23 | checkbox: 'Fechar bandeja', 24 | message: { 25 | yes: 'O botão de fechar realmente fecha o app.', 26 | no: 'O botão de fechar, ao invés de sair, minimiza o app na bandeja.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Desativar pop-up interno / externo (todos link interno)', 31 | settings: 'Configurações', 32 | setProxy: 'Definir um proxy', 33 | openUrl: 'Abrir uma URL', 34 | promptRedirectUrlTitle: 'Redirecionar para URL', 35 | edit: 'Editar', 36 | view: 'Ver', 37 | download: 'Baixar', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Página pessoal', 40 | corporateHome: 'Negócios', 41 | clearCache: 'Primeiro saia, depois clique nessa opção para limpar o cache', 42 | quit: 'Sair', 43 | show: 'Mostrar', 44 | hide: 'Esconder', 45 | copyLocation: 'Copiar para área de transferência', 46 | copyLocationCopied: 'A localização foi copiada para a área de transferência.', 47 | disallowedContent: 'Conteúdo desabilitado! Se não estiver funcionando, espere, ele será redefinido para o padrão. (Máximo de 5 segundos).', 48 | unknownLink: 'Espere um pouco, pode mudar durante o carregamento para o destino. Se esta não for uma página do OneNote, sinta-se livre para clicar na página inicial do P3X no menu', 49 | back: 'Voltar', 50 | forward: 'Prosseguir', 51 | }, 52 | dialog: { 53 | info: 'Informações', 54 | openUrl: { 55 | info: 'Você pode ir para qualquer URL que deseja', 56 | placeholder: 'uma URL válida', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Comportamento de minimização', 61 | }, 62 | setProxy: { 63 | placeholder: 'Configurações de proxy', 64 | info: 'Para limpar o proxy, deixe em branco.', 65 | clear: 'O proxy é desligado.', 66 | set: (value) => { 67 | return `O proxy é definido como ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Externo', 75 | urlInternal: 'Interno', 76 | } 77 | }, 78 | button: { 79 | yes: 'Sim', 80 | no: 'Não', 81 | ok: 'OK', 82 | cancel: 'Cancelar', 83 | save: 'Salvar', 84 | clear: 'Limpar', 85 | go: 'Ir', 86 | delete: 'Excluir', 87 | }, 88 | menu: { 89 | action: 'Ação', 90 | role: { 91 | edit: { 92 | undo: 'Desfazer', 93 | redo: 'Refazer', 94 | cut: 'Cortar', 95 | copy: 'Copiar', 96 | paste: 'Colar', 97 | pasteandmatchstyle: 'Colar com o mesmo estilo', 98 | delete: 'Deletar', 99 | selectall: 'Selecionar tudo', 100 | }, 101 | view: { 102 | reload: 'Recarregar', 103 | forcereload: 'Forçar recarregamento', 104 | toggledevtools: 'Alternar ferramentas de desenvolvimento', 105 | resetzoom: 'Resetar zoom', 106 | zoomin: 'Aumentar zoom', 107 | zoomout: 'Diminuir zoom', 108 | togglefullscreen: 'Tela cheia', 109 | } 110 | }, 111 | help: { 112 | title: 'Ajuda', 113 | checkUpdates: 'Verificar atualizações' 114 | }, 115 | language: { 116 | label: 'Idioma / Language', 117 | alert: 'Idioma definido para português.', 118 | dialog: { 119 | label: 'Tentar configurar idioma do OneNote Online?', 120 | corporate: 'Corporativo', 121 | personal: 'Pessoal', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'Aguarde, redirecionando para um novo caderno. Isso leva algum tempo...', 142 | slow: 'Aguarde, o carregamento do OneNote leva algum tempo...', 143 | updater: { 144 | 'checking-for-update': 'Verificando atualizações ...', 145 | 'update-available': 'Baixando última atualização ...', 146 | 'update-not-available': 'Nenhuma atualização.', 147 | error: (opts) => { 148 | return `Erro no atualizador: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return 'Baixado ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': 'Atualização baixada. Você precisa reiniciar o app para fazer efeito.' 154 | }, 155 | bookmarks: { 156 | title: 'Favoritas', 157 | add: 'Adicionar favorito', 158 | edit: 'Editar favoritos', 159 | form: { 160 | title: 'Título', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Requeridas', 166 | url: 'URL inválida', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/ru-RU.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Пожалуйста подождите, приложение перезапускается.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Включить "хитрую" тёмную тему (применяя инверсию)' 7 | }, 8 | hideMenu: 'Переключать строку меню через ALT', 9 | optionToHideMenuState: { 10 | yes: 'После перезапуска строка меню будет скрыта. Откройте её через ALT.', 11 | }, 12 | donate: 'Пожертвовать', 13 | allowMultiple: { 14 | checkbox: 'Разрешить несколько окон (могут быть ошибки)', 15 | message: { 16 | yes: 'Теперь вы можете использовать несколько окон, но могут быть ошибки.', 17 | no: 'Теперь можно использовать только одно окно, без ошибок.' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: 'Сворачивать в трей вместо выхода', 24 | message: { 25 | yes: 'Кнопка закрытия приложения завершает приложение.', 26 | no: 'Кнопка закрытия приложения сворачивает приложение в трей.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Не предупреждать о внешней ссылке (все ссылки внутренние)', 31 | settings: 'Настройки', 32 | setProxy: 'Установить прокси', 33 | openUrl: 'Открыть ссылку', 34 | promptRedirectUrlTitle: 'Перенаправление ссылки', 35 | edit: 'Изменить', 36 | view: 'Просмотр', 37 | download: 'Скачать', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Личная домашняя страница', 40 | corporateHome: 'Корпоративная домашняя страница', 41 | clearCache: 'Сначала выйдите из аккаунта, затем нажмите этот пункт меню, чтобы очистить кэш', 42 | quit: 'Выйти', 43 | show: 'Показать', 44 | hide: 'Скрыть', 45 | copyLocation: 'Скопировать этот адрес в буфер обмена', 46 | copyLocationCopied: 'Адрес скопирован в буфер обмена.', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: 'Назад', 50 | forward: 'Вперёд', 51 | }, 52 | dialog: { 53 | info: 'Информация', 54 | openUrl: { 55 | info: 'Вы можете перейти по любой ссылке', 56 | placeholder: 'введите ссылку', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Поведение сворачивания', 61 | }, 62 | setProxy: { 63 | placeholder: 'Настройки прокси', 64 | info: 'Чтобы очистить прокси, оставьте строку пустой.', 65 | clear: 'Прокси отключен.', 66 | set: (value) => { 67 | return `Прокси установлен как ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Внешняя ссылка', 75 | urlInternal: 'Внутренняя ссылка', 76 | } 77 | }, 78 | button: { 79 | yes: 'Да', 80 | no: 'Нет', 81 | ok: 'Ок', 82 | cancel: 'Отмена', 83 | save: 'Сохранить', 84 | clear: 'Очистить', 85 | go: 'Перейти', 86 | delete: 'Удалить', 87 | }, 88 | menu: { 89 | action: 'Действие', 90 | role: { 91 | edit: { 92 | undo: 'Отмена', 93 | redo: 'Возврат', 94 | cut: 'Вырезать', 95 | copy: 'Скопировать', 96 | paste: 'Вставить', 97 | pasteandmatchstyle: 'Вставить с одинаковым стилем', 98 | delete: 'Удалить', 99 | selectall: 'Выделить всё', 100 | }, 101 | view: { 102 | reload: 'Обновить', 103 | forcereload: 'Обновить принудительно', 104 | toggledevtools: 'Открыть инструменты разработчика', 105 | resetzoom: 'Сбросить масштаб', 106 | zoomin: 'Увеличить масштаб', 107 | zoomout: 'Уменьшить масштаб', 108 | togglefullscreen: 'Полноэкранный режим', 109 | } 110 | }, 111 | help: { 112 | title: 'Помощь', 113 | checkUpdates: 'Проверить обновления', 114 | }, 115 | language: { 116 | label: 'Язык / Language', 117 | alert: 'Язык изменён на русский.', 118 | dialog: { 119 | label: 'Try to configure Online OneNote language?', 120 | label: 'Попробовать настроить язык OneNote онлайн?', 121 | corporate: 'Корпоративный', 122 | personal: 'Личный', 123 | }, 124 | translations: { 125 | 'en-US': 'English', 126 | 'de-DE': 'Deutsch / German', 127 | 'pt-BR': 'Português / Portuguese', 128 | 'es-ES': 'Español / Spanish', 129 | 'fr-FR': 'Français / French', 130 | 'nl-NL': 'Nederlands / Dutch', 131 | 'it-IT': 'Italiano / Italian', 132 | 'zh-CN': '简体中文 / Simplified Chinese', 133 | 'ru-RU': 'Русский / Russian', 134 | 'pl-PL': 'Polski / Polish', 135 | 'tr-TR': 'Türkçe / Turkish', 136 | 'ja-JP': '日本語 / Japanese', 137 | 'zh-TW': '繁體中文 / Traditional Chinese', 138 | 139 | } 140 | }, 141 | }, 142 | redirecting: 'Подождите, перенаправление на новую книгу. Это займёт некоторое время...', 143 | slow: 'Подождите, загрузка OneNote занимает некоторое время...', 144 | updater: { 145 | 'checking-for-update': 'Проверка обновлений ...', 146 | 'update-available': 'Скачиваение последней версии ...', 147 | 'update-not-available': 'Обновлений не обнаружено.', 148 | error: (opts) => { 149 | return `Ошибка в автообновлении: ${opts.errorMessage}` 150 | }, 151 | 'download-progress': (opts) => { 152 | return 'Загружено ' + opts.progressObj.percent + '%' 153 | }, 154 | 'update-downloaded': 'Обновление загружено. Вы можете перезапустить приложение для обновления.' 155 | }, 156 | bookmarks: { 157 | title: 'Закладки', 158 | add: 'Добавить закладку', 159 | edit: 'Изменить закладки', 160 | form: { 161 | title: 'Название', 162 | url: 'ссылка' 163 | } 164 | }, 165 | validation: { 166 | required: 'Обязательное поле', 167 | url: 'Некорректная ссылка', 168 | }, 169 | }; 170 | 171 | module.exports = translation; 172 | -------------------------------------------------------------------------------- /src/translation/tr-TR.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: 'Lütfen bekleyin, uygulama yeniden başlatılıyor.', 4 | label: { 5 | darkThemeInvert: { 6 | title: 'Enable dark mode with quirks (using invert)' 7 | }, 8 | hideMenu: 'Ana menüyü gizle (ALT tuşu ile göster)', 9 | optionToHideMenuState: { 10 | yes: 'Yeniden başlattıktan sonra menüyü gizleyecek ve ALT tuşu ile tekrar görünür yapabilirsiniz.', 11 | }, 12 | donate: 'Bağış', 13 | allowMultiple: { 14 | checkbox: 'Birden çok örneğe izin ver (bazı tuhaflıklar dışında)', 15 | message: { 16 | yes: 'Artık bazı tuhaflıklar ile birden çok örneği kullanabilirsiniz.', 17 | no: 'Şimdi, yalnızca bir örneğe izin veriyor, hiçbir tuhaflık yok' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Çıkmak yerine tepsiye simge durumuna küçültecek kapatma düğmesi davranışını ayarlayın', 22 | //no: 'Uygulamadan gerçekten çıkmak için kapatma düğmesi davranışını ayarlayın', 23 | checkbox: 'Kapatınca uygulama simgesine(tray) küçült', 24 | message: { 25 | yes: 'Kapat düğmesi, uygulamayı gerçekten kapatır.', 26 | no: 'Kapat düğmesi, çıkmak yerine uygulamayı tepsiye(tray) küçültür.', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Dahili / Harici Açılır Pencereyi Devre Dışı Bırak (tüm bağlantılar dahili)', 31 | settings: 'Ayarlar', 32 | setProxy: 'Proxy ayarla', 33 | openUrl: 'Bir URL aç', 34 | promptRedirectUrlTitle: 'URL Yönlendirme', 35 | edit: 'Düzenle', 36 | view: 'Görüntüle', 37 | download: 'İndir', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Personal home', 40 | corporateHome: 'Corporate home', 41 | clearCache: 'Önce oturumu kapatın, ardından önbelleği temizlemek için bu menü seçeneğine tıklayın', 42 | quit: 'Çıkış', 43 | show: 'Göster', 44 | hide: 'Gizle', 45 | copyLocation: 'Bu konumu panoya kopyala', 46 | copyLocationCopied: 'Konum panoya kopyalanır.', 47 | //disallowedContent: 'İzin verilmeyen içerik! Çalışmıyorsa, bekleyin, varsayılan eve sıfırlanacaktır. (En fazla 5 saniye).', 48 | //unknownLink: 'Bekle, hedefe yüklenirken değişebilir. Bu bir OneNote sayfası değilse, P3X OneNote ana menüsüne tıklayarak ücretsiz', 49 | back: 'Geri', 50 | forward: 'İleri', 51 | }, 52 | dialog: { 53 | info: 'Bilgi', 54 | openUrl: { 55 | info: 'İstediğiniz herhangi bir URL\'ye gidebilirsiniz', 56 | placeholder: 'geçerli bir URL', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: 'Minimizasyon davranışı', 61 | }, 62 | setProxy: { 63 | placeholder: 'Proxy ayarlar', 64 | info: 'Proxy\'yi temizlemek için boş bir dize kullanın.', 65 | clear: 'Proxy kapalı.', 66 | set: (value) => { 67 | return `Proxy, ${value} olarak değiştirildi.` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'Harici', 75 | urlInternal: 'Dahili', 76 | } 77 | }, 78 | button: { 79 | yes: 'Evet', 80 | no: 'Hayır', 81 | ok: 'TAMAM', 82 | cancel: 'İptal', 83 | save: 'Kaydet', 84 | clear: 'Temizle', 85 | go: 'İleri', 86 | delete: 'Sil', 87 | }, 88 | menu: { 89 | action: 'Eylem', 90 | role: { 91 | edit: { 92 | undo: 'Geri al', 93 | redo: 'İleri al', 94 | cut: 'Kes', 95 | copy: 'Kopyala', 96 | paste: 'Yapıştır', 97 | pasteandmatchstyle: 'Stili yapıştır ve eşleştir', 98 | delete: 'İptal', 99 | selectall: 'Hepsini seç', 100 | }, 101 | view: { 102 | reload: 'Yenile', 103 | forcereload: 'Zorla Yenile', 104 | toggledevtools: 'Toggle development tools', 105 | resetzoom: 'Yakınlaştırmayı Sıfırla', 106 | zoomin: 'Yakınlaştır', 107 | zoomout: 'Uzaklaştır', 108 | togglefullscreen: 'Tam ekrana geç', 109 | } 110 | }, 111 | help: { 112 | title: 'Yardım', 113 | checkUpdates: 'Güncellemeleri kontrol et' 114 | }, 115 | language: { 116 | label: 'Dil / Language', 117 | alert: 'Dil Türkçe olarak ayarlandı.', 118 | dialog: { 119 | label: 'Çevrimiçi OneNote dilini yapılandırmayı denediniz mi?', 120 | corporate: 'Corporate', 121 | personal: 'Personal', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: 'Bekle, yeni bir not defterine yönlendiriliyor. Biraz zaman alır...', 142 | slow: 'Bekle, OneNote\'un yüklenmesi biraz zaman alıyor...', 143 | updater: { 144 | 'checking-for-update': 'Güncellemeler kontrol ediliyor ...', 145 | 'update-available': 'En son sürüm indiriliyor ...', 146 | 'update-not-available': 'Yeni güncelleme yok.', 147 | error: (opts) => { 148 | return `Otomatik güncellemede hata: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return 'Downloaded ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': 'Güncelleme indirildi. Güncellemek için uygulamayı yeniden başlatabilirsiniz.' 154 | }, 155 | bookmarks: { 156 | title: 'Yer imleri', 157 | add: 'Yer imi ekle', 158 | edit: 'Yer imi düzenle', 159 | form: { 160 | title: 'Başlık', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Gerekli', 166 | url: 'Geçersiz url', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/zh-CN.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: '请稍等,应用程序正在重启', 4 | label: { 5 | darkThemeInvert: { 6 | title: '开启实验性暗黑模式 (使用反色)' 7 | }, 8 | hideMenu: '隐藏菜单栏(按下Alt键显示)', 9 | optionToHideMenuState: { 10 | yes: '重启后,菜单栏将被隐藏并可以通过Alt键显示', 11 | }, 12 | donate: '捐赠', 13 | allowMultiple: { 14 | checkbox: '允许多个应用实例(实验性)', 15 | message: { 16 | yes: '现在,您可以同时打开多个应用实例', 17 | no: '现在,只允许打开一个应用实例' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: '关闭至托盘', 24 | message: { 25 | yes: '按下关闭按钮会真正关闭这个应用', 26 | no: '按下关闭按钮不会退出而是最小化应用至托盘', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: '禁用内部 / 外部弹出窗口 (所有内部链接)', 31 | settings: '设置', 32 | setProxy: '代理设置', 33 | openUrl: '访问一个URL', 34 | promptRedirectUrlTitle: '重定向至url', 35 | edit: '编辑', 36 | view: '查看', 37 | download: '下载', 38 | developer: 'Patrik Laszlo', 39 | personalHome: '个人主页', 40 | corporateHome: '公司主页', 41 | clearCache: '请先退出登陆,再按下此按钮来清除缓存', 42 | quit: '退出', 43 | show: '显示', 44 | hide: '隐藏', 45 | copyLocation: '复制页面地址至剪贴板', 46 | copyLocationCopied: '页面地址已经被复制到剪贴板', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: '后退', 50 | forward: '前进', 51 | }, 52 | dialog: { 53 | info: '信息', 54 | openUrl: { 55 | info: '你可以访问任何URL', 56 | placeholder: '一个有效的URL', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: '最小化表现', 61 | }, 62 | setProxy: { 63 | placeholder: '代理设置', 64 | info: '若要清空代理,请使用空白字符串', 65 | clear: '代理已经被关闭', 66 | set: (value) => { 67 | return `代理已被设为 ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: '外部', 75 | urlInternal: '内部', 76 | } 77 | }, 78 | button: { 79 | yes: '是', 80 | no: '否', 81 | ok: '好的', 82 | cancel: '取消', 83 | save: '保存', 84 | clear: '清除', 85 | go: '前往', 86 | delete: '删除', 87 | }, 88 | menu: { 89 | action: '行为', 90 | role: { 91 | edit: { 92 | undo: '撤销', 93 | redo: '恢复', 94 | cut: '剪切', 95 | copy: '复制', 96 | paste: '粘贴', 97 | pasteandmatchstyle: '粘贴并匹配格式', 98 | delete: '删除', 99 | selectall: '全选', 100 | }, 101 | view: { 102 | reload: '重新加载', 103 | forcereload: '强制重新加载', 104 | toggledevtools: '开发者工具', 105 | resetzoom: '重置缩放', 106 | zoomin: '放大文字', 107 | zoomout: '缩小文字', 108 | togglefullscreen: '全屏', 109 | } 110 | }, 111 | help: { 112 | title: '帮助', 113 | checkUpdates: '检查更新' 114 | }, 115 | language: { 116 | label: '语言 / Language', 117 | alert: '语言设置为中文', 118 | dialog: { 119 | label: '尝试改变在线OneNote的语言配置?', 120 | corporate: '公司', 121 | personal: '个人', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese', 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: '请稍等,正在重定向至新笔记本,这会花费一些时间', 142 | slow: '请稍等,加载OneNote需要花费一些时间', 143 | updater: { 144 | 'checking-for-update': '正在检查更新 ...', 145 | 'update-available': '正在下载最近的发行版 ...', 146 | 'update-not-available': '没有新的更新.', 147 | error: (opts) => { 148 | return `自动更新器错误: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return '已下载 ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': '更新已下载,重启应用以更新' 154 | }, 155 | bookmarks: { 156 | title: '书签', 157 | add: '添加书签', 158 | edit: '编辑书签', 159 | form: { 160 | title: '标题', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Required', 166 | url: '无效的url', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | -------------------------------------------------------------------------------- /src/translation/zh-TW.js: -------------------------------------------------------------------------------- 1 | const translation = { 2 | title: 'P3X OneNote', 3 | restart: '請稍等,程式正在重新啟動', 4 | label: { 5 | darkThemeInvert: { 6 | title: '使用深色模式 (using invert)' 7 | }, 8 | hideMenu: '隱藏主選單 (按ALT鍵顯示)', 9 | optionToHideMenuState: { 10 | yes: '重新啟動後,即隱藏主選單,須按ALT鍵顯示', 11 | }, 12 | donate: '捐助', 13 | allowMultiple: { 14 | checkbox: 'Allow multiple instances (with some quirks)', 15 | message: { 16 | yes: 'Now you can use multiple instance with some quirks.', 17 | no: 'Now, it allows only one instance, no quirks' 18 | } 19 | }, 20 | disableHide: { 21 | //yes: 'Set the close button behaviour that will minimize to the tray instead of quitting', 22 | //no: 'Set the close button behaviour as to really quit the app', 23 | checkbox: '最小化', 24 | message: { 25 | yes: '按關閉扭,即關閉程式', 26 | no: '按關閉扭,最小化', 27 | 28 | } 29 | }, 30 | optionToDisableInternalExternalPopup: 'Disable Internal / External Popup (all link internal)', 31 | settings: '設定', 32 | setProxy: '設定代理伺服器', 33 | openUrl: '開啟網址', 34 | promptRedirectUrlTitle: 'Redirect to url', 35 | edit: '編輯', 36 | view: '顯示', 37 | download: '下載', 38 | developer: 'Patrik Laszlo', 39 | personalHome: 'Personal home', 40 | corporateHome: 'Corporate home', 41 | clearCache: 'First sign off, then click this menu option to clear the cache', 42 | quit: '退出', 43 | show: '顯示', 44 | hide: '隱藏', 45 | copyLocation: '複製當前頁面路徑到剪貼簿', 46 | copyLocationCopied: '已複製當前頁面路徑到剪貼簿', 47 | //disallowedContent: 'Disallowed content! If not working, hang on, it will reset to the default home. (Max 5 seconds).', 48 | //unknownLink: 'Hang on, it might change while loading to the destination. If this is not a OneNote page, free to click on the P3X OneNote menu home', 49 | back: 'Back', 50 | forward: 'Forward', 51 | }, 52 | dialog: { 53 | info: 'Info', 54 | openUrl: { 55 | info: '你可以開啟任意想要開啟的網址', 56 | placeholder: '一個有效網址', 57 | 58 | }, 59 | minimizationBehavior: { 60 | title: '最小化行為', 61 | }, 62 | setProxy: { 63 | placeholder: '代理伺服器設定', 64 | info: '要清除代理伺服器設定,請留白', 65 | clear: '代理伺服器被關閉', 66 | set: (value) => { 67 | return `代理伺服器設定為 ${value}` 68 | } 69 | }, 70 | redirect: { 71 | url: (opts) => { 72 | return `${opts.url}` 73 | }, 74 | urlExternal: 'External', 75 | urlInternal: 'Internal', 76 | } 77 | }, 78 | button: { 79 | yes: '是', 80 | no: '否', 81 | ok: '好', 82 | cancel: '取消', 83 | save: '儲存', 84 | clear: '清除', 85 | go: 'Go', 86 | delete: '刪除', 87 | }, 88 | menu: { 89 | action: 'Action', 90 | role: { 91 | edit: { 92 | undo: '復原', 93 | redo: '取消復原', 94 | cut: '剪下', 95 | copy: '複製', 96 | paste: '貼上', 97 | pasteandmatchstyle: '貼上並保留格式', 98 | delete: '刪除', 99 | selectall: '全選', 100 | }, 101 | view: { 102 | reload: '重新載入', 103 | forcereload: '強制重新載入', 104 | toggledevtools: '切換開發者模式', 105 | resetzoom: '重置縮放', 106 | zoomin: '放大', 107 | zoomout: '縮小', 108 | togglefullscreen: '使用全螢幕模式', 109 | } 110 | }, 111 | help: { 112 | title: 'Help', 113 | checkUpdates: '檢查更新' 114 | }, 115 | language: { 116 | label: '語言 / Language', 117 | alert: '語言修改成繁體中文.', 118 | dialog: { 119 | label: '要嘗試修改線上的OneNote語言嗎?', 120 | corporate: 'Corporate', 121 | personal: 'Personal', 122 | }, 123 | translations: { 124 | 'en-US': 'English', 125 | 'de-DE': 'Deutsch / German', 126 | 'pt-BR': 'Português / Portuguese', 127 | 'es-ES': 'Español / Spanish', 128 | 'fr-FR': 'Français / French', 129 | 'nl-NL': 'Nederlands / Dutch', 130 | 'it-IT': 'Italiano / Italian', 131 | 'zh-CN': '简体中文 / Simplified Chinese', 132 | 'ru-RU': 'Русский / Russian', 133 | 'pl-PL': 'Polski / Polish', 134 | 'tr-TR': 'Türkçe / Turkish', 135 | 'ja-JP': '日本語 / Japanese', 136 | 'zh-TW': '繁體中文 / Traditional Chinese' 137 | 138 | } 139 | }, 140 | }, 141 | redirecting: '請稍等,正在導至新的筆記本需要再一些時間...', 142 | slow: '請稍等,讀取OneNote需要再一些時間...', 143 | updater: { 144 | 'checking-for-update': '正在檢查更新 ...', 145 | 'update-available': '下載最新板中 ...', 146 | 'update-not-available': '沒有新版本', 147 | error: (opts) => { 148 | return `自動更新錯誤: ${opts.errorMessage}` 149 | }, 150 | 'download-progress': (opts) => { 151 | return '下載 ' + opts.progressObj.percent + '%' 152 | }, 153 | 'update-downloaded': '更信下載完畢,請重新啟動套用' 154 | }, 155 | bookmarks: { 156 | title: '書籤', 157 | add: '新增書籤', 158 | edit: '修改書籤', 159 | form: { 160 | title: '標題', 161 | url: 'URL' 162 | } 163 | }, 164 | validation: { 165 | required: 'Required', 166 | url: '無效網址', 167 | }, 168 | }; 169 | 170 | module.exports = translation; 171 | --------------------------------------------------------------------------------