Vue 3 × PokerTH Web — preuve de faisabilité

labs

Cette page monte Vue {{ vueVersion }} (vendorisé, sans build tooling) et importe les modules ESM réels de l'app : modules/i18n.mjs ({{ langCount }} langues) et modules/theme.mjs ({{ presetCount }} presets). Le rendu est déclaratif/réactif — même modèle mental que le QML — mais la logique reste 100 % dans les modules existants.

Langues (module i18n.mjs)

t('connect') → « {{ tr('connect') }} » · t('advTitle') → « {{ tr('advTitle') }} » · t('oddsTitle') → « {{ tr('oddsTitle') }} » · t('showCards') → « {{ tr('showCards') }} »

Chaque clic appelle le setLang() du module ; les libellés ci-dessus sont des bindings Vue sur le vrai t().

Presets de thème (module theme.mjs)

Chaque clic appelle le applyPreset() du module — les attributs data-theme/data-table sont posés sur cette page et la CSS réelle réagit. activePreset() pilote la surbrillance en retour.

Réactivité (v-model)

Zéro addEventListener, zéro getElementById : l'état pilote le DOM. C'est ce qui remplacerait les manipulations manuelles dans une migration écran par écran.

Périmètre volontairement minimal : cette page ne touche à rien de l'app (aucun impact sur pokerth-client.html). Migration envisageable écran par écran — lobby/réglages d'abord, table de jeu en dernier.