├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── 404.html ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── css ├── export.css ├── index.css ├── passwords.css ├── settings.css ├── tailwind.min.css └── themes │ ├── blue.css │ ├── dark.css │ ├── dracula.css │ ├── gray.css │ ├── light.css │ ├── monokai.css │ ├── nord.css │ ├── solarizedDark.css │ └── tokyoNight.css ├── export.html ├── images ├── 1password.svg ├── bitwarden.png ├── chromium.png ├── dashlane.png ├── firefox.png ├── keepassxc.svg ├── keeper.png ├── lastpass.png ├── logo.png ├── logo128.png ├── logo16.png ├── logo32.png ├── logo48.png ├── nordpass.png └── yubikey.png ├── index.html ├── js ├── Argon2id.min.js ├── Argon2idWorker.min.js ├── PasskyAPI.js ├── PasswordEntropy.min.js ├── PasswordGenerator.min.js ├── XChaCha20.min.js ├── content-script.js ├── default-functions.js ├── export.js ├── header.js ├── jquery.csv.min.js ├── jquery.min.js ├── lang.js ├── login.js ├── passwords.js ├── qrcode.js ├── register.js └── settings.js ├── lang ├── af │ └── lang.json ├── ar │ └── lang.json ├── bs │ └── lang.json ├── ca │ └── lang.json ├── cs │ └── lang.json ├── da │ └── lang.json ├── de │ └── lang.json ├── el │ └── lang.json ├── en │ └── lang.json ├── es-ES │ └── lang.json ├── fa │ └── lang.json ├── fi │ └── lang.json ├── fr │ └── lang.json ├── he │ └── lang.json ├── hi │ └── lang.json ├── hu │ └── lang.json ├── id │ └── lang.json ├── it │ └── lang.json ├── ja │ └── lang.json ├── ko │ └── lang.json ├── nl │ └── lang.json ├── no │ └── lang.json ├── pl │ └── lang.json ├── pt-BR │ └── lang.json ├── pt-PT │ └── lang.json ├── ro │ └── lang.json ├── ru │ └── lang.json ├── sl │ └── lang.json ├── sr │ └── lang.json ├── sv-SE │ └── lang.json ├── tr │ └── lang.json ├── uk │ └── lang.json ├── vi │ └── lang.json ├── zh-CN │ └── lang.json └── zh-TW │ └── lang.json ├── manifest.json ├── passwords.html ├── register.html └── settings.html /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [Rabbit-Company] 2 | open_collective: rabbit-company 3 | liberapay: RabbitCompany 4 | ko_fi: rabbitcompany 5 | patreon: rabbitcompany 6 | issuehunt: rabbit-company 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Error 404 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 |

404

15 |
16 |
17 |

Page not found

18 |

Please check the URL in the address bar and try again.

19 |
20 |
21 | Go back home 22 | Contact support 23 |
24 |
25 |
26 |
27 |
28 | 29 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | info@rabbit-company.com. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

🔒 Passky Browser Extension 🔒

2 | 3 | [![GitHub issues](https://img.shields.io/github/issues/Rabbit-Company/Passky-Browser-Extension?color=blue&style=for-the-badge)](https://github.com/Rabbit-Company/Passky-Browser-Extension/issues) 4 | [![GitHub stars](https://img.shields.io/github/stars/Rabbit-Company/Passky-Browser-Extension?style=for-the-badge)](https://github.com/Rabbit-Company/Passky-Browser-Extension/stargazers) 5 | [![GitHub forks](https://img.shields.io/github/forks/Rabbit-Company/Passky-Browser-Extension?style=for-the-badge)](https://github.com/Rabbit-Company/Passky-Browser-Extension/network) 6 | [![GitHub license](https://img.shields.io/github/license/Rabbit-Company/Passky-Browser-Extension?color=blue&style=for-the-badge)](https://github.com/Rabbit-Company/Passky-Browser-Extension/blob/main/LICENSE) 7 | 8 | ### [Download from Official Website](https://passky.org/download) 9 | 10 | ## Passky Clients 11 | 12 | * [Website](https://github.com/Rabbit-Company/Passky-Website#installation) 13 | * [Browser Extension](https://github.com/Rabbit-Company/Passky-Browser-Extension#installation) 14 | * [Desktop Application](https://github.com/Rabbit-Company/Passky-Desktop#installation) 15 | * [Android Application](https://github.com/Rabbit-Company/Passky-Android#installation) 16 | 17 | ## What is Passky? 18 | 19 | Passky is a simple, modern, lightweight, open source and secure password manager. 20 | 21 | [![Passky - Password manager](https://img.youtube.com/vi/yrk6cHkgVA8/0.jpg)](https://www.youtube.com/watch?v=yrk6cHkgVA8 "Click to watch!") 22 | 23 | ## How Much Does it Cost? 24 | 25 | Passky is a free, open-source password manager that simplifies your digital life. Both the free and premium plans include advanced security features such as two-factor authentication to ensure the safety and security of your sensitive data. 26 | 27 | While the free plan allows you to store up to 100 passwords, the premium plan offers additional benefits such as the ability to store an unlimited number of passwords. [Upgrade to the premium plan](https://passky.org/pricing) to gain access to all of Passky's features and take your password security to the next level. 28 | 29 | At Passky, we take your security seriously, and we don't compromise on safety when it comes to password management. [Sign up now](https://vault.passky.org/register) and experience the peace of mind that comes with using Passky. 30 | 31 | ## How it Works? 32 | 33 | Passky uses a combination of advanced encryption methods to ensure the security of your data. 34 | 35 | Passky is based on a **zero trust architecture** and uses advanced encryption methods such as **XChaCha20** and **Argon2id** to ensure the security of your sensitive data. 36 | 37 | For sensitive data encryption, Passky uses **XChaCha20**, a state-of-the-art encryption algorithm that provides a **high level of security and performance**. This encryption method is designed to be **resistant to known-plaintext attacks and other forms of cryptanalysis**. 38 | 39 | For master password hashing, Passky uses **Argon2id**, a password-hashing algorithm that has been recognized as the winner of multiple password-hashing competitions, such as the **[Password Hashing Competition (PHC)](https://www.password-hashing.net)** held by the community. It is designed to be **resistant to brute-force attacks**. This algorithm uses a combination of memory-hard and data-dependent techniques to make it difficult for attackers to guess your master password. 40 | 41 | When you save your account information to Passky, **all sensitive data is fully encrypted** using **XChaCha20**. The encrypted data is then stored on Passky's servers. 42 | 43 | When you try to access your account, Passky will prompt you to input your master password. The master password is then hashed using **Argon2id** algorithm to ensure its security. The hashed master password is then used to decrypt the sensitive data, allowing you to access your account. 44 | 45 | In summary, **Passky uses advanced encryption methods such as XChaCha20 and Argon2id** to ensure the security of your sensitive data and master password, making it difficult for anyone to access your information without your permission. 46 | 47 | ## How Does Passky Compare to the Competition? 48 | 49 | Feature | Passky | Bitwarden | NordPass | Dashlane | 1Password | LastPass 50 | --- | :---: | :---: | :---: | :---: | :---: | :---: | 51 | Premium Price | $${\color{orange}\$2/month}$$ | $${\color{green}\$0.83/month}$$ | $${\color{orange}1.99€/month}$$ | $${\color{orange}2€/month}$$ | $${\color{red}\$2.99/month}$$ | $${\color{red}2.90€/month}$$ | 52 | Number of Passwords | $${\color{green}Unlimited}$$ | $${\color{green}Unlimited}$$ | $${\color{green}Unlimited}$$ | $${\color{green}Unlimited}$$ | $${\color{green}Unlimited}$$ | $${\color{green}Unlimited}$$ 53 | Two-factor Authentication | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ 54 | Zero-knowledge architecture | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ 55 | Encryption | $${\color{green}XChaCha20/Argon2id}$$ | $${\color{orange}AES-256/PBKDF2}$$ | $${\color{green}XChaCha20/Argon2id}$$ | $${\color{orange}AES-256/PBKDF2}$$ | $${\color{orange}AES-256/PBKDF2}$$ | $${\color{orange}AES-256/PBKDF2}$$ 56 | Open-Source | $${\color{green}Yes}$$ | $${\color{green}Yes}$$ | $${\color{red}No}$$ | $${\color{red}No}$$ | $${\color{red}No}$$ | $${\color{red}No}$$ 57 | Customization | $${\color{green}Yes}$$ | $${\color{red}No}$$ | $${\color{red}No}$$ | $${\color{red}No}$$ | $${\color{red}No}$$ | $${\color{red}No}$$ 58 | 59 | > Comparison data accurate as of January 25th, 2023 60 | 61 | ## Installation 62 | ### Chrome, Edge, Brave, Opera, Vivaldi... 63 | 1. Visit [Chrome web store](https://chrome.google.com/webstore/detail/passky/ngncpgfjhnkgfcjamgljadegplonbihi) and search for Passky 64 | 2. Click on "Add to Chrome" button 65 | 3. Passky is now installed 66 | 67 | ### FireFox 68 | 1. Visit [Mozilla addons store](https://addons.mozilla.org/en-US/firefox/addon/passky/) and search for Passky 69 | 2. Click on "Add to FireFox" button 70 | 3. Passky is now installed 71 | -------------------------------------------------------------------------------- /css/export.css: -------------------------------------------------------------------------------- 1 | ::-webkit-scrollbar { 2 | width: 8px; 3 | } 4 | 5 | body{ 6 | min-width: 500px; 7 | min-height: 500px; 8 | overflow-x: hidden; 9 | } 10 | 11 | body * { 12 | -webkit-tap-highlight-color: rgba(0,0,0,0); 13 | } 14 | 15 | #passky-logo{ 16 | background-color: #e6f5ff; 17 | } 18 | 19 | #bitwarden-logo{ 20 | background-color: #3c8dbc; 21 | } 22 | 23 | #lastpass-logo{ 24 | background-color: #d12f2e; 25 | } 26 | 27 | #dashline-logo{ 28 | background-color: #0e353d; 29 | } 30 | 31 | #onepassword-logo{ 32 | background-color: #fff; 33 | } 34 | 35 | #keeper-logo{ 36 | background-color: #fff; 37 | } 38 | 39 | #nordpass-logo{ 40 | background-color: #d3f8f7; 41 | } -------------------------------------------------------------------------------- /css/index.css: -------------------------------------------------------------------------------- 1 | body{ 2 | min-width: 350px; 3 | min-height: 350px; 4 | overflow-x: hidden; 5 | } 6 | 7 | body * { 8 | -webkit-tap-highlight-color: rgba(0,0,0,0); 9 | } 10 | 11 | ::-webkit-scrollbar { 12 | width: 8px; 13 | } 14 | 15 | input::-webkit-outer-spin-button, 16 | input::-webkit-inner-spin-button{ 17 | -webkit-appearance: none; 18 | margin: 0; 19 | } 20 | 21 | input[type=number]{ 22 | -moz-appearance: textfield; 23 | } -------------------------------------------------------------------------------- /css/passwords.css: -------------------------------------------------------------------------------- 1 | ::-webkit-scrollbar { 2 | width: 8px; 3 | } 4 | 5 | body{ 6 | min-width: 500px; 7 | min-height: 500px; 8 | overflow-x: hidden; 9 | } 10 | 11 | body * { 12 | -webkit-tap-highlight-color: rgba(0,0,0,0); 13 | } 14 | 15 | input::-webkit-outer-spin-button, 16 | input::-webkit-inner-spin-button{ 17 | -webkit-appearance: none; 18 | margin: 0; 19 | } 20 | 21 | input[type=number]{ 22 | -moz-appearance: textfield; 23 | } -------------------------------------------------------------------------------- /css/settings.css: -------------------------------------------------------------------------------- 1 | ::-webkit-scrollbar { 2 | width: 8px; 3 | } 4 | 5 | body{ 6 | min-width: 500px; 7 | min-height: 500px; 8 | overflow-x: hidden; 9 | } 10 | 11 | body * { 12 | -webkit-tap-highlight-color: rgba(0,0,0,0); 13 | } 14 | 15 | select{ 16 | -webkit-appearance: none; 17 | } -------------------------------------------------------------------------------- /css/themes/blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Blue theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #4F46E5 !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #DFE5EB !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #192741 !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #24375c !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #2c436d !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #4F46E5 !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #4F46E5 !important; 49 | color: #DFE5EB !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #4338CA !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #059669 !important; 58 | color: #DFE5EB !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #047857 !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #DC2626 !important; 67 | color: #DFE5EB !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #B91C1C !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #2c436d !important; 76 | border-color: #24375c !important; 77 | color: #DFE5EB !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #2c436d !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #2c436d !important; 90 | color: #DFE5EB !important; 91 | border-color: #152137 !important; 92 | } 93 | 94 | textarea { 95 | background-color: #2c436d !important; 96 | color: #DFE5EB !important; 97 | border-color: #152137 !important; 98 | } 99 | 100 | svg { 101 | stroke: #4062a5 !important; 102 | } 103 | 104 | input[type="checkbox"] { 105 | accent-color: #4F46E5; 106 | } 107 | 108 | /* 109 | Main menu 110 | */ 111 | 112 | .mainMenuLink { 113 | background-color: #24375c !important; 114 | color: #6B7280 !important; 115 | } 116 | 117 | .mainMenuLink:hover { 118 | color: #DFE5EB !important; 119 | border-color: #D1D5DB !important; 120 | } 121 | 122 | .mainMenuLinkSelected { 123 | color: #DFE5EB !important; 124 | border-color: #6366F1 !important; 125 | } 126 | 127 | .mainMenuMobileLink { 128 | background-color: #24375c !important; 129 | color: #DFE5EB !important; 130 | } 131 | 132 | .mainMenuMobileLink:hover { 133 | background-color: #2c436d !important; 134 | border-color: #6B7280 !important; 135 | } 136 | 137 | .mainMenuMobileLinkSelected { 138 | background-color: #2c436d !important; 139 | border-color: #6366F1 !important; 140 | color: #6366F1 !important; 141 | } 142 | 143 | #main-menu-toggle-btn { 144 | color: #9CA3AF !important; 145 | } 146 | 147 | #main-menu-toggle-btn:hover { 148 | color: #6B7280 !important; 149 | background-color: #2c436d !important; 150 | } 151 | 152 | /* 153 | Border colors 154 | */ 155 | 156 | .primaryBorderColor { 157 | border-color: #152137 !important; 158 | } 159 | 160 | /* 161 | Placeholder colors 162 | */ 163 | 164 | .primaryBorderColor::placeholder { 165 | color: #6B7280; 166 | opacity: 1; 167 | } 168 | 169 | .primaryBorderColor::-ms-input-placeholder { 170 | color: #6B7280; 171 | opacity: 1; 172 | } 173 | 174 | /* 175 | Stroke colors 176 | */ 177 | 178 | .primaryStrokeColor { 179 | stroke: #DFE5EB !important; 180 | } 181 | 182 | /* 183 | Passwords 184 | */ 185 | 186 | .passwordsBackgroundColor { 187 | background-color: #192741 !important; 188 | } 189 | 190 | .passwordsBorderColor { 191 | border-color: #111827 !important; 192 | } 193 | 194 | /* 195 | Import and Export buttons 196 | */ 197 | 198 | .importExportButtons { 199 | color: #b1bfce !important; 200 | border-color: #192741 !important; 201 | } 202 | 203 | .importExportButtons:hover { 204 | color: #91a6ba !important; 205 | } 206 | 207 | /* 208 | Scroll bar 209 | */ 210 | 211 | ::-webkit-scrollbar-track { 212 | background: #24375c; 213 | } 214 | 215 | ::-webkit-scrollbar-thumb { 216 | background: #395793; 217 | } 218 | 219 | ::-webkit-scrollbar-thumb:hover { 220 | background: #4062a5; 221 | } -------------------------------------------------------------------------------- /css/themes/dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dark theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #4F46E5 !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #DFE5EB !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #0D1117 !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #161B22 !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #21262D !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #4F46E5 !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #4F46E5 !important; 49 | color: #DFE5EB !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #4338CA !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #059669 !important; 58 | color: #DFE5EB !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #047857 !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #DC2626 !important; 67 | color: #DFE5EB !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #B91C1C !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #21262D !important; 76 | border-color: #161B22 !important; 77 | color: #DFE5EB !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #2b323b !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #21262D !important; 90 | color: #DFE5EB !important; 91 | border-color: #16191d !important; 92 | } 93 | 94 | textarea { 95 | background-color: #21262D !important; 96 | color: #DFE5EB !important; 97 | border-color: #16191d !important; 98 | } 99 | 100 | input[type="checkbox"] { 101 | accent-color: #4F46E5; 102 | } 103 | 104 | /* 105 | Main menu 106 | */ 107 | 108 | .mainMenuLink { 109 | background-color: #161B22 !important; 110 | color: #6B7280 !important; 111 | } 112 | 113 | .mainMenuLink:hover { 114 | color: #DFE5EB !important; 115 | border-color: #D1D5DB !important; 116 | } 117 | 118 | .mainMenuLinkSelected { 119 | color: #DFE5EB !important; 120 | border-color: #6366F1 !important; 121 | } 122 | 123 | .mainMenuMobileLink { 124 | background-color: #161B22 !important; 125 | color: #DFE5EB !important; 126 | } 127 | 128 | .mainMenuMobileLink:hover { 129 | background-color: #21262D !important; 130 | border-color: #6B7280 !important; 131 | } 132 | 133 | .mainMenuMobileLinkSelected { 134 | background-color: #21262D !important; 135 | border-color: #6366F1 !important; 136 | color: #6366F1 !important; 137 | } 138 | 139 | #main-menu-toggle-btn { 140 | color: #9CA3AF !important; 141 | } 142 | 143 | #main-menu-toggle-btn:hover { 144 | color: #6B7280 !important; 145 | background-color: #21262D !important; 146 | } 147 | 148 | /* 149 | Border colors 150 | */ 151 | 152 | .primaryBorderColor { 153 | border-color: #16191d !important; 154 | } 155 | 156 | /* 157 | Placeholder colors 158 | */ 159 | 160 | .primaryBorderColor::placeholder { 161 | color: #6B7280; 162 | opacity: 1; 163 | } 164 | 165 | .primaryBorderColor::-ms-input-placeholder { 166 | color: #6B7280; 167 | opacity: 1; 168 | } 169 | 170 | /* 171 | Stroke colors 172 | */ 173 | 174 | .primaryStrokeColor { 175 | stroke: #DFE5EB !important; 176 | } 177 | 178 | /* 179 | Passwords 180 | */ 181 | 182 | .passwordsBackgroundColor { 183 | background-color: #0D1117 !important; 184 | } 185 | 186 | .passwordsBorderColor { 187 | border-color: #000000 !important; 188 | } 189 | 190 | /* 191 | Import and Export buttons 192 | */ 193 | 194 | .importExportButtons { 195 | color: #b1bfce !important; 196 | border-color: #0D1117 !important; 197 | } 198 | 199 | .importExportButtons:hover { 200 | color: #91a6ba !important; 201 | } 202 | 203 | /* 204 | Scroll bar 205 | */ 206 | 207 | ::-webkit-scrollbar-track { 208 | background: #161B22; 209 | } 210 | 211 | ::-webkit-scrollbar-thumb { 212 | background: #28313e; 213 | } 214 | 215 | ::-webkit-scrollbar-thumb:hover { 216 | background: #323e4d; 217 | } -------------------------------------------------------------------------------- /css/themes/dracula.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dark theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #bd93f9 !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6e7291 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #f8f8f2 !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #282a36 !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #44475a !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #4d5066 !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #bd93f9 !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #bd93f9 !important; 49 | color: #f8f8f2 !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #b687f8 !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #bd93f9 !important; 58 | color: #f8f8f2 !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #b687f8 !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #ff5555 !important; 67 | color: #f8f8f2 !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #ff4d4d !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #4d5066 !important; 76 | border-color: #424457 !important; 77 | color: #f8f8f2 !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #585b74 !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #4d5066 !important; 90 | color: #f8f8f2 !important; 91 | border-color: #424457 !important; 92 | } 93 | 94 | textarea { 95 | background-color: #4d5066 !important; 96 | color: #f8f8f2 !important; 97 | border-color: #424457 !important; 98 | } 99 | 100 | svg { 101 | stroke: #636783 !important; 102 | } 103 | 104 | input[type="checkbox"] { 105 | accent-color: #bd93f9; 106 | } 107 | 108 | /* 109 | Main menu 110 | */ 111 | 112 | .mainMenuLink { 113 | background-color: #44475a !important; 114 | color: #6e7291 !important; 115 | } 116 | 117 | .mainMenuLink:hover { 118 | color: #f8f8f2 !important; 119 | border-color: #D1D5DB !important; 120 | } 121 | 122 | .mainMenuLinkSelected { 123 | color: #f8f8f2 !important; 124 | border-color: #6272a4 !important; 125 | } 126 | 127 | .mainMenuMobileLink { 128 | background-color: #44475a !important; 129 | color: #f8f8f2 !important; 130 | } 131 | 132 | .mainMenuMobileLink:hover { 133 | background-color: #4d5066 !important; 134 | border-color: #6e7291 !important; 135 | } 136 | 137 | .mainMenuMobileLinkSelected { 138 | background-color: #4d5066 !important; 139 | border-color: #6272a4 !important; 140 | color: #6272a4 !important; 141 | } 142 | 143 | #main-menu-toggle-btn { 144 | color: #9CA3AF !important; 145 | } 146 | 147 | #main-menu-toggle-btn:hover { 148 | color: #6e7291 !important; 149 | background-color: #4d5066 !important; 150 | } 151 | 152 | /* 153 | Border colors 154 | */ 155 | 156 | .primaryBorderColor { 157 | border-color: #424457 !important; 158 | } 159 | 160 | /* 161 | Placeholder colors 162 | */ 163 | 164 | .primaryBorderColor::placeholder { 165 | color: #6e7291; 166 | opacity: 1; 167 | } 168 | 169 | .primaryBorderColor::-ms-input-placeholder { 170 | color: #6e7291; 171 | opacity: 1; 172 | } 173 | 174 | /* 175 | Stroke colors 176 | */ 177 | 178 | .primaryStrokeColor { 179 | stroke: #f8f8f2 !important; 180 | } 181 | 182 | /* 183 | Passwords 184 | */ 185 | 186 | .passwordsBackgroundColor { 187 | background-color: #282a36 !important; 188 | } 189 | 190 | .passwordsBorderColor { 191 | border-color: #21222c !important; 192 | } 193 | 194 | /* 195 | Import and Export buttons 196 | */ 197 | 198 | .importExportButtons { 199 | color: #b1bfce !important; 200 | border-color: #282a36 !important; 201 | } 202 | 203 | .importExportButtons:hover { 204 | color: #91a6ba !important; 205 | } 206 | 207 | /* 208 | Scroll bar 209 | */ 210 | 211 | ::-webkit-scrollbar-track { 212 | background: #44475a; 213 | } 214 | 215 | ::-webkit-scrollbar-thumb { 216 | background: #585c74; 217 | } 218 | 219 | ::-webkit-scrollbar-thumb:hover { 220 | background: #636783; 221 | } -------------------------------------------------------------------------------- /css/themes/gray.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Light theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #4F46E5 !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #111827 !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #c2ccd6 !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #e0e6eb !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #f9fafb !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #4F46E5 !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #4F46E5 !important; 49 | color: #DFE5EB !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #4338CA !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #059669 !important; 58 | color: #DFE5EB !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #047857 !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #DC2626 !important; 67 | color: #DFE5EB !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #B91C1C !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #f9fafb !important; 76 | border-color: #D1D5DB !important; 77 | color: #374151 !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #F9FAFB !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #f9fafb !important; 90 | color: #111827 !important; 91 | border-color: #D1D5DB !important; 92 | } 93 | 94 | textarea { 95 | background-color: #f9fafb !important; 96 | color: #111827 !important; 97 | border-color: #D1D5DB !important; 98 | } 99 | 100 | input[type="checkbox"] { 101 | accent-color: #4F46E5; 102 | } 103 | 104 | /* 105 | Main menu 106 | */ 107 | 108 | .mainMenuLink { 109 | background-color: #e0e6eb; 110 | color: #4B5563 !important; 111 | } 112 | 113 | .mainMenuLink:hover { 114 | color: #1F2937 !important; 115 | border-color: #D1D5DB !important; 116 | } 117 | 118 | .mainMenuLinkSelected { 119 | color: #1F2937 !important; 120 | border-color: #6366F1 !important; 121 | } 122 | 123 | .mainMenuMobileLink { 124 | background-color: #e0e6eb; 125 | color: #4B5563 !important; 126 | } 127 | 128 | .mainMenuMobileLink:hover { 129 | color: #1F2937 !important; 130 | background-color: #f9fafb !important; 131 | border-color: #D1D5DB !important; 132 | } 133 | 134 | .mainMenuMobileLinkSelected { 135 | background-color: #f9fafb !important; 136 | border-color: #6366F1 !important; 137 | color: #4338CA !important; 138 | } 139 | 140 | #main-menu-toggle-btn { 141 | color: #9CA3AF !important; 142 | } 143 | 144 | #main-menu-toggle-btn:hover { 145 | color: #6B7280 !important; 146 | background-color: #f9fafb !important; 147 | } 148 | 149 | /* 150 | Border colors 151 | */ 152 | 153 | .primaryBorderColor { 154 | border-color: #D1D1DB !important; 155 | } 156 | 157 | /* 158 | Placeholder colors 159 | */ 160 | 161 | .primaryBorderColor::placeholder { 162 | color: #6B7280; 163 | opacity: 1; 164 | } 165 | 166 | .primaryBorderColor::-ms-input-placeholder { 167 | color: #6B7280; 168 | opacity: 1; 169 | } 170 | 171 | /* 172 | Stroke colors 173 | */ 174 | 175 | .primaryStrokeColor { 176 | stroke: #111827 !important; 177 | } 178 | 179 | /* 180 | Passwords 181 | */ 182 | 183 | .passwordsBackgroundColor { 184 | background-color: #c2ccd6 !important; 185 | } 186 | 187 | .passwordsBorderColor { 188 | border-color: #D1D1DB !important; 189 | } 190 | 191 | /* 192 | Import and Export buttons 193 | */ 194 | 195 | .importExportButtons { 196 | color: #374151 !important; 197 | border-color: #c2ccd6 !important; 198 | } 199 | 200 | .importExportButtons:hover { 201 | color: #6B7280 !important; 202 | } 203 | 204 | /* 205 | Scroll bar 206 | */ 207 | 208 | ::-webkit-scrollbar-track { 209 | background: #e0e6eb; 210 | } 211 | 212 | ::-webkit-scrollbar-thumb { 213 | background: #9ea3ae; 214 | } 215 | 216 | ::-webkit-scrollbar-thumb:hover { 217 | background: #9096a2; 218 | } -------------------------------------------------------------------------------- /css/themes/light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Light theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #4F46E5 !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #111827 !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #F9FAFB !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #FFFFFF !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #FFFFFF !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #4F46E5 !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #4F46E5 !important; 49 | color: #DFE5EB !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #4338CA !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #059669 !important; 58 | color: #DFE5EB !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #047857 !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #DC2626 !important; 67 | color: #DFE5EB !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #B91C1C !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #FFFFFF !important; 76 | border-color: #D1D5DB !important; 77 | color: #374151 !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #F9FAFB !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #FFFFFF !important; 90 | color: #111827 !important; 91 | border-color: #D1D5DB !important; 92 | } 93 | 94 | textarea { 95 | background-color: #F3F4F6 !important; 96 | color: #111827 !important; 97 | border-color: #D1D5DB !important; 98 | } 99 | 100 | input[type="checkbox"] { 101 | accent-color: #4F46E5; 102 | } 103 | 104 | /* 105 | Main menu 106 | */ 107 | 108 | .mainMenuLink { 109 | background-color: #FFFFFF; 110 | color: #4B5563 !important; 111 | } 112 | 113 | .mainMenuLink:hover { 114 | color: #1F2937 !important; 115 | border-color: #D1D5DB !important; 116 | } 117 | 118 | .mainMenuLinkSelected { 119 | color: #1F2937 !important; 120 | border-color: #6366F1 !important; 121 | } 122 | 123 | .mainMenuMobileLink { 124 | background-color: #FFFFFF; 125 | color: #4B5563 !important; 126 | } 127 | 128 | .mainMenuMobileLink:hover { 129 | color: #1F2937 !important; 130 | background-color: #F9FAFB !important; 131 | border-color: #D1D5DB !important; 132 | } 133 | 134 | .mainMenuMobileLinkSelected { 135 | background-color: #EEF2FF !important; 136 | border-color: #6366F1 !important; 137 | color: #4338CA !important; 138 | } 139 | 140 | #main-menu-toggle-btn { 141 | color: #9CA3AF !important; 142 | } 143 | 144 | #main-menu-toggle-btn:hover { 145 | color: #6B7280 !important; 146 | background-color: #F3F4F6 !important; 147 | } 148 | 149 | /* 150 | Border colors 151 | */ 152 | 153 | .primaryBorderColor { 154 | border-color: #D1D1DB !important; 155 | } 156 | 157 | /* 158 | Placeholder colors 159 | */ 160 | 161 | .primaryBorderColor::placeholder { 162 | color: #6B7280; 163 | opacity: 1; 164 | } 165 | 166 | .primaryBorderColor::-ms-input-placeholder { 167 | color: #6B7280; 168 | opacity: 1; 169 | } 170 | 171 | /* 172 | Stroke colors 173 | */ 174 | 175 | .primaryStrokeColor { 176 | stroke: #111827 !important; 177 | } 178 | 179 | /* 180 | Passwords 181 | */ 182 | 183 | .passwordsBackgroundColor { 184 | background-color: #FFFFFF !important; 185 | } 186 | 187 | .passwordsBorderColor { 188 | border-color: #e5e7eb !important; 189 | } 190 | 191 | /* 192 | Import and Export buttons 193 | */ 194 | 195 | .importExportButtons { 196 | color: #374151 !important; 197 | border-color: #f0f2f5 !important; 198 | } 199 | 200 | .importExportButtons:hover { 201 | color: #6B7280 !important; 202 | } 203 | 204 | /* 205 | Scroll bar 206 | */ 207 | 208 | ::-webkit-scrollbar-track { 209 | background: #f1f1f1; 210 | } 211 | 212 | ::-webkit-scrollbar-thumb { 213 | background: #a6a6a6; 214 | } 215 | 216 | ::-webkit-scrollbar-thumb:hover { 217 | background: #999999; 218 | } -------------------------------------------------------------------------------- /css/themes/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Monokai theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #55adbc !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #DFE5EB !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #1e1f1c !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #272822 !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #3e3d32 !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #55adbc !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #55adbc !important; 49 | color: #DFE5EB !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #49a6b6 !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #668628 !important; 58 | color: #DFE5EB !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #5a7623 !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #e9266b !important; 67 | color: #DFE5EB !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #e81760 !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #3e3d32 !important; 76 | border-color: #3e3d32 !important; 77 | color: #DFE5EB !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #39382d !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #3e3d32 !important; 90 | color: #DFE5EB !important; 91 | border-color: #16191d !important; 92 | } 93 | 94 | textarea { 95 | background-color: #3e3d32 !important; 96 | color: #DFE5EB !important; 97 | border-color: #16191d !important; 98 | } 99 | 100 | svg { 101 | stroke: #555444 !important; 102 | } 103 | 104 | input[type="checkbox"] { 105 | accent-color: #55adbc; 106 | } 107 | 108 | /* 109 | Main menu 110 | */ 111 | 112 | .mainMenuLink { 113 | background-color: #272822 !important; 114 | color: #6B7280 !important; 115 | } 116 | 117 | .mainMenuLink:hover { 118 | color: #DFE5EB !important; 119 | border-color: #D1D5DB !important; 120 | } 121 | 122 | .mainMenuLinkSelected { 123 | color: #DFE5EB !important; 124 | border-color: #55adbc !important; 125 | } 126 | 127 | .mainMenuMobileLink { 128 | background-color: #272822 !important; 129 | color: #DFE5EB !important; 130 | } 131 | 132 | .mainMenuMobileLink:hover { 133 | background-color: #3e3d32 !important; 134 | border-color: #6B7280 !important; 135 | } 136 | 137 | .mainMenuMobileLinkSelected { 138 | background-color: #3e3d32 !important; 139 | border-color: #55adbc !important; 140 | color: #55adbc !important; 141 | } 142 | 143 | #main-menu-toggle-btn { 144 | color: #9CA3AF !important; 145 | } 146 | 147 | #main-menu-toggle-btn:hover { 148 | color: #6B7280 !important; 149 | background-color: #3e3d32 !important; 150 | } 151 | 152 | /* 153 | Border colors 154 | */ 155 | 156 | .primaryBorderColor { 157 | border-color: #16191d !important; 158 | } 159 | 160 | /* 161 | Placeholder colors 162 | */ 163 | 164 | .primaryBorderColor::placeholder { 165 | color: #6B7280; 166 | opacity: 1; 167 | } 168 | 169 | .primaryBorderColor::-ms-input-placeholder { 170 | color: #6B7280; 171 | opacity: 1; 172 | } 173 | 174 | /* 175 | Stroke colors 176 | */ 177 | 178 | .primaryStrokeColor { 179 | stroke: #DFE5EB !important; 180 | } 181 | 182 | /* 183 | Passwords 184 | */ 185 | 186 | .passwordsBackgroundColor { 187 | background-color: #1e1f1c !important; 188 | } 189 | 190 | .passwordsBorderColor { 191 | border-color: #000000 !important; 192 | } 193 | 194 | /* 195 | Import and Export buttons 196 | */ 197 | 198 | .importExportButtons { 199 | color: #b1bfce !important; 200 | border-color: #1e1f1c !important; 201 | } 202 | 203 | .importExportButtons:hover { 204 | color: #91a6ba !important; 205 | } 206 | 207 | /* 208 | Scroll bar 209 | */ 210 | 211 | ::-webkit-scrollbar-track { 212 | background: #272822; 213 | } 214 | 215 | ::-webkit-scrollbar-thumb { 216 | background: #716f5b; 217 | } 218 | 219 | ::-webkit-scrollbar-thumb:hover { 220 | background: #555444; 221 | } -------------------------------------------------------------------------------- /css/themes/nord.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Nord theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #88c0d0 !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #FFFFFF !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #2e3440 !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #3b4252 !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #434c5e !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #88c0d0 !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #88c0d0 !important; 49 | color: #FFFFFF !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #7fbbcc !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #a2bd8b !important; 58 | color: #FFFFFF !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #97b57d !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #75647a !important; 67 | color: #FFFFFF !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #6b5c70 !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #434c5e !important; 76 | border-color: #3b4252 !important; 77 | color: #FFFFFF !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #434c5e !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #434c5e !important; 90 | color: #FFFFFF !important; 91 | border-color: #3b4252 !important; 92 | } 93 | 94 | textarea { 95 | background-color: #434c5e !important; 96 | color: #FFFFFF !important; 97 | border-color: #3b4252 !important; 98 | } 99 | 100 | svg { 101 | stroke: #88c0d0 !important; 102 | } 103 | 104 | input[type="checkbox"] { 105 | accent-color: #88c0d0; 106 | } 107 | 108 | /* 109 | Main menu 110 | */ 111 | 112 | .mainMenuLink { 113 | background-color: #3b4252 !important; 114 | color: #6B7280 !important; 115 | } 116 | 117 | .mainMenuLink:hover { 118 | color: #FFFFFF !important; 119 | border-color: #D1D5DB !important; 120 | } 121 | 122 | .mainMenuLinkSelected { 123 | color: #FFFFFF !important; 124 | border-color: #88c0d0 !important; 125 | } 126 | 127 | .mainMenuMobileLink { 128 | background-color: #3b4252 !important; 129 | color: #FFFFFF !important; 130 | } 131 | 132 | .mainMenuMobileLink:hover { 133 | background-color: #434c5e !important; 134 | border-color: #6B7280 !important; 135 | } 136 | 137 | .mainMenuMobileLinkSelected { 138 | background-color: #434c5e !important; 139 | border-color: #88c0d0 !important; 140 | color: #88c0d0 !important; 141 | } 142 | 143 | #main-menu-toggle-btn { 144 | color: #9CA3AF !important; 145 | } 146 | 147 | #main-menu-toggle-btn:hover { 148 | color: #6B7280 !important; 149 | background-color: #434c5e !important; 150 | } 151 | 152 | /* 153 | Border colors 154 | */ 155 | 156 | .primaryBorderColor { 157 | border-color: #3b4252 !important; 158 | } 159 | 160 | /* 161 | Placeholder colors 162 | */ 163 | 164 | .primaryBorderColor::placeholder { 165 | color: #6B7280; 166 | opacity: 1; 167 | } 168 | 169 | .primaryBorderColor::-ms-input-placeholder { 170 | color: #6B7280; 171 | opacity: 1; 172 | } 173 | 174 | /* 175 | Stroke colors 176 | */ 177 | 178 | .primaryStrokeColor { 179 | stroke: #FFFFFF !important; 180 | } 181 | 182 | /* 183 | Passwords 184 | */ 185 | 186 | .passwordsBackgroundColor { 187 | background-color: #2e3440 !important; 188 | } 189 | 190 | .passwordsBorderColor { 191 | border-color: #111827 !important; 192 | } 193 | 194 | /* 195 | Import and Export buttons 196 | */ 197 | 198 | .importExportButtons { 199 | color: #b1bfce !important; 200 | border-color: #2e3440 !important; 201 | } 202 | 203 | .importExportButtons:hover { 204 | color: #91a6ba !important; 205 | } 206 | 207 | /* 208 | Scroll bar 209 | */ 210 | 211 | ::-webkit-scrollbar-track { 212 | background: #3b4252; 213 | } 214 | 215 | ::-webkit-scrollbar-thumb { 216 | background: #88c0d0; 217 | } 218 | 219 | ::-webkit-scrollbar-thumb:hover { 220 | background: #7fbbcc; 221 | } -------------------------------------------------------------------------------- /css/themes/solarizedDark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Solarized Dark theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #547013 !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #DFE5EB !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #00212b !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #002b36 !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #073642 !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #547013 !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #547013 !important; 49 | color: #DFE5EB !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #526d12 !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #547013 !important; 58 | color: #DFE5EB !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #526d12 !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #b0461a !important; 67 | color: #DFE5EB !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #9b3f17 !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #073642 !important; 76 | border-color: #073642 !important; 77 | color: #DFE5EB !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #05262e !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #073642 !important; 90 | color: #DFE5EB !important; 91 | border-color: #16191d !important; 92 | } 93 | 94 | textarea { 95 | background-color: #073642 !important; 96 | color: #DFE5EB !important; 97 | border-color: #16191d !important; 98 | } 99 | 100 | svg { 101 | stroke: #0a4c5c !important; 102 | } 103 | 104 | input[type="checkbox"] { 105 | accent-color: #547013; 106 | } 107 | 108 | /* 109 | Main menu 110 | */ 111 | 112 | .mainMenuLink { 113 | background-color: #002b36 !important; 114 | color: #6B7280 !important; 115 | } 116 | 117 | .mainMenuLink:hover { 118 | color: #DFE5EB !important; 119 | border-color: #D1D5DB !important; 120 | } 121 | 122 | .mainMenuLinkSelected { 123 | color: #DFE5EB !important; 124 | border-color: #547013 !important; 125 | } 126 | 127 | .mainMenuMobileLink { 128 | background-color: #002b36 !important; 129 | color: #DFE5EB !important; 130 | } 131 | 132 | .mainMenuMobileLink:hover { 133 | background-color: #073642 !important; 134 | border-color: #6B7280 !important; 135 | } 136 | 137 | .mainMenuMobileLinkSelected { 138 | background-color: #073642 !important; 139 | border-color: #547013 !important; 140 | color: #547013 !important; 141 | } 142 | 143 | #main-menu-toggle-btn { 144 | color: #9CA3AF !important; 145 | } 146 | 147 | #main-menu-toggle-btn:hover { 148 | color: #6B7280 !important; 149 | background-color: #073642 !important; 150 | } 151 | 152 | /* 153 | Border colors 154 | */ 155 | 156 | .primaryBorderColor { 157 | border-color: #16191d !important; 158 | } 159 | 160 | /* 161 | Placeholder colors 162 | */ 163 | 164 | .primaryBorderColor::placeholder { 165 | color: #6B7280; 166 | opacity: 1; 167 | } 168 | 169 | .primaryBorderColor::-ms-input-placeholder { 170 | color: #6B7280; 171 | opacity: 1; 172 | } 173 | 174 | /* 175 | Stroke colors 176 | */ 177 | 178 | .primaryStrokeColor { 179 | stroke: #DFE5EB !important; 180 | } 181 | 182 | /* 183 | Passwords 184 | */ 185 | 186 | .passwordsBackgroundColor { 187 | background-color: #00212b !important; 188 | } 189 | 190 | .passwordsBorderColor { 191 | border-color: #000000 !important; 192 | } 193 | 194 | /* 195 | Import and Export buttons 196 | */ 197 | 198 | .importExportButtons { 199 | color: #b1bfce !important; 200 | border-color: #00212b !important; 201 | } 202 | 203 | .importExportButtons:hover { 204 | color: #91a6ba !important; 205 | } 206 | 207 | /* 208 | Scroll bar 209 | */ 210 | 211 | ::-webkit-scrollbar-track { 212 | background: #002b36; 213 | } 214 | 215 | ::-webkit-scrollbar-thumb { 216 | background: #003d4d; 217 | } 218 | 219 | ::-webkit-scrollbar-thumb:hover { 220 | background: #005266; 221 | } -------------------------------------------------------------------------------- /css/themes/tokyoNight.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Tokyo Night theme 4 | 5 | */ 6 | 7 | /* 8 | Text colors 9 | */ 10 | 11 | .primaryColor { 12 | color: #4d75cb !important; 13 | } 14 | 15 | .secondaryColor { 16 | color: #6B7280 !important; 17 | } 18 | 19 | .tertiaryColor { 20 | color: #DFE5EB !important; 21 | } 22 | 23 | /* 24 | Background colors 25 | */ 26 | 27 | .primaryBackgroundColor { 28 | background-color: #16161e !important; 29 | } 30 | 31 | .secondaryBackgroundColor { 32 | background-color: #1a1b26 !important; 33 | } 34 | 35 | .tertiaryBackgroundColor { 36 | background-color: #1f202e !important; 37 | } 38 | 39 | .quaternaryBackgroundColor { 40 | background-color: #4d75cb !important; 41 | } 42 | 43 | /* 44 | Button colors 45 | */ 46 | 47 | .primaryButton { 48 | background-color: #4d75cb !important; 49 | color: #DFE5EB !important; 50 | } 51 | 52 | .primaryButton:hover { 53 | background-color: #6184d1 !important; 54 | } 55 | 56 | .successButton { 57 | background-color: #576e49 !important; 58 | color: #DFE5EB !important; 59 | } 60 | 61 | .successButton:hover { 62 | background-color: #6d8a5c !important; 63 | } 64 | 65 | .dangerButton { 66 | background-color: #8b3277 !important; 67 | color: #DFE5EB !important; 68 | } 69 | 70 | .dangerButton:hover { 71 | background-color: #a93d91 !important; 72 | } 73 | 74 | .cancelButton { 75 | background-color: #1f202e !important; 76 | border-color: #1f202e !important; 77 | color: #DFE5EB !important; 78 | } 79 | 80 | .cancelButton:hover { 81 | background-color: #292b3d !important; 82 | } 83 | 84 | /* 85 | Elements 86 | */ 87 | 88 | input { 89 | background-color: #1f202e !important; 90 | color: #DFE5EB !important; 91 | border-color: #16191d !important; 92 | } 93 | 94 | textarea { 95 | background-color: #1f202e !important; 96 | color: #DFE5EB !important; 97 | border-color: #16191d !important; 98 | } 99 | 100 | svg { 101 | stroke: #34354c !important; 102 | } 103 | 104 | input[type="checkbox"] { 105 | accent-color: #4d75cb; 106 | } 107 | 108 | /* 109 | Main menu 110 | */ 111 | 112 | .mainMenuLink { 113 | background-color: #1a1b26 !important; 114 | color: #6B7280 !important; 115 | } 116 | 117 | .mainMenuLink:hover { 118 | color: #DFE5EB !important; 119 | border-color: #D1D5DB !important; 120 | } 121 | 122 | .mainMenuLinkSelected { 123 | color: #DFE5EB !important; 124 | border-color: #3966c6 !important; 125 | } 126 | 127 | .mainMenuMobileLink { 128 | background-color: #1a1b26 !important; 129 | color: #DFE5EB !important; 130 | } 131 | 132 | .mainMenuMobileLink:hover { 133 | background-color: #1f202e !important; 134 | border-color: #6B7280 !important; 135 | } 136 | 137 | .mainMenuMobileLinkSelected { 138 | background-color: #1f202e !important; 139 | border-color: #3966c6 !important; 140 | color: #3966c6 !important; 141 | } 142 | 143 | #main-menu-toggle-btn { 144 | color: #9CA3AF !important; 145 | } 146 | 147 | #main-menu-toggle-btn:hover { 148 | color: #6B7280 !important; 149 | background-color: #1f202e !important; 150 | } 151 | 152 | /* 153 | Border colors 154 | */ 155 | 156 | .primaryBorderColor { 157 | border-color: #16191d !important; 158 | } 159 | 160 | /* 161 | Placeholder colors 162 | */ 163 | 164 | .primaryBorderColor::placeholder { 165 | color: #6B7280; 166 | opacity: 1; 167 | } 168 | 169 | .primaryBorderColor::-ms-input-placeholder { 170 | color: #6B7280; 171 | opacity: 1; 172 | } 173 | 174 | /* 175 | Stroke colors 176 | */ 177 | 178 | .primaryStrokeColor { 179 | stroke: #DFE5EB !important; 180 | } 181 | 182 | /* 183 | Passwords 184 | */ 185 | 186 | .passwordsBackgroundColor { 187 | background-color: #16161e !important; 188 | } 189 | 190 | .passwordsBorderColor { 191 | border-color: #000000 !important; 192 | } 193 | 194 | /* 195 | Import and Export buttons 196 | */ 197 | 198 | .importExportButtons { 199 | color: #b1bfce !important; 200 | border-color: #16161e !important; 201 | } 202 | 203 | .importExportButtons:hover { 204 | color: #91a6ba !important; 205 | } 206 | 207 | /* 208 | Scroll bar 209 | */ 210 | 211 | ::-webkit-scrollbar-track { 212 | background: #1a1b26; 213 | } 214 | 215 | ::-webkit-scrollbar-thumb { 216 | background: #292b3d; 217 | } 218 | 219 | ::-webkit-scrollbar-thumb:hover { 220 | background: #34364c; 221 | } -------------------------------------------------------------------------------- /images/1password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/bitwarden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/bitwarden.png -------------------------------------------------------------------------------- /images/chromium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/chromium.png -------------------------------------------------------------------------------- /images/dashlane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/dashlane.png -------------------------------------------------------------------------------- /images/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/firefox.png -------------------------------------------------------------------------------- /images/keepassxc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | -------------------------------------------------------------------------------- /images/keeper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/keeper.png -------------------------------------------------------------------------------- /images/lastpass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/lastpass.png -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/logo.png -------------------------------------------------------------------------------- /images/logo128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/logo128.png -------------------------------------------------------------------------------- /images/logo16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/logo16.png -------------------------------------------------------------------------------- /images/logo32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/logo32.png -------------------------------------------------------------------------------- /images/logo48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/logo48.png -------------------------------------------------------------------------------- /images/nordpass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/nordpass.png -------------------------------------------------------------------------------- /images/yubikey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rabbit-Company/Passky-Browser-Extension/59f50c4f9d5445d8ede7fbd31ca61dff4b0e29b9/images/yubikey.png -------------------------------------------------------------------------------- /js/PasswordEntropy.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | PasswordEntropy-JS v1.0.2 3 | https://github.com/Rabbit-Company/PasswordEntropy-JS 4 | License: GPL-3.0 5 | */ 6 | class PasswordEntropy{static lcase="abcdefghijklmnopqrstuvwxyz";static ucase="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static numb="1234567890";static symbol="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ";static includesChar(s,t){for(let i=0;it<>>32-e;le32=(t,e,h,$)=>(t^e<<8^h<<16^$<<24)>>>0;int2(t){var e,h;let $=[];for(h=0;h>>=0,t[h]>>>=0,t[$]>>>=0,t[c]>>>=0}Inner_Block(t){this.Qround(t,0,4,8,12),this.Qround(t,1,5,9,13),this.Qround(t,2,6,10,14),this.Qround(t,3,7,11,15),this.Qround(t,0,5,10,15),this.Qround(t,1,6,11,12),this.Qround(t,2,7,8,13),this.Qround(t,3,4,9,14)}Chacha20_BlockFunction(t,e,h){let $=[];$[0]=1634760805,$[1]=857760878,$[2]=2036477234,$[3]=1797285236,$[4]=this.le32(t[0],t[1],t[2],t[3]),$[5]=this.le32(t[4],t[5],t[6],t[7]),$[6]=this.le32(t[8],[9],t[10],t[11]),$[7]=this.le32(t[12],t[13],t[14],t[15]),$[8]=this.le32(t[16],t[17],[18],t[19]),$[9]=this.le32(t[20],t[21],[22],t[23]),$[10]=this.le32(t[24],t[25],t[26],t[27]),$[11]=this.le32(t[28],t[29],t[30],t[31]),$[12]=h,$[13]=this.le32(e[0],e[1],e[2],e[3]),$[14]=this.le32(e[4],e[5],e[6],e[7]),$[15]=this.le32(e[8],e[9],e[10],e[11]);let c=new Uint32Array($.slice());for(let n=1;n<=10;n++)this.Inner_Block(c);let i=[];for(let l=0,r=0;l<16;l++)$[l]+=c[l],i[r++]=255&$[l],i[r++]=$[l]>>>8&255,i[r++]=$[l]>>>16&255,i[r++]=$[l]>>>24&255;return i}HChacha20_BlockFunction(t,e){let h=[];h[0]=1634760805,h[1]=857760878,h[2]=2036477234,h[3]=1797285236,h[4]=this.le32(t[0],t[1],t[2],t[3]),h[5]=this.le32(t[4],t[5],t[6],t[7]),h[6]=this.le32(t[8],[9],t[10],t[11]),h[7]=this.le32(t[12],t[13],t[14],t[15]),h[8]=this.le32(t[16],t[17],[18],t[19]),h[9]=this.le32(t[20],t[21],[22],t[23]),h[10]=this.le32(t[24],t[25],t[26],t[27]),h[11]=this.le32(t[28],t[29],t[30],t[31]),h[12]=this.le32(e[0],e[1],e[2],e[3]),h[13]=this.le32(e[4],e[5],e[6],e[7]),h[14]=this.le32(e[8],e[9],e[10],e[11]),h[15]=this.le32(e[12],e[13],e[14],e[15]);let $=new Uint32Array(h.slice());for(let c=1;c<=10;c++)this.Inner_Block($);let n=$.slice(0,4),i=$.slice(12,16),l=new Uint32Array(n.length+i.length);l.set(n),l.set(i,n.length);let r=[];for(let s=0,_=0;s<8;s++)r[_++]=255&l[s],r[_++]=l[s]>>>8&255,r[_++]=l[s]>>>16&255,r[_++]=l[s]>>>24&255;return r}chacha20_encrypt(t,e,h,$){let c=[];c.push(...this.Chacha20_BlockFunction(t,h,e));let n=0;for(let i=0;i<$.length;i++)64==n&&(e++,c.push(...this.Chacha20_BlockFunction(t,h,e)),n=0),$[i]=parseInt($[i],16),n++;let l=[];for(let r=0;r<=$.length;r++)l[r]=$[r]^c[r];this.keystream=c,this.encryptedText=l}chacha20_decrypt(t,e,h,$){let c=[];c.push(...this.Chacha20_BlockFunction(t,h,e));let n=0;for(let i=0;i<$.length;i++)64==n&&(e++,c.push(...this.Chacha20_BlockFunction(t,h,e)),n=0),n++;let l=[];for(let r=0;r { 2 | let username = null; 3 | let password = null; 4 | let usernameFilled = false; 5 | let passwordFilled = false; 6 | 7 | if(typeof(request.password) !== 'undefined') password = request.password; 8 | if(typeof(request.username) !== 'undefined') username = request.username; 9 | if(username === null || password === null) return; 10 | 11 | let inputs = document.getElementsByTagName("input"); 12 | 13 | // Password input detection 14 | for(let i = 0; i < inputs.length; i++){ 15 | let type = inputs[i].type?.toLowerCase(); 16 | let autocomplete = inputs[i].autocomplete?.toLowerCase(); 17 | if(type !== 'password') continue; 18 | if(autocomplete !== 'current-password') continue; 19 | 20 | inputs[i].value = password; 21 | passwordFilled = true; 22 | break; 23 | } 24 | 25 | // Username input detection 26 | for(let i = 0; i < inputs.length; i++){ 27 | let type = inputs[i].type?.toLowerCase(); 28 | let name = inputs[i].name?.toLowerCase(); 29 | if(!(type === 'text' || type === 'email')) continue; 30 | if(!(name.includes('user') || name.includes('email'))) continue; 31 | 32 | inputs[i].value = username; 33 | usernameFilled = true; 34 | break; 35 | } 36 | 37 | if(usernameFilled && passwordFilled) return; 38 | 39 | // Desperate password input detection 40 | for(let i = 0; i < inputs.length; i++){ 41 | if(passwordFilled) break; 42 | let type = inputs[i].type?.toLowerCase(); 43 | if(type !== 'password') continue; 44 | 45 | inputs[i].value = password; 46 | passwordFilled = true; 47 | break; 48 | } 49 | 50 | // Desperate username input detection 51 | for(let i = 0; i < inputs.length; i++){ 52 | if(usernameFilled) break; 53 | let type = inputs[i].type?.toLowerCase(); 54 | if(!(type === 'text' || type === 'email')) continue; 55 | 56 | inputs[i].value = username; 57 | usernameFilled = true; 58 | break; 59 | } 60 | }); -------------------------------------------------------------------------------- /js/default-functions.js: -------------------------------------------------------------------------------- 1 | var parms = new URLSearchParams(window.location.search); 2 | const IsNumeric = (num) => /^-{0,1}\d*\.{0,1}\d+$/.test(num); 3 | 4 | function fhide(element){ 5 | document.getElementById(element).style.display = 'none'; 6 | } 7 | 8 | function fshow(element, method){ 9 | document.getElementById(element).style.display = method; 10 | } 11 | 12 | function hide(element){ 13 | document.getElementById(element).style.visibility = 'hidden'; 14 | } 15 | 16 | function show(element){ 17 | document.getElementById(element).style.visibility = 'visible'; 18 | } 19 | 20 | function isHidden(element){ 21 | return (document.getElementById(element).style.visibility == 'hidden'); 22 | } 23 | 24 | function isfHidden(element){ 25 | return (document.getElementById(element).style.display == 'none'); 26 | } 27 | 28 | function setText(element, text){ 29 | document.getElementById(element).innerText = text; 30 | } 31 | 32 | function animateButton(id, enabled){ 33 | if(enabled){ 34 | document.getElementById(id + "-color").className = "quaternaryBackgroundColor pointer-events-none absolute h-4 w-9 mx-auto rounded-full transition-colors ease-in-out duration-200"; 35 | document.getElementById(id + "-animation").className = "translate-x-5 pointer-events-none absolute left-0 inline-block h-5 w-5 rounded-full tertiaryBackgroundColor shadow transform ring-0 transition-transform ease-in-out duration-200"; 36 | }else{ 37 | document.getElementById(id + "-color").className = "primaryBackgroundColor pointer-events-none absolute h-4 w-9 mx-auto rounded-full transition-colors ease-in-out duration-200"; 38 | document.getElementById(id + "-animation").className = "translate-x-0 pointer-events-none absolute left-0 inline-block h-5 w-5 rounded-full tertiaryBackgroundColor shadow transform ring-0 transition-transform ease-in-out duration-200"; 39 | } 40 | } 41 | 42 | function toggleMenu(){ 43 | if(document.getElementById('mobile-menu').className == 'hidden pt-2 pb-3 space-y-1'){ 44 | document.getElementById('mobile-menu').className = 'pt-2 pb-3 space-y-1'; 45 | document.getElementById('mobile-menu-icon').innerHTML = ""; 46 | }else{ 47 | document.getElementById('mobile-menu').className = 'hidden pt-2 pb-3 space-y-1'; 48 | document.getElementById('mobile-menu-icon').innerHTML = ""; 49 | } 50 | } 51 | 52 | function toggleButton(id){ 53 | let button = document.getElementById(id); 54 | if(button.className.includes('successButton')){ 55 | button.innerText = lang["disable"]; 56 | button.className = "dangerButton font-bold inline-flex items-center justify-center px-4 py-2 border border-transparent font-medium rounded-md focus:outline-none sm:text-sm"; 57 | }else{ 58 | button.innerText = lang["enable"]; 59 | button.className = "successButton font-bold inline-flex items-center justify-center px-4 py-2 border border-transparent font-medium rounded-md focus:outline-none sm:text-sm"; 60 | } 61 | } 62 | 63 | function copyToClipboard(text){ 64 | let textArea = document.createElement("textarea"); 65 | textArea.value = text; 66 | 67 | textArea.style.top = 0; 68 | textArea.style.left = 0; 69 | textArea.style.position = "fixed"; 70 | 71 | document.body.appendChild(textArea); 72 | textArea.focus(); 73 | textArea.select(); 74 | 75 | document.execCommand('copy'); 76 | document.body.removeChild(textArea); 77 | } 78 | 79 | function downloadTxt(exportTxt, exportName){ 80 | let dataStr = "data:text/plain;charset=utf-8," + encodeURIComponent(exportTxt); 81 | let downloadAnchorNode = document.createElement('a'); 82 | downloadAnchorNode.setAttribute("href", dataStr); 83 | downloadAnchorNode.setAttribute("download", exportName); 84 | document.body.appendChild(downloadAnchorNode); // required for firefox 85 | downloadAnchorNode.click(); 86 | downloadAnchorNode.remove(); 87 | } 88 | 89 | function downloadObjectAsJson(exportObj, exportName){ 90 | let dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(exportObj)); 91 | let downloadAnchorNode = document.createElement('a'); 92 | downloadAnchorNode.setAttribute("href", dataStr); 93 | downloadAnchorNode.setAttribute("download", exportName + ".json"); 94 | document.body.appendChild(downloadAnchorNode); // required for firefox 95 | downloadAnchorNode.click(); 96 | downloadAnchorNode.remove(); 97 | } 98 | 99 | function getDate(date){ 100 | let local = new Date(date); 101 | local.setMinutes(date.getMinutes() - date.getTimezoneOffset()); 102 | return local.toJSON().slice(0, 10); 103 | } 104 | 105 | function showDialogButtons(){ 106 | document.getElementById('dialog-button').style.display = ""; 107 | document.getElementById('dialog-button-cancel').style.display = ""; 108 | } 109 | 110 | function hideDialogButtons(){ 111 | document.getElementById('dialog-button').style.display = "none"; 112 | document.getElementById('dialog-button-cancel').style.display = "none"; 113 | } 114 | 115 | function refreshPasswords(){ 116 | 117 | Passky.getPasswords(readData('url'), readData('username'), readData('token')).then(response => { 118 | if(typeof response['error'] === 'undefined') return; 119 | if(response['error'] != 0 && response['error'] != 8) return; 120 | 121 | if(response['error'] == 0){ 122 | writeData('passwords', JSON.stringify(response['passwords'])); 123 | }else{ 124 | writeData('passwords', '{}'); 125 | } 126 | 127 | location.assign('passwords.html'); 128 | }).catch(); 129 | 130 | } 131 | 132 | function encryptPassword(password){ 133 | return XChaCha20.encrypt(password, readData('token') + navigator.geolocation + readData('loginTime') + readData('url') + readData('username')); 134 | } 135 | 136 | function decryptPassword(password){ 137 | return XChaCha20.decrypt(password, readData('token') + navigator.geolocation + readData('loginTime') + readData('url') + readData('username')); 138 | } 139 | 140 | function clearStorage(){ 141 | deleteData('password'); 142 | deleteData('passwords'); 143 | deleteData('token'); 144 | deleteData('auth'); 145 | deleteData('yubico'); 146 | deleteData('loginTime'); 147 | deleteData('premiumExpires'); 148 | deleteData('maxPasswords'); 149 | } 150 | 151 | function isSessionValid(){ 152 | if(readData('url') == null || typeof(readData('url')) == 'undefined' || readData('username') == null || typeof(readData('username')) == 'undefined' || readData('password') == null || typeof(readData('password')) == 'undefined' || readData('token') == null || typeof(readData('token')) == 'undefined' || readData('passwords') == null || typeof(readData('passwords')) == 'undefined' || readData('loginTime') == null || typeof(readData('loginTime')) == 'undefined' || readData('sessionDuration') == null || typeof(readData('sessionDuration')) == 'undefined' || ((parseFloat(readData('loginTime')) + (readData('sessionDuration') * 60000))) < new Date().getTime()){ 153 | clearStorage(); 154 | return false; 155 | } 156 | return true; 157 | } 158 | 159 | function logout(){ 160 | clearStorage(); 161 | location.assign('index.html'); 162 | } 163 | 164 | function startAuthenticator(){ 165 | if (!isSessionValid()) logout(); 166 | window.setInterval(function() { 167 | if (!isSessionValid()) logout(); 168 | }, 1500); 169 | } -------------------------------------------------------------------------------- /js/header.js: -------------------------------------------------------------------------------- 1 | var storageData = {}; 2 | 3 | function writeData(key, data){ 4 | data = String(data); 5 | try{ 6 | chrome.storage.local.set({[key]: data}); 7 | }catch{ 8 | localStorage.setItem(key, data); 9 | } 10 | storageData[key] = data; 11 | } 12 | 13 | function readData(key){ 14 | try{ 15 | chrome.storage.local.get([key], function(result) { 16 | storageData[key] = result[key]; 17 | }); 18 | }catch{ 19 | storageData[key] = localStorage.getItem(key); 20 | } 21 | return storageData[key]; 22 | } 23 | 24 | function deleteData(key){ 25 | try{ 26 | chrome.storage.local.remove(key); 27 | }catch{ 28 | localStorage.removeItem(key); 29 | } 30 | delete storageData[key]; 31 | } 32 | 33 | function getAllStorageData() { 34 | return new Promise((resolve, reject) => { 35 | try{ 36 | chrome.storage.local.get(null, (items) => { 37 | if (chrome.runtime.lastError) return reject(chrome.runtime.lastError); 38 | resolve(items); 39 | }); 40 | }catch{ 41 | resolve({ ...localStorage }); 42 | } 43 | }); 44 | } 45 | 46 | function detectLanguage(){ 47 | for(const language of navigator.languages){ 48 | if(Object.keys(lang).includes(language)){ 49 | writeData('lang', language); 50 | break; 51 | } 52 | } 53 | if(readData('lang') == null || typeof(readData('lang')) == 'undefined') writeData('lang', 'en'); 54 | } 55 | 56 | function setTheme(){ 57 | if(readData('theme') == null || typeof(readData('theme')) == 'undefined') writeData('theme', 'dark'); 58 | if(readData('lang') == null || typeof(readData('lang')) == 'undefined') detectLanguage(); 59 | if(readData('sessionDuration') == null || typeof(readData('sessionDuration')) == 'undefined') writeData('sessionDuration', '20'); 60 | 61 | if(!(["dark", "tokyoNight", "monokai", "solarizedDark", "light", "blue", "nord", "dracula", "gray"].includes(readData('theme')))) writeData('theme', 'dark'); 62 | document.getElementById("css-theme").href = "css/themes/" + readData('theme') + ".css"; 63 | } 64 | 65 | function loadData(){ 66 | return new Promise((resolve, reject) => { 67 | getAllStorageData().then(items => { 68 | Object.assign(storageData, items); 69 | setTheme(); 70 | 71 | let url = "lang/" + readData('lang') + "/lang.json"; 72 | try{ 73 | url = chrome.runtime.getURL(url); 74 | }catch{} 75 | fetch(url).then(response => { 76 | if (response.ok) return response.json(); 77 | reject("error"); 78 | }).then(json => { 79 | lang = json; 80 | resolve("Working"); 81 | }).catch(error => { 82 | reject(error); 83 | }) 84 | }); 85 | }); 86 | } 87 | 88 | document.onkeydown = function(e) { 89 | if(e.key == "F12") return false; 90 | if(e.ctrlKey && e.shiftKey && e.key == 'I') return false; 91 | if(e.ctrlKey && e.shiftKey && e.key == 'C') return false; 92 | if(e.ctrlKey && e.shiftKey && e.key == 'J') return false; 93 | if(e.ctrlKey && (e.key == 'u' || e.key == 'U')) return false; 94 | } 95 | 96 | document.addEventListener('contextmenu', e => e.preventDefault()); -------------------------------------------------------------------------------- /js/lang.js: -------------------------------------------------------------------------------- 1 | var lang = { 2 | "0": "Successful", 3 | "1": "Username is invalid!", 4 | "2": "Password is incorrect!", 5 | "3": "Something went wrong while inserting data to the database!", 6 | "4": "Username is already registered!", 7 | "5": "Your password is too weak!", 8 | "6": "Email is invalid!", 9 | "7": "Username does not exist!", 10 | "8": "You don't have any saved passwords.", 11 | "9": "Domain is invalid!", 12 | "10": "User does not own this password!", 13 | "11": "Something went wrong while deleting data from database!", 14 | "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", 15 | "13": "Something went wrong while updating data in database!", 16 | "14": "Json is invalid!", 17 | "15": "This server cannot accept more users!", 18 | "16": "You have reached the maximum amount of stored passwords!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Message is too long!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Action is invalid!", 38 | "403": "You didn't provide all required values in POST.", 39 | "404": "Can't connect into API.", 40 | "429": "You are sending too many requests! Please wait before executing this action again.", 41 | "505": "Something went wrong while connecting to the database!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "You do NOT have permission to use this endpoint.", 44 | "server": "Server", 45 | "website": "Website", 46 | "username": "Username", 47 | "email": "Email", 48 | "password": "Password", 49 | "signin": "Sign in", 50 | "signup": "Sign up", 51 | "signout": "Sign out", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "Okay", 54 | "add": "Add", 55 | "change": "Change", 56 | "use": "Use", 57 | "copy": "Copy", 58 | "send": "Send", 59 | "cancel": "Cancel", 60 | "try_again": "Try again", 61 | "success": "SUCCESS", 62 | "error": "ERROR", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Delete", 67 | "import": "Import", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Import from {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "The data in your import is invalid!", 73 | "import_success": "{success_number} passwords imported successfully!", 74 | "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", 75 | "backup": "Backup", 76 | "export": "Export", 77 | "passwords": "Passwords", 78 | "import_export": "Import & Export", 79 | "language": "Language", 80 | "theme": "Theme", 81 | "search": "Search", 82 | "length": "Length", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Add password", 94 | "add_password_success": "Password has been added successfully", 95 | "change_password_success": "Password has been changed successfully", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Change password", 100 | "password_generator": "Generate password", 101 | "delete_password": "Delete password", 102 | "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Delete account", 107 | "delete_account_info": "Once you delete your account, you will lose all data associated with it.", 108 | "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server is unreachable!", 111 | "registration_completed": "Registration is completed!", 112 | "dont_have_account_link": "Don't have an account yet? Sign up here.", 113 | "already_have_account_link": "Already registered? Sign in here.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/ar/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "ناجح", 3 | "1": "المستخم غير صالح", 4 | "2": "كلمة المرور غير صحيحة!", 5 | "3": "حدث خطأ ما أثناء إدخال البيانات إلى قاعدة البيانات !", 6 | "4": "اسم المستخدم موجود فعلًا!", 7 | "5": "كلمة السر ضعيفة جدا!", 8 | "6": "البريد الإلكتروني غير صالح !", 9 | "7": "اسم المستخدم غير موجود !", 10 | "8": "ليس لديك أي كلمة مرور محفوظة .", 11 | "9": "نطاق غير صالح !", 12 | "10": "لا يمتلك المستخدم كلمة المرور هذه !", 13 | "11": "حدث خطأ ما أثناء حذف البيانات من قاعدة البيانات !", 14 | "12": "يجب أن يتكون اسم المستخدم من 6 إلى 30 حرفًا ، ويمكن أن يحتوي فقط على أحرف وأرقام ونقاط !", 15 | "13": "حدث خطأ أثناء تحديث البيانات في قاعدة البيانات !", 16 | "14": "ملف Json غير صالح !", 17 | "15": "لا يمكن لهذا الخادم قبول المزيد من المستخدمين !", 18 | "16": "لقد وصلت إلى الحد الأقصى لعدد كلمات المرور المخزنة !", 19 | "17": "لا يوجد حساب لهذا البريد الإلكتروني!", 20 | "18": "الرسالة طويلة جدًا !", 21 | "19": "OTP غير صحيح !", 22 | "20": "يمكنك فقط ربط ما يصل إلى 5 Yubikeys!", 23 | "21": "Yubikey هذا مرتبط بالفعل بحسابك. ", 24 | "23": "بشرط أن Yubikey OTP غير صالح !", 25 | "24": "Yubikey مع المعرف المقدم غير مرتبط بحسابك. ", 26 | "25": "الرمز غير صحيح أو انتهت صلاحيته. الرجاء تسجيل الدخول مرة أخرى.", 27 | "26": "تم تمكين المصادقة ذات العاملين بالفعل.", 28 | "27": "لم يتم تمكين المصادقة ذات العاملين.", 29 | "28": "لم يتم تمكين البريد على هذا الخادم.", 30 | "29": "مفتاح الترخيص غير صالح!", 31 | "30": "هذا المفتاح تم استخدامه مسبقاً.", 32 | "300": "الموقع طويل جدًا!", 33 | "301": "اسم المستخدم طويل جدا!", 34 | "302": "كلمة المرور طويلة جدا!", 35 | "303": "الرسالة طويلة جدًا!", 36 | "400": "لم يتم توفير الإجراء في GET!", 37 | "401": "الإجراء غير صالح !", 38 | "403": "لم تقدم جميع القيم المطلوبة في POST .", 39 | "404": "لا يمكن الاتصال بواجهة برمجة التطبيقات. ", 40 | "429": "أنت ترسل طلبات كثيرة جدًا! يرجى الانتظار قبل تنفيذ هذا الإجراء مرة أخرى. ", 41 | "505": "حدث خطأ ما أثناء الاتصال بقاعدة البيانات! ", 42 | "506": "حدث خطأ ما أثناء الاتصال بخادم البريد! ", 43 | "999": "ليس لديك إذن لاستخدام نقطة النهاية هذه. ", 44 | "server": "الخادم", 45 | "website": "الموقع الإلكتروني", 46 | "username": "اسم المستخدم", 47 | "email": "البريد الإلكتروني", 48 | "password": "كلمة المرور", 49 | "signin": "تسجيل الدخول", 50 | "signup": "تسجيل", 51 | "signout": "تسجيل الخروج", 52 | "terms_of_service": "شروط الخدمة ", 53 | "okay": "حسنا", 54 | "add": "أضف", 55 | "change": "تغيير", 56 | "use": "استخدم", 57 | "copy": "نسخ", 58 | "send": "إرسال", 59 | "cancel": "إلغاء", 60 | "try_again": "إعادة المحاولة", 61 | "success": "نجح", 62 | "error": "خطأ", 63 | "enable": "تفعيل", 64 | "disable": "تعطيل", 65 | "remove": "إزالة", 66 | "delete": "حذف", 67 | "import": "تصدير", 68 | "importing": "استيراد", 69 | "importing_passwords": "استيراد {amount} كلمات المرور...", 70 | "import_from": "استورد من {name}", 71 | "import_paste": "لصق {type} بيانات من {name} لمدير كلمة المرور.", 72 | "import_invalid": "البيانات الواردة في الاستيراد الخاص بك غير صالحة! ", 73 | "import_success": "{success_number} تم استيراد كلمات المرور بنجاح !", 74 | "import_errors": "تم استيراد {success_number} من كلمات المرور بنجاح، ولكن لم يتم استيراد {error_number} من كلمات المرور! ", 75 | "backup": "النسخ الإحتياطي", 76 | "export": "تصدير", 77 | "passwords": "كلمة المرور", 78 | "import_export": "التصدير والإستيراد", 79 | "language": "اللغة", 80 | "theme": "المظهر", 81 | "search": "البحث", 82 | "length": "الطول", 83 | "settings": "الإعدادات", 84 | "minutes": "دقائق", 85 | "optional_note": "ملاحظة اختيارية", 86 | "session_duration": "مدة الجلسة ", 87 | "website_icons": "أيقونات الموقع", 88 | "website_icons_info": "تمكين أيقونات الموقع قد يقلل من خصوصيتك.", 89 | "only_browser_extension": "متاح فقط للعمل كملحق في متصفح الإنترنت.", 90 | "missing_language": "اللغة مفقودة؟ ترجمتها في {name}.", 91 | "forgot_username": "نسيت اسم المستخدم؟", 92 | "email_sent_success": "تم إرسال البريد الإلكتروني بنجاح", 93 | "add_password": "إضافة كلمة مرور", 94 | "add_password_success": "تمت إضافة كلمة المرور بنجاح ", 95 | "change_password_success": "تم تغيير كلمة المرور بنجاح ", 96 | "remove_password_success": "تمت إزالة كلمة المرور بنجاح ", 97 | "copy_password_success": "تم نسخ كلمة المرور بنجاح ", 98 | "copy_username_success": "تم نسخ اسم المستخدم بنجاح ", 99 | "edit_password": "تغيير كلمة المرور ", 100 | "password_generator": "توليد كلمة مرور", 101 | "delete_password": "حذف كلمة المرور ", 102 | "delete_password_confirmation": "هل أنت متأكد أنك تريد حذف كلمة المرور الخاصة بك؟ ستتم إزالة كلمة المرور الخاصة بك بشكل دائم من الخادم. ولا يمكن التراجع عن هذا الإجراء.", 103 | "delete_passwords": "احذف كلمات المرور", 104 | "delete_passwords_info": "لا يمكن استعادة كلمات المرور المحذوفة.", 105 | "delete_passwords_confirmation": "هل أنت متحقِّق أنك تريد حذف كلمات المرور الخاصة بك؟ ستتم إزالة كلمات المرور الخاصة بك نهائيًا من الخادم. لا يمكن التراجع عن هذا الإجراء.", 106 | "delete_account": "حذف الحساب ", 107 | "delete_account_info": "بمجرد حذف حسابك ، ستفقد جميع البيانات المرتبطة به. ", 108 | "delete_account_confirmation": "هل انت متأكد انك تريد حذف حسابك؟ ستتم إزالة جميع بياناتك بشكل دائم من الخادم. ولا يمكن التراجع عن هذا الإجراء.", 109 | "url_invalid": "عنوان URL للخادم غير صالح!", 110 | "server_unreachable": "لا يمكن الوصول إلى الخادم", 111 | "registration_completed": "اكتمل التسجيل! ", 112 | "dont_have_account_link": "لا تملك حسابا حتى الآن؟ سجل هنا.", 113 | "already_have_account_link": "مسجل بالفعل؟ تسجيل الدخول هنا. ", 114 | "username_validation": "يجب أن يكون اسم المستخدم ما بين 2 إلى 100 حرفًا!", 115 | "password_validation": "يجب أن تتكون كلمة المرور من 2 إلى 100 حرفًا!", 116 | "website_validation": "يجب أن يكون طول الموقع بين 2 و 100 حرف!", 117 | "otp_contains": "تحتوي المصادقة الثنائية على 6 أرقام.", 118 | "otp_not_setup": "إذا لم تقم بإعداد المصادقة الثنائية في حسابك، فاترك هذا الحقل فارغًا. ", 119 | "enable_2fa_question": "هل أنت متأكد أنك تريد تمكين المصادقة الثنائية؟", 120 | "disable_2fa_question": "هل أنت متأكد من أنك تريد تعطيل المصادقة الثنائية؟", 121 | "totp_applications": "قبل التمكين ، تأكد من تثبيت أحد التطبيقات التالية على هاتفك:", 122 | "scan_qr_code": "مسح QR Code:", 123 | "or_enter_key_manually": "أو أدخل المفتاح يدويًا:", 124 | "backup_codes": "رموز النسخ الاحتياطي:", 125 | "yubikey_added_successfully": "تمت إضافة Yubikey الخاص بك بنجاح", 126 | "yubikey_removed_successfully": "تمت إزالة Yubikey الخاص بك بنجاح ", 127 | "yubikey_insert_device": "1. أدخل Yubikey الخاص بك على جهازك.", 128 | "yubikey_focus_input": "2. انقر فوق إدخال OTP", 129 | "yubikey_press_button": "3. اضغط على الزر الذهبي الموجود على Yubikey الخاص بك", 130 | "auto_search": "البحث التلقائي ", 131 | "total_passwords": "مجموع كلمات المرور", 132 | "decryption_time": "وقت فك التشفير", 133 | "client_version": "نسخة العميل", 134 | "upgrade_account": "ترقية الحساب", 135 | "validate": "التحقق من الصحة", 136 | "license_key": "مفتاح الترخيص", 137 | "account": "الحساب", 138 | "expiration": "تاريخ الانتهاء", 139 | "free": "مجاناً", 140 | "premium": "الحساب المتميز", 141 | "never": "ابداً", 142 | "license_added_successfully": "تم ترقية حسابك بنجاح إلى الحساب المتمز وسوف يستمر حتى {date}.", 143 | "please_wait": "أرجو الانتظار", 144 | "saving_password": "جارٍ حفظ كلمة المرور...", 145 | "changing_password": "تغيير كلمة المرور...", 146 | "deleting_password": "جارٍ حذف كلمة المرور...", 147 | "deleting_passwords": "جارٍ حذف كلمات المرو...", 148 | "deleting_account": "جارٍ حذف الحساب...", 149 | "signing_in": "تسجيل الدخول...", 150 | "signing_up": "توقيع...", 151 | "sending_email": "إرسال البريد الإلكتروني...", 152 | "enabling_2fa": "تمكين 2FA...", 153 | "disabling_2fa": "جارٍ تعطيل 2FA...", 154 | "adding_yubikey": "جارٍ إضافة Yubikey...", 155 | "removing_yubikey": "جارٍ إزالة Yubikey...", 156 | "validating_license": "التحقق من صحة مفتاح الترخيص...", 157 | "decrypting_passwords": "جاري فك تشفير كلمات المرور..." 158 | } -------------------------------------------------------------------------------- /lang/bs/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Uspješno", 3 | "1": "Korisničko ime je nevažeće!", 4 | "2": "Lozinka je netačna!", 5 | "3": "Nešto nije u redu prilikom umetanja podataka u bazu podataka!\n", 6 | "4": "Korisničko ime je već registrovano!", 7 | "5": "Vaša lozinka je preslaba!", 8 | "6": "Email adresa je nevažeća!", 9 | "7": "Korisničko ime ne postoji!", 10 | "8": "Nemate nijednu sačuvanu lozinku.", 11 | "9": "Domena je nevaljana!", 12 | "10": "Korisnik nije vlasnik ove lozinke!", 13 | "11": "Nešto je pošlo naopako prilikom brisanja podataka iz baze podataka!", 14 | "12": "Korisničko ime mora imati između 6 i 30 znakova i može sadržavati samo slova, brojeve i tačke!", 15 | "13": "Nešto je pošlo naopako prilikom ažuriranja podataka u bazi podataka!", 16 | "14": "Json je nevaljan!", 17 | "15": "Ovaj poslužitelj ne može prihvatiti više korisnika!", 18 | "16": "Dosegli ste maksimalnu količinu sačuvanih lozinki!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Message is too long!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Akcija je nevažeća!", 38 | "403": "Niste naveli sve potrebne vrijednosti u POST-u.", 39 | "404": "Ne može se povezati na API.", 40 | "429": "You are sending too many requests! Please wait some time before executing this action.", 41 | "505": "Nešto je pošlo naopako prilikom povezivanja na bazu podataka!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "Nemate dozvolu za upotrebu ovog endpointa.", 44 | "server": "Server", 45 | "website": "Web stranica", 46 | "username": "Korisničko ime", 47 | "email": "Email", 48 | "password": "Lozinka", 49 | "signin": "Prijava", 50 | "signup": "Registracija", 51 | "signout": "Odjava", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "U redu", 54 | "add": "Dodaj", 55 | "change": "Promjena", 56 | "use": "Upotrebi", 57 | "copy": "Kopiraj", 58 | "send": "Send", 59 | "cancel": "Odustani", 60 | "try_again": "Pokušaj ponovo", 61 | "success": "USPJEH", 62 | "error": "GREŠKA", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Izbriši", 67 | "import": "Uvoz", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Uvoz iz {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "Podaci u uvozu su nevaljani!", 73 | "import_success": "Lozinka za {success_number} je uspješno uvezena!", 74 | "import_errors": "Lozinke za {success_number} su uspješno uvezene, ali lozinke za {error_number} nisu uvezene!", 75 | "backup": "Sigurnosna kopija", 76 | "export": "Izvoz", 77 | "passwords": "Lozinke", 78 | "import_export": "Uvoz i izvoz", 79 | "language": "Language", 80 | "theme": "Teme", 81 | "search": "Pretraži", 82 | "length": "Dužina", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Dodaj lozinku", 94 | "add_password_success": "Lozinka je uspješno dodana", 95 | "change_password_success": "Lozinka je uspješno promijenjena", 96 | "remove_password_success": "Lozinka je uspješno uklonjena", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Uredi lozinku", 100 | "password_generator": "Generator lozinki", 101 | "delete_password": "Izbriši lozinku", 102 | "delete_password_confirmation": "Jeste li sigurni da želite izbrisati lozinku? Vaša lozinka će biti zauvijek uklonjena sa servera. Ova radnja se ne može poništiti.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Obriši račun", 107 | "delete_account_info": "Jednom kada izbrišete svoj račun, izgubit ćete sve podatke povezane s njim.", 108 | "delete_account_confirmation": "Jeste li sigurni da želite izbrisati svoj račun? Svi će vaši podaci biti zauvijek uklonjeni sa servera. Ova radnja se ne može poništiti.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server je nedostupan!", 111 | "registration_completed": "Registracija je završena!", 112 | "dont_have_account_link": "Još nemate račun? Registrirajte se ovdje.", 113 | "already_have_account_link": "Već imate račun? Prijavite se ovdje.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/ca/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Successful", 3 | "1": "Username is invalid!", 4 | "2": "Password is incorrect!", 5 | "3": "Something went wrong while inserting data to the database!", 6 | "4": "Username is already registered!", 7 | "5": "Your password is too weak!", 8 | "6": "Email is invalid!", 9 | "7": "Username does not exist!", 10 | "8": "You don't have any saved passwords.", 11 | "9": "Domain is invalid!", 12 | "10": "User does not own this password!", 13 | "11": "Something went wrong while deleting data from database!", 14 | "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", 15 | "13": "Something went wrong while updating data in database!", 16 | "14": "Json is invalid!", 17 | "15": "This server cannot accept more users!", 18 | "16": "You have reached the maximum amount of stored passwords!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Message is too long!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Action is invalid!", 38 | "403": "You didn't provide all required values in POST.", 39 | "404": "Can't connect into API.", 40 | "429": "You are sending too many requests! Please wait before executing this action again.", 41 | "505": "Something went wrong while connecting to the database!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "You do NOT have permission to use this endpoint.", 44 | "server": "Server", 45 | "website": "Website", 46 | "username": "Username", 47 | "email": "Email", 48 | "password": "Password", 49 | "signin": "Sign in", 50 | "signup": "Sign up", 51 | "signout": "Sign out", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "Okay", 54 | "add": "Add", 55 | "change": "Change", 56 | "use": "Use", 57 | "copy": "Copy", 58 | "send": "Send", 59 | "cancel": "Cancel", 60 | "try_again": "Try again", 61 | "success": "SUCCESS", 62 | "error": "ERROR", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Delete", 67 | "import": "Import", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Import from {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "The data in your import is invalid!", 73 | "import_success": "{success_number} passwords imported successfully!", 74 | "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", 75 | "backup": "Backup", 76 | "export": "Export", 77 | "passwords": "Passwords", 78 | "import_export": "Import & Export", 79 | "language": "Language", 80 | "theme": "Theme", 81 | "search": "Search", 82 | "length": "Length", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Add password", 94 | "add_password_success": "Password has been added successfully", 95 | "change_password_success": "Password has been changed successfully", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Change password", 100 | "password_generator": "Generate password", 101 | "delete_password": "Delete password", 102 | "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Delete account", 107 | "delete_account_info": "Once you delete your account, you will lose all data associated with it.", 108 | "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server is unreachable!", 111 | "registration_completed": "Registration is completed!", 112 | "dont_have_account_link": "Don't have an account yet? Sign up here.", 113 | "already_have_account_link": "Already registered? Sign in here.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/cs/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Úspěch", 3 | "1": "Uživatelské jméno je neplatné!", 4 | "2": "Heslo je neplatné!", 5 | "3": "Při přidávání dat do databáze se vyskytla chyba!", 6 | "4": "Uživatelské jméno je již zaregistrováno!", 7 | "5": "Vaše heslo je příliš slabé!", 8 | "6": "E-mail je neplatný!", 9 | "7": "Uživatelské jméno je neplatné!", 10 | "8": "Nemáte žádná uložená hesla.", 11 | "9": "Doména je neplatná!", 12 | "10": "Uživatel nevlastní toto heslo!", 13 | "11": "Při mazání dat z databáze se vyskytla chyba!", 14 | "12": "Uživatelské jméno musí být dlouhé 6 až 30 znaků a může obsahovat pouze písmena, čísla a tečky!", 15 | "13": "Při nahrávání dat do databáze se vyskytla chyba!", 16 | "14": "JSON je neplatný!", 17 | "15": "Tento server již nepřijímá další uživatele!", 18 | "16": "Dosáhli jste maximálního počtu uložených hesel!", 19 | "17": "Účet s tímto e-mailem neexistuje!", 20 | "18": "Zpráva je příliš dlouhá!", 21 | "19": "OTP je nesprávný!", 22 | "20": "Můžete si připojit maximálně 5 Yubikey!", 23 | "21": "Tento Yubikey je již propojen s vaším účtem.", 24 | "23": "Zadané OTP Yubikey je neplatné!", 25 | "24": "Yubikey se zadaným ID není připojen k vašemu účtu.", 26 | "25": "Token je neplatný nebo vypršel. Zaregistrujte se prosím znovu.", 27 | "26": "Dvoufázové ověřování je již povoleno.", 28 | "27": "Dvoufázové ověřování není povoleno.", 29 | "28": "Na tomto serveru není povolena pošta.", 30 | "29": "Licenční klíč je neplatný!", 31 | "30": "Tento licenční klíč již byl použit.", 32 | "300": "Web je příliš dlouhý!", 33 | "301": "Uživatelské jméno je příliš dlouhé!", 34 | "302": "Heslo je příliš dlouhé!", 35 | "303": "Zpráva je příliš dlouhá!", 36 | "400": "Akce nebyla poskytnuta v GET!", 37 | "401": "Akce je neplatná!", 38 | "403": "Neposkytli jste všechna vyžadovaná data v POST.", 39 | "404": "Nepodařilo se připojit k API.", 40 | "429": "Posíláte příliš mnoho žádostí! Vyčkejte prosím před opětovným vykonáním této akce.", 41 | "505": "Při připojování se k databázi se vyskytla chyba!", 42 | "506": "Při připojování se k poštovnímu serveru se vyskytla chyba!", 43 | "999": "Nemáte oprávnění k použití tohoto endpointu.", 44 | "server": "Server", 45 | "website": "Web", 46 | "username": "Uživatelské jméno", 47 | "email": "E-mail", 48 | "password": "Heslo", 49 | "signin": "Přihlásit se", 50 | "signup": "Zaregistrovat se", 51 | "signout": "Odhlásit se", 52 | "terms_of_service": "Podmínky", 53 | "okay": "OK", 54 | "add": "Přidat", 55 | "change": "Změnit", 56 | "use": "Použít", 57 | "copy": "Zkopírovat", 58 | "send": "Potvrdit", 59 | "cancel": "Zrušit", 60 | "try_again": "Zkusit znovu", 61 | "success": "ÚSPĚCH", 62 | "error": "CHYBA", 63 | "enable": "Povolit", 64 | "disable": "Zakázat", 65 | "remove": "Odebrat", 66 | "delete": "Odstranit", 67 | "import": "Import", 68 | "importing": "Importování", 69 | "importing_passwords": "Importování {amount} hesel...", 70 | "import_from": "Importovat z {name}", 71 | "import_paste": "Vložit data {type} ze správce hesel {name}.", 72 | "import_invalid": "Data ve vašem importu jsou neplatná!", 73 | "import_success": "{success_number} hesel úspěšně importováno!", 74 | "import_errors": "{success_number} hesel úspěšně importováno, ale {error_number} hesel NEBYLO importováno!", 75 | "backup": "Záloha", 76 | "export": "Export", 77 | "passwords": "Hesla", 78 | "import_export": "Import a export", 79 | "language": "Jazyk", 80 | "theme": "Téma", 81 | "search": "Hledat", 82 | "length": "Délka", 83 | "settings": "Nastavení", 84 | "minutes": "minut", 85 | "optional_note": "Volitelná poznámka", 86 | "session_duration": "Trvání relace", 87 | "website_icons": "Ikony webů", 88 | "website_icons_info": "Povolení ikon webů může snížit vaše soukromí.", 89 | "only_browser_extension": "Dostupné pouze v rozšíření prohlížeče.", 90 | "missing_language": "Chybí váš jazyk? Přeložte jej na {name}.", 91 | "forgot_username": "Zapomněli jste uživatelské jméno?", 92 | "email_sent_success": "E-mail úspěšně odeslán", 93 | "add_password": "Přidat heslo", 94 | "add_password_success": "Heslo bylo úspěšně přidáno", 95 | "change_password_success": "Heslo bylo úspěšně změněno", 96 | "remove_password_success": "Heslo bylo úspěšně odstraněno", 97 | "copy_password_success": "Heslo bylo úspěšně zkopírováno", 98 | "copy_username_success": "Uživatelské jméno bylo úspěšně zkopírováno", 99 | "edit_password": "Změnit heslo", 100 | "password_generator": "Vygenerovat heslo", 101 | "delete_password": "Odstranit heslo", 102 | "delete_password_confirmation": "Opravdu chcete odstranit vaše heslo? Bude permanentně smazáno ze serveru. Tato akce je nevratná!", 103 | "delete_passwords": "Odstranit hesla", 104 | "delete_passwords_info": "Odstraněná hesla nelze obnovit.", 105 | "delete_passwords_confirmation": "Opravdu chcete odstranit svá hesla? Budou permanentně odstraněna ze serveru. Tato akce je nevratná.", 106 | "delete_account": "Odstranit účet", 107 | "delete_account_info": "Jakmile odstraníte svůj účet, ztratíte všechna data, která k němu náleží.", 108 | "delete_account_confirmation": "Opravdu chcete odstranit váš účet? Všechna data budou permanentně smazána ze serveru. Tato akce je nevratná!", 109 | "url_invalid": "URL serveru je neplatná!", 110 | "server_unreachable": "Server je nedostupný!", 111 | "registration_completed": "Registrace dokončena!", 112 | "dont_have_account_link": "Ještě nemáte účet? Zaregistrujte se zde.", 113 | "already_have_account_link": "Již máte účet? Přihlaste se zde.", 114 | "username_validation": "Uživatelské jméno by mělo být dlouhé 2 až 100 znaků!", 115 | "password_validation": "Heslo by mělo být dlouhé 2 až 100 znaků!", 116 | "website_validation": "Web by měl být dlouhý 2 až 100 znaků!", 117 | "otp_contains": "OTP obsahuje 6 čísel.", 118 | "otp_not_setup": "Pokud nemáte na svém účtu nastavené 2FA, ponechte toto pole prázdné.", 119 | "enable_2fa_question": "Opravdu chcete povolit dvoufázové ověření?", 120 | "disable_2fa_question": "Opravdu chcete zakázat dvoufázové ověření?", 121 | "totp_applications": "Před povolením se ujistěte, že máte na svém mobilu nainstalovánu jednu z následujících aplikací:", 122 | "scan_qr_code": "Naskenujte QR kód:", 123 | "or_enter_key_manually": "nebo zadejte klíč ručně:", 124 | "backup_codes": "Záložní kódy:", 125 | "yubikey_added_successfully": "Váš Yubikey byl úspěšně přidán", 126 | "yubikey_removed_successfully": "Váš Yubikey byl úspěšně odebrán", 127 | "yubikey_insert_device": "1. Vložte váš Yubikey do vašeho zařízení.", 128 | "yubikey_focus_input": "2. Klikněte na OTP vstup", 129 | "yubikey_press_button": "3. Stiskněte zlaté tlačítko umístěné na vašem Yubikey", 130 | "auto_search": "Automatické hledání", 131 | "total_passwords": "Celkem hesel", 132 | "decryption_time": "Čas dešifrování", 133 | "client_version": "Verze klienta", 134 | "upgrade_account": "Vylepšit účet", 135 | "validate": "Ověřit", 136 | "license_key": "Licenční klíč", 137 | "account": "Účet", 138 | "expiration": "Vyprší", 139 | "free": "Zdarma", 140 | "premium": "Premium", 141 | "never": "Nikdy", 142 | "license_added_successfully": "Váš účet byl úspěšně vylepšen na Premium, které vyprší {date}.", 143 | "please_wait": "ČEKEJTE PROSÍM", 144 | "saving_password": "Ukládání hesla...", 145 | "changing_password": "Změna hesla...", 146 | "deleting_password": "Mazání hesla...", 147 | "deleting_passwords": "Mazání hesel...", 148 | "deleting_account": "Mazání účtu...", 149 | "signing_in": "Přihlašování se...", 150 | "signing_up": "Registrace...", 151 | "sending_email": "Posílání e-mailu...", 152 | "enabling_2fa": "Povolování 2FA...", 153 | "disabling_2fa": "Zakazování 2FA...", 154 | "adding_yubikey": "Přidávání Yubikey...", 155 | "removing_yubikey": "Odebírání Yubikey...", 156 | "validating_license": "Ověřování licenčního klíče...", 157 | "decrypting_passwords": "Dešifrování hesel..." 158 | } -------------------------------------------------------------------------------- /lang/da/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Successful", 3 | "1": "Username is invalid!", 4 | "2": "Password is incorrect!", 5 | "3": "Something went wrong while inserting data to the database!", 6 | "4": "Username is already registered!", 7 | "5": "Your password is too weak!", 8 | "6": "Email is invalid!", 9 | "7": "Username does not exist!", 10 | "8": "You don't have any saved passwords.", 11 | "9": "Domain is invalid!", 12 | "10": "User does not own this password!", 13 | "11": "Something went wrong while deleting data from database!", 14 | "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", 15 | "13": "Something went wrong while updating data in database!", 16 | "14": "Json is invalid!", 17 | "15": "This server cannot accept more users!", 18 | "16": "You have reached the maximum amount of stored passwords!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Message is too long!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Action is invalid!", 38 | "403": "You didn't provide all required values in POST.", 39 | "404": "Can't connect into API.", 40 | "429": "You are sending too many requests! Please wait before executing this action again.", 41 | "505": "Something went wrong while connecting to the database!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "You do NOT have permission to use this endpoint.", 44 | "server": "Server", 45 | "website": "Website", 46 | "username": "Username", 47 | "email": "Email", 48 | "password": "Password", 49 | "signin": "Sign in", 50 | "signup": "Sign up", 51 | "signout": "Sign out", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "Okay", 54 | "add": "Add", 55 | "change": "Change", 56 | "use": "Use", 57 | "copy": "Copy", 58 | "send": "Send", 59 | "cancel": "Cancel", 60 | "try_again": "Try again", 61 | "success": "SUCCESS", 62 | "error": "ERROR", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Delete", 67 | "import": "Import", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Import from {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "The data in your import is invalid!", 73 | "import_success": "{success_number} passwords imported successfully!", 74 | "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", 75 | "backup": "Backup", 76 | "export": "Export", 77 | "passwords": "Passwords", 78 | "import_export": "Import & Export", 79 | "language": "Language", 80 | "theme": "Theme", 81 | "search": "Search", 82 | "length": "Length", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Add password", 94 | "add_password_success": "Password has been added successfully", 95 | "change_password_success": "Password has been changed successfully", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Change password", 100 | "password_generator": "Generate password", 101 | "delete_password": "Delete password", 102 | "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Delete account", 107 | "delete_account_info": "Once you delete your account, you will lose all data associated with it.", 108 | "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server is unreachable!", 111 | "registration_completed": "Registration is completed!", 112 | "dont_have_account_link": "Don't have an account yet? Sign up here.", 113 | "already_have_account_link": "Already registered? Sign in here.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/en/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Successful", 3 | "1": "Username is invalid!", 4 | "2": "Password is incorrect!", 5 | "3": "Something went wrong while inserting data to the database!", 6 | "4": "Username is already registered!", 7 | "5": "Your password is too weak!", 8 | "6": "Email is invalid!", 9 | "7": "Username does not exist!", 10 | "8": "You don't have any saved passwords.", 11 | "9": "Domain is invalid!", 12 | "10": "User does not own this password!", 13 | "11": "Something went wrong while deleting data from database!", 14 | "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", 15 | "13": "Something went wrong while updating data in database!", 16 | "14": "Json is invalid!", 17 | "15": "This server cannot accept more users!", 18 | "16": "You have reached the maximum amount of stored passwords!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Message is too long!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Action is invalid!", 38 | "403": "You didn't provide all required values in POST.", 39 | "404": "Can't connect into API.", 40 | "429": "You are sending too many requests! Please wait before executing this action again.", 41 | "505": "Something went wrong while connecting to the database!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "You do NOT have permission to use this endpoint.", 44 | "server": "Server", 45 | "website": "Website", 46 | "username": "Username", 47 | "email": "Email", 48 | "password": "Password", 49 | "signin": "Sign in", 50 | "signup": "Sign up", 51 | "signout": "Sign out", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "Okay", 54 | "add": "Add", 55 | "change": "Change", 56 | "use": "Use", 57 | "copy": "Copy", 58 | "send": "Send", 59 | "cancel": "Cancel", 60 | "try_again": "Try again", 61 | "success": "SUCCESS", 62 | "error": "ERROR", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Delete", 67 | "import": "Import", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Import from {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "The data in your import is invalid!", 73 | "import_success": "{success_number} passwords imported successfully!", 74 | "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", 75 | "backup": "Backup", 76 | "export": "Export", 77 | "passwords": "Passwords", 78 | "import_export": "Import & Export", 79 | "language": "Language", 80 | "theme": "Theme", 81 | "search": "Search", 82 | "length": "Length", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Add password", 94 | "add_password_success": "Password has been added successfully", 95 | "change_password_success": "Password has been changed successfully", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Change password", 100 | "password_generator": "Generate password", 101 | "delete_password": "Delete password", 102 | "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Delete account", 107 | "delete_account_info": "Once you delete your account, you will lose all data associated with it.", 108 | "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server is unreachable!", 111 | "registration_completed": "Registration is completed!", 112 | "dont_have_account_link": "Don't have an account yet? Sign up here.", 113 | "already_have_account_link": "Already registered? Sign in here.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/fa/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "موفق", 3 | "1": "این نام کاربری نامعتبر است!", 4 | "2": "رمز عبور اشتباه است!", 5 | "3": "هنگام ارسال اطلاعات به پایگاه داده خطایی رخ داد!", 6 | "4": "این نام کاربری قبلا ثبت شده است!", 7 | "5": "رمز عبور شما ضعیف است!", 8 | "6": "ایمیل وارد شده نامعتبر است!", 9 | "7": "این نام کاربری وجود ندارد!", 10 | "8": "رمز عبوری تابحال ذخیره نشده است.", 11 | "9": "دامنه وارد شده نامعتبر است!", 12 | "10": "کاربر صاحب این رمز عبور نیست!", 13 | "11": "در هنگام حذف اطلاعات از پایگاه داده خطایی رخ داد!", 14 | "12": "نام کاربری باید ۶ الی ۳۰ حرف و تنها شامل حروف و اعداد لاتین باشد!", 15 | "13": "هنگام بروزرسانی اطلاعات در پایگاه داده خطایی رخ داد!", 16 | "14": "Json نامعتبر است!", 17 | "15": "تعداد کاربران در این سرور به ظرفیت رسیده است!", 18 | "16": "ظرفیت گذرواژه های ذخیره شده به اتمام رسیده است!", 19 | "17": "کاربری با این آدرس ایمیل وجود ندارد!", 20 | "18": "پیام بیش‌از‌حد طولانی است!", 21 | "19": "OTP نادرست است!", 22 | "20": "شما تنها تا ۵ عدد Yubikey میتوانید متصل کنید!", 23 | "21": "این Yubikey در حال حاضر به اکانت شما متصل است.", 24 | "23": "Yubikey OTP وارد شده نامعتبر است!", 25 | "24": "Yubikey با ID وارد شده به اکانت شما متصل نیست.", 26 | "25": "Token منقضی شده و یا نامعتبر است. لطفا دوباره وارد شوید.", 27 | "26": "تأیید هویت دو عاملی در حال حاضر فعال است.", 28 | "27": "تأیید هویت دو عاملی در حال حاضر فعال نیست.", 29 | "28": "ارسال نامه از این سرور غیرفعال است.", 30 | "29": "کلید لایسنس نامعتبر است!", 31 | "30": "این کلید لایسنس قبلا استفاده شده است.", 32 | "300": "وبسایت بیش‌از‌حد طولانی است!", 33 | "301": "نام کاربری بیش‌از‌حد طولانی است!", 34 | "302": "رمز عبور بیش‌از‌حد طولانی است!", 35 | "303": "پیام بیش‌از‌حد طولانی است!", 36 | "400": "عملیات در GET تعریف نشده است!", 37 | "401": "عملیات غیرمجاز است!", 38 | "403": "شما داده های مورد نیاز را در POST ارائه ندادید.", 39 | "404": "خطا در برقراری اتصال با API.", 40 | "429": "درخواست های ارسالی شما بیش از حد مجاز است، لطفا کمی منتظر بمانید.", 41 | "505": "هنگام اتصال به پایگاه داده خطایی رخ داد!", 42 | "506": "هنگام اتصال به سرور ایمیل خطایی رخ داد!", 43 | "999": "شما مجوز استفاده از این endpoint را ندارید.", 44 | "server": "سرور", 45 | "website": "وبسایت", 46 | "username": "نام کاربری", 47 | "email": "ایمیل", 48 | "password": "رمز عبور", 49 | "signin": "ورود", 50 | "signup": "عضويت", 51 | "signout": "خروج از حساب", 52 | "terms_of_service": "شرایط خدمات", 53 | "okay": "باشه", 54 | "add": "افزودن", 55 | "change": "تغییر", 56 | "use": "استفاده", 57 | "copy": "کپی", 58 | "send": "ارسال", 59 | "cancel": "انصراف", 60 | "try_again": "تلاش مجدد", 61 | "success": "موفقیت آمیز", 62 | "error": "خطا", 63 | "enable": "فعال سازی", 64 | "disable": "غیرفعال کردن", 65 | "remove": "حذف", 66 | "delete": "حذف", 67 | "import": "وارد کردن", 68 | "importing": "درحال ورود داده ها", 69 | "importing_passwords": "درحال ورود {amount} رمز عبور...", 70 | "import_from": "وارد کردن داده ها از {name}", 71 | "import_paste": "وارد کردن اطلاعات {type} از سرویس مدیریت گذرواژه {name}.", 72 | "import_invalid": "داده ها نامعتبر اند!", 73 | "import_success": "{success_number} رمز عبور اضافه شد!", 74 | "import_errors": "{success_number} رمز عبور اضافه شد، ورود {error_number} رمز عبور ناموفق.", 75 | "backup": "بکاپ گرفتن", 76 | "export": "خروجی گرفتن", 77 | "passwords": "گذرواژه ها", 78 | "import_export": "وارد کردن و خروجی گرفتن", 79 | "language": "زبان", 80 | "theme": "پوسته", 81 | "search": "جستجو", 82 | "length": "طول", 83 | "settings": "تنظیمات", 84 | "minutes": "دقیقه", 85 | "optional_note": "یادداشت اختیاری", 86 | "session_duration": "مدت زمان ورود", 87 | "website_icons": "تصاویر سایت", 88 | "website_icons_info": "فعال سازی تصاویر سایت موجب تضعیف حریم خصوصی شما میشود.", 89 | "only_browser_extension": "تنها در نسخه افزونه وب موجود است.", 90 | "missing_language": "در {name} این برنامه را به زبان های دیگر ترجمه کنید.", 91 | "forgot_username": "نام کاربریتان را فراموش کرده‌اید؟", 92 | "email_sent_success": "ایمیل با موفقیت ارسال شد", 93 | "add_password": "افزودن کلمه عبور", 94 | "add_password_success": "رمز عبور با موفقیت اضافه شد", 95 | "change_password_success": "رمز عبور با موفقیت تغییر کرد", 96 | "remove_password_success": "رمز عبور با موفقیت حذف گردید", 97 | "copy_password_success": "رمز عبور کپی شد", 98 | "copy_username_success": "نام کاربری کپی شد", 99 | "edit_password": "تغییر رمز عبور", 100 | "password_generator": "تولید رمز عبور", 101 | "delete_password": "حذف رمز عبور", 102 | "delete_password_confirmation": "آیا از حذف رمز عبور خود اطمینان دارید؟ این عملیات قابل بازگشت نیست.", 103 | "delete_passwords": "حذف رمزهای عبور", 104 | "delete_passwords_info": "رمزهای عبور حذف شده قابل بازگشت نیستند.", 105 | "delete_passwords_confirmation": "آیا از حذف رمزهای عبور خود اطمینان دارید؟ این عملیات قابل بازگشت نیست.", 106 | "delete_account": "حذف حساب کاربری", 107 | "delete_account_info": "پس از حذف حساب کاربری، تمام اطلاعات مربوطه پاک خواهد شد.", 108 | "delete_account_confirmation": "آیا از حذف دائمی حساب کاربری خود اطمینان دارید؟ تمام اطلاعات شما از سرور پاک خواهد شد. این عملیات قابل بازگشت نیست.", 109 | "url_invalid": "آدرس سرور نامعتبر است.", 110 | "server_unreachable": "سرور در دسترس نمیباشد.", 111 | "registration_completed": "عضویت انجام گردید!", 112 | "dont_have_account_link": "آیا حساب کاربری ندارید؟ اینجا عضو شوید.", 113 | "already_have_account_link": "آیا قبلا عضو شده اید؟ اینجا وارد شوید.", 114 | "username_validation": "نام کاربری باید شامل ۲ الی ۱۰۰ حرف باشد!", 115 | "password_validation": "رمز عبور باید شامل ۲ الی ۱۰۰ حرف باشد!", 116 | "website_validation": "وبسایت باید شامل ۲ الی ۱۰۰ حرف باشد!", 117 | "otp_contains": "OTP شامل ۶ رقم است.", 118 | "otp_not_setup": "در صورتی که تأیید هویت دو عاملی را فعال نکرده اید، این گزینه را خالی بگذارید.", 119 | "enable_2fa_question": "آیا مطمئن هستید که می خواهید تأیید هویت دو عاملی را فعال کنید؟", 120 | "disable_2fa_question": "آیا مطمئن هستید که می خواهید تأیید هویت دو عاملی را غیرفعال کنید؟", 121 | "totp_applications": "پیش از فعال سازی، یکی از برنامه های زیر را برروی تلفن همراه خود نصب کنید:", 122 | "scan_qr_code": "اسکن کد QR:", 123 | "or_enter_key_manually": "یا کلید را دستی وارد کنید:", 124 | "backup_codes": "کدهای پشتیبان:", 125 | "yubikey_added_successfully": "Yubikey شما با موفقیت افزوده شد", 126 | "yubikey_removed_successfully": "Yubikey شما با موفقیت حذف گردید", 127 | "yubikey_insert_device": "۱. Yubikey خود را وصل کنید", 128 | "yubikey_focus_input": "۲. روی OTP Input کلیک کنید", 129 | "yubikey_press_button": "۳. دکمه طلایی Yubikey خود را فشار دهید", 130 | "auto_search": "جستجو خودکار", 131 | "total_passwords": "کل گذرواژه ها", 132 | "decryption_time": "مدت زمان رمزگشایی", 133 | "client_version": "نسخه کلاینت", 134 | "upgrade_account": "ارتقای حساب کاربری", 135 | "validate": "تأیید", 136 | "license_key": "کلید لایسنس", 137 | "account": "حساب کاربری", 138 | "expiration": "انقضاء", 139 | "free": "رايگان", 140 | "premium": "ویژه (Premium)", 141 | "never": "هرگز", 142 | "license_added_successfully": "حساب کاربری شما تا تاریخ {date} ارتقا یافته است.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/fi/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Successful", 3 | "1": "Käyttäjä nimi ei ole käytettävissä!", 4 | "2": "Password is incorrect!", 5 | "3": "Something went wrong while inserting data to the database!", 6 | "4": "Käyttäjänimi on jo rekisteröity!", 7 | "5": "Your password is too weak!", 8 | "6": "Email is invalid!", 9 | "7": "Username does not exist!", 10 | "8": "Sinulla ei ole yhtään tallennettua salasanaa.", 11 | "9": "Domain is invalid!", 12 | "10": "User does not own this password!", 13 | "11": "Something went wrong while deleting data from database!", 14 | "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", 15 | "13": "Something went wrong while updating data in database!", 16 | "14": "Json is invalid!", 17 | "15": "Tämä serveri ei voi ottaa enempää käyttäjiä!", 18 | "16": "You have reached the maximum amount of stored passwords!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Viesti on liian pitkä!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Action is invalid!", 38 | "403": "You didn't provide all required values in POST.", 39 | "404": "Can't connect into API.", 40 | "429": "You are sending too many requests! Please wait before executing this action again.", 41 | "505": "Jokin meni pieleen yhdistättäessä databaseen!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "You do NOT have permission to use this endpoint.", 44 | "server": "Serveri", 45 | "website": "Nettisivu", 46 | "username": "Käyttäjänimi", 47 | "email": "Sähköposti", 48 | "password": "Salasana", 49 | "signin": "Sign in", 50 | "signup": "Sign up", 51 | "signout": "Sign out", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "Okei", 54 | "add": "Lisää", 55 | "change": "Vaihda", 56 | "use": "Käytä", 57 | "copy": "Kopio", 58 | "send": "Lähetä", 59 | "cancel": "Peruuta", 60 | "try_again": "Yritä uudelleen", 61 | "success": "SUCCESS", 62 | "error": "ERROR", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Poista", 67 | "import": "Import", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Import from {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "The data in your import is invalid!", 73 | "import_success": "{success_number} passwords imported successfully!", 74 | "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", 75 | "backup": "Backup", 76 | "export": "Export", 77 | "passwords": "Passwords", 78 | "import_export": "Import & Export", 79 | "language": "Language", 80 | "theme": "Theme", 81 | "search": "Search", 82 | "length": "Length", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Add password", 94 | "add_password_success": "Password has been added successfully", 95 | "change_password_success": "Password has been changed successfully", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Change password", 100 | "password_generator": "Generate password", 101 | "delete_password": "Delete password", 102 | "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Delete account", 107 | "delete_account_info": "Once you delete your account, you will lose all data associated with it.", 108 | "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server is unreachable!", 111 | "registration_completed": "Registration is completed!", 112 | "dont_have_account_link": "Don't have an account yet? Sign up here.", 113 | "already_have_account_link": "Already registered? Sign in here.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/he/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Successful", 3 | "1": "Username is invalid!", 4 | "2": "Password is incorrect!", 5 | "3": "Something went wrong while inserting data to the database!", 6 | "4": "Username is already registered!", 7 | "5": "Your password is too weak!", 8 | "6": "Email is invalid!", 9 | "7": "Username does not exist!", 10 | "8": "You don't have any saved passwords.", 11 | "9": "Domain is invalid!", 12 | "10": "User does not own this password!", 13 | "11": "Something went wrong while deleting data from database!", 14 | "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", 15 | "13": "Something went wrong while updating data in database!", 16 | "14": "Json is invalid!", 17 | "15": "This server cannot accept more users!", 18 | "16": "You have reached the maximum amount of stored passwords!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Message is too long!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Action is invalid!", 38 | "403": "You didn't provide all required values in POST.", 39 | "404": "Can't connect into API.", 40 | "429": "You are sending too many requests! Please wait before executing this action again.", 41 | "505": "Something went wrong while connecting to the database!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "You do NOT have permission to use this endpoint.", 44 | "server": "Server", 45 | "website": "Website", 46 | "username": "Username", 47 | "email": "Email", 48 | "password": "Password", 49 | "signin": "Sign in", 50 | "signup": "Sign up", 51 | "signout": "Sign out", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "Okay", 54 | "add": "Add", 55 | "change": "Change", 56 | "use": "Use", 57 | "copy": "Copy", 58 | "send": "Send", 59 | "cancel": "Cancel", 60 | "try_again": "Try again", 61 | "success": "SUCCESS", 62 | "error": "ERROR", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Delete", 67 | "import": "Import", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Import from {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "The data in your import is invalid!", 73 | "import_success": "{success_number} passwords imported successfully!", 74 | "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", 75 | "backup": "Backup", 76 | "export": "Export", 77 | "passwords": "Passwords", 78 | "import_export": "Import & Export", 79 | "language": "Language", 80 | "theme": "Theme", 81 | "search": "Search", 82 | "length": "Length", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Add password", 94 | "add_password_success": "Password has been added successfully", 95 | "change_password_success": "Password has been changed successfully", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Change password", 100 | "password_generator": "Generate password", 101 | "delete_password": "Delete password", 102 | "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Delete account", 107 | "delete_account_info": "Once you delete your account, you will lose all data associated with it.", 108 | "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server is unreachable!", 111 | "registration_completed": "Registration is completed!", 112 | "dont_have_account_link": "Don't have an account yet? Sign up here.", 113 | "already_have_account_link": "Already registered? Sign in here.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/id/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Berhasil", 3 | "1": "Nama pengguna tidak valid!", 4 | "2": "Kata sandi salah!", 5 | "3": "Terjadi kesalahan saat mencoba terhubung ke database!", 6 | "4": "Nama pengguna sudah terdaftar!", 7 | "5": "Kunci lisensi tidak valid!", 8 | "6": "Email tidak valid!", 9 | "7": "Nama pengguna tidak ada!", 10 | "8": "Anda tidak memiliki kata sandi yang disimpan.", 11 | "9": "Domain tidak valid!", 12 | "10": "Pengguna tidak memiliki kata sandi ini!", 13 | "11": "Terjadi kesalahan saat menghapus data dari database!", 14 | "12": "Nama pengguna harus memiliki 6 - 30 karakter dan hanya boleh mengandung huruf, angka, dan titik!", 15 | "13": "Terjadi kesalahan saat memperbarui data dari database!", 16 | "14": "Json tidak valid!", 17 | "15": "Server ini tidak dapat menerima lebih banyak pengguna!", 18 | "16": "Anda telah mencapai jumlah maksimum kata sandi yang disimpan!", 19 | "17": "Akun dengan email ini tidak ada!", 20 | "18": "Pesan terlalu panjang!", 21 | "19": "OTP tidak valid!", 22 | "20": "Anda hanya dapat menautkan 5 Yubikey!", 23 | "21": "Yubikey ini sudah terhubung dengan akun Anda.", 24 | "23": "OTP Yubikey tidak valid!", 25 | "24": "Yubikey dengan ID ini tidak terhubung dengan akun Anda.", 26 | "25": "Token salah atau telah kadaluarsa. Silahkan masuk kembali.", 27 | "26": "Dua-faktor otentikasi sudah diaktifkan.", 28 | "27": "Dua-faktor otentikasi belum diaktifkan.", 29 | "28": "Email belum diaktifkan di server ini.", 30 | "29": "Kunci lisensi tidak valid!", 31 | "30": "Kunci lisensi ini telah digunakan sebelumnya.", 32 | "300": "Situs web terlalu panjang!", 33 | "301": "Nama pengguna terlalu panjang!", 34 | "302": "Kata sandi terlalu panjang!", 35 | "303": "Pesan terlalu panjang!", 36 | "400": "Tindakan tidak disediakan di GET!", 37 | "401": "Tindakan tidak valid!", 38 | "403": "Anda tidak mengisi semua nilai yang diperlukan di POST.", 39 | "404": "Tidak dapat terhubung ke API.", 40 | "429": "And mengirim terlalu banyak permintaan! Silahkan tunggu beberapa saat sebelum mencoba kembali.", 41 | "505": "Terjadi kesalahan saat mencoba terhubung ke database!", 42 | "506": "Terjadi kesalahan saat mencoba terhubung ke server email!", 43 | "999": "Anda TIDAK memiliki izin untuk menggunakan endpoint ini.", 44 | "server": "Server", 45 | "website": "Situs web", 46 | "username": "Nama pengguna", 47 | "email": "Email", 48 | "password": "Kata sandi", 49 | "signin": "Masuk", 50 | "signup": "Daftar", 51 | "signout": "Keluar", 52 | "terms_of_service": "Persyaratan Layanan", 53 | "okay": "Oke", 54 | "add": "Tambah", 55 | "change": "Ubah", 56 | "use": "Gunakan", 57 | "copy": "Salin", 58 | "send": "Kirim", 59 | "cancel": "Batal", 60 | "try_again": "Coba lagi", 61 | "success": "BERHASIL", 62 | "error": "ERROR", 63 | "enable": "Aktifkan", 64 | "disable": "Nonaktifkan", 65 | "remove": "Hapus", 66 | "delete": "Hapus", 67 | "import": "Impor", 68 | "importing": "Sedang memuat", 69 | "importing_passwords": "Sedang memuat {amount} kata sandi...", 70 | "import_from": "Impor dari {name}", 71 | "import_paste": "Cantumkan data {type} dari pengelola kata sandi {name}.", 72 | "import_invalid": "Data yang Anda impor tidak valid!", 73 | "import_success": "{success_number} kata sandi berhasil diimpor!", 74 | "import_errors": "{success_number} kata sandi berhasil diimpor, tetapi {error_number} kata sandi TIDAK berhasil diimpor!", 75 | "backup": "Cadangan", 76 | "export": "Ekspor", 77 | "passwords": "Kata sandi", 78 | "import_export": "Impor & Ekspor", 79 | "language": "Bahasa", 80 | "theme": "Tema", 81 | "search": "Cari", 82 | "length": "Panjang", 83 | "settings": "Pengaturan", 84 | "minutes": "menit", 85 | "optional_note": "Catatan Tambahan", 86 | "session_duration": "Durasi Sesi", 87 | "website_icons": "Ikon situs web", 88 | "website_icons_info": "Mengaktifkan ikon situs web dapat mengurangi privasi anda.", 89 | "only_browser_extension": "Hanya tersedia di ekstensi browser.", 90 | "missing_language": "Bahasa tidak ditemukan? Terjemahkan di {name}.", 91 | "forgot_username": "Lupa nama pengguna?", 92 | "email_sent_success": "Email sukses terkirim!", 93 | "add_password": "Tambah kata sandi", 94 | "add_password_success": "Kata sandi berhasil ditambahkan", 95 | "change_password_success": "Kata sandi berhasil diubah", 96 | "remove_password_success": "Kata sandi berhasil dihapus", 97 | "copy_password_success": "Kata sandi berhasil disalin", 98 | "copy_username_success": "Nama pengguna berhasil disalin", 99 | "edit_password": "Ubah kata sandi", 100 | "password_generator": "Generate kata sandi", 101 | "delete_password": "Hapus kata sandi", 102 | "delete_password_confirmation": "Apakah Anda yakin ingin menghapus kata sandi Anda? Kata sandi Anda akan dihapus secara permanen dari server. Aksi ini TIDAK BISA dibatalkan.", 103 | "delete_passwords": "Hapus katasandi", 104 | "delete_passwords_info": "Katasandi yang dihapus tidak dapat dipulihkan.", 105 | "delete_passwords_confirmation": "Apakah Kamu Yakin Menghapus Katasandi? Katasandi kamu akan dihapus secara permanen di server. Aksi ini tidak bisa dibatalkan.", 106 | "delete_account": "Hapus akun", 107 | "delete_account_info": "Setelah Anda menghapus akun Anda, Anda akan kehilangan semua data yang terkait dengannya.", 108 | "delete_account_confirmation": "Apakah Anda yakin ingin menghapus akun Anda? Semua data Anda akan dihapus secara permanen dari server. Tindakan ini TIDAK BISA dibatalkan.", 109 | "url_invalid": "URL server tidak valid!", 110 | "server_unreachable": "Server tidak dapat dijangkau!", 111 | "registration_completed": "Registrasi berhasi!", 112 | "dont_have_account_link": "Belum punya akun? Daftar di sini.", 113 | "already_have_account_link": "Sudah terdaftar? Masuk di sini.", 114 | "username_validation": "Nama Pengguna harus terdiri dari 2 hingga 100 karakter!", 115 | "password_validation": "Kata Sandi harus terdiri dari 2 sampai 100 karakter!", 116 | "website_validation": "Situs Web harus terdiri dari 2 hingga 100 karakter!", 117 | "otp_contains": "OTP berisi 6 angka.", 118 | "otp_not_setup": "Jika Anda tidak mengatur 2FA di akun Anda, biarkan kolom ini kosong.", 119 | "enable_2fa_question": "Apakah Anda yakin ingin mengaktifkan Autentikasi Dua-Faktor?", 120 | "disable_2fa_question": "Apakah Anda yakin ingin menonaktifkan Otentikasi Dua-Faktor?", 121 | "totp_applications": "Sebelum mengaktifkan, pastikan Anda telah menginstal di ponsel Anda salah satu aplikasi berikut:", 122 | "scan_qr_code": "Pindai kode QR:", 123 | "or_enter_key_manually": "atau masukkan kunci secara manual:", 124 | "backup_codes": "Kode cadangan:", 125 | "yubikey_added_successfully": "Yubikey Anda telah berhasil ditambahkan", 126 | "yubikey_removed_successfully": "Yubikey Anda telah berhasil dihapus", 127 | "yubikey_insert_device": "1. Masukkan Yubikey Anda ke perangkat Anda.", 128 | "yubikey_focus_input": "2. Kli di OTP input", 129 | "yubikey_press_button": "3. Tekan tombol emas yang terletak di Yubikey Anda", 130 | "auto_search": "Cari otomatis", 131 | "total_passwords": "Jumlah Kata Sandi", 132 | "decryption_time": "Waktu Dekripsi", 133 | "client_version": "Versi Klien", 134 | "upgrade_account": "Tingkatkan Akun", 135 | "validate": "Validasi", 136 | "license_key": "Kunci Lisensi", 137 | "account": "Akun", 138 | "expiration": "Kadaluarsa", 139 | "free": "Gratis", 140 | "premium": "Premium", 141 | "never": "Tidak pernah", 142 | "license_added_successfully": "Akun anda telah berhasil ditingkatkan ke Premium dan akan berlaku sampai {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/ja/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "完了", 3 | "1": "無効なユーザー名です!", 4 | "2": "パスワードが間違っています!", 5 | "3": "データベースにデータを挿入中に問題が発生しました。", 6 | "4": "ユーザ名がすでに登録されています!", 7 | "5": "安全性の低いパスワードです!", 8 | "6": "無効なメールアドレスです!", 9 | "7": "ユーザー名が存在しません!", 10 | "8": "保存されたパスワードがありません。", 11 | "9": "無効なドメインです!", 12 | "10": "ユーザーはこのパスワードを所有していません!", 13 | "11": "データベースからデータを削除中に問題が発生しました。", 14 | "12": "ユーザー名には6〜30文字の長さで文字、数字、ドットのみ使用できます。", 15 | "13": "データベースのデータを更新中に問題が発生しました。", 16 | "14": "無効なJsonです!", 17 | "15": "このサーバーはユーザー数の上限に達しました。", 18 | "16": "保存可能なパスワードの最大数に達しました!", 19 | "17": "このメールアドレスのアカウントは存在しません!", 20 | "18": "メッセージが長すぎます!", 21 | "19": "無効なOTPです!", 22 | "20": "Yubikeysは5つ以上登録することはできません!", 23 | "21": "このYubikeyは既にあなたのアカウントに登録されています。", 24 | "23": "提供されたYubikeyOTPは無効です!", 25 | "24": "提供されたIDを持つYubikeyはあなたのアカウントに登録されていません。", 26 | "25": "トークンが正しくないか、有効期限が切れています。もう一度サインインしてください。", 27 | "26": "二要素認証は既に有効になっています。", 28 | "27": "二要素認証が有効になっていません。", 29 | "28": "このサーバーではメールが有効になっていません。", 30 | "29": "無効なライセンスキーです!", 31 | "30": "このライセンス キーは既に使用されています。", 32 | "300": "ウェブサイトが長すぎます!", 33 | "301": "ユーザー名が長すぎます!", 34 | "302": "パスワードが長すぎます!", 35 | "303": "メッセージが長すぎます!", 36 | "400": "アクションはGETで提供されませんでした!", 37 | "401": "無効なアクションです!", 38 | "403": "POSTで必要なすべての値を指定していません。", 39 | "404": "APIに接続できません。", 40 | "429": "送信するリクエストが多すぎます。このアクションを再度実行する前に、しばらくお待ちください。", 41 | "505": "データベースへの接続中に問題が発生しました。", 42 | "506": "メールサーバーへの接続中に問題が発生しました。", 43 | "999": "このエンドポイントを使用する権限がありません。", 44 | "server": "サーバ", 45 | "website": "ウェブサイト", 46 | "username": "ユーザー名", 47 | "email": "Eメール", 48 | "password": "パスワード", 49 | "signin": "サインイン", 50 | "signup": "サインアップ", 51 | "signout": "サインアウト", 52 | "terms_of_service": "利用規約\n", 53 | "okay": "完了", 54 | "add": "追加", 55 | "change": "変更", 56 | "use": "使用", 57 | "copy": "コピー", 58 | "send": "送信", 59 | "cancel": "キャンセル", 60 | "try_again": "再試行", 61 | "success": "完了", 62 | "error": "エラー", 63 | "enable": "有効", 64 | "disable": "無効", 65 | "remove": "削除", 66 | "delete": "消去", 67 | "import": "インポート", 68 | "importing": "インポート", 69 | "importing_passwords": "{amount} 個のパスワードをインポートしています...", 70 | "import_from": "{name} からインポート", 71 | "import_paste": "パスワード マネージャー {name} から {type} データを貼り付けます。", 72 | "import_invalid": "インポートのデータが無効です!", 73 | "import_success": "{success_number}パスワードが正常にインポートされました!", 74 | "import_errors": "{success_number}パスワードは正常にインポートされましたが、{error_number}パスワードはインポートされませんでした。", 75 | "backup": "バックアップ", 76 | "export": "輸出", 77 | "passwords": "パスワード", 78 | "import_export": "インポート・エクスポート", 79 | "language": "言語", 80 | "theme": "テーマ", 81 | "search": "検索", 82 | "length": "長さ", 83 | "settings": "設定", 84 | "minutes": "分", 85 | "optional_note": "オプションの注意", 86 | "session_duration": "セッション期間", 87 | "website_icons": "ウェブサイトのアイコン", 88 | "website_icons_info": "Web サイトのアイコンを有効にすると、プライバシーが低下する可能性があります。", 89 | "only_browser_extension": "ブラウザ拡張機能でのみ使用できます。", 90 | "missing_language": "言語がありませんか? {name} で翻訳してください。", 91 | "forgot_username": "ユーザー名を忘れましたか?", 92 | "email_sent_success": "電子メールを正常に送信", 93 | "add_password": "パスワードを追加", 94 | "add_password_success": "パスワードが正常に追加されました", 95 | "change_password_success": "パスワードは正常に変更されました", 96 | "remove_password_success": "パスワードは正常に削除されました", 97 | "copy_password_success": "パスワードが正常にコピーされました", 98 | "copy_username_success": "ユーザー名が正常にコピーされました", 99 | "edit_password": "パスワードを変更する", 100 | "password_generator": "パスワードを生成する", 101 | "delete_password": "パスワードを削除する", 102 | "delete_password_confirmation": "パスワードを削除してもよろしいですか?パスワードはサーバーから完全に削除されます。このアクションは元に戻せません。", 103 | "delete_passwords": "パスワードを削除する", 104 | "delete_passwords_info": "削除されたパスワードは回復できません。", 105 | "delete_passwords_confirmation": "パスワードを削除してもよろしいですか? パスワードはサーバーから永久に削除されます。 このアクションは元に戻せません。", 106 | "delete_account": "アカウントを削除する", 107 | "delete_account_info": "アカウントを削除すると、それに関連付けられているすべてのデータが失われます。", 108 | "delete_account_confirmation": "アカウントを削除してもよろしいですか?すべてのデータはサーバーから完全に削除されます。このアクションは元に戻せません。", 109 | "url_invalid": "サーバーのURLが無効です!", 110 | "server_unreachable": "サーバーに到達できません!", 111 | "registration_completed": "登録完了です!", 112 | "dont_have_account_link": "まだアカウントをお持ちではありませんか?こちらからサインアップしてください。", 113 | "already_have_account_link": "すでに登録?ここでサインインします。", 114 | "username_validation": "ユーザー名の長さは 2 ~ 100 文字にする必要があります。", 115 | "password_validation": "パスワードの長さは 2 ~ 100 文字にする必要があります。", 116 | "website_validation": "ウェブサイトの長さは 2 ~ 100 文字である必要があります。", 117 | "otp_contains": "OTPには6つの数字が含まれています。", 118 | "otp_not_setup": "アカウントで2FAを設定しなかった場合は、このフィールドを空のままにします。", 119 | "enable_2fa_question": "2要素認証を有効にしてよろしいですか?\n", 120 | "disable_2fa_question": "2要素認証を無効にしてもよろしいですか?", 121 | "totp_applications": "有効にする前に、次のいずれかのアプリケーションが携帯電話にインストールされていることを確認してください。", 122 | "scan_qr_code": "QRコードをスキャン:", 123 | "or_enter_key_manually": "または手動でキーを入力します。", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Yubikeyが正常に追加されました", 126 | "yubikey_removed_successfully": "Yubikeyは正常に削除されました", 127 | "yubikey_insert_device": "1.Yubikeyをデバイスに挿入します。", 128 | "yubikey_focus_input": "2.OTP入力をクリックします", 129 | "yubikey_press_button": "3.Yubikeyにあるゴールドボタンを押します", 130 | "auto_search": "自動検索", 131 | "total_passwords": "合計パスワード", 132 | "decryption_time": "復号化時間", 133 | "client_version": "クライアントバージョン", 134 | "upgrade_account": "アカウントのアップグレード", 135 | "validate": "検証", 136 | "license_key": "ライセンスキー", 137 | "account": "アカウント", 138 | "expiration": "有効期限", 139 | "free": "自由", 140 | "premium": "プレミアム", 141 | "never": "一度もない", 142 | "license_added_successfully": "あなたのアカウントはプレミアムに正常にアップグレードされ、{date} まで有効です。", 143 | "please_wait": "お待ちください", 144 | "saving_password": "パスワードを保存しています...", 145 | "changing_password": "パスワードを変更しています...", 146 | "deleting_password": "パスワードを削除しています...", 147 | "deleting_passwords": "パスワードを削除しています...", 148 | "deleting_account": "アカウントを削除しています...", 149 | "signing_in": "サインイン...", 150 | "signing_up": "サインアップ...", 151 | "sending_email": "メールを送信しています...", 152 | "enabling_2fa": "2FA を有効にしています...", 153 | "disabling_2fa": "2FA を無効にしています...", 154 | "adding_yubikey": "ユビキーを追加中...", 155 | "removing_yubikey": "Yubikey を削除しています...", 156 | "validating_license": "ライセンス キーを検証しています...", 157 | "decrypting_passwords": "パスワードを解読しています..." 158 | } -------------------------------------------------------------------------------- /lang/ko/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "성공", 3 | "1": "올바르지 않은 사용자 이름이에요!", 4 | "2": "비밀번호가 일치하지 않아요!", 5 | "3": "데이터베이스에 데이터를 삽입하던 도중 문제가 발생했어요!", 6 | "4": "이미 등록된 사용자 이름이에요!", 7 | "5": "이 비밀번호는 너무 약합니다", 8 | "6": "이메일이 잘못되었습니다!", 9 | "7": "사용자 명이 존재하지 않습니다!", 10 | "8": "저장된 비밀번호가 없습니다.", 11 | "9": "도메인이 잘못되었습니다!", 12 | "10": "사용자는 이 암호를 소유하지 않습니다!", 13 | "11": "데이터베이스에서 데이터를 삭제하는 동안 문제가 발생했습니다!", 14 | "12": "사용자 이름은 6~30자여야 하며 문자, 숫자 및 점만 포함할 수 있습니다!", 15 | "13": "데이터베이스의 데이터를 업데이트하는 동안 문제가 발생했습니다!", 16 | "14": "Json이 잘못되었습니다!", 17 | "15": "이 서버는 더 많은 사용자를 허용할 수 없습니다!", 18 | "16": "저장된 최대 비밀번호 수에 도달했습니다!", 19 | "17": "이 이메일 계정이 존재하지 않습니다!", 20 | "18": "메시지가 너무 깁니다!", 21 | "19": "OTP가 잘못되었습니다!", 22 | "20": "최대 5개의 Yubikey만 연결할 수 있습니다!", 23 | "21": "이 Yubikey는 이미 귀하의 계정과 연결되어 있습니다.", 24 | "23": "제공된 Yubikey OTP가 유효하지 않습니다!", 25 | "24": "제공된 ID의 Yubikey는 귀하의 계정에 연결되어 있지 않습니다.", 26 | "25": "토큰이 잘못되었거나 만료되었습니다. 다시 로그인하십시오.", 27 | "26": "이중 인증이 이미 활성화되어 있습니다.", 28 | "27": "이중 인증이 활성화되어 있지 않습니다.", 29 | "28": "이 서버에서 메일을 사용할 수 없습니다.", 30 | "29": "라이선스 키가 유효하지 않아요.", 31 | "30": "이 라이센스 키는 이미 사용되었습니다.", 32 | "300": "웹사이트가 너무 깁니다!", 33 | "301": "사용자 이름이 너무 깁니다!", 34 | "302": "비밀번호가 너무 깁니다!", 35 | "303": "메시지가 너무 깁니다!", 36 | "400": "GET에서 조치가 제공되지 않았습니다!", 37 | "401": "작업이 잘못되었습니다!", 38 | "403": "POST에서 모든 필수 값을 제공하지 않았습니다.", 39 | "404": "API에 연결할 수 없습니다.", 40 | "429": "너무 많은 요청을 보내고 있습니다! 이 작업을 다시 실행하기 전에 잠시 기다려 주십시오.", 41 | "505": "데이터베이스에 연결하는 동안 문제가 발생했습니다!", 42 | "506": "메일 서버에 연결하는 동안 문제가 발생했습니다", 43 | "999": "이 끝점을 사용할 권한이 없습니다.", 44 | "server": "섬기는 사람", 45 | "website": "웹사이트", 46 | "username": "사용자 이름", 47 | "email": "이메일", 48 | "password": "비밀번호", 49 | "signin": "로그인", 50 | "signup": "가입하기", 51 | "signout": "로그아웃", 52 | "terms_of_service": "서비스 약관", 53 | "okay": "괜찮아", 54 | "add": "추가하다", 55 | "change": "변화", 56 | "use": "사용", 57 | "copy": "복사", 58 | "send": "Send", 59 | "cancel": "취소", 60 | "try_again": "다시 시도하십시오", 61 | "success": "성공", 62 | "error": "오류", 63 | "enable": "할 수있게하다", 64 | "disable": "장애를 입히다", 65 | "remove": "제거하다", 66 | "delete": "삭제", 67 | "import": "수입", 68 | "importing": "수입", 69 | "importing_passwords": "{amount} 비밀번호 가져오기.", 70 | "import_from": "다음에서 가져오기 {name}", 71 | "import_paste": "{name} 비밀번호 관리자에서 {type} 데이터를 붙여넣습니다.", 72 | "import_invalid": "가져오기의 데이터가 잘못되었습니다!", 73 | "import_success": "{success_number} 비밀번호를 성공적으로 가져왔습니다!", 74 | "import_errors": "{success_number} 개의 비밀번호를 성공적으로 가져왔지만 {error_number} 개의 비밀번호를 가져오지 못했습니다!", 75 | "backup": "지원", 76 | "export": "내 보내다", 77 | "passwords": "비밀번호", 78 | "import_export": "수입 수출", 79 | "language": "언어", 80 | "theme": "주제", 81 | "search": "검색", 82 | "length": "길이", 83 | "settings": "설정", 84 | "minutes": "분", 85 | "optional_note": "선택적 참고 사항", 86 | "session_duration": "세션 시간", 87 | "website_icons": "웹사이트 아이콘", 88 | "website_icons_info": "웹 사이트 아이콘을 활성화하면 개인 정보가 줄어들 수 있습니다.", 89 | "only_browser_extension": "브라우저 확장 프로그램에서만 사용 가능.", 90 | "missing_language": "언어가 누락되었나요? {name} 에서 번역하세요.", 91 | "forgot_username": "사용자 이름을 잊으셨습니까?", 92 | "email_sent_success": "이메일이 성공적으로 전송되었습니다.", 93 | "add_password": "비밀번호 추가", 94 | "add_password_success": "비밀번호가 성공적으로 추가되었습니다", 95 | "change_password_success": "비밀번호가 성공적으로 변경되었습니다", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "비밀번호가 성공적으로 복사되었습니다", 98 | "copy_username_success": "사용자 이름이 성공적으로 복사되었습니다.", 99 | "edit_password": "비밀번호 변경", 100 | "password_generator": "비밀번호 생성", 101 | "delete_password": "비밀번호 삭제", 102 | "delete_password_confirmation": "비밀번호를 삭제하시겠습니까? 귀하의 비밀번호는 서버에서 영구적으로 제거됩니다. 이 작업은 취소할 수 없습니다.", 103 | "delete_passwords": "비밀번호 삭제", 104 | "delete_passwords_info": "삭제 암호는 복구할 수 없습니다.", 105 | "delete_passwords_confirmation": "비밀번호를 삭제하시겠습니까? 귀하의 비밀번호는 서버에서 영구적으로 제거됩니다. 이 작업은 취소할 수 없습니다.", 106 | "delete_account": "계정 삭제", 107 | "delete_account_info": "계정을 삭제하면 연결된 모든 데이터가 손실됩니다.", 108 | "delete_account_confirmation": "계정을 삭제하시겠습니까? 모든 데이터가 서버에서 영구적으로 제거됩니다. 이 작업은 취소할 수 없습니다.", 109 | "url_invalid": "서버 Url이 잘못되었습니다!", 110 | "server_unreachable": "서버에 연결할 수 없습니다!", 111 | "registration_completed": "등록이 완료되었습니다!", 112 | "dont_have_account_link": "아직 계정이 없으신가요? 여기에서 가입하세요.", 113 | "already_have_account_link": "이미 등록? 여기에서 로그인하세요.", 114 | "username_validation": "사용자 이름은 2~100자 사이여야 합니다!", 115 | "password_validation": "비밀번호는 2~100자 사이여야 합니다!", 116 | "website_validation": "웹사이트는 2~100자 사이여야 합니다!", 117 | "otp_contains": "OTP에는 6개의 숫자가 있습니다.", 118 | "otp_not_setup": "계정에 2FA를 설정하지 않은 경우 이 필드를 비워 두십시오.", 119 | "enable_2fa_question": "2단계 인증을 활성화하시겠습니까?", 120 | "disable_2fa_question": "이중 인증을 비활성화하시겠습니까?", 121 | "totp_applications": "활성화하기 전에 다음 애플리케이션 중 하나를 전화기에 설치했는지 확인하십시오.", 122 | "scan_qr_code": "QR 코드 스캔:", 123 | "or_enter_key_manually": "또는 수동으로 키 입력:", 124 | "backup_codes": "백업 코드:", 125 | "yubikey_added_successfully": "Yubikey가 성공적으로 추가되었습니다.", 126 | "yubikey_removed_successfully": "Yubikey가 성공적으로 제거되었습니다.", 127 | "yubikey_insert_device": "1. 장치에 Yubikey를 삽입합니다.", 128 | "yubikey_focus_input": "2. OTP 입력 클릭", 129 | "yubikey_press_button": "3. Yubikey에 있는 금색 버튼을 누릅니다.", 130 | "auto_search": "자동 검색", 131 | "total_passwords": "총 비밀번호", 132 | "decryption_time": "암호 해독 시간", 133 | "client_version": "클라이언트 버전", 134 | "upgrade_account": "업그레이드 계정", 135 | "validate": "확인", 136 | "license_key": "라이센스 키", 137 | "account": "계정", 138 | "expiration": "만료", 139 | "free": "무료", 140 | "premium": "프리미엄", 141 | "never": "절대", 142 | "license_added_successfully": "귀하의 계정은 프리미엄으로 성공적으로 업그레이드되었으며 {date} 까지 유지됩니다.", 143 | "please_wait": "기다리세요", 144 | "saving_password": "비밀번호 저장 중...", 145 | "changing_password": "비밀번호 변경 중...", 146 | "deleting_password": "비밀번호 삭제 중...", 147 | "deleting_passwords": "비밀번호 삭제 중...", 148 | "deleting_account": "계정 삭제 중...", 149 | "signing_in": "로그인...", 150 | "signing_up": "가입 중...", 151 | "sending_email": "이메일을 보내는 중...", 152 | "enabling_2fa": "2FA 사용 설정 중...", 153 | "disabling_2fa": "2FA 비활성화 중...", 154 | "adding_yubikey": "유비키 추가 중...", 155 | "removing_yubikey": "유비키 제거 중...", 156 | "validating_license": "라이센스 키 확인 중...", 157 | "decrypting_passwords": "암호 해독 중..." 158 | } -------------------------------------------------------------------------------- /lang/no/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Vellykket", 3 | "1": "Brukernavnet er ugyldig!", 4 | "2": "Passordet er feil!", 5 | "3": "Noe gikk galt under innsetting av data til databasen!", 6 | "4": "Brukernavnet er allerede registrert!", 7 | "5": "Your password is too weak!", 8 | "6": "Eposten er ugyldig!", 9 | "7": "Brukernavnet eksisterer ikke!", 10 | "8": "Du har ikke noe lagret passord.", 11 | "9": "Domenet er ugyldig!", 12 | "10": "Brukeren eier ikke dette passordet!", 13 | "11": "Noe gikk galt under sletting av data fra databasen!", 14 | "12": "Brukernavnet må være mellom 6 og 30 tegn langt, og kan bare inneholde bokstaver, tall og prikker!", 15 | "13": "Noe gikk galt under oppdatering av data i databasen!", 16 | "14": "Json er ugyldig!", 17 | "15": "Serveren kan ikke godta flere brukere!", 18 | "16": "Du har nådd maksimal mengde av lagrede passord!", 19 | "17": "En konto med denne eposten eksisterer ikke!", 20 | "18": "Meldingen er for lang!", 21 | "19": "OTP er feil!", 22 | "20": "Du kan bare koble til opptil 5 Yubikeys!", 23 | "21": "Denne Yubikey er allerede knyttet til kontoen din.", 24 | "23": "Forutsatt at Yubikey OTP er ugyldig!", 25 | "24": "Yubikey med oppgitt ID er ikke knyttet til kontoen din.", 26 | "25": "Tokenet er feil eller det har utløpt. Logg på igjen.", 27 | "26": "Tofaktorautentisering er allerede aktivert.", 28 | "27": "Tofaktorautentisering er ikke aktivert.", 29 | "28": "Mail er ikke aktivert på denne serveren.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Nettsiden er for lang!", 33 | "301": "Brukernavnet er for langt!", 34 | "302": "Passordet er for langt!", 35 | "303": "Meldingen er for lang!", 36 | "400": "Handlingen ble ikke gitt i GET!", 37 | "401": "Handlingen er ugyldig!", 38 | "403": "Du oppga ikke alle nødvendige verdier i POST.", 39 | "404": "Kunne ikke koble til APIet.", 40 | "429": "Du sender for mange forespørsler! Vennligst vent før du utfører denne handlingen igjen.", 41 | "505": "Noe gikk galt under tilkoblingen til databasen!", 42 | "506": "Noe gikk galt under tilkoblingen til e-postserveren!", 43 | "999": "Du har IKKE tillatelse til å bruke dette endepunktet.", 44 | "server": "Server", 45 | "website": "Nettsted", 46 | "username": "Brukernavn", 47 | "email": "Epost", 48 | "password": "Passord", 49 | "signin": "Logg inn", 50 | "signup": "Registrer deg", 51 | "signout": "Logg out", 52 | "terms_of_service": "Vilkår for bruk", 53 | "okay": "Ok", 54 | "add": "Legg til", 55 | "change": "Endre", 56 | "use": "Bruk", 57 | "copy": "Kopier", 58 | "send": "Send", 59 | "cancel": "Avbryt", 60 | "try_again": "Prøv igjen", 61 | "success": "SUKSESS", 62 | "error": "FEIL", 63 | "enable": "Aktiver", 64 | "disable": "Deaktiver", 65 | "remove": "Fjerne", 66 | "delete": "Slett", 67 | "import": "Importer", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Importer fra {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "Dataene i importen din er ugyldige!", 73 | "import_success": "{success_number} passsord importert!", 74 | "import_errors": "{success_number} passord er importert, men {error_number} passord er IKKE importert!", 75 | "backup": "Sikkerhetskopier", 76 | "export": "Eksporter", 77 | "passwords": "Passord", 78 | "import_export": "Import & Eksport", 79 | "language": "Language", 80 | "theme": "Tema", 81 | "search": "Søk", 82 | "length": "Lengde", 83 | "settings": "Innstillinger", 84 | "minutes": "minutter", 85 | "optional_note": "Valgfri merknad", 86 | "session_duration": "Øktens varighet", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Glem brukernavn?", 92 | "email_sent_success": "Eposten ble sendt", 93 | "add_password": "Legg til passord", 94 | "add_password_success": "Passordet er lagt til", 95 | "change_password_success": "Passordet har blitt endret", 96 | "remove_password_success": "Passordet har blitt fjernet", 97 | "copy_password_success": "Passordet har blitt kopiert", 98 | "copy_username_success": "Brukernavnet har blitt kopiert", 99 | "edit_password": "Endre passord", 100 | "password_generator": "Generer passord", 101 | "delete_password": "Slett passord", 102 | "delete_password_confirmation": "Er du sikker på at du vil slette passordet ditt? Passordet ditt blir permanent fjernet fra serveren. Denne handlingen kan IKKE angres.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Slett konto", 107 | "delete_account_info": "Når du sletter kontoen din, mister du alle dataene som er knyttet til den.", 108 | "delete_account_confirmation": "Er du sikker på at du vil slette kontoen din? Alle dataene dine blir permanent fjernet fra serveren. Denne handlingen kan IKKE angres.", 109 | "url_invalid": "Serverens url er ugyldig!", 110 | "server_unreachable": "Serveren er utilgjengelig!", 111 | "registration_completed": "Registrering er fullført!", 112 | "dont_have_account_link": "Har du ikke en konto ennå? Meld deg på her.", 113 | "already_have_account_link": "Allerede registrert? Logg deg på her.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP inneholder 6 tall.", 118 | "otp_not_setup": "Hvis du ikke har konfigurert 2FA på kontoen din, la dette feltet stå tomt.", 119 | "enable_2fa_question": "Er du sikker på at du vil aktivere tofaktorautentisering?", 120 | "disable_2fa_question": "Er du sikker på at du vil deaktivere tofaktorautentisering?", 121 | "totp_applications": "Før du aktiverer, må du kontrollere at du har installert en av følgende programmer på telefonen:", 122 | "scan_qr_code": "Skann QR Kode:", 123 | "or_enter_key_manually": "eller legg inn kode manuelt:", 124 | "backup_codes": "Reservekoder:", 125 | "yubikey_added_successfully": "Din Yubikey er lagt til", 126 | "yubikey_removed_successfully": "Din Yubikey har blitt fjernet", 127 | "yubikey_insert_device": "1. Sett inn Yubikey til enheten.", 128 | "yubikey_focus_input": "2. Klikk på OTP-inngang", 129 | "yubikey_press_button": "3. Trykk på gullknappen på din Yubikey", 130 | "auto_search": "Autosøk", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/sl/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Uspešno", 3 | "1": "Uporabniško ime je neveljavno!", 4 | "2": "Geslo je napačno!", 5 | "3": "Med vstavljanjem podatkov v bazo podatkov je prišlo do napake!", 6 | "4": "Uporabniško ime je že registrirano!", 7 | "5": "Vaše geslo je prešibko!", 8 | "6": "E-pošta je neveljavna!", 9 | "7": "Uporabniško ime ne obstaja!", 10 | "8": "Nimate shranjenega gesla.", 11 | "9": "Domena je neveljavna!", 12 | "10": "Uporabnik ni lastnik tega gesla!", 13 | "11": "Med brisanjem podatkov iz baze podatkov je prišlo do napake!", 14 | "12": "Uporabniško ime mora biti dolgo med 6 in 30 znakov in lahko vsebuje samo črke, številke in pike!", 15 | "13": "Med posodabljanjem podatkov v bazi je prišlo do napake!", 16 | "14": "Json je neveljaven!", 17 | "15": "Ta strežnik ne more sprejeti več uporabnikov!", 18 | "16": "Dosegli ste največjo količino shranjenih gesel!", 19 | "17": "Račun z tem E-poštnim naslovom ne obstaja!", 20 | "18": "Sporočilo je predolgo!", 21 | "19": "OTP ni pravilen!", 22 | "20": "Uporabite lahko največ 5 Yubikeys!", 23 | "21": "Ta Yubikey je že povezan z vašim računom.", 24 | "23": "Vnešen Yubikey OTP je neveljaven!", 25 | "24": "Yubikey z navedenim ID-jem ni povezan z vašim računom.", 26 | "25": "Žeton ni pravilen ali pa je potekel. Prosimo, prijavite se znova.", 27 | "26": "Dvofaktorsko preverjanje pristnosti je že omogočeno.", 28 | "27": "Dvofaktorsko preverjanje pristnosti je omogočeno.", 29 | "28": "Pošta na tem strežniku ni omogočena.", 30 | "29": "Licenčni ključ ni veljaven!", 31 | "30": "Ta licenčni ključ je bil že uporabljen.", 32 | "300": "Spletna stran je predolga!", 33 | "301": "Uporabniško ime je predolgo!", 34 | "302": "Geslo je predolgo!", 35 | "303": "Sporočilo je predolgo!", 36 | "400": "Akcija ni bila zagotovljena v GET-u!", 37 | "401": "Dejanje je neveljavno!", 38 | "403": "V POST niste navedli vseh zahtevanih vrednosti. ", 39 | "404": "Ne morem se povezati z API-jem.", 40 | "429": "Pošiljate preveč zahtev! Počakajte nekaj časa, preden izvedete to dejanje. ", 41 | "505": "Med povezovanjem z bazo podatkov je prišlo do napake!", 42 | "506": "Med povezovanjem z E-poštnim strežnikom je prišlo do napake!", 43 | "999": "Nimate dovoljenja za uporabo te točke.", 44 | "server": "Strežnik", 45 | "website": "Spletna stran", 46 | "username": "Uporabniško ime", 47 | "email": "E-naslov", 48 | "password": "Geslo", 49 | "signin": "Vpis", 50 | "signup": "Prijava", 51 | "signout": "Odjava", 52 | "terms_of_service": "Pogoji uporabe", 53 | "okay": "V redu", 54 | "add": "Dodaj", 55 | "change": "Spremeni", 56 | "use": "Uporabi", 57 | "copy": "Kopiraj", 58 | "send": "Pošlji", 59 | "cancel": "Prekliči", 60 | "try_again": "Poskusite znova", 61 | "success": "USPEH", 62 | "error": "NAPAKA", 63 | "enable": "Vključi", 64 | "disable": "Izključi", 65 | "remove": "Odstrani", 66 | "delete": "Izbriši", 67 | "import": "Uvozi", 68 | "importing": "Uvažanje", 69 | "importing_passwords": "Uvažanje {amount} gesel...", 70 | "import_from": "Uvozi iz {name}", 71 | "import_paste": "Prilepite podatke {type} iz upravitelja gesel {name}.", 72 | "import_invalid": "Podatki pri uvozu so neveljavni!", 73 | "import_success": "{success_number} gesla so bila uspešno uvožena! ", 74 | "import_errors": "{success_number} gesel je bilo uspešno uvoženih, {error_number} gesel pa ni bilo uvoženih!", 75 | "backup": "Rezerva", 76 | "export": "Izvoz", 77 | "passwords": "Gesla", 78 | "import_export": "Uvoz in Izvoz", 79 | "language": "Jezik", 80 | "theme": "Tema", 81 | "search": "Iskanje", 82 | "length": "Dolžina", 83 | "settings": "Nastavitve", 84 | "minutes": "minut", 85 | "optional_note": "Izbirna opomba", 86 | "session_duration": "Trajanje seje", 87 | "website_icons": "Ikone spletnih mest", 88 | "website_icons_info": "Omogočanje ikon spletnih mest lahko zmanjša vašo zasebnost.", 89 | "only_browser_extension": "Na voljo samo v razširitvi brskalnika.", 90 | "missing_language": "Manjka jezik? Prevedi ga na {name}.", 91 | "forgot_username": "Pozabljeno uporabniško ime?", 92 | "email_sent_success": "E-poštno sporočilo je bilo poslano uspešno", 93 | "add_password": "Dodaj geslo", 94 | "add_password_success": "Geslo je bilo uspešno dodano", 95 | "change_password_success": "Geslo je bilo uspešno spremenjeno", 96 | "remove_password_success": "Geslo je bilo uspešno odstranjeno", 97 | "copy_password_success": "Geslo je bilo uspešno kopirano", 98 | "copy_username_success": "Uporabniško ime je bilo uspešno kopirano", 99 | "edit_password": "Uredi geslo", 100 | "password_generator": "Generator gesel", 101 | "delete_password": "Izbriši geslo", 102 | "delete_password_confirmation": "Ali ste prepričani, da želite izbrisati geslo? Vaše geslo bo za vedno odstranjeno s strežnika. Tega dejanja ni mogoče razveljaviti.", 103 | "delete_passwords": "Izbriši gesla", 104 | "delete_passwords_info": "Izbrisanih gesel ni mogoče obnoviti.", 105 | "delete_passwords_confirmation": "Ali ste prepričani, da želite izbrisati svoja gesla? Vaša gesla bodo trajno odstranjena s strežnika. Tega dejanja NI mogoče razveljaviti.", 106 | "delete_account": "Izbriši račun", 107 | "delete_account_info": "Ko izbrišete račun, boste izgubili vse podatke, povezane z njim.", 108 | "delete_account_confirmation": "Ali ste prepričani, da želite izbrisati svoj račun? Vsi vaši podatki bodo za vedno odstranjeni s strežnika. Tega dejanja ni mogoče razveljaviti.", 109 | "url_invalid": "URL strežnika ni veljaven!", 110 | "server_unreachable": "Strežnik je nedosegljiv!", 111 | "registration_completed": "Registracija je končana!", 112 | "dont_have_account_link": "Še nimate računa? Prijavite se tukaj.", 113 | "already_have_account_link": "Že imate račun? Prijavite se tukaj.", 114 | "username_validation": "Uporabniško ime mora biti dolgo od 2 do 100 znakov!", 115 | "password_validation": "Geslo mora biti dolgo od 2 do 100 znakov!", 116 | "website_validation": "Spletna stran mora biti dolga od 2 do 100 znakov!", 117 | "otp_contains": "OTP vsebuje 6 številk.", 118 | "otp_not_setup": "Če v svojem računu niste nastavili 2FA, pustite to polje prazno.", 119 | "enable_2fa_question": "Ali ste prepričani, da želite omogočiti dvofaktorsko preverjanje pristnosti?", 120 | "disable_2fa_question": "Ali ste prepričani, da želite onemogočiti dvofaktorsko preverjanje pristnosti?", 121 | "totp_applications": "Preden omogočite, se prepričajte, da ste v telefon namestili eno od naslednjih aplikacij:", 122 | "scan_qr_code": "Skeniraj QR kodo:", 123 | "or_enter_key_manually": "ali ročno vnesite ključ:", 124 | "backup_codes": "Rezervne kode:", 125 | "yubikey_added_successfully": "Vaš Yubikey je bil uspešno dodan", 126 | "yubikey_removed_successfully": "Vaš Yubikey je bil uspešno odstranjen", 127 | "yubikey_insert_device": "1. Vstavite svoj Yubikey v napravo", 128 | "yubikey_focus_input": "2. Kliknite na OTP polje za vnos podatkov", 129 | "yubikey_press_button": "3. Pritisnite zlati gumb na Yubikeyju", 130 | "auto_search": "Samodejno iskanje", 131 | "total_passwords": "Skupaj Gesel", 132 | "decryption_time": "Čas Dešifriranja", 133 | "client_version": "Različica Odjemalca", 134 | "upgrade_account": "Nadgradi Račun", 135 | "validate": "Potrdi", 136 | "license_key": "Licenčni ključ", 137 | "account": "Račun", 138 | "expiration": "Iztek", 139 | "free": "Brezplačen", 140 | "premium": "Premium", 141 | "never": "Nikoli", 142 | "license_added_successfully": "Vaš račun je bil uspešno nadgrajen na Premium in bo trajal do {date}.", 143 | "please_wait": "PROSIM POČAKAJTE", 144 | "saving_password": "Shranjujem geslo...", 145 | "changing_password": "Spreminjam geslo...", 146 | "deleting_password": "Brišem geslo...", 147 | "deleting_passwords": "Brišem gesla...", 148 | "deleting_account": "Brišem račun...", 149 | "signing_in": "Prijavljam...", 150 | "signing_up": "Prijavljanje...", 151 | "sending_email": "Pošiljanje e-pošte...", 152 | "enabling_2fa": "Omogočanje 2FA...", 153 | "disabling_2fa": "Onemogočanje 2FA...", 154 | "adding_yubikey": "Dodajanje Yubikeya...", 155 | "removing_yubikey": "Odstranjevanje Yubikeya...", 156 | "validating_license": "Preverjanje licenčnega ključa...", 157 | "decrypting_passwords": "Dešifriranje gesel..." 158 | } -------------------------------------------------------------------------------- /lang/sr/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Successful", 3 | "1": "Username is invalid!", 4 | "2": "Password is incorrect!", 5 | "3": "Something went wrong while inserting data to the database!", 6 | "4": "Username is already registered!", 7 | "5": "Your password is too weak!", 8 | "6": "Email is invalid!", 9 | "7": "Username does not exist!", 10 | "8": "You don't have any saved passwords.", 11 | "9": "Domain is invalid!", 12 | "10": "User does not own this password!", 13 | "11": "Something went wrong while deleting data from database!", 14 | "12": "Username must be 6 to 30 characters long, and may only contain letters, numbers and dots!", 15 | "13": "Something went wrong while updating data in database!", 16 | "14": "Json is invalid!", 17 | "15": "This server cannot accept more users!", 18 | "16": "You have reached the maximum amount of stored passwords!", 19 | "17": "Account with this email doesn't exist!", 20 | "18": "Message is too long!", 21 | "19": "OTP is incorrect!", 22 | "20": "You can only link up to 5 Yubikeys!", 23 | "21": "This Yubikey is already linked with your account.", 24 | "23": "Provided Yubikey OTP is invalid!", 25 | "24": "Yubikey with provided ID isn't linked to your account.", 26 | "25": "The token is incorrect or it has expired. Please Sign in again.", 27 | "26": "Two-factor authentication is already enabled.", 28 | "27": "Two-factor authentication is not enabled.", 29 | "28": "Mail is not enabled on this server.", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "Website is too long!", 33 | "301": "Username is too long!", 34 | "302": "Password is too long!", 35 | "303": "Message is too long!", 36 | "400": "Action was not provided in GET!", 37 | "401": "Action is invalid!", 38 | "403": "You didn't provide all required values in POST.", 39 | "404": "Can't connect into API.", 40 | "429": "You are sending too many requests! Please wait before executing this action again.", 41 | "505": "Something went wrong while connecting to the database!", 42 | "506": "Something went wrong while connecting to the mail server!", 43 | "999": "You do NOT have permission to use this endpoint.", 44 | "server": "Server", 45 | "website": "Website", 46 | "username": "Username", 47 | "email": "Email", 48 | "password": "Password", 49 | "signin": "Sign in", 50 | "signup": "Sign up", 51 | "signout": "Sign out", 52 | "terms_of_service": "Terms of Service", 53 | "okay": "Okay", 54 | "add": "Add", 55 | "change": "Change", 56 | "use": "Use", 57 | "copy": "Copy", 58 | "send": "Send", 59 | "cancel": "Cancel", 60 | "try_again": "Try again", 61 | "success": "SUCCESS", 62 | "error": "ERROR", 63 | "enable": "Enable", 64 | "disable": "Disable", 65 | "remove": "Remove", 66 | "delete": "Delete", 67 | "import": "Import", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "Import from {name}", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "The data in your import is invalid!", 73 | "import_success": "{success_number} passwords imported successfully!", 74 | "import_errors": "{success_number} passwords imported successfully, but {error_number} passwords NOT imported!", 75 | "backup": "Backup", 76 | "export": "Export", 77 | "passwords": "Passwords", 78 | "import_export": "Import & Export", 79 | "language": "Language", 80 | "theme": "Theme", 81 | "search": "Search", 82 | "length": "Length", 83 | "settings": "Settings", 84 | "minutes": "minutes", 85 | "optional_note": "Optional Note", 86 | "session_duration": "Session Duration", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "Forgot username?", 92 | "email_sent_success": "Email sent successfully", 93 | "add_password": "Add password", 94 | "add_password_success": "Password has been added successfully", 95 | "change_password_success": "Password has been changed successfully", 96 | "remove_password_success": "Password has been removed successfully", 97 | "copy_password_success": "Password has been copied successfully", 98 | "copy_username_success": "Username has been copied successfully", 99 | "edit_password": "Change password", 100 | "password_generator": "Generate password", 101 | "delete_password": "Delete password", 102 | "delete_password_confirmation": "Are you sure you want to delete your password? Your password will be permanently removed from the server. This action can NOT be undone.", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "Delete account", 107 | "delete_account_info": "Once you delete your account, you will lose all data associated with it.", 108 | "delete_account_confirmation": "Are you sure you want to delete your account? All of your data will be permanently removed from the server. This action can NOT be undone.", 109 | "url_invalid": "Server url is invalid!", 110 | "server_unreachable": "Server is unreachable!", 111 | "registration_completed": "Registration is completed!", 112 | "dont_have_account_link": "Don't have an account yet? Sign up here.", 113 | "already_have_account_link": "Already registered? Sign in here.", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP contains 6 numbers.", 118 | "otp_not_setup": "If you did not setup 2FA on your account leave this field empty.", 119 | "enable_2fa_question": "Are you sure you want to enable Two-Factor Authentication?", 120 | "disable_2fa_question": "Are you sure you want to disable Two-Factor Authentication?", 121 | "totp_applications": "Before enabling, make sure you have installed one of the following applications on your phone:", 122 | "scan_qr_code": "Scan QR Code:", 123 | "or_enter_key_manually": "or enter key manually:", 124 | "backup_codes": "Backup codes:", 125 | "yubikey_added_successfully": "Your Yubikey has been added successfully", 126 | "yubikey_removed_successfully": "Your Yubikey has been removed successfully", 127 | "yubikey_insert_device": "1. Insert your Yubikey into the computer", 128 | "yubikey_focus_input": "2. Click on OTP Input", 129 | "yubikey_press_button": "3. Press the gold button located on your Yubikey", 130 | "auto_search": "Auto Search", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/tr/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "Başarılı", 3 | "1": "Kullanıcı adı geçersiz!", 4 | "2": "Hatalı parola!", 5 | "3": "Veritabanına veri eklenirken bir şeyler ters gitti!", 6 | "4": "Kullanıcı adı zaten kayıtlı!", 7 | "5": "Parolanız çok zayıf!", 8 | "6": "E-posta geçersiz!", 9 | "7": "Kullanıcı adı bulunamadı!", 10 | "8": "Hiç kayıtlı şifreniz yok.", 11 | "9": "Alan adı geçersiz!", 12 | "10": "Kullanıcı bu parolaya sahip değil!", 13 | "11": "Veritabanından veri silinirken bir şeyler ters gitti!", 14 | "12": "Kullanıcı adı 6 ila 30 karakter uzunluğunda olmalıdır ve yalnızca harf, sayı ve nokta içerebilir!", 15 | "13": "Veritabanı güncellenirken bir şeyler ters gitti!", 16 | "14": "Json geçersiz!", 17 | "15": "Bu sunucu daha fazla kullanıcıyı kabul edemez!", 18 | "16": "Maksimum kayıtlı şifre sınırına ulaştınız!", 19 | "17": "Bu e-postaya ait bir hesap bulunamadı!", 20 | "18": "Mesaj çok uzun!", 21 | "19": "OTP kodu yanlış!", 22 | "20": "Sadece 5 Yubikey anahtarı kurabilirsiniz!", 23 | "21": "Bu Yubikey anahtarı zaten hesabınızla ilişkilendirildi.", 24 | "23": "Yubikey OTP kodu geçersiz!", 25 | "24": "Kimliği verilen Yubikey anahtarı hesabınıza bağlı değil.", 26 | "25": "Belirteç yanlış veya süresi dolmuş. Lütfen tekrar oturum açın.", 27 | "26": "İki faktörlü kimlik doğrulama zaten etkin.", 28 | "27": "İki faktörlü kimlik doğrulama etkin değil.", 29 | "28": "Posta bu sunucuda etkin değil.", 30 | "29": "Lisans anahtarı geçersiz!", 31 | "30": "Bu lisans anahtarı zaten kullanılmış.", 32 | "300": "Web sitesi çok uzun!", 33 | "301": "Kullanıcı adı çok uzun!", 34 | "302": "Parola çok uzun!", 35 | "303": "Mesaj çok uzun!", 36 | "400": "GET işlemi yapılamadı!", 37 | "401": "Eylem geçersiz!", 38 | "403": "Zorunlu tüm alanları doldurmalısınız.", 39 | "404": "API'ye bağlanılamıyor.", 40 | "429": "Çok fazla istek gönderiyorsunuz! Lütfen bu işlemi tekrar gerçekleştirmeden önce biraz bekleyin.", 41 | "505": "Veritabanına bağlanırken bir şeyler ters gitti!", 42 | "506": "Mail sunucusuna bağlanırken bir şeyler ters gitti!", 43 | "999": "Bu noktada kullanım izniniz YOKTUR.", 44 | "server": "Sunucu", 45 | "website": "Website", 46 | "username": "Kullanıcı adı", 47 | "email": "E-posta", 48 | "password": "Parola", 49 | "signin": "Giriş yap", 50 | "signup": "Kaydol", 51 | "signout": "Oturumu kapat", 52 | "terms_of_service": "Kullanım Şartları", 53 | "okay": "Tamam", 54 | "add": "Ekle", 55 | "change": "Değiştir", 56 | "use": "Kullan", 57 | "copy": "Kopyala", 58 | "send": "Gönder", 59 | "cancel": "Vazgeç", 60 | "try_again": "Tekrar deneyin", 61 | "success": "BAŞARILI", 62 | "error": "HATA", 63 | "enable": "Etkinleştir", 64 | "disable": "Devre dışı bırak", 65 | "remove": "Kaldır", 66 | "delete": "Sil", 67 | "import": "İçe aktar", 68 | "importing": "İçeri aktarılıyor", 69 | "importing_passwords": "{amount} parola içe aktarılıyor...", 70 | "import_from": "{name}'dan içe aktar", 71 | "import_paste": "{name} şifre yöneticisinden {type} verilerini yapıştırın.", 72 | "import_invalid": "İçe aktarmanızdaki veriler geçersiz!", 73 | "import_success": "{success_number} parolaları başarıyla içe aktarıldı!", 74 | "import_errors": "{success_number} parolaları başarıyla içe aktarıldı, ancak {error_number} parola içe aktarılamadı!", 75 | "backup": "Yedekle", 76 | "export": "Dışa aktar", 77 | "passwords": "Parolalar", 78 | "import_export": "İçeri ve Dışa Aktar", 79 | "language": "Dil", 80 | "theme": "Tema", 81 | "search": "Arama", 82 | "length": "Uzunluk", 83 | "settings": "Ayarlar", 84 | "minutes": "dakika", 85 | "optional_note": "İsteğe bağlı Not", 86 | "session_duration": "Oturum Süresi", 87 | "website_icons": "Website Simgesi", 88 | "website_icons_info": "Website simgelerini etkinleştirmek gizliliğinizi azaltabilir.", 89 | "only_browser_extension": "Sadece tarayacı eklentisinde kullanılabilir.", 90 | "missing_language": "Dil eksik mi? {name} üstünden çevirebilirsiniz.", 91 | "forgot_username": "Kullanıcı adınızı mı unuttunuz?", 92 | "email_sent_success": "E-posta başarıyla gönderildi", 93 | "add_password": "Parola ekle", 94 | "add_password_success": "Parola başarıyla eklendi", 95 | "change_password_success": "Parola başarıyla değiştirildi", 96 | "remove_password_success": "Parola başarıyla kaldırıldı", 97 | "copy_password_success": "Parola kopyalandı", 98 | "copy_username_success": "Kullanıcı adı başarıyla kopyalandı", 99 | "edit_password": "Parola değiştir", 100 | "password_generator": "Parola oluştur", 101 | "delete_password": "Parolayı sil", 102 | "delete_password_confirmation": "Parolanızı silmek istediğinizden emin misiniz? Parolanız sunucudan kalıcı olarak kaldırılacaktır. Bu işlem geri alınamaz.", 103 | "delete_passwords": "Parolaları sil", 104 | "delete_passwords_info": "Silinen parolalar kurtarılamaz.", 105 | "delete_passwords_confirmation": "Parolaları silmek istediğinizden emin misiniz? Parolalar sunucudan kalıcı olarak kaldırılacaktır. Bu işlem geri ALINAMAZ.", 106 | "delete_account": "Hesabı sil", 107 | "delete_account_info": "Hesabınızı sildikten sonra, hesabınızla ilişkili tüm verileri kaybedersiniz.", 108 | "delete_account_confirmation": "Hesabınızı silmek istediğinizden emin misiniz? Tüm verileriniz sunucudan kalıcı olarak kaldırılacaktır. Bu işlem geri ALINAMAZ.", 109 | "url_invalid": "Sunucu adresi geçersiz!", 110 | "server_unreachable": "Sunucuya bağlanılamıyor!", 111 | "registration_completed": "Hesap oluşturuldu!", 112 | "dont_have_account_link": "Hesabınız yok mu? Buradan kaydolun.", 113 | "already_have_account_link": "Hesap zaten kayıtlı? Buradan oturum açın.", 114 | "username_validation": "Kullanıcı adı 2 ila 100 karakter uzunluğunda olmalıdır!", 115 | "password_validation": "Parola 2 ila 100 karakter uzunluğunda olmalıdır!", 116 | "website_validation": "Websitesi adı 2 ila 100 karakter uzunluğunda olmalıdır!", 117 | "otp_contains": "OTP 6 rakamdan oluşur.", 118 | "otp_not_setup": "Hesabınızda 2FA ayarlamadıysanız bu alanı boş bırakın.", 119 | "enable_2fa_question": "İki Faktörlü Doğrulamayı (2FA) etkinleştirmek istediğinizden emin misiniz?", 120 | "disable_2fa_question": "İki Faktörlü Doğrulamayı devre dışı bırakmak istediğinizden emin misiniz?", 121 | "totp_applications": "Etkinleştirmeden önce, cep telefonunuza aşağıdaki uygulamalardan birini yüklediğinizden emin olun:", 122 | "scan_qr_code": "QR Kodunu Tara:", 123 | "or_enter_key_manually": "veya anahtarı manuel olarak girin:", 124 | "backup_codes": "Yedek kodlar:", 125 | "yubikey_added_successfully": "Yubikey Anahtarınız başarıyla eklendi", 126 | "yubikey_removed_successfully": "Yubikey anahtarınız başarıyla kaldırıldı", 127 | "yubikey_insert_device": "1. Yubikey anahtarınızı cihazınıza takın.", 128 | "yubikey_focus_input": "2. OTP kutucuğuna tıklayın", 129 | "yubikey_press_button": "3. Yubikey anahtarınızdaki altın renkli düğmeye basın", 130 | "auto_search": "Otomatik Arama", 131 | "total_passwords": "Toplam Parola", 132 | "decryption_time": "Şifre Çözme Zamanı", 133 | "client_version": "İstemci Sürümü", 134 | "upgrade_account": "Hesabını Yükselt", 135 | "validate": "Doğrula", 136 | "license_key": "Lisans Anahtarı", 137 | "account": "Hesap", 138 | "expiration": "Bitiş tarihi", 139 | "free": "Ücretsiz", 140 | "premium": "Premium", 141 | "never": "Asla", 142 | "license_added_successfully": "Hesabınız başarıyla Premium'a yükseltildi ve {date} tarihine kadar geçerlidir.", 143 | "please_wait": "LÜTFEN BEKLEYİN", 144 | "saving_password": "Parola kaydediliyor...", 145 | "changing_password": "Parola değiştiriliyor...", 146 | "deleting_password": "Parola siliniyor...", 147 | "deleting_passwords": "Parolalar siliniyor...", 148 | "deleting_account": "Hesap siliniyor...", 149 | "signing_in": "Giriş yapılıyor...", 150 | "signing_up": "Kaydolunuyor...", 151 | "sending_email": "E-posta gönderiliyor...", 152 | "enabling_2fa": "2FA etkinleştiriliyor...", 153 | "disabling_2fa": "2FA devre dışı bırakılıyor...", 154 | "adding_yubikey": "Yubikey ekleniyor...", 155 | "removing_yubikey": "Yubikey kaldırılıyor...", 156 | "validating_license": "Lisans anahtarı doğrulanıyor...", 157 | "decrypting_passwords": "Parolaların şifresi çözülüyor..." 158 | } -------------------------------------------------------------------------------- /lang/zh-CN/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "成功", 3 | "1": "用户名不合法!", 4 | "2": "密码不正确!", 5 | "3": "将数据插入数据库时​​出现问题!", 6 | "4": "该用户名已经被注册!", 7 | "5": "Your password is too weak!", 8 | "6": "邮箱不合法!", 9 | "7": "用户名不存在!", 10 | "8": "你没有任何保存的密码!", 11 | "9": "域名不合法!", 12 | "10": "用户未拥有这个密码!", 13 | "11": "从数据库中删除数据时发生了错误!", 14 | "12": "用户名必须至少6位长度,并且只能包含字母,数字,和点!", 15 | "13": "更新数据库中数据时发生了错误!", 16 | "14": "Json不合法!", 17 | "15": "该服务器不接受更多用户!", 18 | "16": "你已达到最大存储密码数量!", 19 | "17": "使用此电子邮件的帐户不存在!", 20 | "18": "留言太长了!", 21 | "19": "OTP 不正确!", 22 | "20": "您最多只能链接 5 个 Yubikey!", 23 | "21": "此 Yubikey 已与您的帐户关联。", 24 | "23": "前提是 Yubikey OTP 无效!", 25 | "24": "提供 ID 的 Yubikey 未链接到您的帐户。", 26 | "25": "令牌不正确或已过期。请重新登录。", 27 | "26": "双重身份验证已启用。", 28 | "27": "未启用两因素身份验证。", 29 | "28": "此服务器上未启用邮件。", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "网站太长了!", 33 | "301": "用户名太长!", 34 | "302": "密码太长了!", 35 | "303": "留言太长了!", 36 | "400": "GET 中未提供操作!", 37 | "401": "操作不合法!", 38 | "403": "你在POST中没有提供所有所需的值", 39 | "404": "无法连接到API!", 40 | "429": "你发送了太多请求!请稍后再试!", 41 | "505": "连接数据库时出现错误!", 42 | "506": "连接邮件服务器时出现问题!", 43 | "999": "你没有权限使用这个端点", 44 | "server": "服务器", 45 | "website": "网站", 46 | "username": "用户名", 47 | "email": "邮箱", 48 | "password": "密码", 49 | "signin": "登录", 50 | "signup": "注册", 51 | "signout": "登出", 52 | "terms_of_service": "服务条款", 53 | "okay": "好的", 54 | "add": "添加", 55 | "change": "修改", 56 | "use": "使用", 57 | "copy": "复制", 58 | "send": "发送", 59 | "cancel": "取消", 60 | "try_again": "重试", 61 | "success": "成功", 62 | "error": "错误", 63 | "enable": "使能够", 64 | "disable": "禁用", 65 | "remove": "消除", 66 | "delete": "删除", 67 | "import": "导入", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "从 {name} 中导入", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "导入的数据不合法!", 73 | "import_success": "成功导入了 {success_number} 个密码!", 74 | "import_errors": "成功导入了 {success_number} 个密码,还有 {error_number} 个密码导入失败!", 75 | "backup": "备份", 76 | "export": "导出", 77 | "passwords": "密码", 78 | "import_export": "导入 & 导出", 79 | "language": "Language", 80 | "theme": "主题", 81 | "search": "搜索", 82 | "length": "长度", 83 | "settings": "设置", 84 | "minutes": "分钟", 85 | "optional_note": "可选说明", 86 | "session_duration": "会话持续时间", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "忘了用户名了吗?", 92 | "email_sent_success": "邮件发送成功", 93 | "add_password": "添加密码", 94 | "add_password_success": "密码添加成功", 95 | "change_password_success": "密码修改成功", 96 | "remove_password_success": "密码移除成功", 97 | "copy_password_success": "密码已成功复制", 98 | "copy_username_success": "用户名已成功复制", 99 | "edit_password": "修改密码", 100 | "password_generator": "生成密码", 101 | "delete_password": "删除密码", 102 | "delete_password_confirmation": "您确定要删除密码吗? 您的密码将从服务器中永久删除,此操作无法撤消。", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "删除账户", 107 | "delete_account_info": "删除帐户后,您将丢失与其关联的所有数据", 108 | "delete_account_confirmation": "您确定要删除您的帐户吗? 您的所有数据都将从服务器中永久删除,此操作无法撤消。", 109 | "url_invalid": "服务器URL不合法!", 110 | "server_unreachable": "服务器无法访问!", 111 | "registration_completed": "注册完成!", 112 | "dont_have_account_link": "还没有账号?在这里注册", 113 | "already_have_account_link": "已经注册了?在这里登录", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP 包含 6 个数字", 118 | "otp_not_setup": "如果您没有在您的帐户上设置 2FA,请将此字段留空。", 119 | "enable_2fa_question": "您确定要启用双重身份验证吗?", 120 | "disable_2fa_question": "您确定要禁用双重身份验证吗?", 121 | "totp_applications": "启用前,请确保您的手机上已安装以下应用程序之一:", 122 | "scan_qr_code": "扫描二维码:", 123 | "or_enter_key_manually": "或手动输入密钥:", 124 | "backup_codes": "备用代码:", 125 | "yubikey_added_successfully": "您的 Yubikey 已成功添加", 126 | "yubikey_removed_successfully": "您的 Yubikey 已成功移除", 127 | "yubikey_insert_device": "1. 将您的 Yubikey 插入您的设备。", 128 | "yubikey_focus_input": "2.点击OTP输入", 129 | "yubikey_press_button": "3. 按下 Yubikey 上的金色按钮", 130 | "auto_search": "自动搜索", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /lang/zh-TW/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": "成功的", 3 | "1": "無效的用戶名!", 4 | "2": "密碼不正確!", 5 | "3": "將數據插入數據庫時出現問題!", 6 | "4": "用戶名已被註冊!", 7 | "5": "Your password is too weak!", 8 | "6": "電子郵件無效!", 9 | "7": "用戶名不存在!", 10 | "8": "您沒有任何已保存的密碼。", 11 | "9": "域名無效!", 12 | "10": "用戶不擁有此密碼!", 13 | "11": "從數據庫中刪除數據時出現問題!", 14 | "12": "用戶名長度必須為 6 到 30 個字符,並且只能包含字母、數字和點!", 15 | "13": "更新數據庫中的數據時出現問題!", 16 | "14": "json無效!", 17 | "15": "此服務器無法接受更多用戶!", 18 | "16": "您已達到存儲密碼的最大數量!", 19 | "17": "使用此電子郵件的帳戶不存在!", 20 | "18": "留言太長了!", 21 | "19": "OTP 不正確!", 22 | "20": "您最多只能鏈接 5 個 Yubikey!", 23 | "21": "此 Yubikey 已與您的帳戶關聯。", 24 | "23": "前提是 Yubikey OTP 無效!", 25 | "24": "提供 ID 的 Yubikey 未鏈接到您的帳戶。", 26 | "25": "令牌不正確或已過期。請重新登錄。", 27 | "26": "雙重身份驗證已啟用。", 28 | "27": "未啟用兩因素身份驗證。", 29 | "28": "此服務器上未啟用郵件。", 30 | "29": "License key is invalid!", 31 | "30": "This license key has already been used.", 32 | "300": "網站太長了!", 33 | "301": "用戶名太長!", 34 | "302": "密碼太長了!", 35 | "303": "留言太長了!", 36 | "400": "GET 中未提供操作!", 37 | "401": "操作無效!", 38 | "403": "您沒有在 POST 中提供所有必需的值。", 39 | "404": "無法連接到 API。", 40 | "429": "您發送的請求太多!請稍候再執行此操作。", 41 | "505": "連接數據庫時出現問題!", 42 | "506": "連接郵件服務器時出現問題!", 43 | "999": "您無權使用此端點。", 44 | "server": "服務器", 45 | "website": "網站", 46 | "username": "用戶名", 47 | "email": "電子郵件", 48 | "password": "密碼", 49 | "signin": "登入", 50 | "signup": "註冊", 51 | "signout": "登出", 52 | "terms_of_service": "服務條款", 53 | "okay": "好的", 54 | "add": "添加", 55 | "change": "改變", 56 | "use": "採用", 57 | "copy": "複製", 58 | "send": "發送", 59 | "cancel": "取消", 60 | "try_again": "再試一次", 61 | "success": "成功", 62 | "error": "錯誤", 63 | "enable": "使能夠", 64 | "disable": "禁用", 65 | "remove": "消除", 66 | "delete": "刪除", 67 | "import": "進口", 68 | "importing": "Importing", 69 | "importing_passwords": "Importing {amount} passwords...", 70 | "import_from": "從 {name} 導入", 71 | "import_paste": "Paste {type} data from {name} password manager.", 72 | "import_invalid": "您導入的數據無效!", 73 | "import_success": "{success_number} 個密碼導入成功!", 74 | "import_errors": "{success_number} 個密碼已成功導入,但 {error_number} 個密碼未導入!", 75 | "backup": "備份", 76 | "export": "出口", 77 | "passwords": "密碼", 78 | "import_export": "進出口", 79 | "language": "Language", 80 | "theme": "主題", 81 | "search": "搜索", 82 | "length": "長度", 83 | "settings": "設置", 84 | "minutes": "分鐘", 85 | "optional_note": "可選說明", 86 | "session_duration": "會話持續時間", 87 | "website_icons": "Website Icons", 88 | "website_icons_info": "Enabling website icons might reduce your privacy.", 89 | "only_browser_extension": "Only available in the browser extension.", 90 | "missing_language": "Missing language? Translate it on {name}.", 91 | "forgot_username": "忘了用戶名了嗎?", 92 | "email_sent_success": "郵件發送成功", 93 | "add_password": "添加密碼", 94 | "add_password_success": "密碼已添加成功", 95 | "change_password_success": "密碼已成功更改", 96 | "remove_password_success": "密碼已成功刪除", 97 | "copy_password_success": "密碼已成功複製", 98 | "copy_username_success": "用戶名已成功複製", 99 | "edit_password": "更改密碼", 100 | "password_generator": "生成密碼", 101 | "delete_password": "刪除密碼", 102 | "delete_password_confirmation": "您確定要刪除密碼嗎?您的密碼將從服務器中永久刪除。此操作無法撤消。", 103 | "delete_passwords": "Delete passwords", 104 | "delete_passwords_info": "Deleted passwords can not be recovered.", 105 | "delete_passwords_confirmation": "Are you sure you want to delete your passwords? Your passwords will be permanently removed from the server. This action can NOT be undone.", 106 | "delete_account": "刪除帳戶", 107 | "delete_account_info": "刪除帳戶後,您將丟失與其關聯的所有數據。", 108 | "delete_account_confirmation": "您確定要刪除您的帳戶嗎?您的所有數據都將從服務器中永久刪除。此操作無法撤消。", 109 | "url_invalid": "服務器網址無效!", 110 | "server_unreachable": "服務器無法訪問!", 111 | "registration_completed": "註冊完成!", 112 | "dont_have_account_link": "還沒有帳戶?在此註冊。", 113 | "already_have_account_link": "已經登記了?在這裡登錄。", 114 | "username_validation": "Username should be between 2 and 100 characters long!", 115 | "password_validation": "Password should be between 2 and 100 characters long!", 116 | "website_validation": "Website should be between 2 and 100 characters long!", 117 | "otp_contains": "OTP 包含 6 個數字。", 118 | "otp_not_setup": "如果您沒有在您的帳戶上設置 2FA,請將此字段留空。", 119 | "enable_2fa_question": "您確定要啟用雙重身份驗證嗎?", 120 | "disable_2fa_question": "您確定要禁用雙重身份驗證嗎?", 121 | "totp_applications": "啟用前,請確保您的手機上已安裝以下應用程序之一:", 122 | "scan_qr_code": "掃描二維碼:", 123 | "or_enter_key_manually": "或手動輸入密鑰:", 124 | "backup_codes": "備用代碼:", 125 | "yubikey_added_successfully": "您的 Yubikey 已成功添加", 126 | "yubikey_removed_successfully": "您的 Yubikey 已成功移除", 127 | "yubikey_insert_device": "1. 將您的 Yubikey 插入您的設備。", 128 | "yubikey_focus_input": "2.點擊OTP輸入", 129 | "yubikey_press_button": "3. 按下 Yubikey 上的金色按鈕", 130 | "auto_search": "自動搜索", 131 | "total_passwords": "Total Passwords", 132 | "decryption_time": "Decryption Time", 133 | "client_version": "Client Version", 134 | "upgrade_account": "Upgrade Account", 135 | "validate": "Validate", 136 | "license_key": "License Key", 137 | "account": "Account", 138 | "expiration": "Expiration", 139 | "free": "Free", 140 | "premium": "Premium", 141 | "never": "Never", 142 | "license_added_successfully": "Your account has been successfully upgraded to Premium and it will last until {date}.", 143 | "please_wait": "PLEASE WAIT", 144 | "saving_password": "Saving password...", 145 | "changing_password": "Changing password...", 146 | "deleting_password": "Deleting password...", 147 | "deleting_passwords": "Deleting passwords...", 148 | "deleting_account": "Deleting account...", 149 | "signing_in": "Signing in...", 150 | "signing_up": "Signing up...", 151 | "sending_email": "Sending email...", 152 | "enabling_2fa": "Enabling 2FA...", 153 | "disabling_2fa": "Disabling 2FA...", 154 | "adding_yubikey": "Adding Yubikey...", 155 | "removing_yubikey": "Removing Yubikey...", 156 | "validating_license": "Validating license key...", 157 | "decrypting_passwords": "Decrypting passwords..." 158 | } -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Passky - Password Manager", 3 | "description": "Simple, modern, open source and secure password manager.", 4 | "version": "8.1.1", 5 | "manifest_version": 3, 6 | "author": "Rabbit Company LLC", 7 | "homepage_url": "https://passky.org", 8 | "permissions": ["clipboardWrite", "activeTab", "storage"], 9 | "action": { 10 | "default_icon": "/images/logo32.png", 11 | "default_title": "Passky", 12 | "default_popup": "index.html" 13 | }, 14 | "content_scripts": [{ 15 | "matches": ["http://*/*", "https://*/*"], 16 | "js": ["js/content-script.js"], 17 | "run_at": "document_idle", 18 | "all_frames": false, 19 | "match_about_blank": false 20 | }], 21 | "content_security_policy": { 22 | "extension_pages": "script-src 'self'; base-uri 'none'; object-src 'none'; form-action 'self'; frame-ancestors 'none'; worker-src 'self';" 23 | }, 24 | "icons": { 25 | "16": "/images/logo16.png", 26 | "32": "/images/logo32.png", 27 | "48": "/images/logo48.png", 28 | "128": "/images/logo128.png" 29 | }, 30 | "browser_specific_settings": { 31 | "gecko": { 32 | "id": "{c27461c5-20e7-47b4-9e82-9f48e8d5e005}" 33 | } 34 | } 35 | } 36 | --------------------------------------------------------------------------------