diff --git a/library/components/poster/PosterWall.vue b/library/components/poster/PosterWall.vue index 3c0e77771..b22afe511 100644 --- a/library/components/poster/PosterWall.vue +++ b/library/components/poster/PosterWall.vue @@ -228,7 +228,10 @@ async function exportPoster(item) { // than offering an action that cannot work. // The wall follows the app's locale: the card deck and its QR codes are localised, // and packet-strings.json falls back per key. -const { locale: wallLocale } = useI18n() +// `t` for the wall's own labels, `locale` for the card deck's language. Both come +// from the SAME instance so a label and a printed deck can never disagree about +// which language the reader chose. +const { t, locale: wallLocale } = useI18n() // ⚠ ONE exportState, not two. The composable owns a ref of its own; if the HUD // keeps rendering the wall's while the print actions write to the composable's, a // card-deck print shows NO progress and its errors vanish silently — the mechanism @@ -440,10 +443,10 @@ useShadowStyles( :class="{ 'is-last': lastShown === item.id }" :data-list-id="item.id">
@@ -465,14 +468,14 @@ useShadowStyles(
- Print Options - + {{ t('buttons.printOptions') }} + - + @click="prints.printCardDeck(item)">{{ t('buttons.cardDeck') }} +
@@ -485,12 +488,12 @@ useShadowStyles(