Actions & PR Template verbessern (#223)
Some checks failed
Push Pipeline / test (push) Successful in 47s
Push Pipeline / update_version (push) Failing after 31s
Push Pipeline / generate_licenses (push) Failing after 36s
Push Pipeline / generate_localizations (push) Successful in 28s
Push Pipeline / sort_arb_files (push) Successful in 37s
Push Pipeline / format (push) Has been skipped
Push Pipeline / build (push) Successful in 5m32s

### Zugehörige Issue(s)

Closes #222

### Beschreibung

Die Push & PR-Pipelines wurden um Überprüfungen und Formatierung für die Lokalisierung erweitert. Außerdem wurde eine PR-Checkliste zum PR-Template hinzugefügt.

### Änderungen

- Template um `PR-Checklist` ergänzt (siehe Diff, gerne Ideen für mehr Punkte)
- PR-Pipeline überprüft jetzt ob `untranslated_messages.json` leer (also `{}`) ist. Wenn nicht, schlägt sie fehl
- In der Push-Pipeline werden jetzt die `.arb`-Files sortiert
- In der Push-Pipeline werden jetzt die lokalisierungen generiert
- Renovate Workflow hinzugefügt, welcher jede Woche die Dependencies überprüft (siehe [diese Test-PR](#244))

### Zusätzliche Anmerkungen

Ich wollt eigentlich auch einen Job zum generieren der DB-Files einbauen. Das hat jedoch nicht geklappt (siehe [hier](https://git.yannick-weigert.de/liquid-development/game-tracker/actions/runs/1013/jobs/3) oder [hier](https://git.yannick-weigert.de/liquid-development/game-tracker/actions/runs/1014/jobs/3)), weil der jedes mal mehr als 10 Minuten gedauert hat und dann getimeoutet ist

![grafik.png](/attachments/49f7fb43-08a2-4378-9b89-fa2334c69344)

Co-authored-by: Gitea Actions [bot] <actions@yannick-weigert.de>
Reviewed-on: #223
Co-authored-by: Felix Kirchner <felix.kirchner.fk@gmail.com>
Co-committed-by: Felix Kirchner <felix.kirchner.fk@gmail.com>
This commit was merged in pull request #223.
This commit is contained in:
2026-05-22 19:12:59 +00:00
committed by Felix Kirchner
parent 31dc899741
commit c10bc9dbdc
13 changed files with 1810 additions and 135 deletions

View File

@@ -44,8 +44,8 @@
},
"delete_group": "Gruppe löschen",
"delete_match": "Spiel löschen",
"drag_to_set_placement": "Ziehen um Platzierung zu setzen",
"description": "Beschreibung",
"drag_to_set_placement": "Ziehen um Platzierung zu setzen",
"edit_game": "Spielvorlage bearbeiten",
"edit_group": "Gruppe bearbeiten",
"edit_match": "Gruppe bearbeiten",
@@ -66,6 +66,7 @@
"group_name": "Gruppenname",
"group_profile": "Gruppenprofil",
"groups": "Gruppen",
"highest_score": "Höchste Punkte",
"home": "Startseite",
"import_canceled": "Import abgebrochen",
"import_data": "Daten importieren",
@@ -76,17 +77,20 @@
"legal_notice": "Impressum",
"licenses": "Lizenzen",
"live_edit_mode": "Live-Bearbeitungsmodus",
"loser": "Verlierer:in",
"lowest_score": "Niedrigste Punkte",
"match_in_progress": "Spiel läuft...",
"match_name": "Spieltitel",
"match_profile": "Spielprofil",
"matches": "Spiele",
"members": "Mitglieder",
"most_points": "Höchste Punkte",
"multiple_winners": "Mehrere Gewinner:innen",
"no_data_available": "Keine Daten verfügbar",
"no_games_created_yet": "Noch keine Spielvorlagen erstellt",
"no_groups_created_yet": "Noch keine Gruppen erstellt",
"no_licenses_found": "Keine Lizenzen gefunden",
"no_license_text_available": "Kein Lizenztext verfügbar",
"no_licenses_found": "Keine Lizenzen gefunden",
"no_matches_created_yet": "Noch keine Spiele erstellt",
"no_players_created_yet": "Noch keine Spieler:in erstellt",
"no_players_found_with_that_name": "Keine Spieler:in mit diesem Namen gefunden",
@@ -98,8 +102,8 @@
"none": "Kein",
"none_group": "Keine",
"not_available": "Nicht verfügbar",
"placement": "Platzierung",
"place": "Platz",
"placement": "Platzierung",
"played_matches": "Gespielte Spiele",
"player_name": "Spieler:innenname",
"players": "Spieler:innen",
@@ -119,17 +123,13 @@
"save_changes": "Änderungen speichern",
"search_for_groups": "Nach Gruppen suchen",
"search_for_players": "Nach Spieler:innen suchen",
"select_loser": "Verlierer:in wählen",
"select_winner": "Gewinner:in wählen",
"select_winners": "Gewinner:innen wählen",
"select_loser": "Verlierer:in wählen",
"selected_players": "Ausgewählte Spieler:innen",
"settings": "Einstellungen",
"single_loser": "Ein:e Verlierer:in",
"single_winner": "Ein:e Gewinner:in",
"highest_score": "Höchste Punkte",
"loser": "Verlierer:in",
"lowest_score": "Niedrigste Punkte",
"multiple_winners": "Mehrere Gewinner:innen",
"statistics": "Statistiken",
"stats": "Statistiken",
"successfully_added_player": "Spieler:in {playerName} erfolgreich hinzugefügt",

View File

@@ -1,6 +1,5 @@
{
"@@locale": "en",
"all_players": "All players",
"all_players_selected": "All players selected",
"amount_of_matches": "Amount of Matches",
@@ -25,8 +24,8 @@
"create_group": "Create Group",
"create_match": "Create match",
"create_new_group": "Create new group",
"created_on": "Created on",
"create_new_match": "Create new match",
"created_on": "Created on",
"data": "Data",
"data_successfully_deleted": "Data successfully deleted",
"data_successfully_exported": "Data successfully exported",
@@ -45,8 +44,8 @@
},
"delete_group": "Delete Group",
"delete_match": "Delete Match",
"drag_to_set_placement": "Drag to set placement",
"description": "Description",
"drag_to_set_placement": "Drag to set placement",
"edit_game": "Edit Game",
"edit_group": "Edit Group",
"edit_match": "Edit Match",
@@ -67,6 +66,7 @@
"group_name": "Group name",
"group_profile": "Group Profile",
"groups": "Groups",
"highest_score": "Highest Score",
"home": "Home",
"import_canceled": "Import canceled",
"import_data": "Import data",
@@ -77,17 +77,20 @@
"legal_notice": "Legal Notice",
"licenses": "Licenses",
"live_edit_mode": "Live Edit Mode",
"loser": "Loser",
"lowest_score": "Lowest Score",
"match_in_progress": "Match in progress...",
"match_name": "Match name",
"match_profile": "Match Profile",
"matches": "Matches",
"members": "Members",
"most_points": "Most Points",
"multiple_winners": "Multiple Winners",
"no_data_available": "No data available",
"no_games_created_yet": "No games created yet",
"no_groups_created_yet": "No groups created yet",
"no_licenses_found": "No licenses found",
"no_license_text_available": "No license text available",
"no_licenses_found": "No licenses found",
"no_matches_created_yet": "No matches created yet",
"no_players_created_yet": "No players created yet",
"no_players_found_with_that_name": "No players found with that name",
@@ -99,8 +102,8 @@
"none": "None",
"none_group": "None",
"not_available": "Not available",
"placement": "Placement",
"place": "place",
"placement": "Placement",
"played_matches": "Played Matches",
"player_name": "Player name",
"players": "Players",
@@ -119,17 +122,13 @@
"save_changes": "Save Changes",
"search_for_groups": "Search for groups",
"search_for_players": "Search for players",
"select_loser": "Select Loser",
"select_winner": "Select Winner",
"select_winners": "Select Winners",
"select_loser": "Select Loser",
"selected_players": "Selected players",
"settings": "Settings",
"single_loser": "Single Loser",
"single_winner": "Single Winner",
"highest_score": "Highest Score",
"loser": "Loser",
"lowest_score": "Lowest Score",
"multiple_winners": "Multiple Winners",
"statistics": "Statistics",
"stats": "Stats",
"successfully_added_player": "Successfully added player {playerName}",

View File

@@ -242,18 +242,18 @@ abstract class AppLocalizations {
/// **'Create new group'**
String get create_new_group;
/// No description provided for @created_on.
///
/// In en, this message translates to:
/// **'Created on'**
String get created_on;
/// No description provided for @create_new_match.
///
/// In en, this message translates to:
/// **'Create new match'**
String get create_new_match;
/// No description provided for @created_on.
///
/// In en, this message translates to:
/// **'Created on'**
String get created_on;
/// No description provided for @data.
///
/// In en, this message translates to:
@@ -320,18 +320,18 @@ abstract class AppLocalizations {
/// **'Delete Match'**
String get delete_match;
/// No description provided for @drag_to_set_placement.
///
/// In en, this message translates to:
/// **'Drag to set placement'**
String get drag_to_set_placement;
/// No description provided for @description.
///
/// In en, this message translates to:
/// **'Description'**
String get description;
/// No description provided for @drag_to_set_placement.
///
/// In en, this message translates to:
/// **'Drag to set placement'**
String get drag_to_set_placement;
/// No description provided for @edit_game.
///
/// In en, this message translates to:
@@ -452,6 +452,12 @@ abstract class AppLocalizations {
/// **'Groups'**
String get groups;
/// No description provided for @highest_score.
///
/// In en, this message translates to:
/// **'Highest Score'**
String get highest_score;
/// No description provided for @home.
///
/// In en, this message translates to:
@@ -512,6 +518,18 @@ abstract class AppLocalizations {
/// **'Live Edit Mode'**
String get live_edit_mode;
/// No description provided for @loser.
///
/// In en, this message translates to:
/// **'Loser'**
String get loser;
/// No description provided for @lowest_score.
///
/// In en, this message translates to:
/// **'Lowest Score'**
String get lowest_score;
/// No description provided for @match_in_progress.
///
/// In en, this message translates to:
@@ -548,6 +566,12 @@ abstract class AppLocalizations {
/// **'Most Points'**
String get most_points;
/// No description provided for @multiple_winners.
///
/// In en, this message translates to:
/// **'Multiple Winners'**
String get multiple_winners;
/// No description provided for @no_data_available.
///
/// In en, this message translates to:
@@ -566,18 +590,18 @@ abstract class AppLocalizations {
/// **'No groups created yet'**
String get no_groups_created_yet;
/// No description provided for @no_licenses_found.
///
/// In en, this message translates to:
/// **'No licenses found'**
String get no_licenses_found;
/// No description provided for @no_license_text_available.
///
/// In en, this message translates to:
/// **'No license text available'**
String get no_license_text_available;
/// No description provided for @no_licenses_found.
///
/// In en, this message translates to:
/// **'No licenses found'**
String get no_licenses_found;
/// No description provided for @no_matches_created_yet.
///
/// In en, this message translates to:
@@ -644,18 +668,18 @@ abstract class AppLocalizations {
/// **'Not available'**
String get not_available;
/// No description provided for @placement.
///
/// In en, this message translates to:
/// **'Placement'**
String get placement;
/// No description provided for @place.
///
/// In en, this message translates to:
/// **'place'**
String get place;
/// No description provided for @placement.
///
/// In en, this message translates to:
/// **'Placement'**
String get placement;
/// No description provided for @played_matches.
///
/// In en, this message translates to:
@@ -764,6 +788,12 @@ abstract class AppLocalizations {
/// **'Search for players'**
String get search_for_players;
/// No description provided for @select_loser.
///
/// In en, this message translates to:
/// **'Select Loser'**
String get select_loser;
/// No description provided for @select_winner.
///
/// In en, this message translates to:
@@ -776,12 +806,6 @@ abstract class AppLocalizations {
/// **'Select Winners'**
String get select_winners;
/// No description provided for @select_loser.
///
/// In en, this message translates to:
/// **'Select Loser'**
String get select_loser;
/// No description provided for @selected_players.
///
/// In en, this message translates to:
@@ -806,30 +830,6 @@ abstract class AppLocalizations {
/// **'Single Winner'**
String get single_winner;
/// No description provided for @highest_score.
///
/// In en, this message translates to:
/// **'Highest Score'**
String get highest_score;
/// No description provided for @loser.
///
/// In en, this message translates to:
/// **'Loser'**
String get loser;
/// No description provided for @lowest_score.
///
/// In en, this message translates to:
/// **'Lowest Score'**
String get lowest_score;
/// No description provided for @multiple_winners.
///
/// In en, this message translates to:
/// **'Multiple Winners'**
String get multiple_winners;
/// No description provided for @statistics.
///
/// In en, this message translates to:

View File

@@ -83,10 +83,10 @@ class AppLocalizationsDe extends AppLocalizations {
String get create_new_group => 'Neue Gruppe erstellen';
@override
String get created_on => 'Erstellt am';
String get create_new_match => 'Neues Spiel erstellen';
@override
String get create_new_match => 'Neues Spiel erstellen';
String get created_on => 'Erstellt am';
@override
String get data => 'Daten';
@@ -132,10 +132,10 @@ class AppLocalizationsDe extends AppLocalizations {
String get delete_match => 'Spiel löschen';
@override
String get drag_to_set_placement => 'Ziehen um Platzierung zu setzen';
String get description => 'Beschreibung';
@override
String get description => 'Beschreibung';
String get drag_to_set_placement => 'Ziehen um Platzierung zu setzen';
@override
String get edit_game => 'Spielvorlage bearbeiten';
@@ -201,6 +201,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get groups => 'Gruppen';
@override
String get highest_score => 'Höchste Punkte';
@override
String get home => 'Startseite';
@@ -231,6 +234,12 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get live_edit_mode => 'Live-Bearbeitungsmodus';
@override
String get loser => 'Verlierer:in';
@override
String get lowest_score => 'Niedrigste Punkte';
@override
String get match_in_progress => 'Spiel läuft...';
@@ -249,6 +258,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get most_points => 'Höchste Punkte';
@override
String get multiple_winners => 'Mehrere Gewinner:innen';
@override
String get no_data_available => 'Keine Daten verfügbar';
@@ -259,10 +271,10 @@ class AppLocalizationsDe extends AppLocalizations {
String get no_groups_created_yet => 'Noch keine Gruppen erstellt';
@override
String get no_licenses_found => 'Keine Lizenzen gefunden';
String get no_license_text_available => 'Kein Lizenztext verfügbar';
@override
String get no_license_text_available => 'Kein Lizenztext verfügbar';
String get no_licenses_found => 'Keine Lizenzen gefunden';
@override
String get no_matches_created_yet => 'Noch keine Spiele erstellt';
@@ -299,10 +311,10 @@ class AppLocalizationsDe extends AppLocalizations {
String get not_available => 'Nicht verfügbar';
@override
String get placement => 'Platzierung';
String get place => 'Platz';
@override
String get place => 'Platz';
String get placement => 'Platzierung';
@override
String get played_matches => 'Gespielte Spiele';
@@ -363,15 +375,15 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get search_for_players => 'Nach Spieler:innen suchen';
@override
String get select_loser => 'Verlierer:in wählen';
@override
String get select_winner => 'Gewinner:in wählen';
@override
String get select_winners => 'Gewinner:innen wählen';
@override
String get select_loser => 'Verlierer:in wählen';
@override
String get selected_players => 'Ausgewählte Spieler:innen';
@@ -384,18 +396,6 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get single_winner => 'Ein:e Gewinner:in';
@override
String get highest_score => 'Höchste Punkte';
@override
String get loser => 'Verlierer:in';
@override
String get lowest_score => 'Niedrigste Punkte';
@override
String get multiple_winners => 'Mehrere Gewinner:innen';
@override
String get statistics => 'Statistiken';

View File

@@ -83,10 +83,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get create_new_group => 'Create new group';
@override
String get created_on => 'Created on';
String get create_new_match => 'Create new match';
@override
String get create_new_match => 'Create new match';
String get created_on => 'Created on';
@override
String get data => 'Data';
@@ -132,10 +132,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get delete_match => 'Delete Match';
@override
String get drag_to_set_placement => 'Drag to set placement';
String get description => 'Description';
@override
String get description => 'Description';
String get drag_to_set_placement => 'Drag to set placement';
@override
String get edit_game => 'Edit Game';
@@ -201,6 +201,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get groups => 'Groups';
@override
String get highest_score => 'Highest Score';
@override
String get home => 'Home';
@@ -231,6 +234,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get live_edit_mode => 'Live Edit Mode';
@override
String get loser => 'Loser';
@override
String get lowest_score => 'Lowest Score';
@override
String get match_in_progress => 'Match in progress...';
@@ -249,6 +258,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get most_points => 'Most Points';
@override
String get multiple_winners => 'Multiple Winners';
@override
String get no_data_available => 'No data available';
@@ -259,10 +271,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get no_groups_created_yet => 'No groups created yet';
@override
String get no_licenses_found => 'No licenses found';
String get no_license_text_available => 'No license text available';
@override
String get no_license_text_available => 'No license text available';
String get no_licenses_found => 'No licenses found';
@override
String get no_matches_created_yet => 'No matches created yet';
@@ -299,10 +311,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get not_available => 'Not available';
@override
String get placement => 'Placement';
String get place => 'place';
@override
String get place => 'place';
String get placement => 'Placement';
@override
String get played_matches => 'Played Matches';
@@ -363,15 +375,15 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get search_for_players => 'Search for players';
@override
String get select_loser => 'Select Loser';
@override
String get select_winner => 'Select Winner';
@override
String get select_winners => 'Select Winners';
@override
String get select_loser => 'Select Loser';
@override
String get selected_players => 'Selected players';
@@ -384,18 +396,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get single_winner => 'Single Winner';
@override
String get highest_score => 'Highest Score';
@override
String get loser => 'Loser';
@override
String get lowest_score => 'Lowest Score';
@override
String get multiple_winners => 'Multiple Winners';
@override
String get statistics => 'Statistics';