feat(hk): expand search and add operational user overview
This commit is contained in:
1 parent
27447ce029
commit
89526af344
44 files changed
+3740
-416
No files matched your search
@@ -81,3 +81,23 @@ Validation: 1,506 tests passed (six skipped), type checking, lint, translation
|
||||
contracts and a production build with fixture configuration. A browser fixture
|
||||
verified the real dialog at 1280 and 390 pixels; server actions were simulated.
|
||||
The new database migration and package publication have not run in production.
|
||||
|
||||
## Housekeeping search and user overview
|
||||
|
||||
The existing global search now includes furniture, normal/Club catalog categories
|
||||
and both ticket sources. Results respect module permissions, accept single-digit
|
||||
IDs, and remain usable when one source fails. Keyboard navigation and cancellation
|
||||
prevent stale search responses from replacing newer results.
|
||||
|
||||
User details open on an operational overview with up to five records from each
|
||||
authorized source: bans, active mute, support tickets, help tickets, reports,
|
||||
payments, catalog purchases and audit activity. Failed sources are distinguished
|
||||
from empty results. User detail and edit pages also apply log permissions before
|
||||
loading activity and exposing counters.
|
||||
|
||||
Italian and Dutch navigation, user management, news and support labels were
|
||||
reviewed. The new search and overview copy has English, Italian and Dutch text;
|
||||
other locales receive English fallback strings. This is a focused editorial pass,
|
||||
not a full translation of every CMS page. No database migration or dependency
|
||||
change is required. Browser checks use real components with simulated data at
|
||||
1280 and 390 pixels; production database behavior still needs deployment validation.
|
||||
File diff suppressed because it is too large.
Load diff
@@ -6,6 +6,7 @@ import {
|
||||
MonitorSmartphone,
|
||||
Shield,
|
||||
} from "lucide-react";
|
||||
import { useTranslations } from "next-intl";
|
||||
import Link from "@/components/link";
|
||||
import { Badge } from "@/components/ui/badge";
|
||||
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
@@ -25,40 +26,41 @@ interface UserAccountInfoProps {
|
||||
}
|
||||
|
||||
export function UserAccountInfo({ user }: UserAccountInfoProps) {
|
||||
const t = useTranslations("pages.admin.users.presentation");
|
||||
return (
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>Account Details</CardTitle>
|
||||
<CardTitle>{t("accountDetails")}</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
<div className="grid gap-4 sm:grid-cols-2">
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-center gap-3 text-sm">
|
||||
<Calendar className="h-4 w-4 text-muted-foreground shrink-0" />
|
||||
<span className="text-muted-foreground">Registered</span>
|
||||
<span className="text-muted-foreground">{t("registered")}</span>
|
||||
<span className="ml-auto font-medium">
|
||||
{formatDate(new Date(user.accountCreated * 1000), "date")}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-3 text-sm">
|
||||
<Clock className="h-4 w-4 text-muted-foreground shrink-0" />
|
||||
<span className="text-muted-foreground">Last Login</span>
|
||||
<span className="text-muted-foreground">{t("lastLogin")}</span>
|
||||
<span className="ml-auto font-medium">
|
||||
{user.lastLogin
|
||||
? formatDate(new Date(user.lastLogin * 1000))
|
||||
: "Never"}
|
||||
: t("never")}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-3 text-sm">
|
||||
<Globe className="h-4 w-4 text-muted-foreground shrink-0" />
|
||||
<span className="text-muted-foreground">IP Register</span>
|
||||
<span className="text-muted-foreground">{t("ipRegister")}</span>
|
||||
<span className="ml-auto flex items-center gap-1.5">
|
||||
<code className="text-xs font-mono bg-muted px-2 py-0.5 rounded">
|
||||
{user.ipRegister}
|
||||
</code>
|
||||
<Link
|
||||
href={`/admin/users?search=${user.ipRegister}`}
|
||||
title="Find other users with this IP"
|
||||
title={t("findIp")}
|
||||
>
|
||||
<ExternalLink className="h-3 w-3 text-primary" />
|
||||
</Link>
|
||||
@@ -66,14 +68,14 @@ export function UserAccountInfo({ user }: UserAccountInfoProps) {
|
||||
</div>
|
||||
<div className="flex items-center gap-3 text-sm">
|
||||
<Globe className="h-4 w-4 text-muted-foreground shrink-0" />
|
||||
<span className="text-muted-foreground">IP Current</span>
|
||||
<span className="text-muted-foreground">{t("ipCurrent")}</span>
|
||||
<span className="ml-auto flex items-center gap-1.5">
|
||||
<code className="text-xs font-mono bg-muted px-2 py-0.5 rounded">
|
||||
{user.ipCurrent}
|
||||
</code>
|
||||
<Link
|
||||
href={`/admin/users?search=${user.ipCurrent}`}
|
||||
title="Find other users with this IP"
|
||||
title={t("findIp")}
|
||||
>
|
||||
<ExternalLink className="h-3 w-3 text-primary" />
|
||||
</Link>
|
||||
@@ -88,22 +90,22 @@ export function UserAccountInfo({ user }: UserAccountInfoProps) {
|
||||
variant={user.twoFactorConfirmed ? "default" : "outline"}
|
||||
className="ml-auto"
|
||||
>
|
||||
{user.twoFactorConfirmed ? "Enabled" : "Disabled"}
|
||||
{user.twoFactorConfirmed ? t("enabled") : t("disabled")}
|
||||
</Badge>
|
||||
</div>
|
||||
<div className="flex items-center gap-3 text-sm">
|
||||
<MonitorSmartphone className="h-4 w-4 text-muted-foreground shrink-0" />
|
||||
<span className="text-muted-foreground">Machine ID</span>
|
||||
<span className="text-muted-foreground">{t("machineId")}</span>
|
||||
<code className="ml-auto text-xs font-mono bg-muted px-2 py-0.5 rounded truncate max-w-[180px]">
|
||||
{user.machine_id || "N/A"}
|
||||
{user.machine_id || t("unavailable")}
|
||||
</code>
|
||||
</div>
|
||||
<div className="flex items-center gap-3 text-sm">
|
||||
<span className="text-muted-foreground">Email</span>
|
||||
<span className="text-muted-foreground">{t("email")}</span>
|
||||
<span className="ml-auto font-medium">{user.mail}</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-3 text-sm">
|
||||
<span className="text-muted-foreground">Gender</span>
|
||||
<span className="text-muted-foreground">{t("gender")}</span>
|
||||
<Badge variant="outline" className="ml-auto">
|
||||
{user.gender}
|
||||
</Badge>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
"use client";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
interface Badge {
|
||||
id: number;
|
||||
@@ -6,8 +7,9 @@ interface Badge {
|
||||
}
|
||||
|
||||
export function UserBadgesReadonly({ badges }: { badges: Badge[] }) {
|
||||
const t = useTranslations("pages.admin.users.presentation");
|
||||
if (badges.length === 0) {
|
||||
return <p className="text-sm text-muted-foreground">No badges</p>;
|
||||
return <p className="text-sm text-muted-foreground">{t("noBadges")}</p>;
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,95 @@
|
||||
import { MySqlDialect } from "drizzle-orm/mysql-core";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { PERMS } from "@/lib/permission-slugs";
|
||||
import type { PermissionSet } from "@/lib/permissions";
|
||||
|
||||
const state = vi.hoisted(() => ({
|
||||
allowed: new Set<string>(),
|
||||
execute: vi.fn(),
|
||||
}));
|
||||
vi.mock("@/lib/db", () => ({ db: { execute: state.execute } }));
|
||||
vi.mock("@/lib/permissions", async () => ({
|
||||
...(await import("@/lib/permission-slugs")),
|
||||
canAccess: (_: unknown, permission: string) => state.allowed.has(permission),
|
||||
}));
|
||||
|
||||
import { loadUserOverview } from "./load-user-overview";
|
||||
|
||||
const permissions = {} as PermissionSet;
|
||||
const dialect = new MySqlDialect();
|
||||
beforeEach(() => {
|
||||
state.allowed.clear();
|
||||
state.execute
|
||||
.mockReset()
|
||||
.mockResolvedValue([[{ id: 12, title: "Existing record" }], []]);
|
||||
});
|
||||
describe("user operational overview", () => {
|
||||
it("does not query or expose any restricted source", async () => {
|
||||
expect(await loadUserOverview(42, permissions, 4)).toEqual([]);
|
||||
expect(state.execute).not.toHaveBeenCalled();
|
||||
});
|
||||
it.each([
|
||||
[PERMS.BANS_VIEW, ["sanctions"]],
|
||||
[PERMS.TICKETS_VIEW, ["tickets", "help"]],
|
||||
[PERMS.MODERATION_VIEW, ["mute", "reports"]],
|
||||
[PERMS.SHOP_VIEW, ["transactions"]],
|
||||
[PERMS.LOGS_VIEW, ["purchases", "activity"]],
|
||||
])("queries only sources allowed by %s", async (permission, keys) => {
|
||||
state.allowed.add(permission);
|
||||
const result = await loadUserOverview(42, permissions, 4);
|
||||
expect(result.map((section) => section.key)).toEqual(keys);
|
||||
expect(state.execute).toHaveBeenCalledTimes(keys.length);
|
||||
for (const [query] of state.execute.mock.calls) {
|
||||
const compiled = dialect.sqlToQuery(query);
|
||||
expect(compiled.sql).toMatch(/LIMIT 5$/);
|
||||
expect(compiled.params).toContain(42);
|
||||
}
|
||||
});
|
||||
it("keeps accessible sources available when another query fails", async () => {
|
||||
state.allowed.add(PERMS.TICKETS_VIEW);
|
||||
state.execute.mockRejectedValueOnce(new Error("database unavailable"));
|
||||
const result = await loadUserOverview(42, permissions, 4);
|
||||
expect(result[0]).toMatchObject({
|
||||
key: "tickets",
|
||||
state: "error",
|
||||
rows: [],
|
||||
});
|
||||
expect(result[1]).toMatchObject({
|
||||
key: "help",
|
||||
state: "ready",
|
||||
rows: [{ href: "/admin/help-tickets/12" }],
|
||||
});
|
||||
});
|
||||
it("distinguishes an empty source from a failed source", async () => {
|
||||
state.allowed.add(PERMS.SHOP_VIEW);
|
||||
state.execute.mockResolvedValueOnce([[], []]);
|
||||
expect(await loadUserOverview(42, permissions, 4)).toEqual([
|
||||
{
|
||||
key: "transactions",
|
||||
state: "ready",
|
||||
rows: [],
|
||||
href: "/admin/transactions",
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
it("selects and preserves recorded purchase quantities and currency costs", async () => {
|
||||
state.allowed.add(PERMS.LOGS_VIEW);
|
||||
const purchase = {
|
||||
id: 5,
|
||||
title: "Chair",
|
||||
amount: 2,
|
||||
credits: 10,
|
||||
points: 3,
|
||||
pointsType: 5,
|
||||
};
|
||||
state.execute.mockResolvedValueOnce([[purchase], []]);
|
||||
const result = await loadUserOverview(42, permissions, 4);
|
||||
const query = dialect.sqlToQuery(state.execute.mock.calls[0][0]).sql;
|
||||
expect(query).toContain(
|
||||
"amount, cost_credits AS credits, cost_points AS points, points_type AS pointsType",
|
||||
);
|
||||
expect(
|
||||
result.find((section) => section.key === "purchases")?.rows[0],
|
||||
).toMatchObject(purchase);
|
||||
});
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,87 @@
|
||||
import { MySqlDialect } from "drizzle-orm/mysql-core";
|
||||
import { beforeEach, expect, it, vi } from "vitest";
|
||||
|
||||
const state = vi.hoisted(() => ({
|
||||
sql: [] as string[],
|
||||
tables: [] as string[],
|
||||
failLogs: false,
|
||||
}));
|
||||
vi.mock("next/navigation", () => ({
|
||||
notFound: () => {
|
||||
throw new Error("not found");
|
||||
},
|
||||
}));
|
||||
vi.mock("@/lib/db", () => {
|
||||
const tables = Object.fromEntries(
|
||||
["User", "Rooms", "RoomTradeLog", "UsersBadges", "UsersCurrency"].map(
|
||||
(name) => [name, { name }],
|
||||
),
|
||||
);
|
||||
return {
|
||||
...tables,
|
||||
db: {
|
||||
select() {
|
||||
let name = "";
|
||||
const rows = () =>
|
||||
name === "User"
|
||||
? [{ id: 42, username: "User", rank: 2, online: "0" }]
|
||||
: [];
|
||||
const query = {
|
||||
from(table: { name: string }) {
|
||||
name = table.name;
|
||||
state.tables.push(name);
|
||||
return query;
|
||||
},
|
||||
where() {
|
||||
return query;
|
||||
},
|
||||
orderBy() {
|
||||
return query;
|
||||
},
|
||||
limit() {
|
||||
return query;
|
||||
},
|
||||
// biome-ignore lint/suspicious/noThenProperty: Drizzle queries are intentionally awaitable.
|
||||
then(resolve: (value: unknown[]) => unknown) {
|
||||
return Promise.resolve(rows()).then(resolve);
|
||||
},
|
||||
catch() {
|
||||
return Promise.resolve(rows());
|
||||
},
|
||||
};
|
||||
return query;
|
||||
},
|
||||
async execute(query: Parameters<MySqlDialect["sqlToQuery"]>[0]) {
|
||||
const compiled = new MySqlDialect().sqlToQuery(query).sql;
|
||||
state.sql.push(compiled);
|
||||
if (state.failLogs && compiled.includes("chatlogs_room"))
|
||||
throw new Error("unavailable");
|
||||
return [[], []];
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
import { loadUserById } from "./load-user";
|
||||
|
||||
beforeEach(() => {
|
||||
state.sql = [];
|
||||
state.tables = [];
|
||||
state.failLogs = false;
|
||||
});
|
||||
it("skips chat, commands, trade and ban queries when excluded by profile ACL", async () => {
|
||||
const user = await loadUserById("42", { logs: false, bans: false });
|
||||
expect(state.sql.join(" ")).not.toMatch(
|
||||
/chatlogs_room|commandlogs|FROM bans/,
|
||||
);
|
||||
expect(state.tables).not.toContain("RoomTradeLog");
|
||||
expect(user.chatLogs).toEqual([]);
|
||||
expect(user.commandLogs).toEqual([]);
|
||||
expect(user.user.bansReceived).toEqual([]);
|
||||
});
|
||||
it("keeps the user profile available and identifies a failed activity source", async () => {
|
||||
state.failLogs = true;
|
||||
const user = await loadUserById("42", { logs: true, bans: false });
|
||||
expect(user.user.id).toBe(42);
|
||||
expect(user.activityUnavailable).toBe(true);
|
||||
});
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+314
-125
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -54,6 +54,9 @@ vi.mock("@/lib/db", () => {
|
||||
where() {
|
||||
return query;
|
||||
},
|
||||
orderBy() {
|
||||
return query;
|
||||
},
|
||||
async limit() {
|
||||
state.queried.push(table);
|
||||
return [{ id: 1, title: "Match", subtitle: "Data" }];
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { AdminSearchRequest } from "./admin-search-request";
|
||||
|
||||
describe("admin search request ownership", () => {
|
||||
it("rejects a late response after the input changes, even before the next debounce fires", async () => {
|
||||
const requests = new AdminSearchRequest();
|
||||
const first = requests.start();
|
||||
const late = Promise.resolve().then(() => requests.accepts(first));
|
||||
requests.cancel();
|
||||
expect(await late).toBe(false);
|
||||
expect(first.signal.aborted).toBe(true);
|
||||
});
|
||||
it("accepts only the newest request and rejects completion after closing", () => {
|
||||
const requests = new AdminSearchRequest();
|
||||
const first = requests.start();
|
||||
const second = requests.start();
|
||||
expect(requests.accepts(first)).toBe(false);
|
||||
expect(requests.accepts(second)).toBe(true);
|
||||
requests.cancel();
|
||||
expect(requests.accepts(second)).toBe(false);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
/** Owns the single request allowed to update a search dialog. */
|
||||
export class AdminSearchRequest {
|
||||
private current: AbortController | null = null;
|
||||
|
||||
cancel() {
|
||||
this.current?.abort();
|
||||
this.current = null;
|
||||
}
|
||||
|
||||
start() {
|
||||
this.cancel();
|
||||
const controller = new AbortController();
|
||||
this.current = controller;
|
||||
return controller;
|
||||
}
|
||||
|
||||
accepts(controller: AbortController) {
|
||||
return this.current === controller && !controller.signal.aborted;
|
||||
}
|
||||
}
|
||||
@@ -36,16 +36,18 @@ describe("staff smoke contract", () => {
|
||||
expect(detail).toContain("canLiftBan");
|
||||
});
|
||||
|
||||
it("exposes sanction timeline on user show", () => {
|
||||
it("exposes operational overview on user show", () => {
|
||||
expect(
|
||||
existsSync("src/app/admin/users/_components/user-sanction-timeline.tsx"),
|
||||
existsSync(
|
||||
"src/app/admin/users/_components/user-operational-overview.tsx",
|
||||
),
|
||||
).toBe(true);
|
||||
expect(existsSync("src/app/admin/users/_lib/load-user-sanctions.ts")).toBe(
|
||||
expect(existsSync("src/app/admin/users/_lib/load-user-overview.ts")).toBe(
|
||||
true,
|
||||
);
|
||||
expect(
|
||||
readFileSync("src/app/admin/users/show/[id]/page.tsx", "utf8"),
|
||||
).toContain("UserSanctionTimeline");
|
||||
).toContain("UserOperationalOverview");
|
||||
});
|
||||
|
||||
it("applies CMS SQL from drizzle/migrations (not Prisma)", () => {
|
||||
|
||||
@@ -281,6 +281,96 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"users": {
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"myDashboard": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Запазете промените",
|
||||
"saving": "Запазва се...",
|
||||
"cancel": "Отказ"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Uložte změny",
|
||||
"saving": "Ukládání…",
|
||||
"cancel": "Zrušit"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Save changes",
|
||||
"saving": "Gemmer...",
|
||||
"cancel": "Annuller"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1203,6 +1203,84 @@
|
||||
"save": "Änderungen speichern",
|
||||
"saving": "Wird gespeichert…",
|
||||
"cancel": "Abbrechen"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3208,6 +3286,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"radioRequests": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Αποθήκευση αλλαγών",
|
||||
"saving": "Αποθήκευση…",
|
||||
"cancel": "Ακύρωση"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
+87
-2
File diff suppressed because it is too large.
Load diff
@@ -1203,6 +1203,84 @@
|
||||
"save": "Guardar cambios",
|
||||
"saving": "Guardando…",
|
||||
"cancel": "Cancelar"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3208,6 +3286,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"radioRequests": {
|
||||
|
||||
@@ -281,6 +281,96 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"users": {
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"myDashboard": {
|
||||
|
||||
@@ -1203,6 +1203,84 @@
|
||||
"save": "Enregistrer les modifications",
|
||||
"saving": "Enregistrement…",
|
||||
"cancel": "Annuler"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3208,6 +3286,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"radioRequests": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Spremite promjene",
|
||||
"saving": "Spremanje...",
|
||||
"cancel": "Odustani"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Módosítások mentése",
|
||||
"saving": "Mentés…",
|
||||
"cancel": "Mégse"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
+129
-44
File diff suppressed because it is too large.
Load diff
@@ -281,6 +281,96 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"users": {
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"myDashboard": {
|
||||
|
||||
+185
-60
File diff suppressed because it is too large.
Load diff
@@ -1232,6 +1232,84 @@
|
||||
"save": "Lagre endringer",
|
||||
"saving": "Lagrer …",
|
||||
"cancel": "Avbryt"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1233,6 +1233,84 @@
|
||||
"save": "Zapisz zmiany",
|
||||
"saving": "Zapisuję…",
|
||||
"cancel": "Anuluj"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3238,6 +3316,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1233,6 +1233,84 @@
|
||||
"save": "Salvar alterações",
|
||||
"saving": "Salvando…",
|
||||
"cancel": "Cancelar"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3238,6 +3316,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Salvați modificările",
|
||||
"saving": "Se salvează…",
|
||||
"cancel": "Anulează"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1231,6 +1231,84 @@
|
||||
"save": "Save changes",
|
||||
"saving": "Saving…",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3236,6 +3314,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Uložiť zmeny",
|
||||
"saving": "Ukladá sa…",
|
||||
"cancel": "Zrušiť"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Сачувај промене",
|
||||
"saving": "Чување…",
|
||||
"cancel": "Откажи"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Spara ändringar",
|
||||
"saving": "Sparar...",
|
||||
"cancel": "Avbryt"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1233,6 +1233,84 @@
|
||||
"save": "Değişiklikleri kaydet",
|
||||
"saving": "Kaydediliyor…",
|
||||
"cancel": "İptal"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3238,6 +3316,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
@@ -1232,6 +1232,84 @@
|
||||
"save": "Зберегти зміни",
|
||||
"saving": "Збереження…",
|
||||
"cancel": "Скасувати"
|
||||
},
|
||||
"presentation": {
|
||||
"users": "Users",
|
||||
"edit": "Edit",
|
||||
"view": "View",
|
||||
"rank": "Rank {rank}",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"banned": "Banned",
|
||||
"credits": "credits",
|
||||
"diamonds": "diamonds",
|
||||
"duckets": "duckets",
|
||||
"pixels": "pixels",
|
||||
"rooms": "Rooms",
|
||||
"messages": "Messages",
|
||||
"trades": "Trades",
|
||||
"accountDetails": "Account details",
|
||||
"registered": "Registered",
|
||||
"lastLogin": "Last login",
|
||||
"ipRegister": "Registration IP",
|
||||
"ipCurrent": "Current IP",
|
||||
"machineId": "Device ID",
|
||||
"email": "Email",
|
||||
"gender": "Gender",
|
||||
"never": "Never",
|
||||
"findIp": "Find users with this IP",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"unavailable": "Not available",
|
||||
"noBadges": "No badges assigned"
|
||||
},
|
||||
"create": {
|
||||
"newUser": "New user",
|
||||
"title": "Create user",
|
||||
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rank": "Rank",
|
||||
"rankOption": "Rank {rank}",
|
||||
"motto": "Motto (optional)",
|
||||
"usernamePlaceholder": "NewHabbo",
|
||||
"passwordPlaceholder": "At least 6 characters",
|
||||
"mottoPlaceholder": "I'm new here!",
|
||||
"generate": "Generate",
|
||||
"passwordGenerated": "Password generated in the password field.",
|
||||
"required": "Username, email and password are required.",
|
||||
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
|
||||
"passwordLength": "The password must contain at least 6 characters.",
|
||||
"created": "User {username} created."
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
|
||||
"restricted": "You do not have permission to view operational records.",
|
||||
"sanctions": "Recent bans",
|
||||
"mute": "Active mute",
|
||||
"tickets": "Support tickets",
|
||||
"help": "Help center requests",
|
||||
"reports": "In-game reports",
|
||||
"transactions": "Payments",
|
||||
"purchases": "Catalog purchases",
|
||||
"activity": "Recorded staff actions",
|
||||
"openModule": "Open management",
|
||||
"purchaseHint": "Recorded quantities and currency costs.",
|
||||
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
|
||||
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
|
||||
"muteUntil": "Muted until {date}",
|
||||
"error": "This source could not be loaded. Refresh the page to try again.",
|
||||
"empty": "No records found.",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"expired": "Expired",
|
||||
"open": "Open",
|
||||
"closed": "Closed",
|
||||
"reported": "Reported user",
|
||||
"reporter": "Reporter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bans": {
|
||||
@@ -3237,6 +3315,16 @@
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
},
|
||||
"search": {
|
||||
"furniture": "Furniture",
|
||||
"catalog": "Catalog categories",
|
||||
"tickets": "Support tickets",
|
||||
"loading": "Searching…",
|
||||
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
Reference in new issue
Block a user