Description
Add internationalisation (i18n) support so that puzzle titles, descriptions, and hints can be served in multiple languages. As LogiQuest grows its player base globally, language should not be a barrier to participation. The system should allow admins to add translations for existing puzzles without duplicating the puzzle record or breaking existing sessions.
Acceptance Criteria
Description
Add internationalisation (i18n) support so that puzzle titles, descriptions, and hints can be served in multiple languages. As LogiQuest grows its player base globally, language should not be a barrier to participation. The system should allow admins to add translations for existing puzzles without duplicating the puzzle record or breaking existing sessions.
Acceptance Criteria
PuzzleTranslationentity stores puzzleId, locale, title, description, and translated hintsGET /puzzles/:idaccepts anAccept-Languageheader and returns content in the requested localeen) is the fallback locale when a translation is unavailablePOST /puzzles/:id/translations(admin-only) adds or updates a translation for a given localeGET /puzzles/:id/translations(admin-only) returns all available locales for a puzzle