Actions & PR Template verbessern #223

Merged
flixcoo merged 42 commits from setup/222-actions-&-pr-template-verbessern into development 2026-05-22 19:13:00 +00:00
13 changed files with 1810 additions and 135 deletions

View File

@@ -34,6 +34,23 @@ body:
- Modul X für bessere Leistung refactored
- Dependencies aktualisiert
- type: checkboxes
id: checklist
attributes:
label: PR-Checkliste
description: Stelle sicher, dass alle Punkte erfüllt sind, bevor du den Pull Request zum Review freigibst.
options:
- label: Ich habe für Navigationen den AdaptiveNavigator` verwendet
required: false
- label: Ich habe alle Strings lokalisiert (de/en)
required: false
- label: Ich habe die Testdaten aktualisiert oder erweitert
required: false
- label: Ich habe das JSON-Schema angepasst
required: false
- label: Ich habe Tests für neue Datenbank/DAO-Funktionen hinzugefügt
required: false
- type: textarea
id: additional_notes
attributes:

View File

@@ -55,3 +55,45 @@ jobs:
- name: Run tests
run: flutter test
localizations:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# Required for Flutter action
- name: Install jq
run: |
apt-get update
apt-get install -y jq
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: 3.41.0
- name: Get dependencies
run: |
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.0-x64
flutter pub get
- name: Check for untranslated messages
run: |
flutter gen-l10n --no-use-deferred-loading
UNTRANSLATED_FILE=lib/l10n/untranslated_messages.json
if [ ! -f "$UNTRANSLATED_FILE" ]; then
echo "Expected $UNTRANSLATED_FILE to be generated, but it does not exist."
exit 1
fi
CONTENT=$(tr -d '[:space:]' < "$UNTRANSLATED_FILE")
if [ "$CONTENT" != "{}" ]; then
echo "Found untranslated messages:"
cat "$UNTRANSLATED_FILE"
exit 1
fi
echo "All messages translated."

View File

@@ -71,13 +71,16 @@ jobs:
update_version:
runs-on: ubuntu-latest
if: gitea.ref == 'refs/heads/development'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
BRANCH_NAME: ${{ gitea.ref_name }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.BOT_TOKEN }}
ref: ${{ gitea.ref_name }}
token: ${GITEA_TOKEN}
ref: $BRANCH_NAME
- name: Increment version number
uses: stikkyapp/update-pubspec-version@v2
@@ -92,21 +95,20 @@ jobs:
git config --global user.name "Gitea Actions [bot]"
git config --global user.email "actions@yannick-weigert.de"
git config pull.rebase false
git pull origin ${{ gitea.ref_name }}
git pull origin "$BRANCH_NAME"
git add pubspec.yaml
git commit -m "Updated version number [skip ci]"
git push origin HEAD:${{ gitea.ref_name }}
git push origin HEAD:$BRANCH_NAME
generate_licenses:
runs-on: ubuntu-latest
needs: update_version
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.BOT_TOKEN }}
ref: ${{ gitea.ref_name }}
token: $GITEA_TOKEN
ref: $BRANCH_NAME
# Required for Flutter action
- name: Install jq
@@ -129,24 +131,139 @@ jobs:
run: flutter pub run dart_pubspec_licenses:generate -o lib/presentation/views/main_menu/settings_view/licenses/oss_licenses.dart
- name: Commit license update
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
run: |
if [ -n "$(git status --porcelain lib test)" ]; then
git config --global user.name "Gitea Actions [bot]"
git config --global user.email "actions@yannick-weigert.de"
git config pull.rebase false
git pull origin ${{ gitea.ref_name }}
git pull origin "$BRANCH_NAME"
git add lib test
git commit -m "Updated licenses [skip ci]"
git push origin HEAD:${{ gitea.ref_name }}
git push origin HEAD:$BRANCH_NAME
else
echo "No changes to commit"
fi
generate_localizations:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# Required for Flutter action
- name: Install jq
run: |
apt-get update
apt-get install -y jq
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: 3.41.0
- name: Get dependencies
run: |
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.0-x64
flutter pub get
- name: Generate localizations
run: flutter gen-l10n --no-use-deferred-loading
- name: Check for changes
id: check_changes
run: |
if [ -n "$(git status --porcelain lib/l10n)" ]; then
echo "has_changes=true" >> "$GITHUB_OUTPUT"
else
echo "has_changes=false" >> "$GITHUB_OUTPUT"
fi
- name: Commit generated localizations
if: steps.check_changes.outputs.has_changes == 'true'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
BRANCH_NAME: ${{ gitea.ref_name }}
run: |
git fetch origin "$BRANCH_NAME"
git checkout "$BRANCH_NAME"
if [ -n "$(git status --porcelain lib test)" ]; then
git config --global user.name "Gitea Actions [bot]"
git config --global user.email "actions@yannick-weigert.de"
git config pull.rebase false
git pull origin "$BRANCH_NAME"
git add lib/l10n
git commit -m "Generated localizations [skip ci]"
git push origin "HEAD:$BRANCH_NAME"
else
echo "No changes to commit"
fi
sort_arb_files:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# Required for Flutter action
- name: Install jq
run: |
apt-get update
apt-get install -y jq
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: 3.41.0
- name: Get dependencies
run: |
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.0-x64
flutter pub get
- name: Sort .arb-Files
run: |
shopt -s nullglob
for file in lib/l10n/arb/app_*.arb; do
echo "Sorting $file"
dart run arb_utils sort "$file"
done
- name: Check for changes
id: check_changes
run: |
if [ -n "$(git status --porcelain lib/l10n/arb)" ]; then
echo "has_changes=true" >> "$GITHUB_OUTPUT"
else
echo "has_changes=false" >> "$GITHUB_OUTPUT"
fi
- name: Commit sorted .arb-Files
if: steps.check_changes.outputs.has_changes == 'true'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
BRANCH_NAME: ${{ gitea.ref_name }}
run: |
git fetch origin "$BRANCH_NAME"
git checkout "$BRANCH_NAME"
if [ -n "$(git status --porcelain lib/l10n/arb)" ]; then
git config --global user.name "Gitea Actions [bot]"
git config --global user.email "actions@yannick-weigert.de"
git config pull.rebase false
git pull origin "$BRANCH_NAME"
git add lib/l10n/arb
git commit -m "Sort .arb files [skip ci]"
git push origin "HEAD:$BRANCH_NAME"
else
echo "No changes to commit"
fi
format:
runs-on: ubuntu-latest
needs: [update_version, generate_licenses]
needs: [update_version, generate_licenses, generate_localizations, sort_arb_files]
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -177,9 +294,10 @@ jobs:
if: steps.check_format.outcome == 'failure'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
BRANCH_NAME: ${{ gitea.ref_name }}
run: |
git fetch origin ${{ gitea.ref_name }}
git checkout ${{ gitea.ref_name }}
git fetch origin "$BRANCH_NAME"
git checkout "$BRANCH_NAME"
dart fix --apply lib
dart fix --apply test
@@ -188,10 +306,10 @@ jobs:
git config --global user.name "Gitea Actions [bot]"
git config --global user.email "actions@yannick-weigert.de"
git config pull.rebase false
git pull origin ${{ gitea.ref_name }}
git pull origin "$BRANCH_NAME"
git add lib test
git commit -m "Auto-format code [skip ci]"
git push origin HEAD:${{ gitea.ref_name }}
git push origin HEAD:$BRANCH_NAME
else
echo "No changes to commit"
fi

View File

@@ -0,0 +1,35 @@
name: Renovate
on:
schedule:
- cron: '0 12 * * 0'
push:
branches:
- setup/222-actions-&-pr-template-verbessern
jobs:
renovate:
runs-on: ubuntu-latest
container:
image: node:20-bookworm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Upgrade git
run: |
apt-get update
apt-get install -y git
git --version
- name: Run Renovate
env:
RENOVATE_TOKEN: ${{ secrets.BOT_TOKEN }}
RENOVATE_PLATFORM: gitea
RENOVATE_ENDPOINT: https://git.yannick-weigert.de
RENOVATE_REPOSITORIES: liquid-development/game-tracker
RENOVATE_GIT_AUTHOR: "Gitea Actions <actions@yannick-weigert.de>"
RENOVATE_CONFIG_FILE: renovate.json
LOG_LEVEL: info
run: |
npm install -g renovate
renovate

2
.gitignore vendored
View File

@@ -3,7 +3,6 @@
# Miscellaneous
*.class
*.lock
*.log
*.pyc
*.swp
@@ -79,6 +78,7 @@ unlinked_spec.ds
local.properties
# iOS/XCode related
Podfile.lock
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside

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';

1431
pubspec.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -32,6 +32,7 @@ dependencies:
uuid: ^4.5.2
dev_dependencies:
arb_utils: ^0.11.0
flutter_test:
sdk: flutter
build_runner: ^2.7.0

32
renovate.json Normal file
View File

@@ -0,0 +1,32 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"onboarding": false,
"requireConfig": "optional",
"baseBranches": ["development"],
"prHourlyLimit": 0,
"prConcurrentLimit": 0,
"enabledManagers": ["pub"],
"pub": {
"enabled": true,
"fileMatch": ["(^|/)pubspec\\.yaml$"]
},
"packageRules": [
{
"matchManagers": ["pub"],
"rangeStrategy": "bump"
},
{
"matchManagers": ["pub"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "dart dependencies (non-major)",
"groupSlug": "dart-non-major"
},
{
"matchManagers": ["pub"],
"matchUpdateTypes": ["major"],
"groupName": "dart dependencies (major)",
"groupSlug": "dart-major"
}
]
}