From 7bf03ec3889c372bba27225e8948766c124159f0 Mon Sep 17 00:00:00 2001 From: mathiskirchner Date: Thu, 1 Jan 2026 17:42:38 +0100 Subject: [PATCH] added auto-generated files to git --- lib/l10n/generated/app_localizations.dart | 596 +++++++++++++++++++ lib/l10n/generated/app_localizations_de.dart | 270 +++++++++ lib/l10n/generated/app_localizations_en.dart | 269 +++++++++ 3 files changed, 1135 insertions(+) create mode 100644 lib/l10n/generated/app_localizations.dart create mode 100644 lib/l10n/generated/app_localizations_de.dart create mode 100644 lib/l10n/generated/app_localizations_en.dart diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart new file mode 100644 index 0000000..71091ab --- /dev/null +++ b/lib/l10n/generated/app_localizations.dart @@ -0,0 +1,596 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:intl/intl.dart' as intl; + +import 'app_localizations_de.dart'; +import 'app_localizations_en.dart'; + +// ignore_for_file: type=lint + +/// Callers can lookup localized strings with an instance of AppLocalizations +/// returned by `AppLocalizations.of(context)`. +/// +/// Applications need to include `AppLocalizations.delegate()` in their app's +/// `localizationDelegates` list, and the locales they support in the app's +/// `supportedLocales` list. For example: +/// +/// ```dart +/// import 'generated/app_localizations.dart'; +/// +/// return MaterialApp( +/// localizationsDelegates: AppLocalizations.localizationsDelegates, +/// supportedLocales: AppLocalizations.supportedLocales, +/// home: MyApplicationHome(), +/// ); +/// ``` +/// +/// ## Update pubspec.yaml +/// +/// Please make sure to update your pubspec.yaml to include the following +/// packages: +/// +/// ```yaml +/// dependencies: +/// # Internationalization support. +/// flutter_localizations: +/// sdk: flutter +/// intl: any # Use the pinned version from flutter_localizations +/// +/// # Rest of dependencies +/// ``` +/// +/// ## iOS Applications +/// +/// iOS applications define key application metadata, including supported +/// locales, in an Info.plist file that is built into the application bundle. +/// To configure the locales supported by your app, you’ll need to edit this +/// file. +/// +/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. +/// Then, in the Project Navigator, open the Info.plist file under the Runner +/// project’s Runner folder. +/// +/// Next, select the Information Property List item, select Add Item from the +/// Editor menu, then select Localizations from the pop-up menu. +/// +/// Select and expand the newly-created Localizations item then, for each +/// locale your application supports, add a new item and select the locale +/// you wish to add from the pop-up menu in the Value field. This list should +/// be consistent with the languages listed in the AppLocalizations.supportedLocales +/// property. +abstract class AppLocalizations { + AppLocalizations(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + + final String localeName; + + static AppLocalizations? of(BuildContext context) { + return Localizations.of(context, AppLocalizations); + } + + static const LocalizationsDelegate delegate = + _AppLocalizationsDelegate(); + + /// A list of this localizations delegate along with the default localizations + /// delegates. + /// + /// Returns a list of localizations delegates containing this delegate along with + /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, + /// and GlobalWidgetsLocalizations.delegate. + /// + /// Additional delegates can be added by appending to this list in + /// MaterialApp. This list does not have to be used at all if a custom list + /// of delegates is preferred or required. + static const List> localizationsDelegates = + >[ + delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ]; + + /// A list of this localizations delegate's supported locales. + static const List supportedLocales = [ + Locale('de'), + Locale('en'), + ]; + + /// Label for choosing a group + /// + /// In en, this message translates to: + /// **'Choose Group'** + String get choose_group; + + /// Button text to create a new match + /// + /// In en, this message translates to: + /// **'Create new match'** + String get create_new_match; + + /// Label for choosing a ruleset + /// + /// In en, this message translates to: + /// **'Choose Ruleset'** + String get choose_ruleset; + + /// Label for choosing a game + /// + /// In en, this message translates to: + /// **'Choose Game'** + String get choose_game; + + /// Label to select the winner + /// + /// In en, this message translates to: + /// **'Select Winner:'** + String get select_winner; + + /// Message when no recent matches exist + /// + /// In en, this message translates to: + /// **'No recent matches available'** + String get no_recent_matches_available; + + /// No description provided for @no_second_match_available. + /// + /// In en, this message translates to: + /// **'No second match available'** + String get no_second_match_available; + + /// Confirmation dialog for deleting all data + /// + /// In en, this message translates to: + /// **'Delete all data?'** + String get delete_all_data; + + /// Cancel button text + /// + /// In en, this message translates to: + /// **'Cancel'** + String get cancel; + + /// Delete button text + /// + /// In en, this message translates to: + /// **'Delete'** + String get delete; + + /// Button text to create a new group + /// + /// In en, this message translates to: + /// **'Create new group'** + String get create_new_group; + + /// Error message when group creation fails + /// + /// In en, this message translates to: + /// **'Error while creating group, please try again'** + String get error_while_creating_group_please_try_again; + + /// Shows the number of selected players + /// + /// In en, this message translates to: + /// **'Selected players: {count}'** + String selected_players(int count); + + /// Message when no players are selected + /// + /// In en, this message translates to: + /// **'No players selected'** + String get no_players_selected; + + /// Label for all players list + /// + /// In en, this message translates to: + /// **'All players:'** + String get all_players; + + /// Success message when adding a player + /// + /// In en, this message translates to: + /// **'Successfully added player {playerName}.'** + String successfully_added_player(String playerName); + + /// Error message when adding a player fails + /// + /// In en, this message translates to: + /// **'Could not add player {playerName}.'** + String could_not_add_player(String playerName); + + /// Shows the winner's name + /// + /// In en, this message translates to: + /// **'Winner: {winnerName}'** + String winner(String winnerName); + + /// Players label + /// + /// In en, this message translates to: + /// **'Players'** + String get players; + + /// Message when no data is available + /// + /// In en, this message translates to: + /// **'No data available.'** + String get no_data_available; + + /// Label for matches + /// + /// In en, this message translates to: + /// **'Matches'** + String get matches; + + /// Label for groups + /// + /// In en, this message translates to: + /// **'Groups'** + String get groups; + + /// Title for recent matches section + /// + /// In en, this message translates to: + /// **'Recent Matches'** + String get recent_matches; + + /// Title for quick create section + /// + /// In en, this message translates to: + /// **'Quick Create'** + String get quick_create; + + /// Label for winner field + /// + /// In en, this message translates to: + /// **'Winner'** + String get winner_label; + + /// Label for ruleset field + /// + /// In en, this message translates to: + /// **'Ruleset'** + String get ruleset_label; + + /// Message when match is in progress + /// + /// In en, this message translates to: + /// **'Match in progress...'** + String get match_in_progress; + + /// Menu label + /// + /// In en, this message translates to: + /// **'Menu'** + String get menu; + + /// Settings label + /// + /// In en, this message translates to: + /// **'Settings'** + String get settings; + + /// Export data menu item + /// + /// In en, this message translates to: + /// **'Export data'** + String get export_data; + + /// Import data menu item + /// + /// In en, this message translates to: + /// **'Import data'** + String get import_data; + + /// Warning message for irreversible actions + /// + /// In en, this message translates to: + /// **'This can\'t be undone'** + String get this_cannot_be_undone; + + /// Success message after deleting data + /// + /// In en, this message translates to: + /// **'Data successfully deleted'** + String get data_successfully_deleted; + + /// Success message after importing data + /// + /// In en, this message translates to: + /// **'Data successfully imported'** + String get data_successfully_imported; + + /// Error message for invalid schema + /// + /// In en, this message translates to: + /// **'Invalid Schema'** + String get invalid_schema; + + /// Error message when file cannot be read + /// + /// In en, this message translates to: + /// **'Error reading file'** + String get error_reading_file; + + /// Message when import is canceled + /// + /// In en, this message translates to: + /// **'Import canceled'** + String get import_canceled; + + /// Error message for format exceptions + /// + /// In en, this message translates to: + /// **'Format Exception (see console)'** + String get format_exception; + + /// Error message for unknown exceptions + /// + /// In en, this message translates to: + /// **'Unknown Exception (see console)'** + String get unknown_exception; + + /// Success message after exporting data + /// + /// In en, this message translates to: + /// **'Data successfully exported'** + String get data_successfully_exported; + + /// Message when export is canceled + /// + /// In en, this message translates to: + /// **'Export canceled'** + String get export_canceled; + + /// Undo button text + /// + /// In en, this message translates to: + /// **'Undo'** + String get undo; + + /// Label for wins statistic + /// + /// In en, this message translates to: + /// **'Wins'** + String get wins; + + /// Label for winrate statistic + /// + /// In en, this message translates to: + /// **'Winrate'** + String get winrate; + + /// Label for amount of matches statistic + /// + /// In en, this message translates to: + /// **'Amount of Matches'** + String get amount_of_matches; + + /// Info label + /// + /// In en, this message translates to: + /// **'Info'** + String get info; + + /// Message when no groups exist + /// + /// In en, this message translates to: + /// **'No groups created yet'** + String get no_groups_created_yet; + + /// Message when no players exist + /// + /// In en, this message translates to: + /// **'No players created yet'** + String get no_players_created_yet; + + /// Button text to create a group + /// + /// In en, this message translates to: + /// **'Create Group'** + String get create_group; + + /// Placeholder for group name input + /// + /// In en, this message translates to: + /// **'Group name'** + String get group_name; + + /// Placeholder for player name input + /// + /// In en, this message translates to: + /// **'Player name'** + String get player_name; + + /// Message when no matches exist + /// + /// In en, this message translates to: + /// **'No matches created yet'** + String get no_matches_created_yet; + + /// Placeholder for match name input + /// + /// In en, this message translates to: + /// **'Match name'** + String get match_name; + + /// Game label + /// + /// In en, this message translates to: + /// **'Game'** + String get game; + + /// Ruleset label + /// + /// In en, this message translates to: + /// **'Ruleset'** + String get ruleset; + + /// Group label + /// + /// In en, this message translates to: + /// **'Group'** + String get group; + + /// None option label + /// + /// In en, this message translates to: + /// **'None'** + String get none; + + /// Button text to create a match + /// + /// In en, this message translates to: + /// **'Create match'** + String get create_match; + + /// Message when search returns no results + /// + /// In en, this message translates to: + /// **'No players found with that name'** + String get no_players_found_with_that_name; + + /// Message when all players are added to selection + /// + /// In en, this message translates to: + /// **'All players selected'** + String get all_players_selected; + + /// Date format for today + /// + /// In en, this message translates to: + /// **'Today at {time}'** + String today_at(String time); + + /// Date format for yesterday + /// + /// In en, this message translates to: + /// **'Yesterday at {time}'** + String yesterday_at(String time); + + /// Date format for days ago + /// + /// In en, this message translates to: + /// **'{count} days ago'** + String days_ago(int count); + + /// Home tab label + /// + /// In en, this message translates to: + /// **'Home'** + String get home; + + /// Statistics tab label + /// + /// In en, this message translates to: + /// **'Statistics'** + String get statistics; + + /// Stats tab label (short) + /// + /// In en, this message translates to: + /// **'Stats'** + String get stats; + + /// Shows the number of players + /// + /// In en, this message translates to: + /// **'{count} Players'** + String players_count(int count); + + /// Message when search returns no groups + /// + /// In en, this message translates to: + /// **'There is no group matching your search'** + String get there_is_no_group_matching_your_search; + + /// Placeholder for game name search + /// + /// In en, this message translates to: + /// **'Game Name'** + String get game_name; + + /// Description for single winner ruleset + /// + /// In en, this message translates to: + /// **'Exactly one winner is chosen; ties are resolved by a predefined tiebreaker.'** + String get ruleset_single_winner_desc; + + /// Description for single loser ruleset + /// + /// In en, this message translates to: + /// **'Exactly one loser is determined; last place receives the penalty or consequence.'** + String get ruleset_single_loser_desc; + + /// Description for most points ruleset + /// + /// In en, this message translates to: + /// **'Traditional ruleset: the player with the most points wins.'** + String get ruleset_most_points_desc; + + /// Description for least points ruleset + /// + /// In en, this message translates to: + /// **'Inverse scoring: the player with the fewest points wins.'** + String get ruleset_least_points_desc; + + /// Title for single winner ruleset + /// + /// In en, this message translates to: + /// **'Single Winner'** + String get single_winner; + + /// Title for single loser ruleset + /// + /// In en, this message translates to: + /// **'Single Loser'** + String get single_loser; + + /// Title for most points ruleset + /// + /// In en, this message translates to: + /// **'Most Points'** + String get most_points; + + /// Title for least points ruleset + /// + /// In en, this message translates to: + /// **'Least Points'** + String get least_points; +} + +class _AppLocalizationsDelegate + extends LocalizationsDelegate { + const _AppLocalizationsDelegate(); + + @override + Future load(Locale locale) { + return SynchronousFuture(lookupAppLocalizations(locale)); + } + + @override + bool isSupported(Locale locale) => + ['de', 'en'].contains(locale.languageCode); + + @override + bool shouldReload(_AppLocalizationsDelegate old) => false; +} + +AppLocalizations lookupAppLocalizations(Locale locale) { + // Lookup logic when only language code is specified. + switch (locale.languageCode) { + case 'de': + return AppLocalizationsDe(); + case 'en': + return AppLocalizationsEn(); + } + + throw FlutterError( + 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.', + ); +} diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart new file mode 100644 index 0000000..77476f2 --- /dev/null +++ b/lib/l10n/generated/app_localizations_de.dart @@ -0,0 +1,270 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for German (`de`). +class AppLocalizationsDe extends AppLocalizations { + AppLocalizationsDe([String locale = 'de']) : super(locale); + + @override + String get choose_group => 'Gruppe wählen'; + + @override + String get create_new_match => 'Neues Match erstellen'; + + @override + String get choose_ruleset => 'Regelwerk wählen'; + + @override + String get choose_game => 'Spiel wählen'; + + @override + String get select_winner => 'Gewinner wählen:'; + + @override + String get no_recent_matches_available => 'Keine letzten Matches verfügbar'; + + @override + String get no_second_match_available => 'Kein zweites Match verfügbar'; + + @override + String get delete_all_data => 'Alle Daten löschen?'; + + @override + String get cancel => 'Abbrechen'; + + @override + String get delete => 'Löschen'; + + @override + String get create_new_group => 'Neue Gruppe erstellen'; + + @override + String get error_while_creating_group_please_try_again => + 'Fehler beim Erstellen der Gruppe, bitte erneut versuchen'; + + @override + String selected_players(int count) { + final intl.NumberFormat countNumberFormat = intl.NumberFormat.compact( + locale: localeName, + ); + final String countString = countNumberFormat.format(count); + + return 'Ausgewählte Spieler: $countString'; + } + + @override + String get no_players_selected => 'Keine Spieler ausgewählt'; + + @override + String get all_players => 'Alle Spieler:'; + + @override + String successfully_added_player(String playerName) { + return 'Spieler $playerName erfolgreich hinzugefügt.'; + } + + @override + String could_not_add_player(String playerName) { + return 'Spieler $playerName konnte nicht hinzugefügt werden.'; + } + + @override + String winner(String winnerName) { + return 'Gewinner: $winnerName'; + } + + @override + String get players => 'Spieler'; + + @override + String get no_data_available => 'Keine Daten verfügbar.'; + + @override + String get matches => 'Matches'; + + @override + String get groups => 'Gruppen'; + + @override + String get recent_matches => 'Letzte Matches'; + + @override + String get quick_create => 'Schnellzugriff'; + + @override + String get winner_label => 'Gewinner'; + + @override + String get ruleset_label => 'Regelwerk'; + + @override + String get match_in_progress => 'Match läuft...'; + + @override + String get menu => 'Menü'; + + @override + String get settings => 'Einstellungen'; + + @override + String get export_data => 'Daten exportieren'; + + @override + String get import_data => 'Daten importieren'; + + @override + String get this_cannot_be_undone => + 'Dies kann nicht rückgängig gemacht werden'; + + @override + String get data_successfully_deleted => 'Daten erfolgreich gelöscht'; + + @override + String get data_successfully_imported => 'Daten erfolgreich importiert'; + + @override + String get invalid_schema => 'Ungültiges Schema'; + + @override + String get error_reading_file => 'Fehler beim Lesen der Datei'; + + @override + String get import_canceled => 'Import abgebrochen'; + + @override + String get format_exception => 'Formatfehler (siehe Konsole)'; + + @override + String get unknown_exception => 'Unbekannter Fehler (siehe Konsole)'; + + @override + String get data_successfully_exported => 'Daten erfolgreich exportiert'; + + @override + String get export_canceled => 'Export abgebrochen'; + + @override + String get undo => 'Rückgängig'; + + @override + String get wins => 'Siege'; + + @override + String get winrate => 'Siegquote'; + + @override + String get amount_of_matches => 'Anzahl der Matches'; + + @override + String get info => 'Info'; + + @override + String get no_groups_created_yet => 'Noch keine Gruppen erstellt'; + + @override + String get no_players_created_yet => 'Noch keine Spieler erstellt'; + + @override + String get create_group => 'Gruppe erstellen'; + + @override + String get group_name => 'Gruppenname'; + + @override + String get player_name => 'Spielername'; + + @override + String get no_matches_created_yet => 'Noch keine Matches erstellt'; + + @override + String get match_name => 'Matchname'; + + @override + String get game => 'Spiel'; + + @override + String get ruleset => 'Regelwerk'; + + @override + String get group => 'Gruppe'; + + @override + String get none => 'Keine'; + + @override + String get create_match => 'Match erstellen'; + + @override + String get no_players_found_with_that_name => + 'Keine Spieler mit diesem Namen gefunden'; + + @override + String get all_players_selected => 'Alle Spieler ausgewählt'; + + @override + String today_at(String time) { + return 'Heute um $time'; + } + + @override + String yesterday_at(String time) { + return 'Gestern um $time'; + } + + @override + String days_ago(int count) { + return 'vor $count Tagen'; + } + + @override + String get home => 'Startseite'; + + @override + String get statistics => 'Statistiken'; + + @override + String get stats => 'Statistiken'; + + @override + String players_count(int count) { + return '$count Spieler'; + } + + @override + String get there_is_no_group_matching_your_search => + 'Es gibt keine Gruppe, die deiner Suche entspricht'; + + @override + String get game_name => 'Spielname'; + + @override + String get ruleset_single_winner_desc => + 'Genau ein Gewinner wird gewählt; Unentschieden werden durch einen vordefinierten Tie-Breaker aufgelöst.'; + + @override + String get ruleset_single_loser_desc => + 'Genau ein Verlierer wird bestimmt; der letzte Platz erhält die Strafe oder Konsequenz.'; + + @override + String get ruleset_most_points_desc => + 'Traditionelles Regelwerk: Der Spieler mit den meisten Punkten gewinnt.'; + + @override + String get ruleset_least_points_desc => + 'Umgekehrte Wertung: Der Spieler mit den wenigsten Punkten gewinnt.'; + + @override + String get single_winner => 'Ein Gewinner'; + + @override + String get single_loser => 'Ein Verlierer'; + + @override + String get most_points => 'Höchste Punkte'; + + @override + String get least_points => 'Niedrigste Punkte'; +} diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart new file mode 100644 index 0000000..f6a5b5f --- /dev/null +++ b/lib/l10n/generated/app_localizations_en.dart @@ -0,0 +1,269 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for English (`en`). +class AppLocalizationsEn extends AppLocalizations { + AppLocalizationsEn([String locale = 'en']) : super(locale); + + @override + String get choose_group => 'Choose Group'; + + @override + String get create_new_match => 'Create new match'; + + @override + String get choose_ruleset => 'Choose Ruleset'; + + @override + String get choose_game => 'Choose Game'; + + @override + String get select_winner => 'Select Winner:'; + + @override + String get no_recent_matches_available => 'No recent matches available'; + + @override + String get no_second_match_available => 'No second match available'; + + @override + String get delete_all_data => 'Delete all data?'; + + @override + String get cancel => 'Cancel'; + + @override + String get delete => 'Delete'; + + @override + String get create_new_group => 'Create new group'; + + @override + String get error_while_creating_group_please_try_again => + 'Error while creating group, please try again'; + + @override + String selected_players(int count) { + final intl.NumberFormat countNumberFormat = intl.NumberFormat.compact( + locale: localeName, + ); + final String countString = countNumberFormat.format(count); + + return 'Selected players: $countString'; + } + + @override + String get no_players_selected => 'No players selected'; + + @override + String get all_players => 'All players:'; + + @override + String successfully_added_player(String playerName) { + return 'Successfully added player $playerName.'; + } + + @override + String could_not_add_player(String playerName) { + return 'Could not add player $playerName.'; + } + + @override + String winner(String winnerName) { + return 'Winner: $winnerName'; + } + + @override + String get players => 'Players'; + + @override + String get no_data_available => 'No data available.'; + + @override + String get matches => 'Matches'; + + @override + String get groups => 'Groups'; + + @override + String get recent_matches => 'Recent Matches'; + + @override + String get quick_create => 'Quick Create'; + + @override + String get winner_label => 'Winner'; + + @override + String get ruleset_label => 'Ruleset'; + + @override + String get match_in_progress => 'Match in progress...'; + + @override + String get menu => 'Menu'; + + @override + String get settings => 'Settings'; + + @override + String get export_data => 'Export data'; + + @override + String get import_data => 'Import data'; + + @override + String get this_cannot_be_undone => 'This can\'t be undone'; + + @override + String get data_successfully_deleted => 'Data successfully deleted'; + + @override + String get data_successfully_imported => 'Data successfully imported'; + + @override + String get invalid_schema => 'Invalid Schema'; + + @override + String get error_reading_file => 'Error reading file'; + + @override + String get import_canceled => 'Import canceled'; + + @override + String get format_exception => 'Format Exception (see console)'; + + @override + String get unknown_exception => 'Unknown Exception (see console)'; + + @override + String get data_successfully_exported => 'Data successfully exported'; + + @override + String get export_canceled => 'Export canceled'; + + @override + String get undo => 'Undo'; + + @override + String get wins => 'Wins'; + + @override + String get winrate => 'Winrate'; + + @override + String get amount_of_matches => 'Amount of Matches'; + + @override + String get info => 'Info'; + + @override + String get no_groups_created_yet => 'No groups created yet'; + + @override + String get no_players_created_yet => 'No players created yet'; + + @override + String get create_group => 'Create Group'; + + @override + String get group_name => 'Group name'; + + @override + String get player_name => 'Player name'; + + @override + String get no_matches_created_yet => 'No matches created yet'; + + @override + String get match_name => 'Match name'; + + @override + String get game => 'Game'; + + @override + String get ruleset => 'Ruleset'; + + @override + String get group => 'Group'; + + @override + String get none => 'None'; + + @override + String get create_match => 'Create match'; + + @override + String get no_players_found_with_that_name => + 'No players found with that name'; + + @override + String get all_players_selected => 'All players selected'; + + @override + String today_at(String time) { + return 'Today at $time'; + } + + @override + String yesterday_at(String time) { + return 'Yesterday at $time'; + } + + @override + String days_ago(int count) { + return '$count days ago'; + } + + @override + String get home => 'Home'; + + @override + String get statistics => 'Statistics'; + + @override + String get stats => 'Stats'; + + @override + String players_count(int count) { + return '$count Players'; + } + + @override + String get there_is_no_group_matching_your_search => + 'There is no group matching your search'; + + @override + String get game_name => 'Game Name'; + + @override + String get ruleset_single_winner_desc => + 'Exactly one winner is chosen; ties are resolved by a predefined tiebreaker.'; + + @override + String get ruleset_single_loser_desc => + 'Exactly one loser is determined; last place receives the penalty or consequence.'; + + @override + String get ruleset_most_points_desc => + 'Traditional ruleset: the player with the most points wins.'; + + @override + String get ruleset_least_points_desc => + 'Inverse scoring: the player with the fewest points wins.'; + + @override + String get single_winner => 'Single Winner'; + + @override + String get single_loser => 'Single Loser'; + + @override + String get most_points => 'Most Points'; + + @override + String get least_points => 'Least Points'; +}