Stage 17 round 6 (#13/About): About screen content + app version from git describe
CI / changes (pull_request) Successful in 1s
CI / unit (pull_request) Successful in 8s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 29s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 56s
CI / changes (pull_request) Successful in 1s
CI / unit (pull_request) Successful in 8s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 29s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 56s
- About screen: prominent localized title (Scrabble / Эрудит (Скрэббл)), a rules link (en/ru Wikipedia), and the Random-game / Game-with-friends sections; copy lives in a shared aboutContent module (the landing will reuse it). The random-game move limit inlines the 24h auto-match clock. - App version: Vite define __APP_VERSION__ from VITE_APP_VERSION (default 'dev'), wired as a Docker build-arg sourced from `git describe --tags --always` in the deploy step — no manual version bumps. The fallback keeps a plain/local build working.
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
// Localised "About" / landing copy, shared by the About screen and the public landing
|
||||
// page (Stage 17). Kept out of the flat i18n catalog because it is structured (a heading,
|
||||
// a rules link, two bulleted sections) and only used in these two long-form places.
|
||||
|
||||
import type { Locale } from './i18n/index.svelte';
|
||||
|
||||
export interface AboutContent {
|
||||
/** Prominent heading: "Scrabble" / "Эрудит (Скрэббл)". */
|
||||
title: string;
|
||||
rulesUrl: string;
|
||||
/** Text before the rules link. */
|
||||
rulesPrefix: string;
|
||||
/** The rules link label. */
|
||||
rulesLink: string;
|
||||
randomTitle: string;
|
||||
/** The "respect the opponent's time" note (rendered with a ❗️ prefix). */
|
||||
randomRespect: string;
|
||||
random: string[];
|
||||
friendsTitle: string;
|
||||
friends: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* aboutContent returns the localised About/landing copy. hours is the auto-match move clock
|
||||
* (backend game.DefaultTurnTimeout), inlined into the random-game time-limit bullet.
|
||||
*/
|
||||
export function aboutContent(locale: Locale, hours: number): AboutContent {
|
||||
if (locale === 'ru') {
|
||||
return {
|
||||
title: 'Эрудит (Скрэббл)',
|
||||
rulesUrl: 'https://ru.wikipedia.org/wiki/Скрэббл',
|
||||
rulesPrefix: 'Основные ',
|
||||
rulesLink: 'правила игры',
|
||||
randomTitle: 'Случайная игра',
|
||||
randomRespect: 'Уважайте личное время соперника, будьте терпеливы.',
|
||||
random: [
|
||||
'В игре двое соперников.',
|
||||
'Каждому доступна 1 подсказка в новой партии.',
|
||||
`Лимит времени на ход: ${hours} ч. 00 минут.`,
|
||||
'Время отсутствия задаётся в профиле и продлевает лимит.',
|
||||
],
|
||||
friendsTitle: 'Игра с друзьями',
|
||||
friends: ['До 4-х участников.', 'Количество подсказок регулируется.', 'Произвольный лимит времени.'],
|
||||
};
|
||||
}
|
||||
return {
|
||||
title: 'Scrabble',
|
||||
rulesUrl: 'https://en.wikipedia.org/wiki/Scrabble',
|
||||
rulesPrefix: 'Basic ',
|
||||
rulesLink: 'game rules',
|
||||
randomTitle: 'Random game',
|
||||
randomRespect: "Respect your opponent's time, be patient.",
|
||||
random: [
|
||||
'Two opponents per game.',
|
||||
'Each player gets 1 hint per new game.',
|
||||
`Move time limit: ${hours} h 00 min.`,
|
||||
'An away window set in your profile extends the limit.',
|
||||
],
|
||||
friendsTitle: 'Game with friends',
|
||||
friends: ['Up to 4 players.', 'The number of hints is configurable.', 'A custom time limit.'],
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user