Initial StartOS package for Station Master (v0.5.1)
Built from source via a git submodule pinned to a tag, not a published image — the Dockerfile, main.ts, and manifest should never need to change for an ordinary version bump, only the submodule pin (see UPDATING.md). One volume, one interface serving the browser client + lobby/intent API + SSE stream from a single origin, no dependencies. The server-wide join secret (D14) is seeded on install, exposed via the Get Join Secret action, and blocks start behind a critical task until retrieved — the same first-set/rotation pattern as actual-budget-startos's admin password. Verified on phoenix.local: installs, the critical task correctly blocks an ordinary start, force-starting confirms the daemon binds its port and serves the client, and store.json correctly holds the install-seeded join secret. Not verified: the Get Join Secret action's execution end-to-end — start-cli's `package action run` fails with a client-side deserialization error that reproduces identically against actual-budget's already-shipped equivalent action, so this looks like a start-cli issue rather than a defect here. icon.svg is still the scaffold's hello-world placeholder — no real Station Master icon exists yet to ship in its place.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
export const DEFAULT_LANG = 'en_US'
|
||||
|
||||
const dict = {
|
||||
// main.ts
|
||||
'Starting Station Master!': 0,
|
||||
'Multiplayer Server': 1,
|
||||
'The multiplayer server is ready': 2,
|
||||
'The multiplayer server is not ready': 3,
|
||||
// interfaces.ts
|
||||
'Multiplayer Table': 4,
|
||||
'Create or join a game, and play in the browser': 5,
|
||||
// actions/getJoinSecret.ts
|
||||
'Get Join Secret': 6,
|
||||
'Retrieve or rotate the secret players need to create or join a game': 7,
|
||||
// init/generateJoinSecret.ts
|
||||
'Get the join secret to share with players': 8,
|
||||
} as const
|
||||
|
||||
/**
|
||||
* Plumbing. DO NOT EDIT.
|
||||
*/
|
||||
export type I18nKey = keyof typeof dict
|
||||
export type LangDict = Record<(typeof dict)[I18nKey], string>
|
||||
export default dict
|
||||
@@ -0,0 +1,48 @@
|
||||
import { LangDict } from './default'
|
||||
|
||||
export default {
|
||||
es_ES: {
|
||||
0: '¡Iniciando Station Master!',
|
||||
1: 'Servidor multijugador',
|
||||
2: 'El servidor multijugador está listo',
|
||||
3: 'El servidor multijugador no está listo',
|
||||
4: 'Mesa multijugador',
|
||||
5: 'Crea o únete a una partida, y juega en el navegador',
|
||||
6: 'Obtener el secreto de acceso',
|
||||
7: 'Recuperar o rotar el secreto que los jugadores necesitan para crear o unirse a una partida',
|
||||
8: 'Obtén el secreto de acceso para compartirlo con los jugadores',
|
||||
},
|
||||
de_DE: {
|
||||
0: 'Starte Station Master!',
|
||||
1: 'Mehrspieler-Server',
|
||||
2: 'Der Mehrspieler-Server ist bereit',
|
||||
3: 'Der Mehrspieler-Server ist nicht bereit',
|
||||
4: 'Mehrspielertisch',
|
||||
5: 'Spiel erstellen oder beitreten und im Browser spielen',
|
||||
6: 'Beitrittsgeheimnis abrufen',
|
||||
7: 'Das Geheimnis abrufen oder erneuern, das Spieler zum Erstellen oder Beitreten einer Partie benötigen',
|
||||
8: 'Hole das Beitrittsgeheimnis, um es mit Spielern zu teilen',
|
||||
},
|
||||
pl_PL: {
|
||||
0: 'Uruchamianie Station Master!',
|
||||
1: 'Serwer wieloosobowy',
|
||||
2: 'Serwer wieloosobowy jest gotowy',
|
||||
3: 'Serwer wieloosobowy nie jest gotowy',
|
||||
4: 'Stół wieloosobowy',
|
||||
5: 'Utwórz lub dołącz do gry i graj w przeglądarce',
|
||||
6: 'Pobierz sekret dołączania',
|
||||
7: 'Pobierz lub wymień sekret potrzebny graczom do tworzenia gier i dołączania do nich',
|
||||
8: 'Pobierz sekret dołączania, aby udostępnić go graczom',
|
||||
},
|
||||
fr_FR: {
|
||||
0: 'Démarrage de Station Master !',
|
||||
1: 'Serveur multijoueur',
|
||||
2: 'Le serveur multijoueur est prêt',
|
||||
3: "Le serveur multijoueur n'est pas prêt",
|
||||
4: 'Table multijoueur',
|
||||
5: 'Créez ou rejoignez une partie, et jouez dans le navigateur',
|
||||
6: 'Obtenir le secret de connexion',
|
||||
7: 'Récupérer ou renouveler le secret dont les joueurs ont besoin pour créer une partie ou la rejoindre',
|
||||
8: 'Obtenez le secret de connexion à partager avec les joueurs',
|
||||
},
|
||||
} satisfies Record<string, LangDict>
|
||||
Reference in New Issue
Block a user