refactor(housekeeping): return result from bulkImport, remove dead server calls, sync i18n
Local Build and Deploy / deploy (push) Successful in 1m15s
Local Build and Deploy / deploy (push) Successful in 1m15s
- bulkImportPermissions now returns {count, errors} instead of void
- ImportSection shows per-entry error details in toast
- Remove testRankPermission server action (test is 100% client-side)
- Clean up unused testing state in TestSection
- Sync pages.admin.{import,translations} keys to all 20 languages
- Add importedWithErrors translation key to all locales
This commit is contained in:
1 parent
702ab9fc67
commit
d693d169dd
24 files changed
+722
-61
No files matched your search
@@ -127,24 +127,28 @@ export async function deletePermission(formData: FormData): Promise<void> {
|
|||||||
revalidatePath("/admin/housekeeping");
|
revalidatePath("/admin/housekeeping");
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function bulkImportPermissions(formData: FormData): Promise<void> {
|
export async function bulkImportPermissions(
|
||||||
|
formData: FormData,
|
||||||
|
): Promise<{ count: number; errors: string[] }> {
|
||||||
await requirePermission(PERMS.SETTINGS_EDIT);
|
await requirePermission(PERMS.SETTINGS_EDIT);
|
||||||
|
|
||||||
const raw = sanitize(String(formData.get("json") ?? ""));
|
const raw = sanitize(String(formData.get("json") ?? ""));
|
||||||
if (!raw) return;
|
if (!raw) return { count: 0, errors: ["Empty input"] };
|
||||||
|
|
||||||
let parsed: unknown;
|
let parsed: unknown;
|
||||||
try {
|
try {
|
||||||
parsed = JSON.parse(raw);
|
parsed = JSON.parse(raw);
|
||||||
} catch {
|
} catch {
|
||||||
return;
|
return { count: 0, errors: ["Invalid JSON"] };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Array.isArray(parsed)) {
|
if (!Array.isArray(parsed)) {
|
||||||
return;
|
return { count: 0, errors: ["Expected an array"] };
|
||||||
}
|
}
|
||||||
|
|
||||||
const userId = await currentUserId();
|
const userId = await currentUserId();
|
||||||
|
const errors: string[] = [];
|
||||||
|
let count = 0;
|
||||||
|
|
||||||
for (const item of parsed) {
|
for (const item of parsed) {
|
||||||
const permission = sanitize(String(item.permission ?? ""));
|
const permission = sanitize(String(item.permission ?? ""));
|
||||||
@@ -154,6 +158,7 @@ export async function bulkImportPermissions(formData: FormData): Promise<void> {
|
|||||||
const dependsOn = sanitize(String(item.dependsOn ?? "")) || null;
|
const dependsOn = sanitize(String(item.dependsOn ?? "")) || null;
|
||||||
|
|
||||||
if (!permission || !Number.isFinite(minRank) || minRank < 0) {
|
if (!permission || !Number.isFinite(minRank) || minRank < 0) {
|
||||||
|
errors.push("Invalid entry: " + JSON.stringify(item));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,12 +181,14 @@ export async function bulkImportPermissions(formData: FormData): Promise<void> {
|
|||||||
updatedBy: userId ?? undefined,
|
updatedBy: userId ?? undefined,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
count++;
|
||||||
} catch {
|
} catch {
|
||||||
// Failed to upsert
|
errors.push("Failed to upsert: " + permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
revalidatePath("/admin/housekeeping");
|
revalidatePath("/admin/housekeeping");
|
||||||
|
return { count, errors };
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function exportPermissions(): Promise<string> {
|
export async function exportPermissions(): Promise<string> {
|
||||||
@@ -863,20 +870,4 @@ export async function clearAllPermissions(): Promise<void> {
|
|||||||
revalidatePath("/admin/housekeeping");
|
revalidatePath("/admin/housekeeping");
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function testRankPermission(formData: FormData): Promise<void> {
|
|
||||||
await requirePermission(PERMS.SETTINGS_VIEW);
|
|
||||||
|
|
||||||
const rank = Number(formData.get("testRank"));
|
|
||||||
if (!Number.isFinite(rank) || rank < 0) return;
|
|
||||||
|
|
||||||
const perms = await prisma.websiteHousekeepingPermissions.findMany({
|
|
||||||
where: { minRank: { lte: rank } },
|
|
||||||
orderBy: [{ groupName: "asc" }, { permission: "asc" }],
|
|
||||||
select: { permission: true },
|
|
||||||
});
|
|
||||||
|
|
||||||
const granted = perms.map((p) => p.permission);
|
|
||||||
revalidatePath("/admin/housekeeping");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -10,7 +10,6 @@ import {
|
|||||||
clearAllPermissions,
|
clearAllPermissions,
|
||||||
deletePermission,
|
deletePermission,
|
||||||
exportPermissions,
|
exportPermissions,
|
||||||
testRankPermission,
|
|
||||||
upsertPermission,
|
upsertPermission,
|
||||||
} from "@/actions/admin-housekeeping";
|
} from "@/actions/admin-housekeeping";
|
||||||
|
|
||||||
@@ -429,24 +428,14 @@ export function TestSection({ permissions }: { permissions: HKPerm[] }) {
|
|||||||
rank: number;
|
rank: number;
|
||||||
permissions: string[];
|
permissions: string[];
|
||||||
} | null>(null);
|
} | null>(null);
|
||||||
const [testing, setTesting] = useState(false);
|
|
||||||
|
|
||||||
const handleTest = useCallback(async () => {
|
const handleTest = useCallback(() => {
|
||||||
const rank = Number(testRank);
|
const rank = Number(testRank);
|
||||||
if (!Number.isFinite(rank) || rank < 0)
|
if (!Number.isFinite(rank) || rank < 0)
|
||||||
return toast.error(t("invalidRank"));
|
return toast.error(t("invalidRank"));
|
||||||
setTesting(true);
|
const matching = permissions.filter((p) => p.minRank <= rank);
|
||||||
try {
|
setTestResult({ rank, permissions: matching.map((p) => p.permission) });
|
||||||
const fd = new FormData();
|
toast.success(t("testDone", { count: matching.length }));
|
||||||
fd.set("testRank", testRank);
|
|
||||||
await testRankPermission(fd);
|
|
||||||
const matching = permissions.filter((p) => p.minRank <= rank);
|
|
||||||
setTestResult({ rank, permissions: matching.map((p) => p.permission) });
|
|
||||||
toast.success(t("testDone", { count: matching.length }));
|
|
||||||
} catch {
|
|
||||||
toast.error(t("errorOccurred"));
|
|
||||||
}
|
|
||||||
setTesting(false);
|
|
||||||
}, [testRank, permissions, t]);
|
}, [testRank, permissions, t]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -467,10 +456,9 @@ export function TestSection({ permissions }: { permissions: HKPerm[] }) {
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={handleTest}
|
onClick={handleTest}
|
||||||
disabled={testing}
|
|
||||||
className="btn btn-primary"
|
className="btn btn-primary"
|
||||||
>
|
>
|
||||||
{testing ? t("testing") : t("test")}
|
{t("test")}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{testResult && (
|
{testResult && (
|
||||||
@@ -513,8 +501,17 @@ export function ImportSection() {
|
|||||||
|
|
||||||
setImporting(true);
|
setImporting(true);
|
||||||
try {
|
try {
|
||||||
await bulkImportPermissions(fd);
|
const result = await bulkImportPermissions(fd);
|
||||||
toast.success(t("imported"));
|
if (result.errors.length > 0) {
|
||||||
|
toast.error(
|
||||||
|
t("importedWithErrors", {
|
||||||
|
count: result.count,
|
||||||
|
errors: result.errors.length,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
toast.success(t("imported", { count: result.count }));
|
||||||
|
}
|
||||||
if (textareaRef.current) textareaRef.current.value = "";
|
if (textareaRef.current) textareaRef.current.value = "";
|
||||||
router.refresh();
|
router.refresh();
|
||||||
} catch {
|
} catch {
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Стаи",
|
"title": "Стаи",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Запазва се...",
|
"saving": "Запазва се...",
|
||||||
"cancel": "Отказ"
|
"cancel": "Отказ"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Pokoje",
|
"title": "Pokoje",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Ukládání…",
|
"saving": "Ukládání…",
|
||||||
"cancel": "Zrušit"
|
"cancel": "Zrušit"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Værelser",
|
"title": "Værelser",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Gemmer...",
|
"saving": "Gemmer...",
|
||||||
"cancel": "Annuller"
|
"cancel": "Annuller"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1921,7 +1921,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Räume",
|
"title": "Räume",
|
||||||
@@ -2087,6 +2088,37 @@
|
|||||||
"rounded": "Rounded corners",
|
"rounded": "Rounded corners",
|
||||||
"save": "Save as favicon"
|
"save": "Save as favicon"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"client": {
|
"client": {
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Δωμάτια",
|
"title": "Δωμάτια",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Αποθήκευση…",
|
"saving": "Αποθήκευση…",
|
||||||
"cancel": "Ακύρωση"
|
"cancel": "Ακύρωση"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1876,6 +1876,7 @@
|
|||||||
"emptyInput": "Empty input",
|
"emptyInput": "Empty input",
|
||||||
"invalidJson": "Invalid JSON",
|
"invalidJson": "Invalid JSON",
|
||||||
"imported": "Imported!",
|
"imported": "Imported!",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors",
|
||||||
"presetApplied": "Preset applied!",
|
"presetApplied": "Preset applied!",
|
||||||
"cleared": "All permissions cleared!",
|
"cleared": "All permissions cleared!",
|
||||||
"invalidRank": "Invalid rank",
|
"invalidRank": "Invalid rank",
|
||||||
|
|||||||
+33
-1
@@ -1921,7 +1921,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Salas",
|
"title": "Salas",
|
||||||
@@ -2087,6 +2088,37 @@
|
|||||||
"rounded": "Rounded corners",
|
"rounded": "Rounded corners",
|
||||||
"save": "Save as favicon"
|
"save": "Save as favicon"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"client": {
|
"client": {
|
||||||
|
|||||||
+33
-1
@@ -1921,7 +1921,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Salons",
|
"title": "Salons",
|
||||||
@@ -2087,6 +2088,37 @@
|
|||||||
"rounded": "Rounded corners",
|
"rounded": "Rounded corners",
|
||||||
"save": "Save as favicon"
|
"save": "Save as favicon"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"client": {
|
"client": {
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Sobe",
|
"title": "Sobe",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Spremanje...",
|
"saving": "Spremanje...",
|
||||||
"cancel": "Odustani"
|
"cancel": "Odustani"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Szobák",
|
"title": "Szobák",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Mentés…",
|
"saving": "Mentés…",
|
||||||
"cancel": "Mégse"
|
"cancel": "Mégse"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1921,7 +1921,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Stanze",
|
"title": "Stanze",
|
||||||
@@ -2087,6 +2088,37 @@
|
|||||||
"rounded": "Rounded corners",
|
"rounded": "Rounded corners",
|
||||||
"save": "Save as favicon"
|
"save": "Save as favicon"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"client": {
|
"client": {
|
||||||
|
|||||||
+33
-1
@@ -1641,7 +1641,7 @@
|
|||||||
"pointsForm": {
|
"pointsForm": {
|
||||||
"title": "Luisteraar punten configuratie",
|
"title": "Luisteraar punten configuratie",
|
||||||
"subtitle": "Reward listeners with currency for time spent on the radio. Edits write to website_settings (radio_points_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
|
"subtitle": "Reward listeners with currency for time spent on the radio. Edits write to website_settings (radio_points_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
|
||||||
"points": "Points",
|
"points": "Points",
|
||||||
"enabled": "Enabled",
|
"enabled": "Enabled",
|
||||||
"disabled": "Disabled",
|
"disabled": "Disabled",
|
||||||
"perMinute": "Per minute",
|
"perMinute": "Per minute",
|
||||||
@@ -1876,6 +1876,7 @@
|
|||||||
"emptyInput": "Lege invoer",
|
"emptyInput": "Lege invoer",
|
||||||
"invalidJson": "Ongeldige JSON",
|
"invalidJson": "Ongeldige JSON",
|
||||||
"imported": "Geïmporteerd!",
|
"imported": "Geïmporteerd!",
|
||||||
|
"importedWithErrors": "{count} permissies geïmporteerd met {errors} fouten",
|
||||||
"presetApplied": "Preset toegepast!",
|
"presetApplied": "Preset toegepast!",
|
||||||
"cleared": "Alle permissies verwijderd!",
|
"cleared": "Alle permissies verwijderd!",
|
||||||
"invalidRank": "Ongeldige rang",
|
"invalidRank": "Ongeldige rang",
|
||||||
@@ -2119,6 +2120,37 @@
|
|||||||
"saving": "Opslaan…",
|
"saving": "Opslaan…",
|
||||||
"cancel": "Annuleren"
|
"cancel": "Annuleren"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Rom",
|
"title": "Rom",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Lagrer …",
|
"saving": "Lagrer …",
|
||||||
"cancel": "Avbryt"
|
"cancel": "Avbryt"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Pokoje",
|
"title": "Pokoje",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Zapisuję…",
|
"saving": "Zapisuję…",
|
||||||
"cancel": "Anuluj"
|
"cancel": "Anuluj"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Quartos",
|
"title": "Quartos",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Salvando…",
|
"saving": "Salvando…",
|
||||||
"cancel": "Cancelar"
|
"cancel": "Cancelar"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Camerele",
|
"title": "Camerele",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Se salvează…",
|
"saving": "Se salvează…",
|
||||||
"cancel": "Anulează"
|
"cancel": "Anulează"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Rooms",
|
"title": "Rooms",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Saving…",
|
"saving": "Saving…",
|
||||||
"cancel": "Cancel"
|
"cancel": "Cancel"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Izby",
|
"title": "Izby",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Ukladá sa…",
|
"saving": "Ukladá sa…",
|
||||||
"cancel": "Zrušiť"
|
"cancel": "Zrušiť"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Собе",
|
"title": "Собе",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Чување…",
|
"saving": "Чување…",
|
||||||
"cancel": "Откажи"
|
"cancel": "Откажи"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Rum",
|
"title": "Rum",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Sparar...",
|
"saving": "Sparar...",
|
||||||
"cancel": "Avbryt"
|
"cancel": "Avbryt"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Odalar",
|
"title": "Odalar",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Kaydediliyor…",
|
"saving": "Kaydediliyor…",
|
||||||
"cancel": "İptal"
|
"cancel": "İptal"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-1
@@ -1957,7 +1957,8 @@
|
|||||||
"auditTitle": "Permission audit log",
|
"auditTitle": "Permission audit log",
|
||||||
"auditHint": "All changes to housekeeping permissions are logged.",
|
"auditHint": "All changes to housekeeping permissions are logged.",
|
||||||
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
"auditLogsAt": "Audit logs are available on the Audit log page.",
|
||||||
"viewAuditLogs": "View audit logs"
|
"viewAuditLogs": "View audit logs",
|
||||||
|
"importedWithErrors": "Imported {count} permissions with {errors} errors"
|
||||||
},
|
},
|
||||||
"rooms": {
|
"rooms": {
|
||||||
"title": "Кімнати",
|
"title": "Кімнати",
|
||||||
@@ -2123,6 +2124,37 @@
|
|||||||
"saving": "Збереження…",
|
"saving": "Збереження…",
|
||||||
"cancel": "Скасувати"
|
"cancel": "Скасувати"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"title": "Import",
|
||||||
|
"subtitle": "Import assets from external sources into your hotel.",
|
||||||
|
"badges": "Badges",
|
||||||
|
"badgesDescription": "Import and manage badge assets from external sources.",
|
||||||
|
"furni": "Furni",
|
||||||
|
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||||||
|
"clothing": "Clothing",
|
||||||
|
"clothingDescription": "Import clothing and wearables for avatars.",
|
||||||
|
"effects": "Effects",
|
||||||
|
"effectsDescription": "Import avatar effects and animations.",
|
||||||
|
"pets": "Pets",
|
||||||
|
"petsDescription": "Import pet data and icons.",
|
||||||
|
"clone": "Clone",
|
||||||
|
"cloneDescription": "Clone existing items from one source to another."
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"title": "Translations",
|
||||||
|
"subtitle": "Translate your hotel into multiple languages.",
|
||||||
|
"tabs": {
|
||||||
|
"cms": "CMS",
|
||||||
|
"client": "Client (Nitro)",
|
||||||
|
"emulator": "Emulator"
|
||||||
|
},
|
||||||
|
"emulator": {
|
||||||
|
"title": "Emulator",
|
||||||
|
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||||||
|
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||||||
|
"fullSettings": "Full settings"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user