From 2339485e9a45fa71c10e9e31bd957d3ab53fe7c3 Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 21 Aug 2026 14:47:45 +0200 Subject: [PATCH] feat(i18n): add Portuguese, Finnish, Polish, Russian, Arabic, Japanese Extend FURNIDATA_LANGUAGES from 8 to 13 (nl/en/de/fr/es/tr/it/pt plus fi/pl/ru/ar/ja). Official Habbo translations for fi (habbo.fi), pt (habbo.com.br) use hotel gamedata; pl/ru/ar/ja fall back to LibreTranslate en->xx. Docker LibreTranslate now loads 13 language models (en,nl,de,fr,es,tr,it,pt,fi,pl,ru,ar,ja). --- src/lib/services/furni-data-i18n.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lib/services/furni-data-i18n.ts b/src/lib/services/furni-data-i18n.ts index 4fbfe3ec..1efb2b7c 100644 --- a/src/lib/services/furni-data-i18n.ts +++ b/src/lib/services/furni-data-i18n.ts @@ -1,7 +1,8 @@ /** * Localized furnidata builder — generates FurnitureData_.json files - * (nl/en/de/fr/es/tr/it) from the master FurnitureData.json + official - * Habbo translations per hotel. + * (nl/en/de/fr/es/tr/it/pt/fi/pl/ru/ar/ja) from the master FurnitureData.json + * + official Habbo translations per hotel (where available) + LibreTranslate + * fallback for customs. * * On each import we rebuild per-language files so new/updated furniture also * gets its translated names. Official translations are fetched from Habbo's @@ -30,6 +31,12 @@ export const FURNIDATA_LANGUAGES = [ { lang: "es", hotel: "es" as HabboGamedataHotel }, { lang: "tr", hotel: "com.tr" as HabboGamedataHotel }, { lang: "it", hotel: "it" as HabboGamedataHotel }, + { lang: "pt", hotel: "com.br" as HabboGamedataHotel }, + { lang: "fi", hotel: "fi" as HabboGamedataHotel }, + { lang: "pl", hotel: "com" as HabboGamedataHotel }, + { lang: "ru", hotel: "com" as HabboGamedataHotel }, + { lang: "ar", hotel: "com" as HabboGamedataHotel }, + { lang: "ja", hotel: "com" as HabboGamedataHotel }, ] as const; export type FurnidataLang = (typeof FURNIDATA_LANGUAGES)[number]["lang"];