From a1fb54c394a55db9d53f735421ef3adf19e6e71a Mon Sep 17 00:00:00 2001 From: Bare7a Date: Mon, 24 Nov 2025 18:04:50 +0200 Subject: [PATCH 1/5] Before Translating --- frontend/check-locales.cjs | 1 + frontend/src/locale/IntlProvider.tsx | 2 + .../src/locale/src/HelpDoc/bg/AccessLists.md | 7 + .../src/locale/src/HelpDoc/bg/Certificates.md | 32 + .../src/locale/src/HelpDoc/bg/DeadHosts.md | 10 + .../src/locale/src/HelpDoc/bg/ProxyHosts.md | 7 + .../locale/src/HelpDoc/bg/RedirectionHosts.md | 7 + frontend/src/locale/src/HelpDoc/bg/Streams.md | 6 + frontend/src/locale/src/HelpDoc/bg/index.ts | 6 + frontend/src/locale/src/bg.json | 683 ++++++++++++++++++ frontend/src/locale/src/lang-list.json | 3 + 11 files changed, 764 insertions(+) create mode 100644 frontend/src/locale/src/HelpDoc/bg/AccessLists.md create mode 100644 frontend/src/locale/src/HelpDoc/bg/Certificates.md create mode 100644 frontend/src/locale/src/HelpDoc/bg/DeadHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/bg/Streams.md create mode 100644 frontend/src/locale/src/HelpDoc/bg/index.ts create mode 100644 frontend/src/locale/src/bg.json diff --git a/frontend/check-locales.cjs b/frontend/check-locales.cjs index bd871169..6f133944 100755 --- a/frontend/check-locales.cjs +++ b/frontend/check-locales.cjs @@ -18,6 +18,7 @@ const allLocales = [ ["sk", "sk-SK"], ["vi", "vi-VN"], ["zh", "zh-CN"], + ["bg", "bg-BG"], ]; const ignoreUnused = [ diff --git a/frontend/src/locale/IntlProvider.tsx b/frontend/src/locale/IntlProvider.tsx index 5482f63c..aaefae84 100755 --- a/frontend/src/locale/IntlProvider.tsx +++ b/frontend/src/locale/IntlProvider.tsx @@ -11,6 +11,7 @@ import langRu from "./lang/ru.json"; import langSk from "./lang/sk.json"; import langVi from "./lang/vi.json"; import langZh from "./lang/zh.json"; +import langBg from "./lang/bg.json"; // first item of each array should be the language code, // not the country code @@ -27,6 +28,7 @@ const localeOptions = [ ["sk", "sk-SK", langSk], ["vi", "vi-VN", langVi], ["zh", "zh-CN", langZh], + ["bg", "bg-BG", langBg], ]; const loadMessages = (locale?: string): typeof langList & typeof langEn => { diff --git a/frontend/src/locale/src/HelpDoc/bg/AccessLists.md b/frontend/src/locale/src/HelpDoc/bg/AccessLists.md new file mode 100644 index 00000000..cef58263 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/bg/AccessLists.md @@ -0,0 +1,7 @@ +## What is an Access List? + +Access Lists provide a blacklist or whitelist of specific client IP addresses along with authentication for the Proxy Hosts via Basic HTTP Authentication. + +You can configure multiple client rules, usernames and passwords for a single Access List and then apply that to one or more _Proxy Hosts_. + +This is most useful for forwarded web services that do not have authentication mechanisms built in or when you want to protect from unknown clients. diff --git a/frontend/src/locale/src/HelpDoc/bg/Certificates.md b/frontend/src/locale/src/HelpDoc/bg/Certificates.md new file mode 100644 index 00000000..d79dd04b --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/bg/Certificates.md @@ -0,0 +1,32 @@ +## Certificates Help + +### HTTP Certificate + +A HTTP validated certificate means Let's Encrypt servers will +attempt to reach your domains over HTTP (not HTTPS!) and if successful, they +will issue your certificate. + +For this method, you will have to have a _Proxy Host_ created for your domains(s) that +is accessible with HTTP and pointing to this Nginx installation. After a certificate +has been given, you can modify the _Proxy Host_ to also use this certificate for HTTPS +connections. However, the _Proxy Host_ will still need to be configured for HTTP access +in order for the certificate to renew. + +This process _does not_ support wildcard domains. + +### DNS Certificate + +A DNS validated certificate requires you to use a DNS Provider plugin. This DNS +Provider will be used to create temporary records on your domain and then Let's +Encrypt will query those records to be sure you're the owner and if successful, they +will issue your certificate. + +You do not need a _Proxy Host_ to be created prior to requesting this type of +certificate. Nor do you need to have your _Proxy Host_ configured for HTTP access. + +This process _does_ support wildcard domains. + +### Custom Certificate + +Use this option to upload your own SSL Certificate, as provided by your own +Certificate Authority. diff --git a/frontend/src/locale/src/HelpDoc/bg/DeadHosts.md b/frontend/src/locale/src/HelpDoc/bg/DeadHosts.md new file mode 100644 index 00000000..ef4f3bc4 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/bg/DeadHosts.md @@ -0,0 +1,10 @@ +## What is a 404 Host? + +A 404 Host is simply a host setup that shows a 404 page. + +This can be useful when your domain is listed in search engines and you want +to provide a nicer error page or specifically to tell the search indexers that +the domain pages no longer exist. + +Another benefit of having this host is to track the logs for hits to it and +view the referrers. diff --git a/frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md b/frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md new file mode 100644 index 00000000..e9630d05 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md @@ -0,0 +1,7 @@ +## What is a Proxy Host? + +A Proxy Host is the incoming endpoint for a web service that you want to forward. + +It provides optional SSL termination for your service that might not have SSL support built in. + +Proxy Hosts are the most common use for the Nginx Proxy Manager. diff --git a/frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md b/frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md new file mode 100644 index 00000000..e57b1b80 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md @@ -0,0 +1,7 @@ +## What is a Redirection Host? + +A Redirection Host will redirect requests from the incoming domain and push the +viewer to another domain. + +The most common reason to use this type of host is when your website changes +domains but you still have search engine or referrer links pointing to the old domain. diff --git a/frontend/src/locale/src/HelpDoc/bg/Streams.md b/frontend/src/locale/src/HelpDoc/bg/Streams.md new file mode 100644 index 00000000..358f3e5a --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/bg/Streams.md @@ -0,0 +1,6 @@ +## What is a Stream? + +A relatively new feature for Nginx, a Stream will serve to forward TCP/UDP +traffic directly to another computer on the network. + +If you're running game servers, FTP or SSH servers this can come in handy. diff --git a/frontend/src/locale/src/HelpDoc/bg/index.ts b/frontend/src/locale/src/HelpDoc/bg/index.ts new file mode 100644 index 00000000..a9bb46ba --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/bg/index.ts @@ -0,0 +1,6 @@ +export * as AccessLists from "./AccessLists.md"; +export * as Certificates from "./Certificates.md"; +export * as DeadHosts from "./DeadHosts.md"; +export * as ProxyHosts from "./ProxyHosts.md"; +export * as RedirectionHosts from "./RedirectionHosts.md"; +export * as Streams from "./Streams.md"; diff --git a/frontend/src/locale/src/bg.json b/frontend/src/locale/src/bg.json new file mode 100644 index 00000000..355d0db7 --- /dev/null +++ b/frontend/src/locale/src/bg.json @@ -0,0 +1,683 @@ +{ + "access-list": { + "defaultMessage": "Access List" + }, + "access-list.access-count": { + "defaultMessage": "{count} {count, plural, one {Rule} other {Rules}}" + }, + "access-list.auth-count": { + "defaultMessage": "{count} {count, plural, one {User} other {Users}}" + }, + "access-list.help-rules-last": { + "defaultMessage": "When at least 1 rule exists, this deny all rule will be added last" + }, + "access-list.help.rules-order": { + "defaultMessage": "Note that the allow and deny directives will be applied in the order they are defined." + }, + "access-list.pass-auth": { + "defaultMessage": "Pass Auth to Upstream" + }, + "access-list.public": { + "defaultMessage": "Publicly Accessible" + }, + "access-list.public.subtitle": { + "defaultMessage": "No basic auth required" + }, + "access-list.rule-source.placeholder": { + "defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32" + }, + "access-list.satisfy-any": { + "defaultMessage": "Satisfy Any" + }, + "access-list.subtitle": { + "defaultMessage": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}" + }, + "access-lists": { + "defaultMessage": "Access Lists" + }, + "action.add": { + "defaultMessage": "Add" + }, + "action.add-location": { + "defaultMessage": "Add Location" + }, + "action.allow": { + "defaultMessage": "Allow" + }, + "action.close": { + "defaultMessage": "Close" + }, + "action.delete": { + "defaultMessage": "Delete" + }, + "action.deny": { + "defaultMessage": "Deny" + }, + "action.disable": { + "defaultMessage": "Disable" + }, + "action.download": { + "defaultMessage": "Download" + }, + "action.edit": { + "defaultMessage": "Edit" + }, + "action.enable": { + "defaultMessage": "Enable" + }, + "action.permissions": { + "defaultMessage": "Permissions" + }, + "action.renew": { + "defaultMessage": "Renew" + }, + "action.view-details": { + "defaultMessage": "View Details" + }, + "auditlogs": { + "defaultMessage": "Audit Logs" + }, + "auto": { + "defaultMessage": "Auto" + }, + "cancel": { + "defaultMessage": "Cancel" + }, + "certificate": { + "defaultMessage": "Certificate" + }, + "certificate.custom-certificate": { + "defaultMessage": "Certificate" + }, + "certificate.custom-certificate-key": { + "defaultMessage": "Certificate Key" + }, + "certificate.custom-intermediate": { + "defaultMessage": "Intermediate Certificate" + }, + "certificate.in-use": { + "defaultMessage": "In Use" + }, + "certificate.none.subtitle": { + "defaultMessage": "No certificate assigned" + }, + "certificate.none.subtitle.for-http": { + "defaultMessage": "This host will not use HTTPS" + }, + "certificate.none.title": { + "defaultMessage": "None" + }, + "certificate.not-in-use": { + "defaultMessage": "Not Used" + }, + "certificate.renew": { + "defaultMessage": "Renew Certificate" + }, + "certificates": { + "defaultMessage": "Certificates" + }, + "certificates.custom": { + "defaultMessage": "Custom Certificate" + }, + "certificates.custom.warning": { + "defaultMessage": "Key files protected with a passphrase are not supported." + }, + "certificates.dns.credentials": { + "defaultMessage": "Credentials File Content" + }, + "certificates.dns.credentials-note": { + "defaultMessage": "This plugin requires a configuration file containing an API token or other credentials for your provider" + }, + "certificates.dns.credentials-warning": { + "defaultMessage": "This data will be stored as plaintext in the database and in a file!" + }, + "certificates.dns.propagation-seconds": { + "defaultMessage": "Propagation Seconds" + }, + "certificates.dns.propagation-seconds-note": { + "defaultMessage": "Leave empty to use the plugins default value. Number of seconds to wait for DNS propagation." + }, + "certificates.dns.provider": { + "defaultMessage": "DNS Provider" + }, + "certificates.dns.provider.placeholder": { + "defaultMessage": "Select a Provider..." + }, + "certificates.dns.warning": { + "defaultMessage": "This section requires some knowledge about Certbot and its DNS plugins. Please consult the respective plugins documentation." + }, + "certificates.http.reachability-404": { + "defaultMessage": "There is a server found at this domain but it does not seem to be Nginx Proxy Manager. Please make sure your domain points to the IP where your NPM instance is running." + }, + "certificates.http.reachability-failed-to-check": { + "defaultMessage": "Failed to check the reachability due to a communication error with site24x7.com." + }, + "certificates.http.reachability-not-resolved": { + "defaultMessage": "There is no server available at this domain. Please make sure your domain exists and points to the IP where your NPM instance is running and if necessary port 80 is forwarded in your router." + }, + "certificates.http.reachability-ok": { + "defaultMessage": "Your server is reachable and creating certificates should be possible." + }, + "certificates.http.reachability-other": { + "defaultMessage": "There is a server found at this domain but it returned an unexpected status code {code}. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running." + }, + "certificates.http.reachability-wrong-data": { + "defaultMessage": "There is a server found at this domain but it returned an unexpected data. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running." + }, + "certificates.http.test-results": { + "defaultMessage": "Test Results" + }, + "certificates.http.warning": { + "defaultMessage": "These domains must be already configured to point to this installation." + }, + "certificates.request.subtitle": { + "defaultMessage": "with Let's Encrypt" + }, + "certificates.request.title": { + "defaultMessage": "Request a new Certificate" + }, + "column.access": { + "defaultMessage": "Access" + }, + "column.authorization": { + "defaultMessage": "Authorization" + }, + "column.authorizations": { + "defaultMessage": "Authorizations" + }, + "column.custom-locations": { + "defaultMessage": "Custom Locations" + }, + "column.destination": { + "defaultMessage": "Destination" + }, + "column.details": { + "defaultMessage": "Details" + }, + "column.email": { + "defaultMessage": "Email" + }, + "column.event": { + "defaultMessage": "Event" + }, + "column.expires": { + "defaultMessage": "Expires" + }, + "column.http-code": { + "defaultMessage": "HTTP Code" + }, + "column.incoming-port": { + "defaultMessage": "Incoming Port" + }, + "column.name": { + "defaultMessage": "Name" + }, + "column.protocol": { + "defaultMessage": "Protocol" + }, + "column.provider": { + "defaultMessage": "Provider" + }, + "column.roles": { + "defaultMessage": "Roles" + }, + "column.rules": { + "defaultMessage": "Rules" + }, + "column.satisfy": { + "defaultMessage": "Satisfy" + }, + "column.satisfy-all": { + "defaultMessage": "All" + }, + "column.satisfy-any": { + "defaultMessage": "Any" + }, + "column.scheme": { + "defaultMessage": "Scheme" + }, + "column.source": { + "defaultMessage": "Source" + }, + "column.ssl": { + "defaultMessage": "SSL" + }, + "column.status": { + "defaultMessage": "Status" + }, + "created-on": { + "defaultMessage": "Created: {date}" + }, + "dashboard": { + "defaultMessage": "Dashboard" + }, + "dead-host": { + "defaultMessage": "404 Host" + }, + "dead-hosts": { + "defaultMessage": "404 Hosts" + }, + "dead-hosts.count": { + "defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}" + }, + "disabled": { + "defaultMessage": "Disabled" + }, + "domain-names": { + "defaultMessage": "Domain Names" + }, + "domain-names.max": { + "defaultMessage": "{count} domain names maximum" + }, + "domain-names.placeholder": { + "defaultMessage": "Start typing to add domain..." + }, + "domain-names.wildcards-not-permitted": { + "defaultMessage": "Wildcards not permitted for this type" + }, + "domain-names.wildcards-not-supported": { + "defaultMessage": "Wildcards not supported for this CA" + }, + "domains.force-ssl": { + "defaultMessage": "Force SSL" + }, + "domains.hsts-enabled": { + "defaultMessage": "HSTS Enabled" + }, + "domains.hsts-subdomains": { + "defaultMessage": "HSTS Sub-domains" + }, + "domains.http2-support": { + "defaultMessage": "HTTP/2 Support" + }, + "domains.use-dns": { + "defaultMessage": "Use DNS Challenge" + }, + "email-address": { + "defaultMessage": "Email address" + }, + "empty-search": { + "defaultMessage": "No results found" + }, + "empty-subtitle": { + "defaultMessage": "Why don't you create one?" + }, + "enabled": { + "defaultMessage": "Enabled" + }, + "error.access.at-least-one": { + "defaultMessage": "Either one Authorization or one Access Rule is required" + }, + "error.access.duplicate-usernames": { + "defaultMessage": "Authorization Usernames must be unique" + }, + "error.invalid-auth": { + "defaultMessage": "Invalid email or password" + }, + "error.invalid-domain": { + "defaultMessage": "Invalid domain: {domain}" + }, + "error.invalid-email": { + "defaultMessage": "Invalid email address" + }, + "error.max-character-length": { + "defaultMessage": "Maximum length is {max} character{max, plural, one {} other {s}}" + }, + "error.max-domains": { + "defaultMessage": "Too many domains, max is {max}" + }, + "error.maximum": { + "defaultMessage": "Maximum is {max}" + }, + "error.min-character-length": { + "defaultMessage": "Minimum length is {min} character{min, plural, one {} other {s}}" + }, + "error.minimum": { + "defaultMessage": "Minimum is {min}" + }, + "error.passwords-must-match": { + "defaultMessage": "Passwords must match" + }, + "error.required": { + "defaultMessage": "This is required" + }, + "expires.on": { + "defaultMessage": "Expires: {date}" + }, + "footer.github-fork": { + "defaultMessage": "Fork me on Github" + }, + "host.flags.block-exploits": { + "defaultMessage": "Block Common Exploits" + }, + "host.flags.cache-assets": { + "defaultMessage": "Cache Assets" + }, + "host.flags.preserve-path": { + "defaultMessage": "Preserve Path" + }, + "host.flags.protocols": { + "defaultMessage": "Protocols" + }, + "host.flags.websockets-upgrade": { + "defaultMessage": "Websockets Support" + }, + "host.forward-port": { + "defaultMessage": "Forward Port" + }, + "host.forward-scheme": { + "defaultMessage": "Scheme" + }, + "hosts": { + "defaultMessage": "Hosts" + }, + "http-only": { + "defaultMessage": "HTTP Only" + }, + "lets-encrypt": { + "defaultMessage": "Let's Encrypt" + }, + "lets-encrypt-via-dns": { + "defaultMessage": "Let's Encrypt via DNS" + }, + "lets-encrypt-via-http": { + "defaultMessage": "Let's Encrypt via HTTP" + }, + "loading": { + "defaultMessage": "Loading…" + }, + "login.title": { + "defaultMessage": "Login to your account" + }, + "nginx-config.label": { + "defaultMessage": "Custom Nginx Configuration" + }, + "nginx-config.placeholder": { + "defaultMessage": "# Enter your custom Nginx configuration here at your own risk!" + }, + "no-permission-error": { + "defaultMessage": "You do not have access to view this." + }, + "notfound.action": { + "defaultMessage": "Take me home" + }, + "notfound.content": { + "defaultMessage": "We are sorry but the page you are looking for was not found" + }, + "notfound.title": { + "defaultMessage": "Oops… You just found an error page" + }, + "notification.error": { + "defaultMessage": "Error" + }, + "notification.object-deleted": { + "defaultMessage": "{object} has been deleted" + }, + "notification.object-disabled": { + "defaultMessage": "{object} has been disabled" + }, + "notification.object-enabled": { + "defaultMessage": "{object} has been enabled" + }, + "notification.object-renewed": { + "defaultMessage": "{object} has been renewed" + }, + "notification.object-saved": { + "defaultMessage": "{object} has been saved" + }, + "notification.success": { + "defaultMessage": "Success" + }, + "object.actions-title": { + "defaultMessage": "{object} #{id}" + }, + "object.add": { + "defaultMessage": "Add {object}" + }, + "object.delete": { + "defaultMessage": "Delete {object}" + }, + "object.delete.content": { + "defaultMessage": "Are you sure you want to delete this {object}?" + }, + "object.edit": { + "defaultMessage": "Edit {object}" + }, + "object.empty": { + "defaultMessage": "There are no {objects}" + }, + "object.event.created": { + "defaultMessage": "Created {object}" + }, + "object.event.deleted": { + "defaultMessage": "Deleted {object}" + }, + "object.event.disabled": { + "defaultMessage": "Disabled {object}" + }, + "object.event.enabled": { + "defaultMessage": "Enabled {object}" + }, + "object.event.renewed": { + "defaultMessage": "Renewed {object}" + }, + "object.event.updated": { + "defaultMessage": "Updated {object}" + }, + "offline": { + "defaultMessage": "Offline" + }, + "online": { + "defaultMessage": "Online" + }, + "options": { + "defaultMessage": "Options" + }, + "password": { + "defaultMessage": "Password" + }, + "password.generate": { + "defaultMessage": "Generate random password" + }, + "password.hide": { + "defaultMessage": "Hide Password" + }, + "password.show": { + "defaultMessage": "Show Password" + }, + "permissions.hidden": { + "defaultMessage": "Hidden" + }, + "permissions.manage": { + "defaultMessage": "Manage" + }, + "permissions.view": { + "defaultMessage": "View Only" + }, + "permissions.visibility.all": { + "defaultMessage": "All Items" + }, + "permissions.visibility.title": { + "defaultMessage": "Item Visibility" + }, + "permissions.visibility.user": { + "defaultMessage": "Created Items Only" + }, + "proxy-host": { + "defaultMessage": "Proxy Host" + }, + "proxy-host.forward-host": { + "defaultMessage": "Forward Hostname / IP" + }, + "proxy-hosts": { + "defaultMessage": "Proxy Hosts" + }, + "proxy-hosts.count": { + "defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}" + }, + "public": { + "defaultMessage": "Public" + }, + "redirection-host": { + "defaultMessage": "Redirection Host" + }, + "redirection-host.forward-domain": { + "defaultMessage": "Forward Domain" + }, + "redirection-host.forward-http-code": { + "defaultMessage": "HTTP Code" + }, + "redirection-hosts": { + "defaultMessage": "Redirection Hosts" + }, + "redirection-hosts.count": { + "defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}" + }, + "redirection-hosts.http-code.300": { + "defaultMessage": "300 Multiple Choices" + }, + "redirection-hosts.http-code.301": { + "defaultMessage": "301 Moved permanently" + }, + "redirection-hosts.http-code.302": { + "defaultMessage": "302 Moved temporarily" + }, + "redirection-hosts.http-code.303": { + "defaultMessage": "303 See other" + }, + "redirection-hosts.http-code.307": { + "defaultMessage": "307 Temporary redirect" + }, + "redirection-hosts.http-code.308": { + "defaultMessage": "308 Permanent redirect" + }, + "role.admin": { + "defaultMessage": "Administrator" + }, + "role.standard-user": { + "defaultMessage": "Standard User" + }, + "save": { + "defaultMessage": "Save" + }, + "setting": { + "defaultMessage": "Setting" + }, + "settings": { + "defaultMessage": "Settings" + }, + "settings.default-site": { + "defaultMessage": "Default Site" + }, + "settings.default-site.404": { + "defaultMessage": "404 Page" + }, + "settings.default-site.444": { + "defaultMessage": "No Response (444)" + }, + "settings.default-site.congratulations": { + "defaultMessage": "Congratulations Page" + }, + "settings.default-site.description": { + "defaultMessage": "What to show when Nginx is hit with an unknown Host" + }, + "settings.default-site.html": { + "defaultMessage": "Custom HTML" + }, + "settings.default-site.html.placeholder": { + "defaultMessage": "" + }, + "settings.default-site.redirect": { + "defaultMessage": "Redirect" + }, + "setup.preamble": { + "defaultMessage": "Get started by creating your admin account." + }, + "setup.title": { + "defaultMessage": "Welcome!" + }, + "sign-in": { + "defaultMessage": "Sign in" + }, + "ssl-certificate": { + "defaultMessage": "SSL Certificate" + }, + "stream": { + "defaultMessage": "Stream" + }, + "stream.forward-host": { + "defaultMessage": "Forward Host" + }, + "stream.forward-host.placeholder": { + "defaultMessage": "example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888" + }, + "stream.incoming-port": { + "defaultMessage": "Incoming Port" + }, + "streams": { + "defaultMessage": "Streams" + }, + "streams.count": { + "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}" + }, + "streams.tcp": { + "defaultMessage": "TCP" + }, + "streams.udp": { + "defaultMessage": "UDP" + }, + "test": { + "defaultMessage": "Test" + }, + "update-available": { + "defaultMessage": "Update Available: {latestVersion}" + }, + "user": { + "defaultMessage": "User" + }, + "user.change-password": { + "defaultMessage": "Change Password" + }, + "user.confirm-password": { + "defaultMessage": "Confirm Password" + }, + "user.current-password": { + "defaultMessage": "Current Password" + }, + "user.edit-profile": { + "defaultMessage": "Edit Profile" + }, + "user.full-name": { + "defaultMessage": "Full Name" + }, + "user.login-as": { + "defaultMessage": "Sign in as {name}" + }, + "user.logout": { + "defaultMessage": "Logout" + }, + "user.new-password": { + "defaultMessage": "New Password" + }, + "user.nickname": { + "defaultMessage": "Nickname" + }, + "user.set-password": { + "defaultMessage": "Set Password" + }, + "user.set-permissions": { + "defaultMessage": "Set Permissions for {name}" + }, + "user.switch-dark": { + "defaultMessage": "Switch to Dark mode" + }, + "user.switch-light": { + "defaultMessage": "Switch to Light mode" + }, + "username": { + "defaultMessage": "Username" + }, + "users": { + "defaultMessage": "Users" + } +} diff --git a/frontend/src/locale/src/lang-list.json b/frontend/src/locale/src/lang-list.json index 8bbf0e97..1f1e9d5d 100755 --- a/frontend/src/locale/src/lang-list.json +++ b/frontend/src/locale/src/lang-list.json @@ -31,5 +31,8 @@ }, "locale-nl-NL": { "defaultMessage": "Nederlands" + }, + "locale-bg-BG": { + "defaultMessage": "Български" } } From 4712633568e2e3b5d209b05286f71e237106ab8e Mon Sep 17 00:00:00 2001 From: Bare7a Date: Mon, 24 Nov 2025 18:07:46 +0200 Subject: [PATCH 2/5] After Translate --- .../src/locale/src/HelpDoc/bg/AccessLists.md | 8 +- .../src/locale/src/HelpDoc/bg/Certificates.md | 33 +- .../src/locale/src/HelpDoc/bg/DeadHosts.md | 14 +- .../src/locale/src/HelpDoc/bg/ProxyHosts.md | 8 +- .../locale/src/HelpDoc/bg/RedirectionHosts.md | 10 +- frontend/src/locale/src/HelpDoc/bg/Streams.md | 8 +- frontend/src/locale/src/bg.json | 442 +++++++++--------- 7 files changed, 256 insertions(+), 267 deletions(-) diff --git a/frontend/src/locale/src/HelpDoc/bg/AccessLists.md b/frontend/src/locale/src/HelpDoc/bg/AccessLists.md index cef58263..8e7f2507 100644 --- a/frontend/src/locale/src/HelpDoc/bg/AccessLists.md +++ b/frontend/src/locale/src/HelpDoc/bg/AccessLists.md @@ -1,7 +1,7 @@ -## What is an Access List? +## Какво представлява Списъкът за достъп? -Access Lists provide a blacklist or whitelist of specific client IP addresses along with authentication for the Proxy Hosts via Basic HTTP Authentication. +Списъците за достъп предоставят черен или бял списък от конкретни клиентски IP адреси, както и удостоверяване за Прокси хостове чрез базова HTTP автентикация. -You can configure multiple client rules, usernames and passwords for a single Access List and then apply that to one or more _Proxy Hosts_. +Можете да конфигурирате множество клиентски правила, потребителски имена и пароли в един Списък за достъп и след това да го приложите към един или повече _Прокси хостове_. -This is most useful for forwarded web services that do not have authentication mechanisms built in or when you want to protect from unknown clients. +Това е най-полезно при препращани уеб услуги, които нямат вградени механизми за удостоверяване, или когато искате да защитите достъпа от неизвестни клиенти. diff --git a/frontend/src/locale/src/HelpDoc/bg/Certificates.md b/frontend/src/locale/src/HelpDoc/bg/Certificates.md index d79dd04b..c138a753 100644 --- a/frontend/src/locale/src/HelpDoc/bg/Certificates.md +++ b/frontend/src/locale/src/HelpDoc/bg/Certificates.md @@ -1,32 +1,21 @@ -## Certificates Help +## Помощ за сертификати -### HTTP Certificate +### HTTP сертификат -A HTTP validated certificate means Let's Encrypt servers will -attempt to reach your domains over HTTP (not HTTPS!) and if successful, they -will issue your certificate. +HTTP валидираният сертификат означава, че сървърите на Let’s Encrypt ще се опитат да достигнат вашите домейни по HTTP (не по HTTPS!) и ако успеят, ще издадат сертификата. -For this method, you will have to have a _Proxy Host_ created for your domains(s) that -is accessible with HTTP and pointing to this Nginx installation. After a certificate -has been given, you can modify the _Proxy Host_ to also use this certificate for HTTPS -connections. However, the _Proxy Host_ will still need to be configured for HTTP access -in order for the certificate to renew. +За този метод трябва да имате създаден _Прокси хост_ за вашия/вашите домейни, който да е достъпен по HTTP и да сочи към тази Nginx инсталация. След като бъде издаден сертификат, можете да промените _Прокси хоста_ така, че да използва сертификата и за HTTPS връзки. Въпреки това, _Прокси хостът_ трябва да остане конфигуриран за достъп по HTTP, за да може сертификатът да се подновява. -This process _does not_ support wildcard domains. +Този процес _не_ поддържа wildcard домейни. -### DNS Certificate +### DNS сертификат -A DNS validated certificate requires you to use a DNS Provider plugin. This DNS -Provider will be used to create temporary records on your domain and then Let's -Encrypt will query those records to be sure you're the owner and if successful, they -will issue your certificate. +DNS валидираният сертификат изисква използването на DNS Provider плъгин. Този DNS Provider ще бъде използван за временно създаване на записи във вашия домейн, след което Let’s Encrypt ще ги провери, за да се увери, че сте собственикът, и при успех ще издаде сертификата. -You do not need a _Proxy Host_ to be created prior to requesting this type of -certificate. Nor do you need to have your _Proxy Host_ configured for HTTP access. +Не е необходимо да имате _Прокси хост_, създаден предварително, за да заявите този тип сертификат. Нито е нужно вашият _Прокси хост_ да бъде конфигуриран за достъп по HTTP. -This process _does_ support wildcard domains. +Този процес _поддържа_ wildcard домейни. -### Custom Certificate +### Персонализиран сертификат -Use this option to upload your own SSL Certificate, as provided by your own -Certificate Authority. +Използвайте тази опция, за да качите собствен SSL сертификат, предоставен от ваша сертификатна агенция. diff --git a/frontend/src/locale/src/HelpDoc/bg/DeadHosts.md b/frontend/src/locale/src/HelpDoc/bg/DeadHosts.md index ef4f3bc4..79ad960b 100644 --- a/frontend/src/locale/src/HelpDoc/bg/DeadHosts.md +++ b/frontend/src/locale/src/HelpDoc/bg/DeadHosts.md @@ -1,10 +1,10 @@ -## What is a 404 Host? +## Какво представлява 404 хост? -A 404 Host is simply a host setup that shows a 404 page. +404 хост е просто конфигурация на хост, който показва страница с грешка 404. -This can be useful when your domain is listed in search engines and you want -to provide a nicer error page or specifically to tell the search indexers that -the domain pages no longer exist. +Това може да е полезно, когато вашият домейн е индексиран в търсачките и искате +да предоставите по-приятна страница за грешка или да уведомите индексиращите системи, +че страниците на домейна вече не съществуват. -Another benefit of having this host is to track the logs for hits to it and -view the referrers. +Допълнително предимство на този хост е възможността да проследявате логовете на заявките +към него и да виждате реферерите. diff --git a/frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md b/frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md index e9630d05..ef82c393 100644 --- a/frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md +++ b/frontend/src/locale/src/HelpDoc/bg/ProxyHosts.md @@ -1,7 +1,7 @@ -## What is a Proxy Host? +## Какво представлява Прокси хост? -A Proxy Host is the incoming endpoint for a web service that you want to forward. +Прокси хост е входна точка за уеб услуга, която искате да препращате. -It provides optional SSL termination for your service that might not have SSL support built in. +Той предоставя възможност за SSL терминaция на услуга, която може да няма вградена поддръжка на SSL. -Proxy Hosts are the most common use for the Nginx Proxy Manager. +Прокси хостовете са най-често използваната функция в Nginx Proxy Manager. diff --git a/frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md b/frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md index e57b1b80..06890dc6 100644 --- a/frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md +++ b/frontend/src/locale/src/HelpDoc/bg/RedirectionHosts.md @@ -1,7 +1,7 @@ -## What is a Redirection Host? +## Какво представлява Хост за пренасочване? -A Redirection Host will redirect requests from the incoming domain and push the -viewer to another domain. +Хостът за пренасочване пренасочва заявките от входящия домейн и прехвърля +потребителя към друг домейн. -The most common reason to use this type of host is when your website changes -domains but you still have search engine or referrer links pointing to the old domain. +Най-честата причина за използване на този тип хост е, когато вашият уебсайт +промени домейна си, но все още има линкове от търсачки или реферери, които сочат към стария домейн. diff --git a/frontend/src/locale/src/HelpDoc/bg/Streams.md b/frontend/src/locale/src/HelpDoc/bg/Streams.md index 358f3e5a..4beb381d 100644 --- a/frontend/src/locale/src/HelpDoc/bg/Streams.md +++ b/frontend/src/locale/src/HelpDoc/bg/Streams.md @@ -1,6 +1,6 @@ -## What is a Stream? +## Какво представлява Потокът (Stream)? -A relatively new feature for Nginx, a Stream will serve to forward TCP/UDP -traffic directly to another computer on the network. +Относително нова функция за Nginx, Потокът позволява препращане на TCP/UDP +трафик директно към друг компютър в мрежата. -If you're running game servers, FTP or SSH servers this can come in handy. +Това е полезно, ако хоствате игрови сървъри, FTP или SSH сървъри. diff --git a/frontend/src/locale/src/bg.json b/frontend/src/locale/src/bg.json index 355d0db7..274eca1f 100644 --- a/frontend/src/locale/src/bg.json +++ b/frontend/src/locale/src/bg.json @@ -1,624 +1,624 @@ { "access-list": { - "defaultMessage": "Access List" + "defaultMessage": "Списък за достъп" }, "access-list.access-count": { - "defaultMessage": "{count} {count, plural, one {Rule} other {Rules}}" + "defaultMessage": "{count} {count, plural, one {правило} other {правила}}" }, "access-list.auth-count": { - "defaultMessage": "{count} {count, plural, one {User} other {Users}}" + "defaultMessage": "{count} {count, plural, one {потребител} other {потребители}}" }, "access-list.help-rules-last": { - "defaultMessage": "When at least 1 rule exists, this deny all rule will be added last" + "defaultMessage": "Когато съществува поне 1 правило, това правило за отказ се добавя последно" }, "access-list.help.rules-order": { - "defaultMessage": "Note that the allow and deny directives will be applied in the order they are defined." + "defaultMessage": "Обърнете внимание, че правилата Позволяване и Отказване се прилагат в реда, в който са зададени." }, "access-list.pass-auth": { - "defaultMessage": "Pass Auth to Upstream" + "defaultMessage": "Предаване на автентикация към Upstream" }, "access-list.public": { - "defaultMessage": "Publicly Accessible" + "defaultMessage": "Публичен достъп" }, "access-list.public.subtitle": { - "defaultMessage": "No basic auth required" + "defaultMessage": "Без базова автентикация" }, "access-list.rule-source.placeholder": { - "defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32" + "defaultMessage": "192.168.1.100 или 192.168.1.0/24 или 2001:0db8::/32" }, "access-list.satisfy-any": { - "defaultMessage": "Satisfy Any" + "defaultMessage": "Удовлетворяване на което и да е" }, "access-list.subtitle": { - "defaultMessage": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}" + "defaultMessage": "{users} {users, plural, one {потребител} other {потребители}}, {rules} {rules, plural, one {правило} other {правила}} - Създадено: {date}" }, "access-lists": { - "defaultMessage": "Access Lists" + "defaultMessage": "Списъци за достъп" }, "action.add": { - "defaultMessage": "Add" + "defaultMessage": "Добавяне" }, "action.add-location": { - "defaultMessage": "Add Location" + "defaultMessage": "Добавяне на маршрут" }, "action.allow": { - "defaultMessage": "Allow" + "defaultMessage": "Разрешаване" }, "action.close": { - "defaultMessage": "Close" + "defaultMessage": "Затваряне" }, "action.delete": { - "defaultMessage": "Delete" + "defaultMessage": "Изтриване" }, "action.deny": { - "defaultMessage": "Deny" + "defaultMessage": "Отказване" }, "action.disable": { - "defaultMessage": "Disable" + "defaultMessage": "Деактивиране" }, "action.download": { - "defaultMessage": "Download" + "defaultMessage": "Изтегляне" }, "action.edit": { - "defaultMessage": "Edit" + "defaultMessage": "Редактиране" }, "action.enable": { - "defaultMessage": "Enable" + "defaultMessage": "Активиране" }, "action.permissions": { - "defaultMessage": "Permissions" + "defaultMessage": "Права" }, "action.renew": { - "defaultMessage": "Renew" + "defaultMessage": "Подновяване" }, "action.view-details": { - "defaultMessage": "View Details" + "defaultMessage": "Преглед на детайли" }, "auditlogs": { - "defaultMessage": "Audit Logs" + "defaultMessage": "Журнали за одит" }, "auto": { - "defaultMessage": "Auto" + "defaultMessage": "Автоматично" }, "cancel": { - "defaultMessage": "Cancel" + "defaultMessage": "Отказ" }, "certificate": { - "defaultMessage": "Certificate" + "defaultMessage": "Сертификат" }, "certificate.custom-certificate": { - "defaultMessage": "Certificate" + "defaultMessage": "Сертификат" }, "certificate.custom-certificate-key": { - "defaultMessage": "Certificate Key" + "defaultMessage": "Ключ на сертификата" }, "certificate.custom-intermediate": { - "defaultMessage": "Intermediate Certificate" + "defaultMessage": "Междинен сертификат" }, "certificate.in-use": { - "defaultMessage": "In Use" + "defaultMessage": "Използва се" }, "certificate.none.subtitle": { - "defaultMessage": "No certificate assigned" + "defaultMessage": "Не е назначен сертификат" }, "certificate.none.subtitle.for-http": { - "defaultMessage": "This host will not use HTTPS" + "defaultMessage": "Този хост няма да използва HTTPS" }, "certificate.none.title": { - "defaultMessage": "None" + "defaultMessage": "Без сертификат" }, "certificate.not-in-use": { - "defaultMessage": "Not Used" + "defaultMessage": "Не се използва" }, "certificate.renew": { - "defaultMessage": "Renew Certificate" + "defaultMessage": "Подновяване на сертификат" }, "certificates": { - "defaultMessage": "Certificates" + "defaultMessage": "Сертификати" }, "certificates.custom": { - "defaultMessage": "Custom Certificate" + "defaultMessage": "Потребителски сертификат" }, "certificates.custom.warning": { - "defaultMessage": "Key files protected with a passphrase are not supported." + "defaultMessage": "Ключове, защитени с парола, не се поддържат." }, "certificates.dns.credentials": { - "defaultMessage": "Credentials File Content" + "defaultMessage": "Съдържание на файл с удостоверения" }, "certificates.dns.credentials-note": { - "defaultMessage": "This plugin requires a configuration file containing an API token or other credentials for your provider" + "defaultMessage": "Този плъгин изисква конфигурационен файл с API токен или други идентификационни данни." }, "certificates.dns.credentials-warning": { - "defaultMessage": "This data will be stored as plaintext in the database and in a file!" + "defaultMessage": "Тези данни ще бъдат съхранени като обикновен текст в базата и във файл!" }, "certificates.dns.propagation-seconds": { - "defaultMessage": "Propagation Seconds" + "defaultMessage": "Секунди за разпространение" }, "certificates.dns.propagation-seconds-note": { - "defaultMessage": "Leave empty to use the plugins default value. Number of seconds to wait for DNS propagation." + "defaultMessage": "Оставете празно, за да се използва стойността по подразбиране. Брой секунди за изчакване на DNS разпространение." }, "certificates.dns.provider": { - "defaultMessage": "DNS Provider" + "defaultMessage": "DNS доставчик" }, "certificates.dns.provider.placeholder": { - "defaultMessage": "Select a Provider..." + "defaultMessage": "Изберете доставчик..." }, "certificates.dns.warning": { - "defaultMessage": "This section requires some knowledge about Certbot and its DNS plugins. Please consult the respective plugins documentation." + "defaultMessage": "Този раздел изисква познания за Certbot и неговите DNS плъгини. Моля, консултирайте се с документацията." }, "certificates.http.reachability-404": { - "defaultMessage": "There is a server found at this domain but it does not seem to be Nginx Proxy Manager. Please make sure your domain points to the IP where your NPM instance is running." + "defaultMessage": "Сървър е намерен на този домейн, но не изглежда да е Nginx Proxy Manager. Уверете се, че домейнът сочи към IP адреса, където работи NPM." }, "certificates.http.reachability-failed-to-check": { - "defaultMessage": "Failed to check the reachability due to a communication error with site24x7.com." + "defaultMessage": "Неуспешна проверка поради грешка в комуникацията със site24x7.com." }, "certificates.http.reachability-not-resolved": { - "defaultMessage": "There is no server available at this domain. Please make sure your domain exists and points to the IP where your NPM instance is running and if necessary port 80 is forwarded in your router." + "defaultMessage": "Няма достъпен сървър на този домейн. Проверете, че домейнът съществува и сочи към IP-та, където се изпълнява NPM, и ако е необходимо, че порт 80 е пренасочен." }, "certificates.http.reachability-ok": { - "defaultMessage": "Your server is reachable and creating certificates should be possible." + "defaultMessage": "Вашият сървър е достъпен и създаването на сертификати е възможно." }, "certificates.http.reachability-other": { - "defaultMessage": "There is a server found at this domain but it returned an unexpected status code {code}. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running." + "defaultMessage": "Намерен е сървър, но върна неочакван код {code}. Това NPM ли е? Уверете се, че домейнът сочи към вашия NPM сървър." }, "certificates.http.reachability-wrong-data": { - "defaultMessage": "There is a server found at this domain but it returned an unexpected data. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running." + "defaultMessage": "Намерен е сървър, но върна неочаквани данни. Това NPM ли е? Уверете се, че домейнът сочи към вашия NPM сървър." }, "certificates.http.test-results": { - "defaultMessage": "Test Results" + "defaultMessage": "Резултати от теста" }, "certificates.http.warning": { - "defaultMessage": "These domains must be already configured to point to this installation." + "defaultMessage": "Тези домейни трябва вече да сочат към тази инсталация." }, "certificates.request.subtitle": { - "defaultMessage": "with Let's Encrypt" + "defaultMessage": "с Let's Encrypt" }, "certificates.request.title": { - "defaultMessage": "Request a new Certificate" + "defaultMessage": "Заявка за нов сертификат" }, "column.access": { - "defaultMessage": "Access" + "defaultMessage": "Достъп" }, "column.authorization": { - "defaultMessage": "Authorization" + "defaultMessage": "Автентикация" }, "column.authorizations": { - "defaultMessage": "Authorizations" + "defaultMessage": "Автентикации" }, "column.custom-locations": { - "defaultMessage": "Custom Locations" + "defaultMessage": "Персонализирани маршрути" }, "column.destination": { - "defaultMessage": "Destination" + "defaultMessage": "Дестинация" }, "column.details": { - "defaultMessage": "Details" + "defaultMessage": "Детайли" }, "column.email": { - "defaultMessage": "Email" + "defaultMessage": "Имейл" }, "column.event": { - "defaultMessage": "Event" + "defaultMessage": "Събитие" }, "column.expires": { - "defaultMessage": "Expires" + "defaultMessage": "Изтича" }, "column.http-code": { - "defaultMessage": "HTTP Code" + "defaultMessage": "HTTP код" }, "column.incoming-port": { - "defaultMessage": "Incoming Port" + "defaultMessage": "Входящ порт" }, "column.name": { - "defaultMessage": "Name" + "defaultMessage": "Име" }, "column.protocol": { - "defaultMessage": "Protocol" + "defaultMessage": "Протокол" }, "column.provider": { - "defaultMessage": "Provider" + "defaultMessage": "Доставчик" }, "column.roles": { - "defaultMessage": "Roles" + "defaultMessage": "Роли" }, "column.rules": { - "defaultMessage": "Rules" + "defaultMessage": "Правила" }, "column.satisfy": { - "defaultMessage": "Satisfy" + "defaultMessage": "Удовлетворяване" }, "column.satisfy-all": { - "defaultMessage": "All" + "defaultMessage": "Всички" }, "column.satisfy-any": { - "defaultMessage": "Any" + "defaultMessage": "Кое и да е" }, "column.scheme": { - "defaultMessage": "Scheme" + "defaultMessage": "Схема" }, "column.source": { - "defaultMessage": "Source" + "defaultMessage": "Източник" }, "column.ssl": { "defaultMessage": "SSL" }, "column.status": { - "defaultMessage": "Status" + "defaultMessage": "Статус" }, "created-on": { - "defaultMessage": "Created: {date}" + "defaultMessage": "Създадено: {date}" }, "dashboard": { - "defaultMessage": "Dashboard" + "defaultMessage": "Табло" }, "dead-host": { - "defaultMessage": "404 Host" + "defaultMessage": "404 хост" }, "dead-hosts": { - "defaultMessage": "404 Hosts" + "defaultMessage": "404 хостове" }, "dead-hosts.count": { - "defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}" + "defaultMessage": "{count} {count, plural, one {404 хост} other {404 хостове}}" }, "disabled": { - "defaultMessage": "Disabled" + "defaultMessage": "Деактивиран" }, "domain-names": { - "defaultMessage": "Domain Names" + "defaultMessage": "Домейн имена" }, "domain-names.max": { - "defaultMessage": "{count} domain names maximum" + "defaultMessage": "Максимум {count} домейна" }, "domain-names.placeholder": { - "defaultMessage": "Start typing to add domain..." + "defaultMessage": "Започнете да въвеждате, за да добавите домейн..." }, "domain-names.wildcards-not-permitted": { - "defaultMessage": "Wildcards not permitted for this type" + "defaultMessage": "Wildcard не е разрешен за този тип" }, "domain-names.wildcards-not-supported": { - "defaultMessage": "Wildcards not supported for this CA" + "defaultMessage": "Wildcard не се поддържа от това CA" }, "domains.force-ssl": { - "defaultMessage": "Force SSL" + "defaultMessage": "Принудително SSL" }, "domains.hsts-enabled": { - "defaultMessage": "HSTS Enabled" + "defaultMessage": "HSTS активирано" }, "domains.hsts-subdomains": { - "defaultMessage": "HSTS Sub-domains" + "defaultMessage": "HSTS за поддомейни" }, "domains.http2-support": { - "defaultMessage": "HTTP/2 Support" + "defaultMessage": "Поддръжка на HTTP/2" }, "domains.use-dns": { - "defaultMessage": "Use DNS Challenge" + "defaultMessage": "Използване на DNS Challenge" }, "email-address": { - "defaultMessage": "Email address" + "defaultMessage": "Имейл адрес" }, "empty-search": { - "defaultMessage": "No results found" + "defaultMessage": "Няма резултати" }, "empty-subtitle": { - "defaultMessage": "Why don't you create one?" + "defaultMessage": "Защо не създадете един?" }, "enabled": { - "defaultMessage": "Enabled" + "defaultMessage": "Активиран" }, "error.access.at-least-one": { - "defaultMessage": "Either one Authorization or one Access Rule is required" + "defaultMessage": "Необходимо е поне една Автентикация или едно Правило за достъп" }, "error.access.duplicate-usernames": { - "defaultMessage": "Authorization Usernames must be unique" + "defaultMessage": "Потребителските имена за достъп трябва да са уникални" }, "error.invalid-auth": { - "defaultMessage": "Invalid email or password" + "defaultMessage": "Невалиден имейл или парола" }, "error.invalid-domain": { - "defaultMessage": "Invalid domain: {domain}" + "defaultMessage": "Невалиден домейн: {domain}" }, "error.invalid-email": { - "defaultMessage": "Invalid email address" + "defaultMessage": "Невалиден имейл адрес" }, "error.max-character-length": { - "defaultMessage": "Maximum length is {max} character{max, plural, one {} other {s}}" + "defaultMessage": "Максималната дължина е {max} знак{max, plural, one {} other {а}}" }, "error.max-domains": { - "defaultMessage": "Too many domains, max is {max}" + "defaultMessage": "Твърде много домейни, максимум {max}" }, "error.maximum": { - "defaultMessage": "Maximum is {max}" + "defaultMessage": "Максимум {max}" }, "error.min-character-length": { - "defaultMessage": "Minimum length is {min} character{min, plural, one {} other {s}}" + "defaultMessage": "Минималната дължина е {min} знак{min, plural, one {} other {а}}" }, "error.minimum": { - "defaultMessage": "Minimum is {min}" + "defaultMessage": "Минимум e {min}" }, "error.passwords-must-match": { - "defaultMessage": "Passwords must match" + "defaultMessage": "Паролите трябва да съвпадат" }, "error.required": { - "defaultMessage": "This is required" + "defaultMessage": "Това поле е задължително" }, "expires.on": { - "defaultMessage": "Expires: {date}" + "defaultMessage": "Изтича: {date}" }, "footer.github-fork": { - "defaultMessage": "Fork me on Github" + "defaultMessage": "Fork в GitHub" }, "host.flags.block-exploits": { - "defaultMessage": "Block Common Exploits" + "defaultMessage": "Блокиране на често срещани експлойти" }, "host.flags.cache-assets": { - "defaultMessage": "Cache Assets" + "defaultMessage": "Кеширане на ресурси" }, "host.flags.preserve-path": { - "defaultMessage": "Preserve Path" + "defaultMessage": "Запазване на пътя" }, "host.flags.protocols": { - "defaultMessage": "Protocols" + "defaultMessage": "Протоколи" }, "host.flags.websockets-upgrade": { - "defaultMessage": "Websockets Support" + "defaultMessage": "Поддръжка на WebSockets" }, "host.forward-port": { - "defaultMessage": "Forward Port" + "defaultMessage": "Препращане на порт" }, "host.forward-scheme": { - "defaultMessage": "Scheme" + "defaultMessage": "Схема" }, "hosts": { - "defaultMessage": "Hosts" + "defaultMessage": "Хостове" }, "http-only": { - "defaultMessage": "HTTP Only" + "defaultMessage": "Само HTTP" }, "lets-encrypt": { "defaultMessage": "Let's Encrypt" }, "lets-encrypt-via-dns": { - "defaultMessage": "Let's Encrypt via DNS" + "defaultMessage": "Let's Encrypt чрез DNS" }, "lets-encrypt-via-http": { - "defaultMessage": "Let's Encrypt via HTTP" + "defaultMessage": "Let's Encrypt чрез HTTP" }, "loading": { - "defaultMessage": "Loading…" + "defaultMessage": "Зареждане…" }, "login.title": { - "defaultMessage": "Login to your account" + "defaultMessage": "Вход в акаунта" }, "nginx-config.label": { - "defaultMessage": "Custom Nginx Configuration" + "defaultMessage": "Персонализирана Nginx конфигурация" }, "nginx-config.placeholder": { - "defaultMessage": "# Enter your custom Nginx configuration here at your own risk!" + "defaultMessage": "# Въведете вашата персонализирана Nginx конфигурация на собствен риск!" }, "no-permission-error": { - "defaultMessage": "You do not have access to view this." + "defaultMessage": "Нямате достъп до тази страница." }, "notfound.action": { - "defaultMessage": "Take me home" + "defaultMessage": "Към началната страница" }, "notfound.content": { - "defaultMessage": "We are sorry but the page you are looking for was not found" + "defaultMessage": "Страницата, която търсите, не беше намерена" }, "notfound.title": { - "defaultMessage": "Oops… You just found an error page" + "defaultMessage": "Упс… Намерихте грешка" }, "notification.error": { - "defaultMessage": "Error" + "defaultMessage": "Грешка" }, "notification.object-deleted": { - "defaultMessage": "{object} has been deleted" + "defaultMessage": "{object} беше изтрит" }, "notification.object-disabled": { - "defaultMessage": "{object} has been disabled" + "defaultMessage": "{object} беше деактивиран" }, "notification.object-enabled": { - "defaultMessage": "{object} has been enabled" + "defaultMessage": "{object} беше активиран" }, "notification.object-renewed": { - "defaultMessage": "{object} has been renewed" + "defaultMessage": "{object} беше подновен" }, "notification.object-saved": { - "defaultMessage": "{object} has been saved" + "defaultMessage": "{object} беше запазен" }, "notification.success": { - "defaultMessage": "Success" + "defaultMessage": "Успех" }, "object.actions-title": { - "defaultMessage": "{object} #{id}" + "defaultMessage": "{object} №{id}" }, "object.add": { - "defaultMessage": "Add {object}" + "defaultMessage": "Добавяне: {object}" }, "object.delete": { - "defaultMessage": "Delete {object}" + "defaultMessage": "Изтриване: {object}" }, "object.delete.content": { - "defaultMessage": "Are you sure you want to delete this {object}?" + "defaultMessage": "Сигурни ли сте, че искате да изтриете {object}?" }, "object.edit": { - "defaultMessage": "Edit {object}" + "defaultMessage": "Редактиране: {object}" }, "object.empty": { - "defaultMessage": "There are no {objects}" + "defaultMessage": "Няма налични {objects}" }, "object.event.created": { - "defaultMessage": "Created {object}" + "defaultMessage": "Създаден {object}" }, "object.event.deleted": { - "defaultMessage": "Deleted {object}" + "defaultMessage": "Изтрит {object}" }, "object.event.disabled": { - "defaultMessage": "Disabled {object}" + "defaultMessage": "Деактивиран {object}" }, "object.event.enabled": { - "defaultMessage": "Enabled {object}" + "defaultMessage": "Активиран {object}" }, "object.event.renewed": { - "defaultMessage": "Renewed {object}" + "defaultMessage": "Подновен {object}" }, "object.event.updated": { - "defaultMessage": "Updated {object}" + "defaultMessage": "Актуализиран {object}" }, "offline": { - "defaultMessage": "Offline" + "defaultMessage": "Офлайн" }, "online": { - "defaultMessage": "Online" + "defaultMessage": "Онлайн" }, "options": { - "defaultMessage": "Options" + "defaultMessage": "Опции" }, "password": { - "defaultMessage": "Password" + "defaultMessage": "Парола" }, "password.generate": { - "defaultMessage": "Generate random password" + "defaultMessage": "Генериране на случайна парола" }, "password.hide": { - "defaultMessage": "Hide Password" + "defaultMessage": "Скриване на паролата" }, "password.show": { - "defaultMessage": "Show Password" + "defaultMessage": "Показване на паролата" }, "permissions.hidden": { - "defaultMessage": "Hidden" + "defaultMessage": "Скрито" }, "permissions.manage": { - "defaultMessage": "Manage" + "defaultMessage": "Управление" }, "permissions.view": { - "defaultMessage": "View Only" + "defaultMessage": "Само преглед" }, "permissions.visibility.all": { - "defaultMessage": "All Items" + "defaultMessage": "Всички елементи" }, "permissions.visibility.title": { - "defaultMessage": "Item Visibility" + "defaultMessage": "Видимост на елементите" }, "permissions.visibility.user": { - "defaultMessage": "Created Items Only" + "defaultMessage": "Само създадените от потребителя" }, "proxy-host": { - "defaultMessage": "Proxy Host" + "defaultMessage": "Прокси хост" }, "proxy-host.forward-host": { - "defaultMessage": "Forward Hostname / IP" + "defaultMessage": "Хост/IP за препращане" }, "proxy-hosts": { - "defaultMessage": "Proxy Hosts" + "defaultMessage": "Прокси хостове" }, "proxy-hosts.count": { - "defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}" + "defaultMessage": "{count} {count, plural, one {прокси хост} other {прокси хостове}}" }, "public": { - "defaultMessage": "Public" + "defaultMessage": "Публичен" }, "redirection-host": { - "defaultMessage": "Redirection Host" + "defaultMessage": "Хост за пренасочване" }, "redirection-host.forward-domain": { - "defaultMessage": "Forward Domain" + "defaultMessage": "Домейн за пренасочване" }, "redirection-host.forward-http-code": { - "defaultMessage": "HTTP Code" + "defaultMessage": "HTTP код" }, "redirection-hosts": { - "defaultMessage": "Redirection Hosts" + "defaultMessage": "Хостове за пренасочване" }, "redirection-hosts.count": { - "defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}" + "defaultMessage": "{count} {count, plural, one {хост за пренасочване} other {хостове за пренасочване}}" }, "redirection-hosts.http-code.300": { "defaultMessage": "300 Multiple Choices" }, "redirection-hosts.http-code.301": { - "defaultMessage": "301 Moved permanently" + "defaultMessage": "301 Преместено постоянно" }, "redirection-hosts.http-code.302": { - "defaultMessage": "302 Moved temporarily" + "defaultMessage": "302 Преместено временно" }, "redirection-hosts.http-code.303": { "defaultMessage": "303 See other" }, "redirection-hosts.http-code.307": { - "defaultMessage": "307 Temporary redirect" + "defaultMessage": "307 Временно пренасочване" }, "redirection-hosts.http-code.308": { - "defaultMessage": "308 Permanent redirect" + "defaultMessage": "308 Постоянно пренасочване" }, "role.admin": { - "defaultMessage": "Administrator" + "defaultMessage": "Администратор" }, "role.standard-user": { - "defaultMessage": "Standard User" + "defaultMessage": "Обикновен потребител" }, "save": { - "defaultMessage": "Save" + "defaultMessage": "Запазване" }, "setting": { - "defaultMessage": "Setting" + "defaultMessage": "Настройка" }, "settings": { - "defaultMessage": "Settings" + "defaultMessage": "Настройки" }, "settings.default-site": { - "defaultMessage": "Default Site" + "defaultMessage": "Сайт по подразбиране" }, "settings.default-site.404": { - "defaultMessage": "404 Page" + "defaultMessage": "404 страница" }, "settings.default-site.444": { - "defaultMessage": "No Response (444)" + "defaultMessage": "Без отговор (444)" }, "settings.default-site.congratulations": { - "defaultMessage": "Congratulations Page" + "defaultMessage": "Страница поздравление" }, "settings.default-site.description": { - "defaultMessage": "What to show when Nginx is hit with an unknown Host" + "defaultMessage": "Какво да се показва при заявка към неизвестен хост" }, "settings.default-site.html": { - "defaultMessage": "Custom HTML" + "defaultMessage": "Персонализиран HTML" }, "settings.default-site.html.placeholder": { - "defaultMessage": "" + "defaultMessage": "" }, "settings.default-site.redirect": { - "defaultMessage": "Redirect" + "defaultMessage": "Пренасочване" }, "setup.preamble": { - "defaultMessage": "Get started by creating your admin account." + "defaultMessage": "Започнете, като създадете администраторски акаунт." }, "setup.title": { - "defaultMessage": "Welcome!" + "defaultMessage": "Добре дошли!" }, "sign-in": { - "defaultMessage": "Sign in" + "defaultMessage": "Вход" }, "ssl-certificate": { - "defaultMessage": "SSL Certificate" + "defaultMessage": "SSL сертификат" }, "stream": { - "defaultMessage": "Stream" + "defaultMessage": "Поток" }, "stream.forward-host": { - "defaultMessage": "Forward Host" + "defaultMessage": "Хост за препращане" }, "stream.forward-host.placeholder": { - "defaultMessage": "example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888" + "defaultMessage": "example.com или 10.0.0.1 или 2001:db8:3333:4444:5555:6666:7777:8888" }, "stream.incoming-port": { - "defaultMessage": "Incoming Port" + "defaultMessage": "Входящ порт" }, "streams": { - "defaultMessage": "Streams" + "defaultMessage": "Потоци" }, "streams.count": { - "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}" + "defaultMessage": "{count} {count, plural, one {поток} other {потоци}}" }, "streams.tcp": { "defaultMessage": "TCP" @@ -627,57 +627,57 @@ "defaultMessage": "UDP" }, "test": { - "defaultMessage": "Test" + "defaultMessage": "Тест" }, "update-available": { - "defaultMessage": "Update Available: {latestVersion}" + "defaultMessage": "Налична актуализация: {latestVersion}" }, "user": { - "defaultMessage": "User" + "defaultMessage": "Потребител" }, "user.change-password": { - "defaultMessage": "Change Password" + "defaultMessage": "Смяна на парола" }, "user.confirm-password": { - "defaultMessage": "Confirm Password" + "defaultMessage": "Потвърждение на парола" }, "user.current-password": { - "defaultMessage": "Current Password" + "defaultMessage": "Текуща парола" }, "user.edit-profile": { - "defaultMessage": "Edit Profile" + "defaultMessage": "Редактиране на профил" }, "user.full-name": { - "defaultMessage": "Full Name" + "defaultMessage": "Пълно име" }, "user.login-as": { - "defaultMessage": "Sign in as {name}" + "defaultMessage": "Вход като {name}" }, "user.logout": { - "defaultMessage": "Logout" + "defaultMessage": "Изход" }, "user.new-password": { - "defaultMessage": "New Password" + "defaultMessage": "Нова парола" }, "user.nickname": { - "defaultMessage": "Nickname" + "defaultMessage": "Псевдоним" }, "user.set-password": { - "defaultMessage": "Set Password" + "defaultMessage": "Задаване на парола" }, "user.set-permissions": { - "defaultMessage": "Set Permissions for {name}" + "defaultMessage": "Настройка на права за {name}" }, "user.switch-dark": { - "defaultMessage": "Switch to Dark mode" + "defaultMessage": "Тъмна тема" }, "user.switch-light": { - "defaultMessage": "Switch to Light mode" + "defaultMessage": "Светла тема" }, "username": { - "defaultMessage": "Username" + "defaultMessage": "Потребителско име" }, "users": { - "defaultMessage": "Users" + "defaultMessage": "Потребители" } } From e8ca72fb6a5f12a3c8f90d2995c31bf7ac720431 Mon Sep 17 00:00:00 2001 From: Bare7a Date: Mon, 24 Nov 2025 18:14:16 +0200 Subject: [PATCH 3/5] Adds bg inside HelpDoc index.ts file --- frontend/src/locale/src/HelpDoc/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/locale/src/HelpDoc/index.ts b/frontend/src/locale/src/HelpDoc/index.ts index adb351a3..b7c9f373 100644 --- a/frontend/src/locale/src/HelpDoc/index.ts +++ b/frontend/src/locale/src/HelpDoc/index.ts @@ -8,8 +8,9 @@ import * as ru from "./ru/index"; import * as sk from "./sk/index"; import * as vi from "./vi/index"; import * as zh from "./zh/index"; +import * as bg from "./bg/index"; -const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl }; +const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl, bg }; const fallbackLang = "en"; From 1c6f54fa3c22b142afaa8c6360430ca3637e5518 Mon Sep 17 00:00:00 2001 From: Bare7a Date: Mon, 24 Nov 2025 18:23:40 +0200 Subject: [PATCH 4/5] Changed the port translation --- frontend/src/locale/src/bg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/locale/src/bg.json b/frontend/src/locale/src/bg.json index 274eca1f..81cab598 100644 --- a/frontend/src/locale/src/bg.json +++ b/frontend/src/locale/src/bg.json @@ -363,7 +363,7 @@ "defaultMessage": "Поддръжка на WebSockets" }, "host.forward-port": { - "defaultMessage": "Препращане на порт" + "defaultMessage": "Порт" }, "host.forward-scheme": { "defaultMessage": "Схема" From 45bc44c6fac39c4504aad074073d02478e32aaae Mon Sep 17 00:00:00 2001 From: Ville Alatalo Date: Tue, 25 Nov 2025 07:46:32 +0200 Subject: [PATCH 5/5] Add Glesys certbot plugin --- backend/certbot/dns-plugins.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json index 102734d2..4eadd078 100644 --- a/backend/certbot/dns-plugins.json +++ b/backend/certbot/dns-plugins.json @@ -255,6 +255,14 @@ "credentials": "dns_gcore_apitoken = 0123456789abcdef0123456789abcdef01234567", "full_plugin_name": "dns-gcore" }, + "glesys": { + "name": "Glesys", + "package_name": "certbot-dns-glesys", + "version": "~=2.1.0", + "dependencies": "", + "credentials": "dns_glesys_user = CL00000\ndns_glesys_password = apikeyvalue", + "full_plugin_name": "dns-glesys" + }, "godaddy": { "name": "GoDaddy", "package_name": "certbot-dns-godaddy",