Merge pull request #5200 from toviszsolt/lang-hungarian

Add Hungarian language support and help documentation
This commit is contained in:
jc21
2026-01-25 22:14:50 +10:00
committed by GitHub
12 changed files with 1003 additions and 215 deletions

View File

@@ -7,27 +7,26 @@
// - Also checks the error messages returned by the backend
const allLocales = [
["en", "en-US"],
["de", "de-DE"],
["es", "es-ES"],
["fr", "fr-FR"],
["it", "it-IT"],
["ja", "ja-JP"],
["nl", "nl-NL"],
["pl", "pl-PL"],
["ru", "ru-RU"],
["sk", "sk-SK"],
["vi", "vi-VN"],
["zh", "zh-CN"],
["ko", "ko-KR"],
["bg", "bg-BG"],
["id", "id-ID"],
["tr", "tr-TR"],
["en", "en-US"],
["de", "de-DE"],
["es", "es-ES"],
["fr", "fr-FR"],
["it", "it-IT"],
["ja", "ja-JP"],
["nl", "nl-NL"],
["pl", "pl-PL"],
["ru", "ru-RU"],
["sk", "sk-SK"],
["vi", "vi-VN"],
["zh", "zh-CN"],
["ko", "ko-KR"],
["bg", "bg-BG"],
["id", "id-ID"],
["tr", "tr-TR"],
["hu", "hu-HU"],
];
const ignoreUnused = [
/^.*$/,
];
const ignoreUnused = [/^.*$/];
const { spawnSync } = require("child_process");
const fs = require("fs");
@@ -68,105 +67,95 @@ const allWarnings = [];
const allKeys = [];
const checkLangList = (fullCode) => {
const key = "locale-" + fullCode;
if (typeof langList[key] === "undefined") {
allErrors.push(
"ERROR: `" + key + "` language does not exist in lang-list.json",
);
}
const key = "locale-" + fullCode;
if (typeof langList[key] === "undefined") {
allErrors.push("ERROR: `" + key + "` language does not exist in lang-list.json");
}
};
const compareLocale = (locale) => {
const projectLocaleKeys = Object.keys(allLocalesInProject);
// Check that locale contains the items used in the codebase
projectLocaleKeys.map((key) => {
if (typeof locale.data[key] === "undefined") {
allErrors.push(
"ERROR: `" + locale[0] + "` does not contain item: `" + key + "`",
);
}
return null;
});
// Check that locale contains all error.* items
BACKEND_ERRORS.forEach((key) => {
if (typeof locale.data[key] === "undefined") {
allErrors.push(
"ERROR: `" + locale[0] + "` does not contain item: `" + key + "`",
);
}
return null;
});
const projectLocaleKeys = Object.keys(allLocalesInProject);
// Check that locale contains the items used in the codebase
projectLocaleKeys.map((key) => {
if (typeof locale.data[key] === "undefined") {
allErrors.push("ERROR: `" + locale[0] + "` does not contain item: `" + key + "`");
}
return null;
});
// Check that locale contains all error.* items
BACKEND_ERRORS.forEach((key) => {
if (typeof locale.data[key] === "undefined") {
allErrors.push("ERROR: `" + locale[0] + "` does not contain item: `" + key + "`");
}
return null;
});
// Check that locale does not contain items not used in the codebase
const localeKeys = Object.keys(locale.data);
localeKeys.map((key) => {
let ignored = false;
ignoreUnused.map((regex) => {
if (key.match(regex)) {
ignored = true;
}
return null;
});
// Check that locale does not contain items not used in the codebase
const localeKeys = Object.keys(locale.data);
localeKeys.map((key) => {
let ignored = false;
ignoreUnused.map((regex) => {
if (key.match(regex)) {
ignored = true;
}
return null;
});
if (!ignored && typeof allLocalesInProject[key] === "undefined") {
// ensure this key doesn't exist in the backend errors either
if (!BACKEND_ERRORS.includes(key)) {
allErrors.push(
"ERROR: `" + locale[0] + "` contains unused item: `" + key + "`",
);
}
}
if (!ignored && typeof allLocalesInProject[key] === "undefined") {
// ensure this key doesn't exist in the backend errors either
if (!BACKEND_ERRORS.includes(key)) {
allErrors.push("ERROR: `" + locale[0] + "` contains unused item: `" + key + "`");
}
}
// Add this key to allKeys
if (allKeys.indexOf(key) === -1) {
allKeys.push(key);
}
return null;
});
// Add this key to allKeys
if (allKeys.indexOf(key) === -1) {
allKeys.push(key);
}
return null;
});
};
// Checks for any keys missing from this locale, that
// have been defined in any other locales
const checkForMissing = (locale) => {
allKeys.forEach((key) => {
if (typeof locale.data[key] === "undefined") {
allWarnings.push(
"WARN: `" + locale[0] + "` does not contain item: `" + key + "`",
);
}
return null;
});
allKeys.forEach((key) => {
if (typeof locale.data[key] === "undefined") {
allWarnings.push("WARN: `" + locale[0] + "` does not contain item: `" + key + "`");
}
return null;
});
};
// Local all locale data
allLocales.map((locale, idx) => {
checkLangList(locale[1]);
allLocales[idx].data = require("./src/locale/src/" + locale[0] + ".json");
return null;
checkLangList(locale[1]);
allLocales[idx].data = require("./src/locale/src/" + locale[0] + ".json");
return null;
});
// Verify all locale data
allLocales.map((locale) => {
compareLocale(locale);
checkForMissing(locale);
return null;
compareLocale(locale);
checkForMissing(locale);
return null;
});
if (allErrors.length) {
allErrors.map((err) => {
console.log("\x1b[31m%s\x1b[0m", err);
return null;
});
allErrors.map((err) => {
console.log("\x1b[31m%s\x1b[0m", err);
return null;
});
}
if (allWarnings.length) {
allWarnings.map((err) => {
console.log("\x1b[33m%s\x1b[0m", err);
return null;
});
allWarnings.map((err) => {
console.log("\x1b[33m%s\x1b[0m", err);
return null;
});
}
if (allErrors.length) {
process.exit(1);
process.exit(1);
}
console.log("\x1b[32m%s\x1b[0m", "Locale check passed");

View File

@@ -16,72 +16,74 @@ import langSk from "./lang/sk.json";
import langVi from "./lang/vi.json";
import langZh from "./lang/zh.json";
import langTr from "./lang/tr.json";
import langHu from "./lang/hu.json";
import langList from "./lang/lang-list.json";
// first item of each array should be the language code,
// not the country code
// Remember when adding to this list, also update check-locales.js script
const localeOptions = [
["en", "en-US", langEn],
["de", "de-DE", langDe],
["es", "es-ES", langEs],
["fr", "fr-FR", langFr],
["ga", "ga-IE", langGa],
["ja", "ja-JP", langJa],
["it", "it-IT", langIt],
["nl", "nl-NL", langNl],
["pl", "pl-PL", langPl],
["ru", "ru-RU", langRu],
["sk", "sk-SK", langSk],
["vi", "vi-VN", langVi],
["zh", "zh-CN", langZh],
["ko", "ko-KR", langKo],
["bg", "bg-BG", langBg],
["id", "id-ID", langId],
["tr", "tr-TR", langTr],
["en", "en-US", langEn],
["de", "de-DE", langDe],
["es", "es-ES", langEs],
["fr", "fr-FR", langFr],
["ga", "ga-IE", langGa],
["ja", "ja-JP", langJa],
["it", "it-IT", langIt],
["nl", "nl-NL", langNl],
["pl", "pl-PL", langPl],
["ru", "ru-RU", langRu],
["sk", "sk-SK", langSk],
["vi", "vi-VN", langVi],
["zh", "zh-CN", langZh],
["ko", "ko-KR", langKo],
["bg", "bg-BG", langBg],
["id", "id-ID", langId],
["tr", "tr-TR", langTr],
["hu", "hu-HU", langHu],
];
const loadMessages = (locale?: string): typeof langList & typeof langEn => {
const thisLocale = (locale || "en").slice(0, 2);
const thisLocale = (locale || "en").slice(0, 2);
// ensure this lang exists in localeOptions above, otherwise fallback to en
if (thisLocale === "en" || !localeOptions.some(([code]) => code === thisLocale)) {
return Object.assign({}, langList, langEn);
}
// ensure this lang exists in localeOptions above, otherwise fallback to en
if (thisLocale === "en" || !localeOptions.some(([code]) => code === thisLocale)) {
return Object.assign({}, langList, langEn);
}
return Object.assign({}, langList, langEn, localeOptions.find(([code]) => code === thisLocale)?.[2]);
return Object.assign({}, langList, langEn, localeOptions.find(([code]) => code === thisLocale)?.[2]);
};
const getFlagCodeForLocale = (locale?: string) => {
const thisLocale = (locale || "en").slice(0, 2);
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
};
// 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
};
if (specialCases[thisLocale]) {
return specialCases[thisLocale].toUpperCase();
}
return thisLocale.toUpperCase();
if (specialCases[thisLocale]) {
return specialCases[thisLocale].toUpperCase();
}
return thisLocale.toUpperCase();
};
const getLocale = (short = false) => {
let loc = window.localStorage.getItem("locale");
if (!loc) {
loc = document.documentElement.lang;
}
if (short) {
return loc.slice(0, 2);
}
// finally, fallback
if (!loc) {
loc = "en";
}
return loc;
let loc = window.localStorage.getItem("locale");
if (!loc) {
loc = document.documentElement.lang;
}
if (short) {
return loc.slice(0, 2);
}
// finally, fallback
if (!loc) {
loc = "en";
}
return loc;
};
const cache = createIntlCache();
@@ -90,41 +92,41 @@ const initialMessages = loadMessages(getLocale());
let intl = createIntl({ locale: getLocale(), messages: initialMessages }, cache);
const changeLocale = (locale: string): void => {
const messages = loadMessages(locale);
intl = createIntl({ locale, messages }, cache);
window.localStorage.setItem("locale", locale);
document.documentElement.lang = locale;
const messages = loadMessages(locale);
intl = createIntl({ locale, messages }, cache);
window.localStorage.setItem("locale", locale);
document.documentElement.lang = locale;
};
// This is a translation component that wraps the translation in a span with a data
// attribute so devs can inspect the element to see the translation ID
const T = ({
id,
data,
tData,
id,
data,
tData,
}: {
id: string;
data?: Record<string, string | number | undefined>;
tData?: Record<string, string>;
id: string;
data?: Record<string, string | number | undefined>;
tData?: Record<string, string>;
}) => {
const translatedData: Record<string, string> = {};
if (tData) {
// iterate over tData and translate each value
Object.entries(tData).forEach(([key, value]) => {
translatedData[key] = intl.formatMessage({ id: value });
});
}
return (
<span data-translation-id={id}>
{intl.formatMessage(
{ id },
{
...data,
...translatedData,
},
)}
</span>
);
const translatedData: Record<string, string> = {};
if (tData) {
// iterate over tData and translate each value
Object.entries(tData).forEach(([key, value]) => {
translatedData[key] = intl.formatMessage({ id: value });
});
}
return (
<span data-translation-id={id}>
{intl.formatMessage(
{ id },
{
...data,
...translatedData,
},
)}
</span>
);
};
//console.log("L:", localeOptions);

View File

@@ -0,0 +1,7 @@
## Mi az a hozzáférési lista?
A hozzáférési listák feketelistát vagy fehérlistát biztosítanak meghatározott kliens IP-címekhez, valamint alap HTTP-hitelesítést (Basic HTTP Authentication) a proxy kiszolgálókhoz.
Egyetlen hozzáférési listához több kliensszabályt, felhasználónevet és jelszót is beállíthatsz, majd ezt alkalmazhatod egy vagy több _Proxy Kiszolgáló_-ra.
Ez különösen hasznos olyan továbbított webszolgáltatásoknál, amelyekben nincs beépített hitelesítési mechanizmus, vagy amikor ismeretlen kliensektől szeretnél védeni.

View File

@@ -0,0 +1,21 @@
## Tanúsítványok súgó
### HTTP tanúsítvány
A HTTP érvényes tanúsítvány azt jelenti, hogy a Let's Encrypt szerverek megpróbálják elérni a domaineket HTTP-n keresztül (nem HTTPS-en!), és ha sikerül, kiállítják a tanúsítványt.
Ehhez a módszerhez létre kell hoznod egy _Proxy Kiszolgáló_-t a domain(ek)hez, amely HTTP-n keresztül elérhető és erre az Nginx telepítésre mutat. Miután a tanúsítvány megérkezett, módosíthatod a _Proxy Kiszolgáló_-t, hogy ezt a tanúsítványt használja a HTTPS kapcsolatokhoz is. Azonban a _Proxy Kiszolgáló_-nak továbbra is konfigurálva kell lennie HTTP hozzáféréshez, hogy a tanúsítvány megújulhasson.
Ez a folyamat _nem_ támogatja a helyettesítő karakteres domaineket.
### DNS tanúsítvány
A DNS érvényes tanúsítvány megköveteli, hogy DNS szolgáltató plugint használj. Ez a DNS szolgáltató ideiglenes rekordokat hoz létre a domainen, majd a Let's Encrypt lekérdezi ezeket a rekordokat, hogy megbizonyosodjon a tulajdonjogról, és ha sikeres, kiállítják a tanúsítványt.
Nem szükséges előzetesen _Proxy Kiszolgáló_-t létrehozni az ilyen típusú tanúsítvány igényléséhez. Nem is kell a _Proxy Kiszolgáló_-t HTTP hozzáférésre konfigurálni.
Ez a folyamat _támogatja_ a helyettesítő karakteres domaineket.
### Egyéni tanúsítvány
Ezt az opciót használd a saját SSL tanúsítvány feltöltéséhez, amelyet a saját tanúsítványkibocsátód biztosított.

View File

@@ -0,0 +1,7 @@
## Mi az a 404-es Kiszolgáló?
A 404-es Kiszolgáló egyszerűen egy olyan kiszolgáló beállítás, amely egy 404-es oldalt jelenít meg.
Ez akkor lehet hasznos, ha a domained szerepel a keresőmotorokban, és egy szebb hibaoldalt szeretnél nyújtani, vagy kifejezetten jelezni akarod a keresőrobotoknak, hogy a domain oldalai már nem léteznek.
Ennek a kiszolgálónak egy további előnye, hogy nyomon követheted a rá érkező találatokat a naplókban, és megtekintheted a hivatkozó oldalakat.

View File

@@ -0,0 +1,7 @@
## Mi az a Proxy Kiszolgáló?
A Proxy Kiszolgáló egy bejövő végpont egy olyan webszolgáltatáshoz, amelyet továbbítani szeretnél.
Opcionális SSL lezárást biztosít a szolgáltatásodhoz, amelyben esetleg nincs beépített SSL támogatás.
A Proxy Kiszolgálók az Nginx Proxy Manager leggyakoribb felhasználási módjai.

View File

@@ -0,0 +1,5 @@
## Mi az az Átirányító Kiszolgáló?
Az Átirányító Kiszolgáló a bejövő domainre érkező kéréseket átirányítja, és a látogatót egy másik domainre küldi.
Ennek a kiszolgálótípusnak a leggyakoribb használati oka az, amikor a weboldalad domaint vált, de a keresőkben vagy a hivatkozó oldalakon még mindig a régi domainre mutató linkek vannak.

View File

@@ -0,0 +1,5 @@
## Mi az a Stream?
Az Nginx egy viszonylag új funkciója, a Stream arra szolgál, hogy a TCP/UDP forgalmat közvetlenül továbbítsa a hálózat egy másik számítógépére.
Ha játékszervereket, FTP vagy SSH szervereket futtatsz, ez hasznos lehet.

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

@@ -15,19 +15,21 @@ import * as sk from "./sk/index";
import * as vi from "./vi/index";
import * as zh from "./zh/index";
import * as tr from "./tr/index";
const items: any = { en, de, es, ja, sk, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr };
import * as hu from "./hu/index";
const items: any = { en, de, es, ja, sk, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr, hu };
const fallbackLang = "en";
export const getHelpFile = (lang: string, section: string): string => {
if (typeof items[lang] !== "undefined" && typeof items[lang][section] !== "undefined") {
return items[lang][section].default;
}
// Fallback to English
if (typeof items[fallbackLang] !== "undefined" && typeof items[fallbackLang][section] !== "undefined") {
return items[fallbackLang][section].default;
}
throw new Error(`Cannot load help doc for ${lang}-${section}`);
if (typeof items[lang] !== "undefined" && typeof items[lang][section] !== "undefined") {
return items[lang][section].default;
}
// Fallback to English
if (typeof items[fallbackLang] !== "undefined" && typeof items[fallbackLang][section] !== "undefined") {
return items[fallbackLang][section].default;
}
throw new Error(`Cannot load help doc for ${lang}-${section}`);
};
export default items;

View File

@@ -0,0 +1,770 @@
{
"2fa.backup-codes-remaining": {
"defaultMessage": "Hátralévő tartalék kódok: {count}"
},
"2fa.backup-warning": {
"defaultMessage": "Mentse el ezeket a tartalék kódokat biztonságos helyre. Minden kód csak egyszer használható."
},
"2fa.disable": {
"defaultMessage": "Kétfaktoros hitelesítés letiltása"
},
"2fa.disable-confirm": {
"defaultMessage": "2FA letiltása"
},
"2fa.disable-warning": {
"defaultMessage": "A kétfaktoros hitelesítés letiltása kevésbé teszi biztonságossá a fiókját."
},
"2fa.disabled": {
"defaultMessage": "Letiltva"
},
"2fa.done": {
"defaultMessage": "Elmentettem a tartalék kódjaimat"
},
"2fa.enable": {
"defaultMessage": "Kétfaktoros hitelesítés engedélyezése"
},
"2fa.enabled": {
"defaultMessage": "Engedélyezve"
},
"2fa.enter-code": {
"defaultMessage": "Adja meg az ellenőrző kódot"
},
"2fa.enter-code-disable": {
"defaultMessage": "Adja meg az ellenőrző kódot a letiltáshoz"
},
"2fa.regenerate": {
"defaultMessage": "Újragenerálás"
},
"2fa.regenerate-backup": {
"defaultMessage": "Tartalék kódok újragenerálása"
},
"2fa.regenerate-instructions": {
"defaultMessage": "Adjon meg egy ellenőrző kódot az új tartalék kódok generálásához. A régi kódok érvénytelenné válnak."
},
"2fa.secret-key": {
"defaultMessage": "Titkos kulcs"
},
"2fa.setup-instructions": {
"defaultMessage": "Olvassa be ezt a QR kódot a hitelesítő alkalmazásával, vagy adja meg a titkot manuálisan."
},
"2fa.status": {
"defaultMessage": "Állapot"
},
"2fa.title": {
"defaultMessage": "Kétfaktoros hitelesítés"
},
"2fa.verify-enable": {
"defaultMessage": "Ellenőrzés és engedélyezés"
},
"access-list": {
"defaultMessage": "Hozzáférési lista"
},
"access-list.access-count": {
"defaultMessage": "{count} {count, plural, one {szabály} other {szabály}}"
},
"access-list.auth-count": {
"defaultMessage": "{count} {count, plural, one {felhasználó} other {felhasználó}}"
},
"access-list.help-rules-last": {
"defaultMessage": "Ha legalább 1 szabály létezik, ez a mindent tiltó szabály utolsóként lesz hozzáadva"
},
"access-list.help.rules-order": {
"defaultMessage": "Vegye figyelembe, hogy az engedélyező és tiltó direktívák a meghatározásuk sorrendjében lesznek alkalmazva."
},
"access-list.pass-auth": {
"defaultMessage": "Hitelesítés továbbítása az upstream felé"
},
"access-list.public": {
"defaultMessage": "Nyilvánosan elérhető"
},
"access-list.public.subtitle": {
"defaultMessage": "Alapszintű hitelesítés nem szükséges"
},
"access-list.rule-source.placeholder": {
"defaultMessage": "192.168.1.100 vagy 192.168.1.0/24 vagy 2001:0db8::/32"
},
"access-list.satisfy-any": {
"defaultMessage": "Bármely teljesítése"
},
"access-list.subtitle": {
"defaultMessage": "{users} {users, plural, one {felhasználó} other {felhasználó}}, {rules} {rules, plural, one {szabály} other {szabály}} - Létrehozva: {date}"
},
"access-lists": {
"defaultMessage": "Hozzáférési listák"
},
"action.add": {
"defaultMessage": "Hozzáadás"
},
"action.add-location": {
"defaultMessage": "Útvonal hozzáadása"
},
"action.allow": {
"defaultMessage": "Engedélyezés"
},
"action.close": {
"defaultMessage": "Bezárás"
},
"action.delete": {
"defaultMessage": "Törlés"
},
"action.deny": {
"defaultMessage": "Tiltás"
},
"action.disable": {
"defaultMessage": "Letiltás"
},
"action.download": {
"defaultMessage": "Letöltés"
},
"action.edit": {
"defaultMessage": "Szerkesztés"
},
"action.enable": {
"defaultMessage": "Engedélyezés"
},
"action.permissions": {
"defaultMessage": "Engedélyek"
},
"action.renew": {
"defaultMessage": "Megújítás"
},
"action.view-details": {
"defaultMessage": "Részletek megtekintése"
},
"auditlogs": {
"defaultMessage": "Audit naplók"
},
"auto": {
"defaultMessage": "Automatikus"
},
"cancel": {
"defaultMessage": "Mégse"
},
"certificate": {
"defaultMessage": "Tanúsítvány"
},
"certificate.custom-certificate": {
"defaultMessage": "Tanúsítvány"
},
"certificate.custom-certificate-key": {
"defaultMessage": "Tanúsítvány kulcs"
},
"certificate.custom-intermediate": {
"defaultMessage": "Köztes tanúsítvány"
},
"certificate.in-use": {
"defaultMessage": "Használatban"
},
"certificate.none.subtitle": {
"defaultMessage": "Nincs tanúsítvány hozzárendelve"
},
"certificate.none.subtitle.for-http": {
"defaultMessage": "Ez a kiszolgáló nem fog HTTPS-t használni"
},
"certificate.none.title": {
"defaultMessage": "Nincs"
},
"certificate.not-in-use": {
"defaultMessage": "Nincs használatban"
},
"certificate.renew": {
"defaultMessage": "Tanúsítvány megújítása"
},
"certificates": {
"defaultMessage": "Tanúsítványok"
},
"certificates.custom": {
"defaultMessage": "Egyéni tanúsítvány"
},
"certificates.custom.warning": {
"defaultMessage": "Jelszóval védett kulcsfájlok nem támogatottak."
},
"certificates.dns.credentials": {
"defaultMessage": "Hitelesítő fájl tartalma"
},
"certificates.dns.credentials-note": {
"defaultMessage": "Ez a plugin egy konfigurációs fájlt igényel, amely API tokent vagy egyéb hitelesítő adatokat tartalmaz a szolgáltatóhoz"
},
"certificates.dns.credentials-warning": {
"defaultMessage": "Ezek az adatok sima szövegként lesznek tárolva az adatbázisban és egy fájlban!"
},
"certificates.dns.propagation-seconds": {
"defaultMessage": "Propagálási másodpercek"
},
"certificates.dns.propagation-seconds-note": {
"defaultMessage": "Hagyja üresen a plugin alapértelmezett értékének használatához. Másodpercek száma a DNS propagálás megvárásához."
},
"certificates.dns.provider": {
"defaultMessage": "DNS szolgáltató"
},
"certificates.dns.provider.placeholder": {
"defaultMessage": "Válasszon szolgáltatót..."
},
"certificates.dns.warning": {
"defaultMessage": "Ez a szakasz némi ismeretet igényel a Certbot-ról és a DNS plugin-jeiről. Kérjük, olvassa el a megfelelő plugin dokumentációját."
},
"certificates.http.reachability-404": {
"defaultMessage": "Található szerver ezen a domain-en, de nem úgy tűnik, hogy Nginx Proxy Manager lenne. Kérjük, győződjön meg róla, hogy a domain arra az IP címre mutat, ahol az NPM példánya fut."
},
"certificates.http.reachability-failed-to-check": {
"defaultMessage": "Az elérhetőség ellenőrzése sikertelen a site24x7.com kommunikációs hiba miatt."
},
"certificates.http.reachability-not-resolved": {
"defaultMessage": "Nincs elérhető szerver ezen a domain-en. Kérjük, győződjön meg róla, hogy a domain létezik és arra az IP címre mutat, ahol az NPM példánya fut, és szükség esetén a 80-as port továbbítva van a routerében."
},
"certificates.http.reachability-ok": {
"defaultMessage": "A szerver elérhető és a tanúsítványok létrehozása lehetséges lesz."
},
"certificates.http.reachability-other": {
"defaultMessage": "Található szerver ezen a domain-en, de váratlan {code} státuszkódot adott vissza. Ez az NPM szerver? Kérjük, győződjön meg róla, hogy a domain arra az IP címre mutat, ahol az NPM példánya fut."
},
"certificates.http.reachability-wrong-data": {
"defaultMessage": "Található szerver ezen a domain-en, de váratlan adatot adott vissza. Ez az NPM szerver? Kérjük, győződjön meg róla, hogy a domain arra az IP címre mutat, ahol az NPM példánya fut."
},
"certificates.http.test-results": {
"defaultMessage": "Teszt eredmények"
},
"certificates.http.warning": {
"defaultMessage": "Ezeknek a domain-eknek már konfigurálva kell lenniük, hogy erre a telepítésre mutassanak."
},
"certificates.key-type": {
"defaultMessage": "Kulcs típus"
},
"certificates.key-type-description": {
"defaultMessage": "Az RSA széles körben kompatibilis, az ECDSA gyorsabb és biztonságosabb, de nem biztos, hogy régebbi rendszerek támogatják"
},
"certificates.key-type-ecdsa": {
"defaultMessage": "ECDSA 256"
},
"certificates.key-type-rsa": {
"defaultMessage": "RSA 2048"
},
"certificates.request.subtitle": {
"defaultMessage": "Let's Encrypt-tel"
},
"certificates.request.title": {
"defaultMessage": "Új tanúsítvány kérelmezése"
},
"column.access": {
"defaultMessage": "Hozzáférés"
},
"column.authorization": {
"defaultMessage": "Jogosultság"
},
"column.authorizations": {
"defaultMessage": "Jogosultságok"
},
"column.custom-locations": {
"defaultMessage": "Egyéni útvonalak"
},
"column.destination": {
"defaultMessage": "Cél"
},
"column.details": {
"defaultMessage": "Részletek"
},
"column.email": {
"defaultMessage": "E-mail"
},
"column.event": {
"defaultMessage": "Esemény"
},
"column.expires": {
"defaultMessage": "Lejár"
},
"column.http-code": {
"defaultMessage": "HTTP kód"
},
"column.incoming-port": {
"defaultMessage": "Bejövő port"
},
"column.name": {
"defaultMessage": "Név"
},
"column.protocol": {
"defaultMessage": "Protokoll"
},
"column.provider": {
"defaultMessage": "Szolgáltató"
},
"column.roles": {
"defaultMessage": "Szerepkörök"
},
"column.rules": {
"defaultMessage": "Szabályok"
},
"column.satisfy": {
"defaultMessage": "Teljesítés"
},
"column.satisfy-all": {
"defaultMessage": "Összes"
},
"column.satisfy-any": {
"defaultMessage": "Bármely"
},
"column.scheme": {
"defaultMessage": "Séma"
},
"column.source": {
"defaultMessage": "Forrás"
},
"column.ssl": {
"defaultMessage": "SSL"
},
"column.status": {
"defaultMessage": "Állapot"
},
"created-on": {
"defaultMessage": "Létrehozva: {date}"
},
"dashboard": {
"defaultMessage": "Vezérlőpult"
},
"dead-host": {
"defaultMessage": "404-es Kiszolgáló"
},
"dead-hosts": {
"defaultMessage": "404-es Kiszolgálók"
},
"dead-hosts.count": {
"defaultMessage": "{count} {count, plural, one {404-es Kiszolgáló} other {404-es Kiszolgálók}}"
},
"disabled": {
"defaultMessage": "Letiltva"
},
"domain-names": {
"defaultMessage": "Domain nevek"
},
"domain-names.max": {
"defaultMessage": "Maximum {count} domain név"
},
"domain-names.placeholder": {
"defaultMessage": "Kezdjen el gépelni domain hozzáadásához..."
},
"domain-names.wildcards-not-permitted": {
"defaultMessage": "Helyettesítő karakterek nem engedélyezettek ennél a típusnál"
},
"domain-names.wildcards-not-supported": {
"defaultMessage": "Helyettesítő karakterek nem támogatottak ennél a CA-nál"
},
"domains.force-ssl": {
"defaultMessage": "SSL kényszerítése"
},
"domains.hsts-enabled": {
"defaultMessage": "HSTS engedélyezve"
},
"domains.hsts-subdomains": {
"defaultMessage": "HSTS aldomain-ek"
},
"domains.http2-support": {
"defaultMessage": "HTTP/2 támogatás"
},
"domains.use-dns": {
"defaultMessage": "DNS Challenge használata"
},
"email-address": {
"defaultMessage": "E-mail cím"
},
"empty-search": {
"defaultMessage": "Nincs találat"
},
"empty-subtitle": {
"defaultMessage": "Miért nem hoz létre egyet?"
},
"enabled": {
"defaultMessage": "Engedélyezve"
},
"error.access.at-least-one": {
"defaultMessage": "Legalább egy jogosultság vagy egy hozzáférési szabály szükséges"
},
"error.access.duplicate-usernames": {
"defaultMessage": "A jogosultsági felhasználóneveknek egyedieknek kell lenniük"
},
"error.invalid-auth": {
"defaultMessage": "Érvénytelen e-mail vagy jelszó"
},
"error.invalid-domain": {
"defaultMessage": "Érvénytelen domain: {domain}"
},
"error.invalid-email": {
"defaultMessage": "Érvénytelen e-mail cím"
},
"error.max-character-length": {
"defaultMessage": "Maximális hossz {max} karakter"
},
"error.max-domains": {
"defaultMessage": "Túl sok domain, a maximum {max}"
},
"error.maximum": {
"defaultMessage": "A maximum {max}"
},
"error.min-character-length": {
"defaultMessage": "Minimális hossz {min} karakter"
},
"error.minimum": {
"defaultMessage": "A minimum {min}"
},
"error.passwords-must-match": {
"defaultMessage": "A jelszavaknak egyezniük kell"
},
"error.required": {
"defaultMessage": "Ez kötelező"
},
"expires.on": {
"defaultMessage": "Lejár: {date}"
},
"footer.github-fork": {
"defaultMessage": "Fork-olj a GitHub-on"
},
"host.flags.block-exploits": {
"defaultMessage": "Gyakori exploitok blokkolása"
},
"host.flags.cache-assets": {
"defaultMessage": "Erőforrások gyorsítótárazása"
},
"host.flags.preserve-path": {
"defaultMessage": "Útvonal megőrzése"
},
"host.flags.protocols": {
"defaultMessage": "Protokollok"
},
"host.flags.websockets-upgrade": {
"defaultMessage": "Websockets támogatás"
},
"host.forward-port": {
"defaultMessage": "Továbbító port"
},
"host.forward-scheme": {
"defaultMessage": "Séma"
},
"hosts": {
"defaultMessage": "Kiszolgálók"
},
"http-only": {
"defaultMessage": "Csak HTTP"
},
"lets-encrypt": {
"defaultMessage": "Let's Encrypt"
},
"lets-encrypt-via-dns": {
"defaultMessage": "Let's Encrypt DNS-en keresztül"
},
"lets-encrypt-via-http": {
"defaultMessage": "Let's Encrypt HTTP-n keresztül"
},
"loading": {
"defaultMessage": "Betöltés…"
},
"login.2fa-code": {
"defaultMessage": "Ellenőrző kód"
},
"login.2fa-code-placeholder": {
"defaultMessage": "Adja meg a kódot"
},
"login.2fa-description": {
"defaultMessage": "Adja meg a kódot a hitelesítő alkalmazásából"
},
"login.2fa-title": {
"defaultMessage": "Kétfaktoros hitelesítés"
},
"login.2fa-verify": {
"defaultMessage": "Ellenőrzés"
},
"login.title": {
"defaultMessage": "Jelentkezzen be a fiókjába"
},
"nginx-config.label": {
"defaultMessage": "Egyéni Nginx konfiguráció"
},
"nginx-config.placeholder": {
"defaultMessage": "# Adja meg az egyéni Nginx konfigurációját itt, saját felelősségére!"
},
"no-permission-error": {
"defaultMessage": "Nincs jogosultsága ennek megtekintéséhez."
},
"notfound.action": {
"defaultMessage": "Vigyen haza"
},
"notfound.content": {
"defaultMessage": "Sajnáljuk, de a keresett oldal nem található"
},
"notfound.title": {
"defaultMessage": "Hoppá… Hibás oldalra talált"
},
"notification.error": {
"defaultMessage": "Hiba"
},
"notification.object-deleted": {
"defaultMessage": "{object} törölve lett"
},
"notification.object-disabled": {
"defaultMessage": "{object} letiltva lett"
},
"notification.object-enabled": {
"defaultMessage": "{object} engedélyezve lett"
},
"notification.object-renewed": {
"defaultMessage": "{object} megújítva lett"
},
"notification.object-saved": {
"defaultMessage": "{object} mentve lett"
},
"notification.success": {
"defaultMessage": "Sikeres"
},
"object.actions-title": {
"defaultMessage": "{object} #{id}"
},
"object.add": {
"defaultMessage": "{object} hozzáadása"
},
"object.delete": {
"defaultMessage": "{object} törlése"
},
"object.delete.content": {
"defaultMessage": "Biztosan törölni szeretné ezt: {object}?"
},
"object.edit": {
"defaultMessage": "{object} szerkesztése"
},
"object.empty": {
"defaultMessage": "Nincsenek {objects}"
},
"object.event.created": {
"defaultMessage": "{object} létrehozva"
},
"object.event.deleted": {
"defaultMessage": "{object} törölve"
},
"object.event.disabled": {
"defaultMessage": "{object} letiltva"
},
"object.event.enabled": {
"defaultMessage": "{object} engedélyezve"
},
"object.event.renewed": {
"defaultMessage": "{object} megújítva"
},
"object.event.updated": {
"defaultMessage": "{object} frissítve"
},
"offline": {
"defaultMessage": "Offline"
},
"online": {
"defaultMessage": "Online"
},
"options": {
"defaultMessage": "Beállítások"
},
"password": {
"defaultMessage": "Jelszó"
},
"password.generate": {
"defaultMessage": "Véletlenszerű jelszó generálása"
},
"password.hide": {
"defaultMessage": "Jelszó elrejtése"
},
"password.show": {
"defaultMessage": "Jelszó megjelenítése"
},
"permissions.hidden": {
"defaultMessage": "Rejtett"
},
"permissions.manage": {
"defaultMessage": "Kezelés"
},
"permissions.view": {
"defaultMessage": "Csak megtekintés"
},
"permissions.visibility.all": {
"defaultMessage": "Összes elem"
},
"permissions.visibility.title": {
"defaultMessage": "Elemek láthatósága"
},
"permissions.visibility.user": {
"defaultMessage": "Csak létrehozott elemek"
},
"proxy-host": {
"defaultMessage": "Proxy Kiszolgáló"
},
"proxy-host.forward-host": {
"defaultMessage": "Továbbító hostnév / IP"
},
"proxy-hosts": {
"defaultMessage": "Proxy Kiszolgálók"
},
"proxy-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Proxy Kiszolgáló} other {Proxy Kiszolgálók}}"
},
"public": {
"defaultMessage": "Nyilvános"
},
"redirection-host": {
"defaultMessage": "Átirányító Kiszolgáló"
},
"redirection-host.forward-domain": {
"defaultMessage": "Továbbító domain"
},
"redirection-host.forward-http-code": {
"defaultMessage": "HTTP kód"
},
"redirection-hosts": {
"defaultMessage": "Átirányító Kiszolgálók"
},
"redirection-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Átirányító Kiszolgáló} other {Átirányító Kiszolgálók}}"
},
"redirection-hosts.http-code.300": {
"defaultMessage": "300 Többszörös választás"
},
"redirection-hosts.http-code.301": {
"defaultMessage": "301 Véglegesen áthelyezve"
},
"redirection-hosts.http-code.302": {
"defaultMessage": "302 Ideiglenesen áthelyezve"
},
"redirection-hosts.http-code.303": {
"defaultMessage": "303 Lásd másik"
},
"redirection-hosts.http-code.307": {
"defaultMessage": "307 Ideiglenes átirányítás"
},
"redirection-hosts.http-code.308": {
"defaultMessage": "308 Végleges átirányítás"
},
"role.admin": {
"defaultMessage": "Adminisztrátor"
},
"role.standard-user": {
"defaultMessage": "Általános felhasználó"
},
"save": {
"defaultMessage": "Mentés"
},
"setting": {
"defaultMessage": "Beállítás"
},
"settings": {
"defaultMessage": "Beállítások"
},
"settings.default-site": {
"defaultMessage": "Alapértelmezett oldal"
},
"settings.default-site.404": {
"defaultMessage": "404-es oldal"
},
"settings.default-site.444": {
"defaultMessage": "Nincs válasz (444)"
},
"settings.default-site.congratulations": {
"defaultMessage": "Gratulálunk oldal"
},
"settings.default-site.description": {
"defaultMessage": "Mit mutasson az Nginx ismeretlen Kiszolgáló esetén"
},
"settings.default-site.html": {
"defaultMessage": "Egyéni HTML"
},
"settings.default-site.html.placeholder": {
"defaultMessage": "<!-- Adja meg az egyéni HTML tartalmát itt -->"
},
"settings.default-site.redirect": {
"defaultMessage": "Átirányítás"
},
"setup.preamble": {
"defaultMessage": "Kezdje az admin fiók létrehozásával."
},
"setup.title": {
"defaultMessage": "Üdvözöljük!"
},
"sign-in": {
"defaultMessage": "Bejelentkezés"
},
"ssl-certificate": {
"defaultMessage": "SSL tanúsítvány"
},
"stream": {
"defaultMessage": "Stream"
},
"stream.forward-host": {
"defaultMessage": "Továbbító kiszolgáló"
},
"stream.forward-host.placeholder": {
"defaultMessage": "example.com vagy 10.0.0.1 vagy 2001:db8:3333:4444:5555:6666:7777:8888"
},
"stream.incoming-port": {
"defaultMessage": "Bejövő port"
},
"streams": {
"defaultMessage": "Streamek"
},
"streams.count": {
"defaultMessage": "{count} {count, plural, one {Stream} other {Stream}}"
},
"streams.tcp": {
"defaultMessage": "TCP"
},
"streams.udp": {
"defaultMessage": "UDP"
},
"test": {
"defaultMessage": "Teszt"
},
"update-available": {
"defaultMessage": "Frissítés elérhető: {latestVersion}"
},
"user": {
"defaultMessage": "Felhasználó"
},
"user.change-password": {
"defaultMessage": "Jelszó megváltoztatása"
},
"user.confirm-password": {
"defaultMessage": "Jelszó megerősítése"
},
"user.current-password": {
"defaultMessage": "Jelenlegi jelszó"
},
"user.edit-profile": {
"defaultMessage": "Profil szerkesztése"
},
"user.full-name": {
"defaultMessage": "Teljes név"
},
"user.login-as": {
"defaultMessage": "Bejelentkezés mint {name}"
},
"user.logout": {
"defaultMessage": "Kijelentkezés"
},
"user.new-password": {
"defaultMessage": "Új jelszó"
},
"user.nickname": {
"defaultMessage": "Becenév"
},
"user.set-password": {
"defaultMessage": "Jelszó beállítása"
},
"user.set-permissions": {
"defaultMessage": "Engedélyek beállítása {name} számára"
},
"user.switch-dark": {
"defaultMessage": "Váltás sötét módra"
},
"user.switch-light": {
"defaultMessage": "Váltás világos módra"
},
"user.two-factor": {
"defaultMessage": "Kétfaktoros hitelesítés"
},
"username": {
"defaultMessage": "Felhasználónév"
},
"users": {
"defaultMessage": "Felhasználók"
}
}

View File

@@ -15,7 +15,7 @@
"defaultMessage": "Français"
},
"locale-id-ID": {
"defaultMessage": "Bahasa Indonesia"
"defaultMessage": "Bahasa Indonesia"
},
"locale-ja-JP": {
"defaultMessage": "日本語"
@@ -47,43 +47,10 @@
"locale-bg-BG": {
"defaultMessage": "Български"
},
"locale-es-ES": {
"defaultMessage": "Español"
},
"locale-de-DE": {
"defaultMessage": "German"
},
"locale-ja-JP": {
"defaultMessage": "日本語"
},
"locale-ru-RU": {
"defaultMessage": "Русский"
},
"locale-sk-SK": {
"defaultMessage": "Slovenčina"
},
"locale-zh-CN": {
"defaultMessage": "中文"
},
"locale-pl-PL": {
"defaultMessage": "Polski"
},
"locale-it-IT": {
"defaultMessage": "Italiano"
},
"locale-vi-VN": {
"defaultMessage": "Tiếng Việt"
},
"locale-nl-NL": {
"defaultMessage": "Nederlands"
},
"locale-ko-KR": {
"defaultMessage": "한국어"
},
"locale-bg-BG": {
"defaultMessage": "Български"
},
"locale-tr-TR": {
"defaultMessage": "Türkçe"
}
"locale-tr-TR": {
"defaultMessage": "Türkçe"
},
"locale-hu-HU": {
"defaultMessage": "Magyar"
}
}