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 | [](https://github.com/Rabbit-Company/Passky-Browser-Extension/issues)
4 | [](https://github.com/Rabbit-Company/Passky-Browser-Extension/stargazers)
5 | [](https://github.com/Rabbit-Company/Passky-Browser-Extension/network)
6 | [](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 | [](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 |
--------------------------------------------------------------------------------