mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-09-24 13:50:20 +01:00
Tõlgi kogu kasutajaliides eesti keelde ja kinnita Eesti lipp.
UI-tekstid olid eesti keele valikus, aga sisu oli inglise keeles. Nüüd on et.json täielikult eesti keeles (sh puudunud võtmed), abitekstid ühtlustatud ja lipukoodiks jääb EE (Eesti), mitte ET (Etioopia). Kuupäevad kasutavad et-EE lokaati ja 24-tunnist kellaaega. Muudatuse tegi Aarmaa IT - Siim Aarmaa Co-authored-by: Siim Aarmaa <siimaarmaa@users.noreply.github.com>
This commit is contained in:
co-authored by
Siim Aarmaa
parent
18f1fe22b1
commit
f477946bd9
@@ -69,17 +69,17 @@ const loadMessages = (locale?: string): typeof langList & typeof langEn => {
|
||||
const getFlagCodeForLocale = (locale?: string) => {
|
||||
const thisLocale = (locale || "en").slice(0, 2);
|
||||
|
||||
// only add to this if your flag is different from the locale code
|
||||
const specialCases: Record<string, string> = {
|
||||
ja: "jp", // Japan
|
||||
zh: "cn", // China
|
||||
vi: "vn", // Vietnam
|
||||
ko: "kr", // Korea
|
||||
cs: "cz", // Czechia
|
||||
ga: "ie", // Ireland (Irish)
|
||||
et: "ee", // Estonia
|
||||
uk: "ua", // Ukraine
|
||||
};
|
||||
// only add to this if your flag is different from the locale code
|
||||
const specialCases: Record<string, string> = {
|
||||
ja: "jp", // Japan
|
||||
zh: "cn", // China
|
||||
vi: "vn", // Vietnam
|
||||
ko: "kr", // Korea
|
||||
cs: "cz", // Czechia
|
||||
ga: "ie", // Ireland (Irish)
|
||||
et: "ee", // Estonia (ISO 3166-1). "et" as a country code would be Ethiopia.
|
||||
uk: "ua", // Ukraine
|
||||
};
|
||||
|
||||
if (specialCases[thisLocale]) {
|
||||
return specialCases[thisLocale].toUpperCase();
|
||||
|
||||
@@ -92,8 +92,23 @@ describe("getFlagCodeForLocale", () => {
|
||||
expect(getFlagCodeForLocale("ga-IE")).toBe("IE");
|
||||
});
|
||||
|
||||
it("returns EE (Estonia) for Estonian locale, not ET (Ethiopia)", () => {
|
||||
expect(getFlagCodeForLocale("et")).toBe("EE");
|
||||
expect(getFlagCodeForLocale("et-EE")).toBe("EE");
|
||||
});
|
||||
|
||||
it("falls back to EN when no locale is provided", () => {
|
||||
expect(getFlagCodeForLocale()).toBe("EN");
|
||||
expect(getFlagCodeForLocale(undefined)).toBe("EN");
|
||||
});
|
||||
});
|
||||
|
||||
describe("formatDateTime Estonian locale", () => {
|
||||
it("uses 24-hour clock for et and et-EE", () => {
|
||||
const value = "2024-06-15T15:30:00.000Z";
|
||||
for (const locale of ["et", "et-EE"]) {
|
||||
const text = formatDateTime(value, locale);
|
||||
expect(text.toLowerCase()).not.toMatch(/\b(am|pm)\b/);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -20,18 +20,29 @@ const parseDate = (value: string | number): Date | null => {
|
||||
}
|
||||
};
|
||||
|
||||
const DATE_LOCALE_BY_LANG: Record<string, string> = {
|
||||
et: "et-EE",
|
||||
};
|
||||
|
||||
const HOUR_CYCLE_BY_LANG: Record<string, "h12" | "h23"> = {
|
||||
et: "h23",
|
||||
};
|
||||
|
||||
const formatDateTime = (value: string | number, locale = "en-US"): string => {
|
||||
const d = parseDate(value);
|
||||
if (!d) return `${value}`;
|
||||
const lang = (locale || "en").slice(0, 2);
|
||||
const resolvedLocale = DATE_LOCALE_BY_LANG[lang] || locale;
|
||||
const hourCycle = HOUR_CYCLE_BY_LANG[lang] || "h12";
|
||||
try {
|
||||
return intlFormat(
|
||||
d,
|
||||
{
|
||||
dateStyle: "medium",
|
||||
timeStyle: "medium",
|
||||
hourCycle: "h12",
|
||||
hourCycle,
|
||||
} as IntlFormatFormatOptions,
|
||||
{ locale },
|
||||
{ locale: resolvedLocale },
|
||||
);
|
||||
} catch {
|
||||
return `${value}`;
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import en from "./src/en.json";
|
||||
import et from "./src/et.json";
|
||||
|
||||
const english = en as Record<string, { defaultMessage: string }>;
|
||||
const estonian = et as Record<string, { defaultMessage: string }>;
|
||||
|
||||
// Brand names, codes and ICU-only strings can stay the same as English.
|
||||
const allowedIdentical = new Set([
|
||||
"certificates.key-type-ecdsa",
|
||||
"certificates.key-type-rsa",
|
||||
"column.ssl",
|
||||
"lets-encrypt",
|
||||
"object.actions-title",
|
||||
"streams.tcp",
|
||||
"streams.udp",
|
||||
]);
|
||||
|
||||
describe("Estonian UI locale", () => {
|
||||
it("covers every English UI key", () => {
|
||||
const missing = Object.keys(english).filter((key) => !(key in estonian));
|
||||
expect(missing).toEqual([]);
|
||||
});
|
||||
|
||||
it("does not add keys that are missing from English", () => {
|
||||
const extra = Object.keys(estonian).filter((key) => !(key in english));
|
||||
expect(extra).toEqual([]);
|
||||
});
|
||||
|
||||
it("is translated, not an English copy", () => {
|
||||
const identical = Object.keys(english).filter(
|
||||
(key) => estonian[key]?.defaultMessage === english[key]?.defaultMessage,
|
||||
);
|
||||
const unexpected = identical.filter((key) => !allowedIdentical.has(key));
|
||||
expect(unexpected).toEqual([]);
|
||||
});
|
||||
|
||||
it("keeps ICU data placeholders from English strings", () => {
|
||||
const argNames = [
|
||||
"count",
|
||||
"object",
|
||||
"objects",
|
||||
"id",
|
||||
"date",
|
||||
"users",
|
||||
"rules",
|
||||
"max",
|
||||
"min",
|
||||
"domain",
|
||||
"code",
|
||||
"latestVersion",
|
||||
"name",
|
||||
];
|
||||
const usedArgs = (message: string) => argNames.filter((name) => message.includes(`{${name}`));
|
||||
const broken: string[] = [];
|
||||
|
||||
for (const key of Object.keys(english)) {
|
||||
const expected = usedArgs(english[key].defaultMessage).join(",");
|
||||
const actual = usedArgs(estonian[key]?.defaultMessage ?? "").join(",");
|
||||
if (expected !== actual) {
|
||||
broken.push(`${key}: expected {${expected}} got {${actual}}`);
|
||||
}
|
||||
}
|
||||
|
||||
expect(broken).toEqual([]);
|
||||
});
|
||||
});
|
||||
@@ -1,7 +1,7 @@
|
||||
## Mis on juurdepääsuloend?
|
||||
|
||||
Ligipääsuloendid pakuvad konkreetsete klientide IP-aadresside musta või valget nimekirja koos puhverserverite autentimisega põhilise HTTP-autentimise kaudu.
|
||||
Juurdepääsuloendiga saad lubada või keelata klientide IP-aadresse ning panna puhverserverile ette HTTP basic-autentimise.
|
||||
|
||||
Saate ühe juurdepääsuloendi jaoks konfigureerida mitu kliendireeglit, kasutajanime ja parooli ning seejärel rakendada neid ühele või mitmele _puhverserverile_.
|
||||
Ühte loendisse saab panna mitu reeglit, kasutajanime ja parooli. Sama loendi saad kinnitada ühele või mitmele puhverserverile.
|
||||
|
||||
See on kõige kasulikum edastatud veebiteenuste puhul, millel pole sisseehitatud autentimismehhanisme või kui soovite kaitsta tundmatute klientide eest.
|
||||
Sellest on kasu siis, kui edastataval teenusel endal sisselogimist pole või tahad võõrad kliendid eemal hoida.
|
||||
|
||||
@@ -2,25 +2,20 @@
|
||||
|
||||
### HTTP-sertifikaat
|
||||
|
||||
HTTP-valideeritud sertifikaat tähendab, et Let's Encrypti serverid
|
||||
HTTP-ga kinnitatud sertifikaadi puhul üritavad Let's Encrypti serverid su domeenidele ligi saada HTTP kaudu (mitte HTTPS!) ja õnnestumise korral väljastavad sertifikaadi.
|
||||
|
||||
proovivad teie domeenidega ühendust luua HTTP (mitte HTTPS!) kaudu ja kui see õnnestub,
|
||||
väljastavad nad teile sertifikaadi.
|
||||
Selleks peab olema loodud puhverserver, mis on HTTP kaudu kättesaadav ja osutab sellele Nginxile. Kui sertifikaat on käes, võid puhverserveri panna HTTPS-i ka kasutama. Uuendamiseks peab HTTP-ligipääs siiski alles jääma.
|
||||
|
||||
Selle meetodi jaoks peate oma domeeni(de) jaoks looma _Proxy Host_, millele pääseb ligi HTTP kaudu ja mis osutab sellele Nginxi installile. Pärast sertifikaadi väljastamist saate muuta _Proxy Host_'i, et seda sertifikaati ka HTTPS
|
||||
ühenduste jaoks kasutada. Sertifikaadi uuendamiseks tuleb aga _Proxy Host_ ikkagi HTTP-juurdepääsu jaoks konfigureerida.
|
||||
|
||||
See protsess _ei_ toeta metamärke kasutavaid domeene.
|
||||
Metamärgid (wildcard) selle meetodiga ei tööta.
|
||||
|
||||
### DNS-sertifikaat
|
||||
|
||||
DNS-i poolt valideeritud sertifikaadi saamiseks peate kasutama DNS-pakkuja pistikprogrammi. Seda DNS-teenuse pakkujat kasutatakse teie domeenis ajutiste kirjete loomiseks ja seejärel pärib Let's
|
||||
Encrypt nende kirjete kohta päringu, et veenduda, et olete omanik, ja kui see õnnestub, väljastavad nad teile sertifikaadi.
|
||||
DNS-iga kinnitatud sertifikaat vajab DNS-teenuse pakkuja pluginat. Plugin loob domeenile ajutised kirjed, Let's Encrypt kontrollib need üle ja õnnestumise korral väljastab sertifikaadi.
|
||||
|
||||
Selle tüüpi sertifikaadi taotlemiseks ei ole vaja luua _Proxy Host_'i. Samuti ei pea teie _Proxy Host_ olema HTTP-juurdepääsu jaoks konfigureeritud.
|
||||
Puhverserverit enne taotlust looma ei pea. HTTP-ligipääsu ka ei nõuta.
|
||||
|
||||
See protsess _toetab_ metamärke kasutavaid domeene.
|
||||
See meetod toetab metamärke.
|
||||
|
||||
### Kohandatud sertifikaat
|
||||
|
||||
Kasutage seda valikut oma SSL-sertifikaadi üleslaadimiseks, mille on esitanud teie enda sertifitseerimisasutus.
|
||||
Siia saad üles laadida oma SSL-sertifikaadi, mille on väljastanud sinu sertifitseerija.
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
## Mis on 404 host?
|
||||
## Mis on 404-host?
|
||||
|
||||
404 host on lihtsalt hosti seadistus, mis kuvab 404 lehte.
|
||||
404-host on lihtsalt host, mis näitab 404 lehte.
|
||||
|
||||
See võib olla kasulik, kui teie domeen on otsingumootorites loetletud ja soovite
|
||||
esitada kenama vealehe või konkreetselt otsingu indekseerijatele öelda, et
|
||||
domeenilehed enam ei eksisteeri.
|
||||
Sellest on abi, kui domeen on otsingumootorites kirjas ja tahad näidata kenamat vealehte või anda indekseerijatele märku, et lehti enam pole.
|
||||
|
||||
Selle hosti teine eelis on selle külastatavuste logide jälgimine ja suunajate vaatamine.
|
||||
Lisaks näed logist, kes sinna sattus ja kust nad tulid.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
## Mis on puhverserver?
|
||||
|
||||
Puhverserver on veebiteenuse sissetuleva andmevoo lõpp-punkt, mida soovite edastada.
|
||||
Puhverserver on veebiteenuse sisend, mille suunad edasi oma tegelikule teenusele.
|
||||
|
||||
See pakub valikulist SSL-i lõpetamist teie teenusele, millel ei pruugi olla sisseehitatud SSL-tuge.
|
||||
Soovi korral lõpetab see SSL-i sinu eest — isegi kui teenusel endal SSL-tuge pole.
|
||||
|
||||
Puhverserverid on Nginxi puhverserveri halduri kõige levinum kasutusala.
|
||||
Puhverserverid on Nginx Proxy Manageri kõige tavalisem kasutus.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
## Mis on ümbersuunamishost?
|
||||
|
||||
Ümbersuunamishost suunab sissetuleva domeeni päringud ümber ja suunab vaataja teisele domeenile.
|
||||
Ümbersuunamishost võtab päringud ühelt domeenilt ja saadab külastaja teisele.
|
||||
|
||||
Kõige levinum põhjus seda tüüpi hosti kasutamiseks on see, kui teie veebisaidi domeenid muutuvad, kuid otsingumootori või suunaja lingid osutavad endiselt vanale domeenile.
|
||||
Kõige sagedamini on seda vaja siis, kui sait kolis uuele domeenile, aga vanad lingid otsingust või viidetest käivad veel vana aadressi pihta.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
## Mis on voog?
|
||||
|
||||
Nginxi suhteliselt uus funktsioon, voog, edastab TCP/UDP liiklust otse võrgus olevale teisele arvutile.
|
||||
Voog on Nginxi suhteliselt uus võimalus suunata TCP/UDP liiklus otse teisele masinale võrgus.
|
||||
|
||||
Kui sul on mänguserverid, FTP- või SSH-serverid, võib see kasuks tulla.
|
||||
Kasulik näiteks mängu-, FTP- või SSH-serverite puhul.
|
||||
|
||||
+260
-251
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user