More Persian lang updates

This commit is contained in:
Jamie Curnow
2025-11-03 08:12:52 +10:00
parent 52ab4844dc
commit 32208f3864
10 changed files with 165 additions and 85 deletions

View File

@@ -1,29 +1,29 @@
{ {
"access-list": "Access List", "access-list": "لیست دسترسی",
"access-list.access-count": "{count} {count, plural, one {Rule} other {Rules}}", "access-list.access-count": "{count} {count, plural, one {Rule} other {Rules}}",
"access-list.auth-count": "{count} {count, plural, one {User} other {Users}}", "access-list.auth-count": "{count} {count, plural, one {User} other {Users}}",
"access-list.help-rules-last": "When at least 1 rule exists, this deny all rule will be added last", "access-list.help-rules-last": "When at least 1 rule exists, this deny all rule will be added last",
"access-list.help.rules-order": "Note that the allow and deny directives will be applied in the order they are defined.", "access-list.help.rules-order": "توجه داشته باشید که دستورات allow و deny به ترتیب تعریف‌شده اعمال خواهند شد.",
"access-list.pass-auth": "Pass Auth to Upstream", "access-list.pass-auth": "ارسال احراز هویت به سرور بالادستی",
"access-list.public": "Publicly Accessible", "access-list.public": "قابل دسترسی برای عموم",
"access-list.public.subtitle": "No basic auth required", "access-list.public.subtitle": "نیازی به احراز هویت پایه نیست",
"access-list.satisfy-any": "Satisfy Any", "access-list.satisfy-any": "Satisfy Any",
"access-list.subtitle": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}", "access-list.subtitle": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}",
"access-lists": "Access Lists", "access-lists": "لیست‌های دسترسی",
"action.add": "Add", "action.add": "افزودن",
"action.add-location": "Add Location", "action.add-location": "افزودن مکان",
"action.close": "Close", "action.close": "بستن",
"action.delete": "Delete", "action.delete": "حذف",
"action.disable": "Disable", "action.disable": "غیرفعال",
"action.download": "Download", "action.download": "دانلود",
"action.edit": "Edit", "action.edit": "ویرایش",
"action.enable": "Enable", "action.enable": "فعال‌سازی",
"action.permissions": "Permissions", "action.permissions": "مجوزها",
"action.renew": "Renew", "action.renew": "تجدید",
"action.view-details": "View Details", "action.view-details": "مشاهده جزئیات",
"auditlogs": "Audit Logs", "auditlogs": "لاگ‌های بررسی",
"cancel": "Cancel", "cancel": "لغو",
"certificate": "Certificate", "certificate": "گواهی‌نامه",
"certificate.custom-certificate": "Certificate", "certificate.custom-certificate": "Certificate",
"certificate.custom-certificate-key": "Certificate Key", "certificate.custom-certificate-key": "Certificate Key",
"certificate.custom-intermediate": "Intermediate Certificate", "certificate.custom-intermediate": "Intermediate Certificate",
@@ -76,7 +76,7 @@
"column.ssl": "SSL", "column.ssl": "SSL",
"column.status": "Status", "column.status": "Status",
"created-on": "Created: {date}", "created-on": "Created: {date}",
"dashboard": "داشبورد", "dashboard": "خانه",
"dead-host": "404 Host", "dead-host": "404 Host",
"dead-hosts": "404 Hosts", "dead-hosts": "404 Hosts",
"dead-hosts.count": "{count} {count, plural, one {404 Host} other {404 Hosts}}", "dead-hosts.count": "{count} {count, plural, one {404 Host} other {404 Hosts}}",
@@ -91,15 +91,15 @@
"domains.hsts-subdomains": "HSTS Sub-domains", "domains.hsts-subdomains": "HSTS Sub-domains",
"domains.http2-support": "HTTP/2 Support", "domains.http2-support": "HTTP/2 Support",
"domains.use-dns": "Use DNS Challenge", "domains.use-dns": "Use DNS Challenge",
"email-address": "Email address", "email-address": "نشانی ایمیل",
"empty-search": "No results found", "empty-search": "هیچ نتیجه‌ای یافت نشد",
"empty-subtitle": "Why don't you create one?", "empty-subtitle": "چرا یکی ایجاد نمی‌کنید؟",
"enabled": "Enabled", "enabled": "فعال",
"error.access.at-least-one": "Either one Authorization or one Access Rule is required", "error.access.at-least-one": "Either one Authorization or one Access Rule is required",
"error.access.duplicate-usernames": "Authorization Usernames must be unique", "error.access.duplicate-usernames": "Authorization Usernames must be unique",
"error.invalid-auth": "Invalid email or password", "error.invalid-auth": "ایمیل یا رمز عبور نامعتبر است",
"error.invalid-domain": "Invalid domain: {domain}", "error.invalid-domain": "Invalid domain: {domain}",
"error.invalid-email": "Invalid email address", "error.invalid-email": "نشانی ایمیل نامعتبر است",
"error.max-character-length": "Maximum length is {max} character{max, plural, one {} other {s}}", "error.max-character-length": "Maximum length is {max} character{max, plural, one {} other {s}}",
"error.max-domains": "Too many domains, max is {max}", "error.max-domains": "Too many domains, max is {max}",
"error.maximum": "Maximum is {max}", "error.maximum": "Maximum is {max}",
@@ -137,7 +137,7 @@
"notification.object-saved": "{object} has been saved", "notification.object-saved": "{object} has been saved",
"notification.success": "Success", "notification.success": "Success",
"object.actions-title": "{object} #{id}", "object.actions-title": "{object} #{id}",
"object.add": "Add {object}", "object.add": "{object} افزودن",
"object.delete": "Delete {object}", "object.delete": "Delete {object}",
"object.delete.content": "Are you sure you want to delete this {object}?", "object.delete.content": "Are you sure you want to delete this {object}?",
"object.edit": "Edit {object}", "object.edit": "Edit {object}",
@@ -195,20 +195,20 @@
"streams.tcp": "TCP", "streams.tcp": "TCP",
"streams.udp": "UDP", "streams.udp": "UDP",
"test": "Test", "test": "Test",
"user": "User", "user": "کاربر",
"user.change-password": "Change Password", "user.change-password": "Change Password",
"user.confirm-password": "Confirm Password", "user.confirm-password": "Confirm Password",
"user.current-password": "Current Password", "user.current-password": "رمز عبور فعلی",
"user.edit-profile": "Edit Profile", "user.edit-profile": "ویرایش پروفایل",
"user.full-name": "Full Name", "user.full-name": "نام کامل",
"user.login-as": "Sign in as {name}", "user.login-as": "Sign in as {name}",
"user.logout": "Logout", "user.logout": "خروج",
"user.new-password": "New Password", "user.new-password": "رمز عبور جدید",
"user.nickname": "Nickname", "user.nickname": "نام مستعار",
"user.set-password": "Set Password", "user.set-password": "تنظیم رمز عبور",
"user.set-permissions": "Set Permissions for {name}", "user.set-permissions": "Set Permissions for {name}",
"user.switch-dark": "Switch to Dark mode", "user.switch-dark": "تغییر به حالت تاریک",
"user.switch-light": "Switch to Light mode", "user.switch-light": "تغییر به حالت روشن",
"username": "Username", "username": "نام کاربری",
"users": "Users" "users": "کاربران"
} }

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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";

View File

@@ -1,17 +1,22 @@
// import * as de from "./de/index";
// import * as fa from "./fa/index";
import * as en from "./en/index"; import * as en from "./en/index";
import * as fa from "./fa/index";
const items: any = { en }; const items: any = { en, fa };
const fallbackLang = "en"; const fallbackLang = "en";
export const getHelpFile = (lang: string, section: string): string => { export const getHelpFile = (lang: string, section: string): string => {
if (typeof items[lang] !== "undefined" && typeof items[lang][section] !== "undefined") { if (
typeof items[lang] !== "undefined" &&
typeof items[lang][section] !== "undefined"
) {
return items[lang][section].default; return items[lang][section].default;
} }
// Fallback to English // Fallback to English
if (typeof items[fallbackLang] !== "undefined" && typeof items[fallbackLang][section] !== "undefined") { if (
typeof items[fallbackLang] !== "undefined" &&
typeof items[fallbackLang][section] !== "undefined"
) {
return items[fallbackLang][section].default; return items[fallbackLang][section].default;
} }
throw new Error(`Cannot load help doc for ${lang}-${section}`); throw new Error(`Cannot load help doc for ${lang}-${section}`);

View File

@@ -1,6 +1,6 @@
{ {
"access-list": { "access-list": {
"defaultMessage": "Access List" "defaultMessage": "لیست دسترسی"
}, },
"access-list.access-count": { "access-list.access-count": {
"defaultMessage": "{count} {count, plural, one {Rule} other {Rules}}" "defaultMessage": "{count} {count, plural, one {Rule} other {Rules}}"
@@ -12,16 +12,16 @@
"defaultMessage": "When at least 1 rule exists, this deny all rule will be added last" "defaultMessage": "When at least 1 rule exists, this deny all rule will be added last"
}, },
"access-list.help.rules-order": { "access-list.help.rules-order": {
"defaultMessage": "Note that the allow and deny directives will be applied in the order they are defined." "defaultMessage": "توجه داشته باشید که دستورات allow و deny به ترتیب تعریف‌شده اعمال خواهند شد."
}, },
"access-list.pass-auth": { "access-list.pass-auth": {
"defaultMessage": "Pass Auth to Upstream" "defaultMessage": "ارسال احراز هویت به سرور بالادستی"
}, },
"access-list.public": { "access-list.public": {
"defaultMessage": "Publicly Accessible" "defaultMessage": "قابل دسترسی برای عموم"
}, },
"access-list.public.subtitle": { "access-list.public.subtitle": {
"defaultMessage": "No basic auth required" "defaultMessage": "نیازی به احراز هویت پایه نیست"
}, },
"access-list.satisfy-any": { "access-list.satisfy-any": {
"defaultMessage": "Satisfy Any" "defaultMessage": "Satisfy Any"
@@ -30,49 +30,49 @@
"defaultMessage": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}" "defaultMessage": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}"
}, },
"access-lists": { "access-lists": {
"defaultMessage": "Access Lists" "defaultMessage": "لیست‌های دسترسی"
}, },
"action.add": { "action.add": {
"defaultMessage": "Add" "defaultMessage": "افزودن"
}, },
"action.add-location": { "action.add-location": {
"defaultMessage": "Add Location" "defaultMessage": "افزودن مکان"
}, },
"action.close": { "action.close": {
"defaultMessage": "Close" "defaultMessage": "بستن"
}, },
"action.delete": { "action.delete": {
"defaultMessage": "Delete" "defaultMessage": "حذف"
}, },
"action.disable": { "action.disable": {
"defaultMessage": "Disable" "defaultMessage": "غیرفعال"
}, },
"action.download": { "action.download": {
"defaultMessage": "Download" "defaultMessage": "دانلود"
}, },
"action.edit": { "action.edit": {
"defaultMessage": "Edit" "defaultMessage": "ویرایش"
}, },
"action.enable": { "action.enable": {
"defaultMessage": "Enable" "defaultMessage": "فعال‌سازی"
}, },
"action.permissions": { "action.permissions": {
"defaultMessage": "Permissions" "defaultMessage": "مجوزها"
}, },
"action.renew": { "action.renew": {
"defaultMessage": "Renew" "defaultMessage": "تجدید"
}, },
"action.view-details": { "action.view-details": {
"defaultMessage": "View Details" "defaultMessage": "مشاهده جزئیات"
}, },
"auditlogs": { "auditlogs": {
"defaultMessage": "Audit Logs" "defaultMessage": "لاگ‌های بررسی"
}, },
"cancel": { "cancel": {
"defaultMessage": "Cancel" "defaultMessage": "لغو"
}, },
"certificate": { "certificate": {
"defaultMessage": "Certificate" "defaultMessage": "گواهی‌نامه"
}, },
"certificate.custom-certificate": { "certificate.custom-certificate": {
"defaultMessage": "Certificate" "defaultMessage": "Certificate"
@@ -231,7 +231,7 @@
"defaultMessage": "Created: {date}" "defaultMessage": "Created: {date}"
}, },
"dashboard": { "dashboard": {
"defaultMessage": "داشبورد" "defaultMessage": "خانه"
}, },
"dead-host": { "dead-host": {
"defaultMessage": "404 Host" "defaultMessage": "404 Host"
@@ -276,16 +276,16 @@
"defaultMessage": "Use DNS Challenge" "defaultMessage": "Use DNS Challenge"
}, },
"email-address": { "email-address": {
"defaultMessage": "Email address" "defaultMessage": "نشانی ایمیل"
}, },
"empty-search": { "empty-search": {
"defaultMessage": "No results found" "defaultMessage": "هیچ نتیجه‌ای یافت نشد"
}, },
"empty-subtitle": { "empty-subtitle": {
"defaultMessage": "Why don't you create one?" "defaultMessage": "چرا یکی ایجاد نمی‌کنید؟"
}, },
"enabled": { "enabled": {
"defaultMessage": "Enabled" "defaultMessage": "فعال"
}, },
"error.access.at-least-one": { "error.access.at-least-one": {
"defaultMessage": "Either one Authorization or one Access Rule is required" "defaultMessage": "Either one Authorization or one Access Rule is required"
@@ -294,13 +294,13 @@
"defaultMessage": "Authorization Usernames must be unique" "defaultMessage": "Authorization Usernames must be unique"
}, },
"error.invalid-auth": { "error.invalid-auth": {
"defaultMessage": "Invalid email or password" "defaultMessage": "ایمیل یا رمز عبور نامعتبر است"
}, },
"error.invalid-domain": { "error.invalid-domain": {
"defaultMessage": "Invalid domain: {domain}" "defaultMessage": "Invalid domain: {domain}"
}, },
"error.invalid-email": { "error.invalid-email": {
"defaultMessage": "Invalid email address" "defaultMessage": "نشانی ایمیل نامعتبر است"
}, },
"error.max-character-length": { "error.max-character-length": {
"defaultMessage": "Maximum length is {max} character{max, plural, one {} other {s}}" "defaultMessage": "Maximum length is {max} character{max, plural, one {} other {s}}"
@@ -414,7 +414,7 @@
"defaultMessage": "{object} #{id}" "defaultMessage": "{object} #{id}"
}, },
"object.add": { "object.add": {
"defaultMessage": "Add {object}" "defaultMessage": "{object} افزودن"
}, },
"object.delete": { "object.delete": {
"defaultMessage": "Delete {object}" "defaultMessage": "Delete {object}"
@@ -588,7 +588,7 @@
"defaultMessage": "Test" "defaultMessage": "Test"
}, },
"user": { "user": {
"defaultMessage": "User" "defaultMessage": "کاربر"
}, },
"user.change-password": { "user.change-password": {
"defaultMessage": "Change Password" "defaultMessage": "Change Password"
@@ -597,42 +597,42 @@
"defaultMessage": "Confirm Password" "defaultMessage": "Confirm Password"
}, },
"user.current-password": { "user.current-password": {
"defaultMessage": "Current Password" "defaultMessage": "رمز عبور فعلی"
}, },
"user.edit-profile": { "user.edit-profile": {
"defaultMessage": "Edit Profile" "defaultMessage": "ویرایش پروفایل"
}, },
"user.full-name": { "user.full-name": {
"defaultMessage": "Full Name" "defaultMessage": "نام کامل"
}, },
"user.login-as": { "user.login-as": {
"defaultMessage": "Sign in as {name}" "defaultMessage": "Sign in as {name}"
}, },
"user.logout": { "user.logout": {
"defaultMessage": "Logout" "defaultMessage": "خروج"
}, },
"user.new-password": { "user.new-password": {
"defaultMessage": "New Password" "defaultMessage": "رمز عبور جدید"
}, },
"user.nickname": { "user.nickname": {
"defaultMessage": "Nickname" "defaultMessage": "نام مستعار"
}, },
"user.set-password": { "user.set-password": {
"defaultMessage": "Set Password" "defaultMessage": "تنظیم رمز عبور"
}, },
"user.set-permissions": { "user.set-permissions": {
"defaultMessage": "Set Permissions for {name}" "defaultMessage": "Set Permissions for {name}"
}, },
"user.switch-dark": { "user.switch-dark": {
"defaultMessage": "Switch to Dark mode" "defaultMessage": "تغییر به حالت تاریک"
}, },
"user.switch-light": { "user.switch-light": {
"defaultMessage": "Switch to Light mode" "defaultMessage": "تغییر به حالت روشن"
}, },
"username": { "username": {
"defaultMessage": "Username" "defaultMessage": "نام کاربری"
}, },
"users": { "users": {
"defaultMessage": "Users" "defaultMessage": "کاربران"
} }
} }