feat: auto-translate furnidata per import (nl/en/de/fr/es/tr/it)
Generate localized FurnitureData_<lang>.json files from the master FurnitureData.json + official Habbo hotel translations. Fetches per-hotel furnidata with in-memory cache (6h TTL), maps by classname (* variant aware), and overrides name/description where a translation exists. Full rebuild after every batch/batch-regen/clone import and as admin GET ?action=build-languages; single imports patch incrementally via patchLocalizedFurniDataEntries. Failures are best-effort and never fail the import itself. Files are written to every configured gamedata write path (primary + mirrors) so /gamedata/config/FurnitureData_<lang>.json is available for per-language Nitro clients. New service: src/lib/services/furni-data-i18n.ts with buildLocalizedFurniDataFiles, patchLocalizedFurniDataEntries, FURNIDATA_LANGUAGES (nl/en/de/fr/es/tr/it) and applyTranslationsForTest.
This commit is contained in:
1 parent
984b5bf793
commit
8bb339cc49
5 files changed
+519
No files matched your search
@@ -14,6 +14,7 @@ import {
|
||||
reconcileFurniDataWithItemsBase,
|
||||
verifyAndFixSpriteIds,
|
||||
} from "@/lib/services/furni-data";
|
||||
import { buildLocalizedFurniDataFiles } from "@/lib/services/furni-data-i18n";
|
||||
import {
|
||||
ensureFurniOwnership,
|
||||
reconcileImportedOfferIds,
|
||||
@@ -147,6 +148,11 @@ export const POST = withAdmin(
|
||||
await rebuildCatalogOfferIds();
|
||||
await verifyAndFixSpriteIds();
|
||||
await verifyAndFixInteractionModesCount();
|
||||
try {
|
||||
await buildLocalizedFurniDataFiles();
|
||||
} catch {
|
||||
/* localized build failures are non-fatal */
|
||||
}
|
||||
await ensureFurniOwnership();
|
||||
await syncAssetsToGamedataBundle();
|
||||
await rcon.updateCatalog();
|
||||
|
||||
Reference in new issue
Block a user