feat(auth): make password length configurable via env (min 5–30, max 30–128)
CI / check (push) Successful in 29s
CI / tests-imaging-browsers (push) Successful in 1m46s
CI / tests-integration (push) Successful in 1m47s
CI / tests-unit (push) Successful in 1m49s
CI / tests-quality (push) Successful in 44s
CI / tests-ui (push) Successful in 4m38s
CI / preflight (push) Skipped
CI / deploy (push) Successful in 3m38s
CI / check (push) Successful in 29s
CI / tests-imaging-browsers (push) Successful in 1m46s
CI / tests-integration (push) Successful in 1m47s
CI / tests-unit (push) Successful in 1m49s
CI / tests-quality (push) Successful in 44s
CI / tests-ui (push) Successful in 4m38s
CI / preflight (push) Skipped
CI / deploy (push) Successful in 3m38s
Add PASSWORD_MIN_LENGTH / PASSWORD_MAX_LENGTH (validated in src/env.ts) and a
shared passwordPolicy helper. The policy drives the zod schemas in register,
password reset and the admin create-user dialog, plus the live requirement
checks and strength meter in the register form.
Locale messages now interpolate the configured minimum via {min} instead of
hard-coding 12.
This commit is contained in:
1 parent
aef0939ee9
commit
9cf1eb615c
36 files changed
+227
-143
No files matched your search
@@ -64,6 +64,10 @@ AUTH_SECRET=your-super-secret-auth-key-change-this-min-32-chars
|
||||
APP_KEY=base64:your-app-key-here=
|
||||
# Bcrypt cost factor for new password hashes.
|
||||
BCRYPT_COST=12
|
||||
# Password-length policy for every new password (register, password reset and
|
||||
# staff-created accounts). Minimum: 5-30. Maximum: 30-128.
|
||||
PASSWORD_MIN_LENGTH=12
|
||||
PASSWORD_MAX_LENGTH=128
|
||||
|
||||
# --- ANTI-DDOS (app-layer gate, production only) ---
|
||||
# On by default in production. Set to "false" to disable (not recommended).
|
||||
|
||||
@@ -6,6 +6,7 @@ import { redirect } from "next/navigation";
|
||||
import { env } from "@/env";
|
||||
import { invalidateLoginCache } from "@/lib/auth/login-core";
|
||||
import { hashPassword } from "@/lib/auth/password";
|
||||
import { passwordPolicy } from "@/lib/auth/password-policy";
|
||||
import { revokeUserCredentials } from "@/lib/auth/session-revocation";
|
||||
import { db, PasswordReset, User } from "@/lib/db";
|
||||
import { logger } from "@/lib/logger";
|
||||
@@ -109,7 +110,11 @@ export async function resetPassword(formData: FormData): Promise<void> {
|
||||
}
|
||||
|
||||
let error: "password" | "invalid" | "failed" | null = null;
|
||||
if (password.length < 12) error = "password";
|
||||
if (
|
||||
password.length < passwordPolicy.minLength ||
|
||||
password.length > passwordPolicy.maxLength
|
||||
)
|
||||
error = "password";
|
||||
|
||||
if (!error) {
|
||||
try {
|
||||
|
||||
+10
-4
@@ -5,6 +5,7 @@ import { after } from "next/server";
|
||||
import { z } from "zod";
|
||||
import { sendVerification } from "@/lib/auth/email-verification";
|
||||
import { hashPassword } from "@/lib/auth/password";
|
||||
import { passwordPolicy } from "@/lib/auth/password-policy";
|
||||
import { DEFAULT_AVATAR_FIGURE } from "@/lib/avatar-figure";
|
||||
import { invalidateKey } from "@/lib/cached-db";
|
||||
import { db, User } from "@/lib/db";
|
||||
@@ -83,6 +84,11 @@ function hasDisposableEmailDomain(email: string): boolean {
|
||||
return domain ? DISPOSABLE_EMAIL_DOMAINS.has(domain) : false;
|
||||
}
|
||||
|
||||
// Rendered into the schema below and mapped back to a locale-independent code
|
||||
// via `ZOD_MESSAGE_CODES`, so the length always reflects the configured policy.
|
||||
const PASSWORD_MIN_MESSAGE = `Password must be at least ${passwordPolicy.minLength} characters`;
|
||||
const PASSWORD_MAX_MESSAGE = "Password is too long";
|
||||
|
||||
const registerSchema = z
|
||||
.object({
|
||||
username: z
|
||||
@@ -105,8 +111,8 @@ const registerSchema = z
|
||||
),
|
||||
password: z
|
||||
.string()
|
||||
.min(12, "Password must be at least 12 characters") // Increased min length
|
||||
.max(128, "Password is too long") // Added max length
|
||||
.min(passwordPolicy.minLength, PASSWORD_MIN_MESSAGE)
|
||||
.max(passwordPolicy.maxLength, PASSWORD_MAX_MESSAGE)
|
||||
.regex(/[A-Z]/, "Password must contain at least one uppercase letter")
|
||||
.regex(/[a-z]/, "Password must contain at least one lowercase letter")
|
||||
.regex(/[0-9]/, "Password must contain at least one digit")
|
||||
@@ -160,8 +166,8 @@ const ZOD_MESSAGE_CODES: Record<string, RegisterErrorCode> = {
|
||||
"This username is reserved": "usernameReserved",
|
||||
"Enter a valid email address": "emailValid",
|
||||
"Temporary email domains are not allowed": "emailDisposable",
|
||||
"Password must be at least 12 characters": "passwordMinLength",
|
||||
"Password is too long": "passwordMaxLength",
|
||||
[PASSWORD_MIN_MESSAGE]: "passwordMinLength",
|
||||
[PASSWORD_MAX_MESSAGE]: "passwordMaxLength",
|
||||
"Password must contain at least one uppercase letter": "passwordUpper",
|
||||
"Password must contain at least one lowercase letter": "passwordLower",
|
||||
"Password must contain at least one digit": "passwordDigit",
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
} from "@/components/auth/auth-landing";
|
||||
import { RegisterForm } from "@/components/auth/register-form";
|
||||
import { auth } from "@/lib/auth";
|
||||
import { passwordPolicy } from "@/lib/auth/password-policy";
|
||||
|
||||
export async function generateMetadata(): Promise<Metadata> {
|
||||
const t = await getTranslations("pages.register");
|
||||
@@ -50,6 +51,8 @@ export default async function RegisterPage() {
|
||||
hotelName={data.hotelName}
|
||||
captcha={data.captcha}
|
||||
nonce={data.nonce}
|
||||
passwordMinLength={passwordPolicy.minLength}
|
||||
passwordMaxLength={passwordPolicy.maxLength}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
@@ -3,6 +3,7 @@ import { getTranslations } from "next-intl/server";
|
||||
import { resetPassword } from "@/actions/password-reset";
|
||||
import Link from "@/components/link";
|
||||
import { ContentCard } from "@/components/public/ui";
|
||||
import { passwordPolicy } from "@/lib/auth/password-policy";
|
||||
|
||||
export async function generateMetadata(): Promise<Metadata> {
|
||||
const t = await getTranslations("pages.reset");
|
||||
@@ -41,8 +42,12 @@ export default async function ResetPage({
|
||||
<input
|
||||
name="password"
|
||||
type="password"
|
||||
placeholder={t("passwordPlaceholder")}
|
||||
placeholder={t("passwordPlaceholder", {
|
||||
min: passwordPolicy.minLength,
|
||||
})}
|
||||
autoComplete="new-password"
|
||||
minLength={passwordPolicy.minLength}
|
||||
maxLength={passwordPolicy.maxLength}
|
||||
required
|
||||
/>
|
||||
<button type="submit" className="btn btn-primary">
|
||||
@@ -58,7 +63,7 @@ export default async function ResetPage({
|
||||
marginBottom: 0,
|
||||
}}
|
||||
>
|
||||
{t(errorKey)}
|
||||
{t(errorKey, { min: passwordPolicy.minLength })}
|
||||
</p>
|
||||
) : null}
|
||||
<p
|
||||
|
||||
@@ -28,6 +28,8 @@ export interface AuthFieldProps {
|
||||
| "search";
|
||||
required?: boolean;
|
||||
disabled?: boolean;
|
||||
minLength?: number;
|
||||
maxLength?: number;
|
||||
/** Marks the field with `aria-invalid` and a danger border. */
|
||||
invalid?: boolean;
|
||||
/** id of the element describing this field (e.g. an error banner). */
|
||||
@@ -61,6 +63,8 @@ export function AuthField({
|
||||
inputMode,
|
||||
required,
|
||||
disabled,
|
||||
minLength,
|
||||
maxLength,
|
||||
invalid,
|
||||
describedBy,
|
||||
iconColor = "var(--color-text-muted)",
|
||||
@@ -93,6 +97,8 @@ export function AuthField({
|
||||
inputMode={inputMode}
|
||||
required={required}
|
||||
disabled={disabled}
|
||||
minLength={minLength}
|
||||
maxLength={maxLength}
|
||||
aria-invalid={invalid ? true : undefined}
|
||||
aria-describedby={describedBy}
|
||||
className={`auth-input has-icon ${trailing ? "has-action" : ""}`}
|
||||
|
||||
@@ -30,19 +30,23 @@ interface RegisterFormProps {
|
||||
captcha: { provider: string; siteKey?: string };
|
||||
error?: string;
|
||||
nonce?: string;
|
||||
/** Effective policy from `PASSWORD_MIN_LENGTH` / `PASSWORD_MAX_LENGTH`. */
|
||||
passwordMinLength: number;
|
||||
passwordMaxLength: number;
|
||||
}
|
||||
|
||||
function passwordStrength(
|
||||
pw: string,
|
||||
t: (key: string) => string,
|
||||
minLength: number,
|
||||
): {
|
||||
score: number;
|
||||
label: string;
|
||||
color: string;
|
||||
} {
|
||||
let score = 0;
|
||||
if (pw.length >= 8) score += 1;
|
||||
if (pw.length >= 12) score += 1;
|
||||
if (pw.length >= minLength) score += 1;
|
||||
if (pw.length >= minLength + 4) score += 1;
|
||||
if (/[a-z]/.test(pw) && /[A-Z]/.test(pw)) score += 1;
|
||||
if (/\d/.test(pw)) score += 1;
|
||||
if (/[^a-zA-Z0-9]/.test(pw)) score += 1;
|
||||
@@ -103,6 +107,8 @@ export function RegisterForm({
|
||||
captcha,
|
||||
error,
|
||||
nonce,
|
||||
passwordMinLength,
|
||||
passwordMaxLength,
|
||||
}: RegisterFormProps) {
|
||||
const t = useTranslations("pages.register");
|
||||
const showCaptcha = captcha.provider !== "none" && !!captcha.siteKey;
|
||||
@@ -138,7 +144,7 @@ export function RegisterForm({
|
||||
);
|
||||
const autoLoginStartedRef = useRef(false);
|
||||
const [referralCode, setReferralCode] = useState("");
|
||||
const strength = passwordStrength(password, t);
|
||||
const strength = passwordStrength(password, t, passwordMinLength);
|
||||
|
||||
/**
|
||||
* The password policy the server enforces, evaluated live so the visitor can
|
||||
@@ -146,7 +152,10 @@ export function RegisterForm({
|
||||
* single error back.
|
||||
*/
|
||||
const requirements = [
|
||||
{ label: t("passwordMinLength"), met: password.length >= 12 },
|
||||
{
|
||||
label: t("passwordMinLength", { min: passwordMinLength }),
|
||||
met: password.length >= passwordMinLength,
|
||||
},
|
||||
{ label: t("passwordUpper"), met: /[A-Z]/.test(password) },
|
||||
{ label: t("passwordLower"), met: /[a-z]/.test(password) },
|
||||
{ label: t("passwordDigit"), met: /\d/.test(password) },
|
||||
@@ -295,9 +304,13 @@ export function RegisterForm({
|
||||
type={showPassword ? "text" : "password"}
|
||||
value={password}
|
||||
onChange={setPassword}
|
||||
placeholder={t("passwordPlaceholder")}
|
||||
placeholder={t("passwordPlaceholder", {
|
||||
min: passwordMinLength,
|
||||
})}
|
||||
autoComplete="new-password"
|
||||
required
|
||||
minLength={passwordMinLength}
|
||||
maxLength={passwordMaxLength}
|
||||
trailing={
|
||||
<PasswordToggle
|
||||
show={showPassword}
|
||||
|
||||
@@ -71,6 +71,11 @@ const schema = z
|
||||
|
||||
// bcrypt cost factor used for new password hashes.
|
||||
BCRYPT_COST: z.coerce.number().int().min(4).max(31).default(12),
|
||||
// Password-length policy for every new password (register, password reset
|
||||
// and staff-created accounts). The minimum may be set between 5 and 30
|
||||
// characters, the maximum between 30 and 128, so min always fits under max.
|
||||
PASSWORD_MIN_LENGTH: z.coerce.number().int().min(5).max(30).default(12),
|
||||
PASSWORD_MAX_LENGTH: z.coerce.number().int().min(30).max(128).default(128),
|
||||
// Filesystem dir the badge uploader writes <code>.gif into (the emulator's
|
||||
// badge image folder, e.g. .../assets/c_images/album1584). Upload is disabled
|
||||
// when unset.
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import { env } from "@/env";
|
||||
|
||||
/** Hard floor/ceiling so a bad env value can never lock accounts out. */
|
||||
const ABSOLUTE_MIN_LENGTH = 5;
|
||||
const ABSOLUTE_MAX_LENGTH = 128;
|
||||
|
||||
function toLength(value: unknown, fallback: number): number {
|
||||
const parsed = typeof value === "number" ? value : Number(value);
|
||||
return Number.isFinite(parsed) ? Math.trunc(parsed) : fallback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Effective password-length policy. `PASSWORD_MIN_LENGTH` / `PASSWORD_MAX_LENGTH`
|
||||
* drive the bounds; the values are clamped to a sane window so a typo in the env
|
||||
* can neither accept empty passwords nor reject every possible one.
|
||||
*/
|
||||
export const passwordPolicy = (() => {
|
||||
const minLength = Math.min(
|
||||
ABSOLUTE_MAX_LENGTH,
|
||||
Math.max(ABSOLUTE_MIN_LENGTH, toLength(env.PASSWORD_MIN_LENGTH, 12)),
|
||||
);
|
||||
const maxLength = Math.max(
|
||||
minLength,
|
||||
Math.min(ABSOLUTE_MAX_LENGTH, toLength(env.PASSWORD_MAX_LENGTH, 128)),
|
||||
);
|
||||
return { minLength, maxLength };
|
||||
})();
|
||||
@@ -12,7 +12,7 @@ describe("createUserSchema", () => {
|
||||
const result = createUserSchema.safeParse({
|
||||
username: "TestUser",
|
||||
mail: "[email protected]",
|
||||
password: "secret123",
|
||||
password: "secret123456",
|
||||
});
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) {
|
||||
@@ -26,7 +26,7 @@ describe("createUserSchema", () => {
|
||||
createUserSchema.safeParse({
|
||||
username: "ab",
|
||||
mail: "[email protected]",
|
||||
password: "secret123",
|
||||
password: "secret123456",
|
||||
}).success,
|
||||
).toBe(false);
|
||||
});
|
||||
@@ -36,7 +36,7 @@ describe("createUserSchema", () => {
|
||||
createUserSchema.safeParse({
|
||||
username: "a".repeat(21),
|
||||
mail: "[email protected]",
|
||||
password: "secret123",
|
||||
password: "secret123456",
|
||||
}).success,
|
||||
).toBe(false);
|
||||
});
|
||||
@@ -46,7 +46,7 @@ describe("createUserSchema", () => {
|
||||
createUserSchema.safeParse({
|
||||
username: "user@name",
|
||||
mail: "[email protected]",
|
||||
password: "secret123",
|
||||
password: "secret123456",
|
||||
}).success,
|
||||
).toBe(false);
|
||||
});
|
||||
@@ -56,7 +56,7 @@ describe("createUserSchema", () => {
|
||||
createUserSchema.safeParse({
|
||||
username: "TestUser",
|
||||
mail: "not-an-email",
|
||||
password: "secret123",
|
||||
password: "secret123456",
|
||||
}).success,
|
||||
).toBe(false);
|
||||
});
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { z } from "zod";
|
||||
import { passwordPolicy } from "@/lib/auth/password-policy";
|
||||
|
||||
export const createUserSchema = z.object({
|
||||
username: z
|
||||
@@ -10,7 +11,16 @@ export const createUserSchema = z.object({
|
||||
"Username can only contain letters, numbers, _ and -",
|
||||
),
|
||||
mail: z.string().email("Invalid email address"),
|
||||
password: z.string().min(6, "Password must be at least 6 characters"),
|
||||
password: z
|
||||
.string()
|
||||
.min(
|
||||
passwordPolicy.minLength,
|
||||
`Password must be at least ${passwordPolicy.minLength} characters`,
|
||||
)
|
||||
.max(
|
||||
passwordPolicy.maxLength,
|
||||
`Password must be at most ${passwordPolicy.maxLength} characters`,
|
||||
),
|
||||
rank: z.coerce.number().int().min(1).max(7).default(1),
|
||||
motto: z.string().max(127).default(""),
|
||||
});
|
||||
|
||||
@@ -6132,7 +6132,7 @@
|
||||
"confirmPassword": "أعد كلمة المرور",
|
||||
"usernamePlaceholder": "اسم المستخدم",
|
||||
"emailPlaceholder": "البريد الإلكتروني",
|
||||
"passwordPlaceholder": "كلمة المرور (12 حرفًا على الأقل)",
|
||||
"passwordPlaceholder": "كلمة المرور ({min} حرفًا على الأقل)",
|
||||
"confirmPasswordPlaceholder": "أعد كلمة المرور",
|
||||
"selectOutfit": "اختر ملابسك",
|
||||
"termsAccept": "أنا أبلغ 18 عامًا وأوافق على شروط {hotel}.",
|
||||
@@ -6153,7 +6153,7 @@
|
||||
"termsError": "يجب الموافقة على الشروط للتسجيل.",
|
||||
"usernameError": "اسم المستخدم مطلوب.",
|
||||
"emailError": "البريد الإلكتروني الصالح مطلوب.",
|
||||
"passwordError": "يجب ألا تقل كلمة المرور عن 12 حرفًا",
|
||||
"passwordError": "يجب ألا تقل كلمة المرور عن {min} حرفًا",
|
||||
"confirmPasswordError": "كلمتا المرور غير متطابقتين.",
|
||||
"termsRequired": "يجب الموافقة على الشروط.",
|
||||
"usernameRequired": "اسم المستخدم مطلوب.",
|
||||
@@ -6167,7 +6167,7 @@
|
||||
"strengthFair": "مقبول",
|
||||
"strengthGood": "جيد",
|
||||
"strengthStrong": "قوي",
|
||||
"passwordMinLength": "يجب ألا تقل كلمة المرور عن 12 حرفًا",
|
||||
"passwordMinLength": "يجب ألا تقل كلمة المرور عن {min} حرفًا",
|
||||
"passwordUpper": "يجب أن تحتوي كلمة المرور على حرف كبير واحد على الأقل",
|
||||
"passwordLower": "يجب أن تحتوي كلمة المرور على حرف صغير واحد على الأقل",
|
||||
"passwordDigit": "يجب أن تحتوي كلمة المرور على رقم واحد على الأقل",
|
||||
@@ -6202,10 +6202,10 @@
|
||||
"reset": {
|
||||
"title": "Set a new password",
|
||||
"subtitle": "Choose a strong password you don't use elsewhere.",
|
||||
"passwordPlaceholder": "New password (min 12 chars)",
|
||||
"passwordPlaceholder": "New password (min {min} chars)",
|
||||
"resetPassword": "Reset password",
|
||||
"backToLogin": "Back to login",
|
||||
"passwordMinLength": "يجب ألا تقل كلمة المرور عن 12 حرفًا",
|
||||
"passwordMinLength": "يجب ألا تقل كلمة المرور عن {min} حرفًا",
|
||||
"tooManyAttempts": "محاولات كثيرة جدًا — حاول لاحقًا",
|
||||
"invalidLink": "رابط إعادة التعيين غير صالح أو منتهي الصلاحية. اطلب رابطًا جديدًا.",
|
||||
"failed": "تعذّرت إعادة تعيين كلمة المرور. حاول مرة أخرى."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Повторете паролата",
|
||||
"usernamePlaceholder": "Потребителско име",
|
||||
"emailPlaceholder": "Имейл",
|
||||
"passwordPlaceholder": "Парола (мин. 12 знака)",
|
||||
"passwordPlaceholder": "Парола (мин. {min} знака)",
|
||||
"confirmPasswordPlaceholder": "Повторете паролата",
|
||||
"selectOutfit": "Изберете вашето облекло",
|
||||
"termsAccept": "Аз съм на 18+ и приемам условията и правилата на {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Трябва да приемете условията и правилата, за да се регистрирате.",
|
||||
"usernameError": "Изисква се потребителско име.",
|
||||
"emailError": "Изисква се валиден имейл.",
|
||||
"passwordError": "Паролата трябва да е поне 12 знака",
|
||||
"passwordError": "Паролата трябва да е поне {min} знака",
|
||||
"confirmPasswordError": "Паролите не съвпадат.",
|
||||
"termsRequired": "Трябва да приемете условията и правилата.",
|
||||
"usernameRequired": "Изисква се потребителско име.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Средна",
|
||||
"strengthGood": "Добра",
|
||||
"strengthStrong": "Силна",
|
||||
"passwordMinLength": "Паролата трябва да е поне 12 знака",
|
||||
"passwordMinLength": "Паролата трябва да е поне {min} знака",
|
||||
"passwordUpper": "Паролата трябва да съдържа поне една главна буква",
|
||||
"passwordLower": "Паролата трябва да съдържа поне една малка буква",
|
||||
"passwordDigit": "Паролата трябва да съдържа поне една цифра",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Задайте нова парола",
|
||||
"subtitle": "Изберете силна парола, която не използвате другаде.",
|
||||
"passwordPlaceholder": "Нова парола (мин. 12 знака)",
|
||||
"passwordPlaceholder": "Нова парола (мин. {min} знака)",
|
||||
"resetPassword": "Нулирайте паролата",
|
||||
"backToLogin": "Назад към входа",
|
||||
"passwordMinLength": "Паролата трябва да е поне 12 знака",
|
||||
"passwordMinLength": "Паролата трябва да е поне {min} знака",
|
||||
"tooManyAttempts": "Твърде много опити — опитайте по-късно",
|
||||
"invalidLink": "Този линк за нулиране е невалиден или е изтекъл. Поискайте нов.",
|
||||
"failed": "Нулирането на паролата не бе успешно. Моля, опитайте отново."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Opakujte heslo",
|
||||
"usernamePlaceholder": "Uživatelské jméno",
|
||||
"emailPlaceholder": "Email",
|
||||
"passwordPlaceholder": "Heslo (min. 12 znaků)",
|
||||
"passwordPlaceholder": "Heslo (min. {min} znaků)",
|
||||
"confirmPasswordPlaceholder": "Opakujte heslo",
|
||||
"selectOutfit": "Vyberte si oblečení",
|
||||
"termsAccept": "Je mi 18+ a souhlasím s podmínkami a pravidly {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Chcete-li se zaregistrovat, musíte přijmout podmínky a pravidla.",
|
||||
"usernameError": "Uživatelské jméno je povinné.",
|
||||
"emailError": "Je vyžadován platný e-mail.",
|
||||
"passwordError": "Heslo musí mít alespoň 12 znaků",
|
||||
"passwordError": "Heslo musí mít alespoň {min} znaků",
|
||||
"confirmPasswordError": "Hesla se neshodují.",
|
||||
"termsRequired": "Musíte přijmout podmínky a pravidla.",
|
||||
"usernameRequired": "Uživatelské jméno je povinné.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Ucházející",
|
||||
"strengthGood": "Dobré",
|
||||
"strengthStrong": "Silné",
|
||||
"passwordMinLength": "Heslo musí mít alespoň 12 znaků",
|
||||
"passwordMinLength": "Heslo musí mít alespoň {min} znaků",
|
||||
"passwordUpper": "Heslo musí obsahovat alespoň jedno velké písmeno",
|
||||
"passwordLower": "Heslo musí obsahovat alespoň jedno malé písmeno",
|
||||
"passwordDigit": "Heslo musí obsahovat alespoň jednu číslici",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Nastavte nové heslo",
|
||||
"subtitle": "Vyberte si silné heslo, které jinde nepoužíváte.",
|
||||
"passwordPlaceholder": "Nové heslo (min. 12 znaků)",
|
||||
"passwordPlaceholder": "Nové heslo (min. {min} znaků)",
|
||||
"resetPassword": "Obnovit heslo",
|
||||
"backToLogin": "Zpět k přihlášení",
|
||||
"passwordMinLength": "Heslo musí mít alespoň 12 znaků",
|
||||
"passwordMinLength": "Heslo musí mít alespoň {min} znaků",
|
||||
"tooManyAttempts": "Příliš mnoho pokusů — zkuste to později",
|
||||
"invalidLink": "Tento odkaz pro obnovu je neplatný nebo vypršel. Vyžádejte si nový.",
|
||||
"failed": "Heslo nebylo možné obnovit. Zkuste to prosím znovu."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Gentag adgangskoden",
|
||||
"usernamePlaceholder": "Brugernavn",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Adgangskode (min. 12 tegn)",
|
||||
"passwordPlaceholder": "Adgangskode (min. {min} tegn)",
|
||||
"confirmPasswordPlaceholder": "Gentag adgangskoden",
|
||||
"selectOutfit": "Vælg dit outfit",
|
||||
"termsAccept": "Jeg er 18+ og accepterer vilkårene og reglerne for {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Du skal acceptere vilkårene og reglerne for at registrere dig.",
|
||||
"usernameError": "Brugernavn er påkrævet.",
|
||||
"emailError": "Gyldig e-mail er påkrævet.",
|
||||
"passwordError": "Adgangskoden skal være på mindst 12 tegn",
|
||||
"passwordError": "Adgangskoden skal være på mindst {min} tegn",
|
||||
"confirmPasswordError": "Adgangskoder stemmer ikke overens.",
|
||||
"termsRequired": "Du skal acceptere vilkårene og reglerne.",
|
||||
"usernameRequired": "Brugernavn er påkrævet.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Middelmådig",
|
||||
"strengthGood": "God",
|
||||
"strengthStrong": "Stærk",
|
||||
"passwordMinLength": "Adgangskoden skal være på mindst 12 tegn",
|
||||
"passwordMinLength": "Adgangskoden skal være på mindst {min} tegn",
|
||||
"passwordUpper": "Adgangskoden skal indeholde mindst ét stort bogstav",
|
||||
"passwordLower": "Adgangskoden skal indeholde mindst ét lille bogstav",
|
||||
"passwordDigit": "Adgangskoden skal indeholde mindst ét tal",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Indstil en ny adgangskode",
|
||||
"subtitle": "Vælg en stærk adgangskode, du ikke bruger andre steder.",
|
||||
"passwordPlaceholder": "Ny adgangskode (min. 12 tegn)",
|
||||
"passwordPlaceholder": "Ny adgangskode (min. {min} tegn)",
|
||||
"resetPassword": "Nulstil adgangskode",
|
||||
"backToLogin": "Tilbage til login",
|
||||
"passwordMinLength": "Adgangskoden skal være på mindst 12 tegn",
|
||||
"passwordMinLength": "Adgangskoden skal være på mindst {min} tegn",
|
||||
"tooManyAttempts": "For mange forsøg — prøv igen senere",
|
||||
"invalidLink": "Dette nulstillingslink er ugyldigt eller udløbet. Anmod om et nyt.",
|
||||
"failed": "Adgangskoden kunne ikke nulstilles. Prøv igen."
|
||||
|
||||
@@ -855,7 +855,7 @@
|
||||
"confirmPassword": "Passwort wiederholen",
|
||||
"usernamePlaceholder": "Benutzername",
|
||||
"emailPlaceholder": "E-Mail",
|
||||
"passwordPlaceholder": "Passwort (min. 12 Zeichen)",
|
||||
"passwordPlaceholder": "Passwort (min. {min} Zeichen)",
|
||||
"confirmPasswordPlaceholder": "Passwort wiederholen",
|
||||
"selectOutfit": "Wähle dein Outfit",
|
||||
"termsAccept": "Ich bin 18+ und akzeptiere die {hotel} AGB & Regeln.",
|
||||
@@ -867,7 +867,7 @@
|
||||
"termsError": "Du musst die AGB & Regeln akzeptieren, um dich zu registrieren.",
|
||||
"usernameError": "Benutzername ist erforderlich.",
|
||||
"emailError": "Eine gültige E-Mail ist erforderlich.",
|
||||
"passwordError": "Das Passwort muss mindestens 12 Zeichen lang sein",
|
||||
"passwordError": "Das Passwort muss mindestens {min} Zeichen lang sein",
|
||||
"confirmPasswordError": "Passwörter stimmen nicht überein.",
|
||||
"termsRequired": "Du musst die AGB & Regeln akzeptieren.",
|
||||
"usernameRequired": "Benutzername ist erforderlich.",
|
||||
@@ -890,7 +890,7 @@
|
||||
"strengthFair": "Mittel",
|
||||
"strengthGood": "Gut",
|
||||
"strengthStrong": "Stark",
|
||||
"passwordMinLength": "Das Passwort muss mindestens 12 Zeichen lang sein",
|
||||
"passwordMinLength": "Das Passwort muss mindestens {min} Zeichen lang sein",
|
||||
"passwordUpper": "Das Passwort muss mindestens einen Großbuchstaben enthalten",
|
||||
"passwordLower": "Das Passwort muss mindestens einen Kleinbuchstaben enthalten",
|
||||
"passwordDigit": "Das Passwort muss mindestens eine Ziffer enthalten",
|
||||
@@ -925,10 +925,10 @@
|
||||
"reset": {
|
||||
"title": "Neues Passwort festlegen",
|
||||
"subtitle": "Wähle ein sicheres Passwort, das du sonst nirgendwo verwendest.",
|
||||
"passwordPlaceholder": "Neues Passwort (min. 12 Zeichen)",
|
||||
"passwordPlaceholder": "Neues Passwort (min. {min} Zeichen)",
|
||||
"resetPassword": "Passwort zurücksetzen",
|
||||
"backToLogin": "Zurück zur Anmeldung",
|
||||
"passwordMinLength": "Das Passwort muss mindestens 12 Zeichen lang sein",
|
||||
"passwordMinLength": "Das Passwort muss mindestens {min} Zeichen lang sein",
|
||||
"tooManyAttempts": "Zu viele Versuche — bitte später erneut probieren",
|
||||
"invalidLink": "Dieser Zurücksetzungslink ist ungültig oder abgelaufen. Fordere einen neuen an.",
|
||||
"failed": "Das Passwort konnte nicht zurückgesetzt werden. Bitte versuche es erneut."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Επαναλάβετε τον κωδικό πρόσβασης",
|
||||
"usernamePlaceholder": "Όνομα χρήστη",
|
||||
"emailPlaceholder": "Email",
|
||||
"passwordPlaceholder": "Κωδικός πρόσβασης (ελάχ. 12 χαρακτήρες)",
|
||||
"passwordPlaceholder": "Κωδικός πρόσβασης (ελάχ. {min} χαρακτήρες)",
|
||||
"confirmPasswordPlaceholder": "Επαναλάβετε τον κωδικό πρόσβασης",
|
||||
"selectOutfit": "Επιλέξτε το ντύσιμό σας",
|
||||
"termsAccept": "Είμαι 18+ και αποδέχομαι τους όρους και τους κανόνες του {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Πρέπει να αποδεχτείτε τους όρους και τους κανόνες για να εγγραφείτε.",
|
||||
"usernameError": "Απαιτείται όνομα χρήστη.",
|
||||
"emailError": "Απαιτείται έγκυρο email.",
|
||||
"passwordError": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 12 χαρακτήρες",
|
||||
"passwordError": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον {min} χαρακτήρες",
|
||||
"confirmPasswordError": "Οι κωδικοί πρόσβασης δεν ταιριάζουν.",
|
||||
"termsRequired": "Πρέπει να αποδεχτείτε τους όρους και τους κανόνες.",
|
||||
"usernameRequired": "Απαιτείται όνομα χρήστη.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Μέτριο",
|
||||
"strengthGood": "Καλό",
|
||||
"strengthStrong": "Δυνατό",
|
||||
"passwordMinLength": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 12 χαρακτήρες",
|
||||
"passwordMinLength": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον {min} χαρακτήρες",
|
||||
"passwordUpper": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον ένα κεφαλαίο γράμμα",
|
||||
"passwordLower": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον ένα πεζό γράμμα",
|
||||
"passwordDigit": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον ένα ψηφίο",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Ορίστε νέο κωδικό πρόσβασης",
|
||||
"subtitle": "Επιλέξτε έναν ισχυρό κωδικό πρόσβασης που δεν χρησιμοποιείτε αλλού.",
|
||||
"passwordPlaceholder": "Νέος κωδικός πρόσβασης (ελάχ. 12 χαρακτήρες)",
|
||||
"passwordPlaceholder": "Νέος κωδικός πρόσβασης (ελάχ. {min} χαρακτήρες)",
|
||||
"resetPassword": "Επαναφορά κωδικού πρόσβασης",
|
||||
"backToLogin": "Επιστροφή στην είσοδο",
|
||||
"passwordMinLength": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 12 χαρακτήρες",
|
||||
"passwordMinLength": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον {min} χαρακτήρες",
|
||||
"tooManyAttempts": "Πάρα πολλές προσπάθειες — δοκιμάστε αργότερα",
|
||||
"invalidLink": "Αυτός ο σύνδεσμος επαναφοράς δεν είναι έγκυρος ή έχει λήξει. Ζητήστε νέο.",
|
||||
"failed": "Δεν ήταν δυνατή η επαναφορά του κωδικού. Δοκιμάστε ξανά."
|
||||
|
||||
@@ -1058,7 +1058,7 @@
|
||||
"confirmPassword": "Repeat password",
|
||||
"usernamePlaceholder": "Username",
|
||||
"emailPlaceholder": "Email",
|
||||
"passwordPlaceholder": "Password (min 12 chars)",
|
||||
"passwordPlaceholder": "Password (min {min} chars)",
|
||||
"confirmPasswordPlaceholder": "Repeat password",
|
||||
"selectOutfit": "Select your outfit",
|
||||
"termsAccept": "I am 18+ and accept the {hotel} terms & rules.",
|
||||
@@ -1081,7 +1081,7 @@
|
||||
"termsError": "You must accept the terms & rules to register.",
|
||||
"usernameError": "Username is required.",
|
||||
"emailError": "Valid email is required.",
|
||||
"passwordError": "Password must be at least 12 characters",
|
||||
"passwordError": "Password must be at least {min} characters",
|
||||
"confirmPasswordError": "Passwords do not match.",
|
||||
"termsRequired": "You must accept the terms & rules.",
|
||||
"usernameRequired": "Username is required.",
|
||||
@@ -1093,7 +1093,7 @@
|
||||
"strengthFair": "Fair",
|
||||
"strengthGood": "Good",
|
||||
"strengthStrong": "Strong",
|
||||
"passwordMinLength": "Password must be at least 12 characters",
|
||||
"passwordMinLength": "Password must be at least {min} characters",
|
||||
"passwordUpper": "Password must contain at least one uppercase letter",
|
||||
"passwordLower": "Password must contain at least one lowercase letter",
|
||||
"passwordDigit": "Password must contain at least one digit",
|
||||
@@ -1128,10 +1128,10 @@
|
||||
"reset": {
|
||||
"title": "Set a new password",
|
||||
"subtitle": "Choose a strong password you don't use elsewhere.",
|
||||
"passwordPlaceholder": "New password (min 12 chars)",
|
||||
"passwordPlaceholder": "New password (min {min} chars)",
|
||||
"resetPassword": "Reset password",
|
||||
"backToLogin": "Back to login",
|
||||
"passwordMinLength": "Password must be at least 12 characters",
|
||||
"passwordMinLength": "Password must be at least {min} characters",
|
||||
"tooManyAttempts": "Too many attempts — try again later",
|
||||
"invalidLink": "This reset link is invalid or has expired. Request a new one.",
|
||||
"failed": "The password could not be reset. Please try again."
|
||||
|
||||
@@ -855,7 +855,7 @@
|
||||
"confirmPassword": "Repetir contraseña",
|
||||
"usernamePlaceholder": "Usuario",
|
||||
"emailPlaceholder": "Correo electrónico",
|
||||
"passwordPlaceholder": "Contraseña (mín. 12 caracteres)",
|
||||
"passwordPlaceholder": "Contraseña (mín. {min} caracteres)",
|
||||
"confirmPasswordPlaceholder": "Repetir contraseña",
|
||||
"selectOutfit": "Selecciona tu atuendo",
|
||||
"termsAccept": "Soy mayor de 18 años y acepto los términos y reglas de {hotel}.",
|
||||
@@ -867,7 +867,7 @@
|
||||
"termsError": "Debes aceptar los términos y reglas para registrarte.",
|
||||
"usernameError": "El usuario es obligatorio.",
|
||||
"emailError": "Se requiere un correo electrónico válido.",
|
||||
"passwordError": "La contraseña debe tener al menos 12 caracteres",
|
||||
"passwordError": "La contraseña debe tener al menos {min} caracteres",
|
||||
"confirmPasswordError": "Las contraseñas no coinciden.",
|
||||
"termsRequired": "Debes aceptar los términos y reglas.",
|
||||
"usernameRequired": "El usuario es obligatorio.",
|
||||
@@ -890,7 +890,7 @@
|
||||
"strengthFair": "Aceptable",
|
||||
"strengthGood": "Buena",
|
||||
"strengthStrong": "Fuerte",
|
||||
"passwordMinLength": "La contraseña debe tener al menos 12 caracteres",
|
||||
"passwordMinLength": "La contraseña debe tener al menos {min} caracteres",
|
||||
"passwordUpper": "La contraseña debe contener al menos una mayúscula",
|
||||
"passwordLower": "La contraseña debe contener al menos una minúscula",
|
||||
"passwordDigit": "La contraseña debe contener al menos un dígito",
|
||||
@@ -925,10 +925,10 @@
|
||||
"reset": {
|
||||
"title": "Establecer una nueva contraseña",
|
||||
"subtitle": "Elige una contraseña segura que no uses en otros sitios.",
|
||||
"passwordPlaceholder": "Nueva contraseña (mín. 12 caracteres)",
|
||||
"passwordPlaceholder": "Nueva contraseña (mín. {min} caracteres)",
|
||||
"resetPassword": "Restablecer contraseña",
|
||||
"backToLogin": "Volver al inicio de sesión",
|
||||
"passwordMinLength": "La contraseña debe tener al menos 12 caracteres",
|
||||
"passwordMinLength": "La contraseña debe tener al menos {min} caracteres",
|
||||
"tooManyAttempts": "Demasiados intentos — inténtalo más tarde",
|
||||
"invalidLink": "Este enlace de restablecimiento no es válido o ha caducado. Solicita uno nuevo.",
|
||||
"failed": "No se pudo restablecer la contraseña. Vuelve a intentarlo."
|
||||
|
||||
@@ -6132,7 +6132,7 @@
|
||||
"confirmPassword": "Toista salasana",
|
||||
"usernamePlaceholder": "Käyttäjätunnus",
|
||||
"emailPlaceholder": "Sähköposti",
|
||||
"passwordPlaceholder": "Salasana (vähintään 12 merkkiä)",
|
||||
"passwordPlaceholder": "Salasana (vähintään {min} merkkiä)",
|
||||
"confirmPasswordPlaceholder": "Toista salasana",
|
||||
"selectOutfit": "Valitse asustesi",
|
||||
"termsAccept": "Olen 18-vuotias ja hyväksyn {hotel} säännöt.",
|
||||
@@ -6153,7 +6153,7 @@
|
||||
"termsError": "Sinun on hyväksyttävä säännöt rekisteröityäksesi.",
|
||||
"usernameError": "Käyttäjätunnus on pakollinen.",
|
||||
"emailError": "Kelvollinen sähköpostiosoite on pakollinen.",
|
||||
"passwordError": "Salasanassa on oltava vähintään 12 merkkiä",
|
||||
"passwordError": "Salasanassa on oltava vähintään {min} merkkiä",
|
||||
"confirmPasswordError": "Salasanat eivät täsmää.",
|
||||
"termsRequired": "Sinun on hyväksyttävä säännöt.",
|
||||
"usernameRequired": "Käyttäjätunnus on pakollinen.",
|
||||
@@ -6167,7 +6167,7 @@
|
||||
"strengthFair": "Tyydyttävä",
|
||||
"strengthGood": "Hyvä",
|
||||
"strengthStrong": "Vahva",
|
||||
"passwordMinLength": "Salasanassa on oltava vähintään 12 merkkiä",
|
||||
"passwordMinLength": "Salasanassa on oltava vähintään {min} merkkiä",
|
||||
"passwordUpper": "Salasanassa on oltava vähintään yksi iso kirjain",
|
||||
"passwordLower": "Salasanassa on oltava vähintään yksi pieni kirjain",
|
||||
"passwordDigit": "Salasanassa on oltava vähintään yksi numero",
|
||||
@@ -6202,10 +6202,10 @@
|
||||
"reset": {
|
||||
"title": "Set a new password",
|
||||
"subtitle": "Choose a strong password you don't use elsewhere.",
|
||||
"passwordPlaceholder": "New password (min 12 chars)",
|
||||
"passwordPlaceholder": "New password (min {min} chars)",
|
||||
"resetPassword": "Reset password",
|
||||
"backToLogin": "Back to login",
|
||||
"passwordMinLength": "Salasanassa on oltava vähintään 12 merkkiä",
|
||||
"passwordMinLength": "Salasanassa on oltava vähintään {min} merkkiä",
|
||||
"tooManyAttempts": "Liikaa yrityksiä — yritä myöhemmin uudelleen",
|
||||
"invalidLink": "Tämä palautuslinkki on virheellinen tai vanhentunut. Pyydä uusi.",
|
||||
"failed": "Salasanaa ei voitu vaihtaa. Yritä uudelleen."
|
||||
|
||||
@@ -855,7 +855,7 @@
|
||||
"confirmPassword": "Répéter le mot de passe",
|
||||
"usernamePlaceholder": "Nom d'utilisateur",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Mot de passe (min 12 car.)",
|
||||
"passwordPlaceholder": "Mot de passe (min {min} car.)",
|
||||
"confirmPasswordPlaceholder": "Répéter le mot de passe",
|
||||
"selectOutfit": "Sélectionnez votre tenue",
|
||||
"termsAccept": "J'ai 18 ans ou plus et j'accepte les conditions et règles de {hotel}.",
|
||||
@@ -867,7 +867,7 @@
|
||||
"termsError": "Vous devez accepter les conditions et règles pour vous inscrire.",
|
||||
"usernameError": "Le nom d'utilisateur est requis.",
|
||||
"emailError": "Un e-mail valide est requis.",
|
||||
"passwordError": "Le mot de passe doit contenir au moins 12 caractères",
|
||||
"passwordError": "Le mot de passe doit contenir au moins {min} caractères",
|
||||
"confirmPasswordError": "Les mots de passe ne correspondent pas.",
|
||||
"termsRequired": "Vous devez accepter les conditions et règles.",
|
||||
"usernameRequired": "Le nom d'utilisateur est requis.",
|
||||
@@ -890,7 +890,7 @@
|
||||
"strengthFair": "Moyen",
|
||||
"strengthGood": "Bon",
|
||||
"strengthStrong": "Fort",
|
||||
"passwordMinLength": "Le mot de passe doit contenir au moins 12 caractères",
|
||||
"passwordMinLength": "Le mot de passe doit contenir au moins {min} caractères",
|
||||
"passwordUpper": "Le mot de passe doit contenir au moins une majuscule",
|
||||
"passwordLower": "Le mot de passe doit contenir au moins une minuscule",
|
||||
"passwordDigit": "Le mot de passe doit contenir au moins un chiffre",
|
||||
@@ -925,10 +925,10 @@
|
||||
"reset": {
|
||||
"title": "Définir un nouveau mot de passe",
|
||||
"subtitle": "Choisissez un mot de passe fort que vous n'utilisez pas ailleurs.",
|
||||
"passwordPlaceholder": "Nouveau mot de passe (min 12 car.)",
|
||||
"passwordPlaceholder": "Nouveau mot de passe (min {min} car.)",
|
||||
"resetPassword": "Réinitialiser le mot de passe",
|
||||
"backToLogin": "Retour à la connexion",
|
||||
"passwordMinLength": "Le mot de passe doit contenir au moins 12 caractères",
|
||||
"passwordMinLength": "Le mot de passe doit contenir au moins {min} caractères",
|
||||
"tooManyAttempts": "Trop de tentatives — réessayez plus tard",
|
||||
"invalidLink": "Ce lien de réinitialisation est invalide ou expiré. Demandez-en un nouveau.",
|
||||
"failed": "Le mot de passe n'a pas pu être réinitialisé. Veuillez réessayer."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Ponovi lozinku",
|
||||
"usernamePlaceholder": "Korisničko ime",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Lozinka (najmanje 12 znakova)",
|
||||
"passwordPlaceholder": "Lozinka (najmanje {min} znakova)",
|
||||
"confirmPasswordPlaceholder": "Ponovi lozinku",
|
||||
"selectOutfit": "Odaberite svoju odjeću",
|
||||
"termsAccept": "Imam 18+ godina i prihvaćam odredbe i pravila hotela {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Za registraciju morate prihvatiti uvjete i pravila.",
|
||||
"usernameError": "Korisničko ime je potrebno.",
|
||||
"emailError": "Potrebna je valjana adresa e-pošte.",
|
||||
"passwordError": "Lozinka mora imati najmanje 12 znakova.",
|
||||
"passwordError": "Lozinka mora imati najmanje {min} znakova.",
|
||||
"confirmPasswordError": "Lozinke se ne podudaraju.",
|
||||
"termsRequired": "Morate prihvatiti uvjete i pravila.",
|
||||
"usernameRequired": "Korisničko ime je potrebno.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Osrednja",
|
||||
"strengthGood": "Dobra",
|
||||
"strengthStrong": "Jaka",
|
||||
"passwordMinLength": "Lozinka mora imati najmanje 12 znakova",
|
||||
"passwordMinLength": "Lozinka mora imati najmanje {min} znakova",
|
||||
"passwordUpper": "Lozinka mora sadržavati najmanje jedno veliko slovo",
|
||||
"passwordLower": "Lozinka mora sadržavati najmanje jedno malo slovo",
|
||||
"passwordDigit": "Lozinka mora sadržavati najmanje jednu znamenku",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Postavite novu lozinku",
|
||||
"subtitle": "Odaberite jaku lozinku koju ne koristite drugdje.",
|
||||
"passwordPlaceholder": "Nova lozinka (najmanje 12 znakova)",
|
||||
"passwordPlaceholder": "Nova lozinka (najmanje {min} znakova)",
|
||||
"resetPassword": "Resetiraj lozinku",
|
||||
"backToLogin": "Natrag na prijavu",
|
||||
"passwordMinLength": "Lozinka mora imati najmanje 12 znakova",
|
||||
"passwordMinLength": "Lozinka mora imati najmanje {min} znakova",
|
||||
"tooManyAttempts": "Previše pokušaja — pokušajte kasnije",
|
||||
"invalidLink": "Ova poveznica za ponovno postavljanje nije valjana ili je istekla. Zatražite novu.",
|
||||
"failed": "Lozinku nije bilo moguće ponovno postaviti. Pokušajte ponovo."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Ismételje meg a jelszót",
|
||||
"usernamePlaceholder": "Felhasználónév",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Jelszó (minimum 12 karakter)",
|
||||
"passwordPlaceholder": "Jelszó (minimum {min} karakter)",
|
||||
"confirmPasswordPlaceholder": "Ismételje meg a jelszót",
|
||||
"selectOutfit": "Válassza ki az öltözékét",
|
||||
"termsAccept": "18 évesnél idősebb vagyok, és elfogadom a {hotel} feltételeit és szabályait.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "A regisztrációhoz el kell fogadnia a feltételeket és szabályokat.",
|
||||
"usernameError": "Felhasználónév megadása kötelező.",
|
||||
"emailError": "Érvényes e-mail-cím szükséges.",
|
||||
"passwordError": "A jelszónak legalább 12 karakter hosszúnak kell lennie",
|
||||
"passwordError": "A jelszónak legalább {min} karakter hosszúnak kell lennie",
|
||||
"confirmPasswordError": "A jelszavak nem egyeznek.",
|
||||
"termsRequired": "El kell fogadnia a feltételeket és szabályokat.",
|
||||
"usernameRequired": "Felhasználónév megadása kötelező.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Közepes",
|
||||
"strengthGood": "Jó",
|
||||
"strengthStrong": "Erős",
|
||||
"passwordMinLength": "A jelszónak legalább 12 karakter hosszúnak kell lennie",
|
||||
"passwordMinLength": "A jelszónak legalább {min} karakter hosszúnak kell lennie",
|
||||
"passwordUpper": "A jelszónak legalább egy nagybetűt kell tartalmaznia",
|
||||
"passwordLower": "A jelszónak legalább egy kisbetűt kell tartalmaznia",
|
||||
"passwordDigit": "A jelszónak legalább egy számjegyet kell tartalmaznia",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Állítson be új jelszót",
|
||||
"subtitle": "Válasszon erős jelszót, amelyet máshol nem használ.",
|
||||
"passwordPlaceholder": "Új jelszó (minimum 12 karakter)",
|
||||
"passwordPlaceholder": "Új jelszó (minimum {min} karakter)",
|
||||
"resetPassword": "Jelszó visszaállítása",
|
||||
"backToLogin": "Vissza a bejelentkezéshez",
|
||||
"passwordMinLength": "A jelszónak legalább 12 karakter hosszúnak kell lennie",
|
||||
"passwordMinLength": "A jelszónak legalább {min} karakter hosszúnak kell lennie",
|
||||
"tooManyAttempts": "Túl sok próbálkozás — próbáld később",
|
||||
"invalidLink": "Ez a visszaállítási link érvénytelen vagy lejárt. Kérjen újat.",
|
||||
"failed": "A jelszó visszaállítása nem sikerült. Kérjük, próbálja újra."
|
||||
|
||||
@@ -1027,7 +1027,7 @@
|
||||
"confirmPassword": "Ripeti la password",
|
||||
"usernamePlaceholder": "Nome utente",
|
||||
"emailPlaceholder": "Email",
|
||||
"passwordPlaceholder": "Password (min 12 caratteri)",
|
||||
"passwordPlaceholder": "Password (min {min} caratteri)",
|
||||
"confirmPasswordPlaceholder": "Ripeti la password",
|
||||
"selectOutfit": "Scegli il tuo outfit",
|
||||
"termsAccept": "Ho 18+ anni e accetto i termini e regole di {hotel}.",
|
||||
@@ -1039,7 +1039,7 @@
|
||||
"termsError": "Devi accettare i termini e regole per registrarti.",
|
||||
"usernameError": "Il nome utente è obbligatorio.",
|
||||
"emailError": "Email valida obbligatoria.",
|
||||
"passwordError": "La password deve contenere almeno 12 caratteri",
|
||||
"passwordError": "La password deve contenere almeno {min} caratteri",
|
||||
"confirmPasswordError": "Le password non coincidono.",
|
||||
"termsRequired": "Devi accettare i termini e le regole.",
|
||||
"usernameRequired": "Il nome utente è obbligatorio.",
|
||||
@@ -1062,7 +1062,7 @@
|
||||
"strengthFair": "Discreta",
|
||||
"strengthGood": "Buona",
|
||||
"strengthStrong": "Forte",
|
||||
"passwordMinLength": "La password deve contenere almeno 12 caratteri",
|
||||
"passwordMinLength": "La password deve contenere almeno {min} caratteri",
|
||||
"passwordUpper": "La password deve contenere almeno una lettera maiuscola",
|
||||
"passwordLower": "La password deve contenere almeno una lettera minuscola",
|
||||
"passwordDigit": "La password deve contenere almeno una cifra",
|
||||
@@ -1097,10 +1097,10 @@
|
||||
"reset": {
|
||||
"title": "Imposta una nuova password",
|
||||
"subtitle": "Scegli una password robusta che non usi altrove.",
|
||||
"passwordPlaceholder": "Nuova password (min 12 caratteri)",
|
||||
"passwordPlaceholder": "Nuova password (min {min} caratteri)",
|
||||
"resetPassword": "Reimposta password",
|
||||
"backToLogin": "Torna all'accesso",
|
||||
"passwordMinLength": "La password deve contenere almeno 12 caratteri",
|
||||
"passwordMinLength": "La password deve contenere almeno {min} caratteri",
|
||||
"tooManyAttempts": "Troppi tentativi — riprova più tardi",
|
||||
"invalidLink": "Questo link di reimpostazione non è valido o è scaduto. Richiedine uno nuovo.",
|
||||
"failed": "Non è stato possibile reimpostare la password. Riprova."
|
||||
|
||||
@@ -6132,7 +6132,7 @@
|
||||
"confirmPassword": "パスワードの確認",
|
||||
"usernamePlaceholder": "ユーザー名",
|
||||
"emailPlaceholder": "メールアドレス",
|
||||
"passwordPlaceholder": "パスワード(12文字以上)",
|
||||
"passwordPlaceholder": "パスワード({min}文字以上)",
|
||||
"confirmPasswordPlaceholder": "パスワードの確認",
|
||||
"selectOutfit": "アバターを選んでスタイルを設定",
|
||||
"termsAccept": "18歳以上であり、{hotel} の規約に同意します。",
|
||||
@@ -6153,7 +6153,7 @@
|
||||
"termsError": "登録するには規約に同意する必要があります。",
|
||||
"usernameError": "ユーザー名は必須です。",
|
||||
"emailError": "有効なメールアドレスが必要です。",
|
||||
"passwordError": "パスワードは12文字以上にしてください",
|
||||
"passwordError": "パスワードは{min}文字以上にしてください",
|
||||
"confirmPasswordError": "パスワードが一致しません。",
|
||||
"termsRequired": "規約に同意する必要があります。",
|
||||
"usernameRequired": "ユーザー名は必須です。",
|
||||
@@ -6167,7 +6167,7 @@
|
||||
"strengthFair": "普通",
|
||||
"strengthGood": "良",
|
||||
"strengthStrong": "強",
|
||||
"passwordMinLength": "パスワードは12文字以上にしてください",
|
||||
"passwordMinLength": "パスワードは{min}文字以上にしてください",
|
||||
"passwordUpper": "パスワードには大文字を1文字以上含めてください",
|
||||
"passwordLower": "パスワードには小文字を1文字以上含めてください",
|
||||
"passwordDigit": "パスワードには数字を1文字以上含めてください",
|
||||
@@ -6202,10 +6202,10 @@
|
||||
"reset": {
|
||||
"title": "Set a new password",
|
||||
"subtitle": "Choose a strong password you don't use elsewhere.",
|
||||
"passwordPlaceholder": "New password (min 12 chars)",
|
||||
"passwordPlaceholder": "New password (min {min} chars)",
|
||||
"resetPassword": "Reset password",
|
||||
"backToLogin": "Back to login",
|
||||
"passwordMinLength": "パスワードは12文字以上にしてください",
|
||||
"passwordMinLength": "パスワードは{min}文字以上にしてください",
|
||||
"tooManyAttempts": "試行回数が多すぎます — 後で再度お試しください",
|
||||
"invalidLink": "このリセットリンクは無効か期限切れです。新しいリンクをリクエストしてください。",
|
||||
"failed": "パスワードをリセットできませんでした。もう一度お試しください。"
|
||||
|
||||
@@ -1058,7 +1058,7 @@
|
||||
"confirmPassword": "Wachtwoord herhalen",
|
||||
"usernamePlaceholder": "Gebruikersnaam",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Wachtwoord (min 12 tekens)",
|
||||
"passwordPlaceholder": "Wachtwoord (min {min} tekens)",
|
||||
"confirmPasswordPlaceholder": "Wachtwoord herhalen",
|
||||
"selectOutfit": "Kies je outfit",
|
||||
"termsAccept": "Ik ben 18+ en accepteer de {hotel} voorwaarden & regels.",
|
||||
@@ -1074,7 +1074,7 @@
|
||||
"termsError": "Je moet de voorwaarden & regels accepteren om te registreren.",
|
||||
"usernameError": "Gebruikersnaam is verplicht.",
|
||||
"emailError": "Een geldig e-mailadres is verplicht.",
|
||||
"passwordError": "Wachtwoord moet minimaal 12 tekens lang zijn",
|
||||
"passwordError": "Wachtwoord moet minimaal {min} tekens lang zijn",
|
||||
"confirmPasswordError": "Wachtwoorden komen niet overeen.",
|
||||
"termsRequired": "Je moet de voorwaarden accepteren.",
|
||||
"ageVerified": "Ik ben 18+ en ga akkoord met de leeftijdsvereiste.",
|
||||
@@ -1093,7 +1093,7 @@
|
||||
"strengthFair": "Redelijk",
|
||||
"strengthGood": "Goed",
|
||||
"strengthStrong": "Sterk",
|
||||
"passwordMinLength": "Wachtwoord moet minimaal 12 tekens lang zijn",
|
||||
"passwordMinLength": "Wachtwoord moet minimaal {min} tekens lang zijn",
|
||||
"passwordUpper": "Wachtwoord moet minstens één hoofdletter bevatten",
|
||||
"passwordLower": "Wachtwoord moet minstens één kleine letter bevatten",
|
||||
"passwordDigit": "Wachtwoord moet minstens één cijfer bevatten",
|
||||
@@ -1128,10 +1128,10 @@
|
||||
"reset": {
|
||||
"title": "Nieuw wachtwoord instellen",
|
||||
"subtitle": "Kies een sterk wachtwoord dat je nergens anders gebruikt.",
|
||||
"passwordPlaceholder": "Nieuw wachtwoord (min 12 tekens)",
|
||||
"passwordPlaceholder": "Nieuw wachtwoord (min {min} tekens)",
|
||||
"resetPassword": "Wachtwoord resetten",
|
||||
"backToLogin": "Terug naar inloggen",
|
||||
"passwordMinLength": "Wachtwoord moet minimaal 12 tekens lang zijn",
|
||||
"passwordMinLength": "Wachtwoord moet minimaal {min} tekens lang zijn",
|
||||
"tooManyAttempts": "Te veel pogingen — probeer het later opnieuw",
|
||||
"invalidLink": "Deze reset-link is ongeldig of verlopen. Vraag een nieuwe aan.",
|
||||
"failed": "Het wachtwoord kon niet worden gereset. Probeer het opnieuw."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Gjenta passord",
|
||||
"usernamePlaceholder": "Brukernavn",
|
||||
"emailPlaceholder": "E-post",
|
||||
"passwordPlaceholder": "Passord (minst 12 tegn)",
|
||||
"passwordPlaceholder": "Passord (minst {min} tegn)",
|
||||
"confirmPasswordPlaceholder": "Gjenta passord",
|
||||
"selectOutfit": "Velg antrekket ditt",
|
||||
"termsAccept": "Jeg er 18+ og godtar vilkårene og reglene for {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Du må godta vilkårene og reglene for å registrere deg.",
|
||||
"usernameError": "Brukernavn er påkrevd.",
|
||||
"emailError": "Gyldig e-post er nødvendig.",
|
||||
"passwordError": "Passordet må være på minst 12 tegn.",
|
||||
"passwordError": "Passordet må være på minst {min} tegn.",
|
||||
"confirmPasswordError": "Passord stemmer ikke.",
|
||||
"termsRequired": "Du må godta vilkårene og reglene.",
|
||||
"usernameRequired": "Brukernavn er påkrevd.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Middels",
|
||||
"strengthGood": "God",
|
||||
"strengthStrong": "Sterk",
|
||||
"passwordMinLength": "Passordet må være minst 12 tegn",
|
||||
"passwordMinLength": "Passordet må være minst {min} tegn",
|
||||
"passwordUpper": "Passordet må inneholde minst én stor bokstav",
|
||||
"passwordLower": "Passordet må inneholde minst én liten bokstav",
|
||||
"passwordDigit": "Passordet må inneholde minst ett siffer",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Angi et nytt passord",
|
||||
"subtitle": "Velg et sterkt passord du ikke bruker andre steder.",
|
||||
"passwordPlaceholder": "Nytt passord (minst 12 tegn)",
|
||||
"passwordPlaceholder": "Nytt passord (minst {min} tegn)",
|
||||
"resetPassword": "Tilbakestill passord",
|
||||
"backToLogin": "Tilbake til innlogging",
|
||||
"passwordMinLength": "Passordet må være minst 12 tegn",
|
||||
"passwordMinLength": "Passordet må være minst {min} tegn",
|
||||
"tooManyAttempts": "For mange forsøk — prøv igjen senere",
|
||||
"invalidLink": "Denne tilbakestillingslenken er ugyldig eller utløpt. Be om en ny.",
|
||||
"failed": "Passordet kunne ikke tilbakestilles. Prøv igjen."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Powtórz hasło",
|
||||
"usernamePlaceholder": "Nazwa użytkownika",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Hasło (min. 12 znaków)",
|
||||
"passwordPlaceholder": "Hasło (min. {min} znaków)",
|
||||
"confirmPasswordPlaceholder": "Powtórz hasło",
|
||||
"selectOutfit": "Wybierz swój strój",
|
||||
"termsAccept": "Mam ukończone 18 lat i akceptuję warunki i zasady hotelu {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Aby się zarejestrować, musisz zaakceptować regulamin.",
|
||||
"usernameError": "Nazwa użytkownika jest wymagana.",
|
||||
"emailError": "Wymagany jest prawidłowy adres e-mail.",
|
||||
"passwordError": "Hasło musi mieć co najmniej 12 znaków",
|
||||
"passwordError": "Hasło musi mieć co najmniej {min} znaków",
|
||||
"confirmPasswordError": "Hasła nie pasują.",
|
||||
"termsRequired": "Musisz zaakceptować warunki i zasady.",
|
||||
"usernameRequired": "Nazwa użytkownika jest wymagana.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Średnie",
|
||||
"strengthGood": "Dobre",
|
||||
"strengthStrong": "Silne",
|
||||
"passwordMinLength": "Hasło musi mieć co najmniej 12 znaków",
|
||||
"passwordMinLength": "Hasło musi mieć co najmniej {min} znaków",
|
||||
"passwordUpper": "Hasło musi zawierać co najmniej jedną wielką literę",
|
||||
"passwordLower": "Hasło musi zawierać co najmniej jedną małą literę",
|
||||
"passwordDigit": "Hasło musi zawierać co najmniej jedną cyfrę",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Ustaw nowe hasło",
|
||||
"subtitle": "Wybierz silne hasło, którego nie używasz gdzie indziej.",
|
||||
"passwordPlaceholder": "Nowe hasło (min. 12 znaków)",
|
||||
"passwordPlaceholder": "Nowe hasło (min. {min} znaków)",
|
||||
"resetPassword": "Zresetuj hasło",
|
||||
"backToLogin": "Powrót do logowania",
|
||||
"passwordMinLength": "Hasło musi mieć co najmniej 12 znaków",
|
||||
"passwordMinLength": "Hasło musi mieć co najmniej {min} znaków",
|
||||
"tooManyAttempts": "Zbyt wiele prób — spróbuj później",
|
||||
"invalidLink": "Ten link resetujący jest nieprawidłowy lub wygasł. Poproś o nowy.",
|
||||
"failed": "Nie udało się zresetować hasła. Spróbuj ponownie."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Repetir senha",
|
||||
"usernamePlaceholder": "Nome de usuário",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Senha (mín. 12 caracteres)",
|
||||
"passwordPlaceholder": "Senha (mín. {min} caracteres)",
|
||||
"confirmPasswordPlaceholder": "Repetir senha",
|
||||
"selectOutfit": "Selecione sua roupa",
|
||||
"termsAccept": "Tenho mais de 18 anos e aceito os termos e regras do {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Você deve aceitar os termos e regras para se registrar.",
|
||||
"usernameError": "O nome de usuário é obrigatório.",
|
||||
"emailError": "E-mail válido é obrigatório.",
|
||||
"passwordError": "A senha deve ter pelo menos 12 caracteres",
|
||||
"passwordError": "A senha deve ter pelo menos {min} caracteres",
|
||||
"confirmPasswordError": "As senhas não coincidem.",
|
||||
"termsRequired": "Você deve aceitar os termos e regras.",
|
||||
"usernameRequired": "O nome de usuário é obrigatório.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Razoável",
|
||||
"strengthGood": "Boa",
|
||||
"strengthStrong": "Forte",
|
||||
"passwordMinLength": "A senha deve ter pelo menos 12 caracteres",
|
||||
"passwordMinLength": "A senha deve ter pelo menos {min} caracteres",
|
||||
"passwordUpper": "A senha deve conter pelo menos uma letra maiúscula",
|
||||
"passwordLower": "A senha deve conter pelo menos uma letra minúscula",
|
||||
"passwordDigit": "A senha deve conter pelo menos um dígito",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Defina uma nova senha",
|
||||
"subtitle": "Escolha uma senha forte que você não usa em outro lugar.",
|
||||
"passwordPlaceholder": "Nova senha (mínimo 12 caracteres)",
|
||||
"passwordPlaceholder": "Nova senha (mínimo {min} caracteres)",
|
||||
"resetPassword": "Redefinir senha",
|
||||
"backToLogin": "Voltar ao login",
|
||||
"passwordMinLength": "A senha deve ter pelo menos 12 caracteres",
|
||||
"passwordMinLength": "A senha deve ter pelo menos {min} caracteres",
|
||||
"tooManyAttempts": "Muitas tentativas — tente mais tarde",
|
||||
"invalidLink": "Este link de redefinição é inválido ou expirou. Peça um novo.",
|
||||
"failed": "Não foi possível redefinir a palavra-passe. Tente novamente."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Repetați parola",
|
||||
"usernamePlaceholder": "Nume de utilizator",
|
||||
"emailPlaceholder": "E-mail",
|
||||
"passwordPlaceholder": "Parola (min 12 caractere)",
|
||||
"passwordPlaceholder": "Parola (min {min} caractere)",
|
||||
"confirmPasswordPlaceholder": "Repetați parola",
|
||||
"selectOutfit": "Alege-ți ținuta",
|
||||
"termsAccept": "Am peste 18 ani și accept termenii și regulile {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Trebuie să acceptați termenii și regulile pentru a vă înregistra.",
|
||||
"usernameError": "Numele de utilizator este obligatoriu.",
|
||||
"emailError": "Este necesar un e-mail valid.",
|
||||
"passwordError": "Parola trebuie să aibă cel puțin 12 caractere",
|
||||
"passwordError": "Parola trebuie să aibă cel puțin {min} caractere",
|
||||
"confirmPasswordError": "Parolele nu se potrivesc.",
|
||||
"termsRequired": "Trebuie să acceptați termenii și regulile.",
|
||||
"usernameRequired": "Numele de utilizator este obligatoriu.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Medie",
|
||||
"strengthGood": "Bună",
|
||||
"strengthStrong": "Puternică",
|
||||
"passwordMinLength": "Parola trebuie să aibă cel puțin 12 caractere",
|
||||
"passwordMinLength": "Parola trebuie să aibă cel puțin {min} caractere",
|
||||
"passwordUpper": "Parola trebuie să conțină cel puțin o literă mare",
|
||||
"passwordLower": "Parola trebuie să conțină cel puțin o literă mică",
|
||||
"passwordDigit": "Parola trebuie să conțină cel puțin o cifră",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Setați o nouă parolă",
|
||||
"subtitle": "Alegeți o parolă puternică pe care nu o utilizați în altă parte.",
|
||||
"passwordPlaceholder": "Parolă nouă (min 12 caractere)",
|
||||
"passwordPlaceholder": "Parolă nouă (min {min} caractere)",
|
||||
"resetPassword": "Resetează parola",
|
||||
"backToLogin": "Înapoi la autentificare",
|
||||
"passwordMinLength": "Parola trebuie să aibă cel puțin 12 caractere",
|
||||
"passwordMinLength": "Parola trebuie să aibă cel puțin {min} caractere",
|
||||
"tooManyAttempts": "Prea multe încercări — încearcă mai târziu",
|
||||
"invalidLink": "Acest link de resetare nu este valabil sau a expirat. Solicită unul nou.",
|
||||
"failed": "Parola nu a putut fi resetată. Încearcă din nou."
|
||||
|
||||
@@ -883,7 +883,7 @@
|
||||
"confirmPassword": "Повторите пароль",
|
||||
"usernamePlaceholder": "Имя пользователя",
|
||||
"emailPlaceholder": "Электронная почта",
|
||||
"passwordPlaceholder": "Пароль (мин. 12 символов)",
|
||||
"passwordPlaceholder": "Пароль (мин. {min} символов)",
|
||||
"confirmPasswordPlaceholder": "Повторите пароль",
|
||||
"selectOutfit": "Выберите свой наряд",
|
||||
"termsAccept": "Мне 18+ и я принимаю условия и правила {hotel}.",
|
||||
@@ -895,7 +895,7 @@
|
||||
"termsError": "Чтобы зарегистрироваться, вы должны принять условия и правила.",
|
||||
"usernameError": "Требуется имя пользователя.",
|
||||
"emailError": "Требуется действительный адрес электронной почты.",
|
||||
"passwordError": "Пароль должен содержать не менее 12 символов",
|
||||
"passwordError": "Пароль должен содержать не менее {min} символов",
|
||||
"confirmPasswordError": "Пароли не совпадают.",
|
||||
"termsRequired": "Вы должны принять условия и правила.",
|
||||
"usernameRequired": "Требуется имя пользователя.",
|
||||
@@ -918,7 +918,7 @@
|
||||
"strengthFair": "Средний",
|
||||
"strengthGood": "Хороший",
|
||||
"strengthStrong": "Надёжный",
|
||||
"passwordMinLength": "Пароль должен содержать не менее 12 символов",
|
||||
"passwordMinLength": "Пароль должен содержать не менее {min} символов",
|
||||
"passwordUpper": "Пароль должен содержать хотя бы одну заглавную букву",
|
||||
"passwordLower": "Пароль должен содержать хотя бы одну строчную букву",
|
||||
"passwordDigit": "Пароль должен содержать хотя бы одну цифру",
|
||||
@@ -953,10 +953,10 @@
|
||||
"reset": {
|
||||
"title": "Установить новый пароль",
|
||||
"subtitle": "Выберите надежный пароль, который вы больше не используете.",
|
||||
"passwordPlaceholder": "Новый пароль (мин. 12 символов)",
|
||||
"passwordPlaceholder": "Новый пароль (мин. {min} символов)",
|
||||
"resetPassword": "Сбросить пароль",
|
||||
"backToLogin": "Назад к входу",
|
||||
"passwordMinLength": "Пароль должен содержать не менее 12 символов",
|
||||
"passwordMinLength": "Пароль должен содержать не менее {min} символов",
|
||||
"tooManyAttempts": "Слишком много попыток — повторите позже",
|
||||
"invalidLink": "Эта ссылка для сброса недействительна или истекла. Запросите новую.",
|
||||
"failed": "Не удалось сбросить пароль. Попробуйте снова."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Zopakujte heslo",
|
||||
"usernamePlaceholder": "Používateľské meno",
|
||||
"emailPlaceholder": "Email",
|
||||
"passwordPlaceholder": "Heslo (min. 12 znakov)",
|
||||
"passwordPlaceholder": "Heslo (min. {min} znakov)",
|
||||
"confirmPasswordPlaceholder": "Zopakujte heslo",
|
||||
"selectOutfit": "Vyberte si oblečenie",
|
||||
"termsAccept": "Mám 18+ a súhlasím so zmluvnými podmienkami a pravidlami {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Ak sa chcete zaregistrovať, musíte prijať podmienky a pravidlá.",
|
||||
"usernameError": "Vyžaduje sa používateľské meno.",
|
||||
"emailError": "Vyžaduje sa platný e-mail.",
|
||||
"passwordError": "Heslo musí mať aspoň 12 znakov",
|
||||
"passwordError": "Heslo musí mať aspoň {min} znakov",
|
||||
"confirmPasswordError": "Heslá sa nezhodujú.",
|
||||
"termsRequired": "Musíte prijať podmienky a pravidlá.",
|
||||
"usernameRequired": "Vyžaduje sa používateľské meno.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Priemerné",
|
||||
"strengthGood": "Dobré",
|
||||
"strengthStrong": "Silné",
|
||||
"passwordMinLength": "Heslo musí mať aspoň 12 znakov",
|
||||
"passwordMinLength": "Heslo musí mať aspoň {min} znakov",
|
||||
"passwordUpper": "Heslo musí obsahovať aspoň jedno veľké písmeno",
|
||||
"passwordLower": "Heslo musí obsahovať aspoň jedno malé písmeno",
|
||||
"passwordDigit": "Heslo musí obsahovať aspoň jednu číslicu",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Nastavte si nové heslo",
|
||||
"subtitle": "Zvoľte si silné heslo, ktoré inde nepoužívate.",
|
||||
"passwordPlaceholder": "Nové heslo (min. 12 znakov)",
|
||||
"passwordPlaceholder": "Nové heslo (min. {min} znakov)",
|
||||
"resetPassword": "Obnoviť heslo",
|
||||
"backToLogin": "Späť na prihlásenie",
|
||||
"passwordMinLength": "Heslo musí mať aspoň 12 znakov",
|
||||
"passwordMinLength": "Heslo musí mať aspoň {min} znakov",
|
||||
"tooManyAttempts": "Príliš veľa pokusov — skúste to neskôr",
|
||||
"invalidLink": "Tento odkaz na obnovenie je neplatný alebo vypršal. Vyžiadajte si nový.",
|
||||
"failed": "Heslo nebolo možné obnoviť. Skúste to znova."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Поновите лозинку",
|
||||
"usernamePlaceholder": "Корисничко име",
|
||||
"emailPlaceholder": "Емаил",
|
||||
"passwordPlaceholder": "Лозинка (мин 12 знакова)",
|
||||
"passwordPlaceholder": "Лозинка (мин {min} знакова)",
|
||||
"confirmPasswordPlaceholder": "Поновите лозинку",
|
||||
"selectOutfit": "Изаберите своју одећу",
|
||||
"termsAccept": "I am 18+ and accept the {hotel} terms & rules.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Морате прихватити услове и правила да бисте се регистровали.",
|
||||
"usernameError": "Корисничко име је обавезно.",
|
||||
"emailError": "Потребан је важећи имејл.",
|
||||
"passwordError": "Лозинка мора имати најмање 12 знакова",
|
||||
"passwordError": "Лозинка мора имати најмање {min} знакова",
|
||||
"confirmPasswordError": "Лозинке се не поклапају.",
|
||||
"termsRequired": "Морате прихватити услове и правила.",
|
||||
"usernameRequired": "Корисничко име је обавезно.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Средња",
|
||||
"strengthGood": "Добра",
|
||||
"strengthStrong": "Јака",
|
||||
"passwordMinLength": "Лозинка мора имати најмање 12 знакова",
|
||||
"passwordMinLength": "Лозинка мора имати најмање {min} знакова",
|
||||
"passwordUpper": "Лозинка мора садржати најмање једно велико слово",
|
||||
"passwordLower": "Лозинка мора садржати најмање једно мало слово",
|
||||
"passwordDigit": "Лозинка мора садржати најмање једну цифру",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Поставите нову лозинку",
|
||||
"subtitle": "Изаберите јаку лозинку коју не користите другде.",
|
||||
"passwordPlaceholder": "Нова лозинка (мин 12 знакова)",
|
||||
"passwordPlaceholder": "Нова лозинка (мин {min} знакова)",
|
||||
"resetPassword": "Ресетујте лозинку",
|
||||
"backToLogin": "Назад на пријаву",
|
||||
"passwordMinLength": "Лозинка мора имати најмање 12 знакова",
|
||||
"passwordMinLength": "Лозинка мора имати најмање {min} знакова",
|
||||
"tooManyAttempts": "Превише покушаја — покушајте касније",
|
||||
"invalidLink": "Ова веза за ресетовање није исправна или је истекла. Затражите нову.",
|
||||
"failed": "Лозинка није могла бити ресетована. Покушајте поново."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Upprepa lösenordet",
|
||||
"usernamePlaceholder": "Användarnamn",
|
||||
"emailPlaceholder": "E-post",
|
||||
"passwordPlaceholder": "Lösenord (minst 12 tecken)",
|
||||
"passwordPlaceholder": "Lösenord (minst {min} tecken)",
|
||||
"confirmPasswordPlaceholder": "Upprepa lösenordet",
|
||||
"selectOutfit": "Välj din outfit",
|
||||
"termsAccept": "Jag är 18+ och accepterar villkoren och reglerna för {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Du måste acceptera villkoren och reglerna för att registrera dig.",
|
||||
"usernameError": "Användarnamn krävs.",
|
||||
"emailError": "Giltig e-postadress krävs.",
|
||||
"passwordError": "Lösenordet måste bestå av minst 12 tecken.",
|
||||
"passwordError": "Lösenordet måste bestå av minst {min} tecken.",
|
||||
"confirmPasswordError": "Lösenord stämmer inte överens.",
|
||||
"termsRequired": "Du måste acceptera villkoren och reglerna.",
|
||||
"usernameRequired": "Användarnamn krävs.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Medel",
|
||||
"strengthGood": "God",
|
||||
"strengthStrong": "Stark",
|
||||
"passwordMinLength": "Lösenordet måste vara minst 12 tecken",
|
||||
"passwordMinLength": "Lösenordet måste vara minst {min} tecken",
|
||||
"passwordUpper": "Lösenordet måste innehålla minst en stor bokstav",
|
||||
"passwordLower": "Lösenordet måste innehålla minst en liten bokstav",
|
||||
"passwordDigit": "Lösenordet måste innehålla minst en siffra",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Ange ett nytt lösenord",
|
||||
"subtitle": "Välj ett starkt lösenord som du inte använder någon annanstans.",
|
||||
"passwordPlaceholder": "Nytt lösenord (minst 12 tecken)",
|
||||
"passwordPlaceholder": "Nytt lösenord (minst {min} tecken)",
|
||||
"resetPassword": "Återställ lösenord",
|
||||
"backToLogin": "Tillbaka till inloggning",
|
||||
"passwordMinLength": "Lösenordet måste vara minst 12 tecken",
|
||||
"passwordMinLength": "Lösenordet måste vara minst {min} tecken",
|
||||
"tooManyAttempts": "För många försök — försök igen senare",
|
||||
"invalidLink": "Den här återställningslänken är ogiltig eller har gått ut. Begär en ny.",
|
||||
"failed": "Lösenordet kunde inte återställas. Försök igen."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Şifreyi tekrarla",
|
||||
"usernamePlaceholder": "Kullanıcı adı",
|
||||
"emailPlaceholder": "E-posta",
|
||||
"passwordPlaceholder": "Şifre (en az 12 karakter)",
|
||||
"passwordPlaceholder": "Şifre (en az {min} karakter)",
|
||||
"confirmPasswordPlaceholder": "Şifreyi tekrarla",
|
||||
"selectOutfit": "Kıyafetinizi seçin",
|
||||
"termsAccept": "18 yaşındayım ve {hotel} şartlarını ve kurallarını kabul ediyorum.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Kayıt olmak için şartları ve kuralları kabul etmelisiniz.",
|
||||
"usernameError": "Kullanıcı adı gerekli.",
|
||||
"emailError": "Geçerli e-posta gereklidir.",
|
||||
"passwordError": "Şifre en az 12 karakter olmalıdır.",
|
||||
"passwordError": "Şifre en az {min} karakter olmalıdır.",
|
||||
"confirmPasswordError": "Şifreler eşleşmiyor.",
|
||||
"termsRequired": "Şartları ve kuralları kabul etmelisiniz.",
|
||||
"usernameRequired": "Kullanıcı adı gerekli.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Orta",
|
||||
"strengthGood": "İyi",
|
||||
"strengthStrong": "Güçlü",
|
||||
"passwordMinLength": "Şifre en az 12 karakter olmalıdır",
|
||||
"passwordMinLength": "Şifre en az {min} karakter olmalıdır",
|
||||
"passwordUpper": "Şifre en az bir büyük harf içermelidir",
|
||||
"passwordLower": "Şifre en az bir küçük harf içermelidir",
|
||||
"passwordDigit": "Şifre en az bir rakam içermelidir",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Yeni bir şifre belirleyin",
|
||||
"subtitle": "Başka yerde kullanmadığınız güçlü bir şifre seçin.",
|
||||
"passwordPlaceholder": "Yeni şifre (en az 12 karakter)",
|
||||
"passwordPlaceholder": "Yeni şifre (en az {min} karakter)",
|
||||
"resetPassword": "Şifreyi sıfırla",
|
||||
"backToLogin": "Girişe geri dön",
|
||||
"passwordMinLength": "Şifre en az 12 karakter olmalıdır",
|
||||
"passwordMinLength": "Şifre en az {min} karakter olmalıdır",
|
||||
"tooManyAttempts": "Çok fazla deneme — daha sonra tekrar deneyin",
|
||||
"invalidLink": "Bu şifre sıfırlama bağlantısı geçersiz veya süresi dolmuş. Yeni bir tane isteyin.",
|
||||
"failed": "Şifre sıfırlanamadı. Lütfen tekrar deneyin."
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
"confirmPassword": "Повторіть пароль",
|
||||
"usernamePlaceholder": "Ім'я користувача",
|
||||
"emailPlaceholder": "Електронна пошта",
|
||||
"passwordPlaceholder": "Пароль (мінімум 12 символів)",
|
||||
"passwordPlaceholder": "Пароль (мінімум {min} символів)",
|
||||
"confirmPasswordPlaceholder": "Повторіть пароль",
|
||||
"selectOutfit": "Виберіть свій наряд",
|
||||
"termsAccept": "Мені 18+ і я приймаю умови та правила {hotel}.",
|
||||
@@ -897,7 +897,7 @@
|
||||
"termsError": "Ви повинні прийняти умови та правила, щоб зареєструватися.",
|
||||
"usernameError": "Потрібно ввести ім'я користувача.",
|
||||
"emailError": "Потрібна дійсна електронна адреса.",
|
||||
"passwordError": "Пароль має містити щонайменше 12 символів",
|
||||
"passwordError": "Пароль має містити щонайменше {min} символів",
|
||||
"confirmPasswordError": "Паролі не збігаються.",
|
||||
"termsRequired": "Ви повинні прийняти умови та правила.",
|
||||
"usernameRequired": "Потрібно ввести ім'я користувача.",
|
||||
@@ -920,7 +920,7 @@
|
||||
"strengthFair": "Середній",
|
||||
"strengthGood": "Добрий",
|
||||
"strengthStrong": "Надійний",
|
||||
"passwordMinLength": "Пароль має містити щонайменше 12 символів",
|
||||
"passwordMinLength": "Пароль має містити щонайменше {min} символів",
|
||||
"passwordUpper": "Пароль має містити хоча б одну велику літеру",
|
||||
"passwordLower": "Пароль має містити хоча б одну малу літеру",
|
||||
"passwordDigit": "Пароль має містити хоча б одну цифру",
|
||||
@@ -955,10 +955,10 @@
|
||||
"reset": {
|
||||
"title": "Встановіть новий пароль",
|
||||
"subtitle": "Виберіть надійний пароль, який більше не використовується.",
|
||||
"passwordPlaceholder": "Новий пароль (мінімум 12 символів)",
|
||||
"passwordPlaceholder": "Новий пароль (мінімум {min} символів)",
|
||||
"resetPassword": "Скинути пароль",
|
||||
"backToLogin": "Назад до входу",
|
||||
"passwordMinLength": "Пароль має містити щонайменше 12 символів",
|
||||
"passwordMinLength": "Пароль має містити щонайменше {min} символів",
|
||||
"tooManyAttempts": "Забагато спроб — спробуйте пізніше",
|
||||
"invalidLink": "Це посилання для скидання недійсне або прострочене. Запросіть нове.",
|
||||
"failed": "Не вдалося скинути пароль. Спробуйте ще раз."
|
||||
|
||||
Reference in new issue
Block a user