diff --git a/src/ui/flutter_app/lib/appearance_settings/models/display_settings.dart b/src/ui/flutter_app/lib/appearance_settings/models/display_settings.dart index d0616ec6e..36cf43848 100644 --- a/src/ui/flutter_app/lib/appearance_settings/models/display_settings.dart +++ b/src/ui/flutter_app/lib/appearance_settings/models/display_settings.dart @@ -81,6 +81,7 @@ class DisplaySettings { this.customWhitePieceImagePath, this.customBlackPieceImagePath, this.boardCornerRadius = 5.0, + this.isAdvantageGraphShown = false, }); /// Encodes a Json style map into a [DisplaySettings] object @@ -206,6 +207,9 @@ class DisplaySettings { @HiveField(35, defaultValue: 5.0) final double boardCornerRadius; + @HiveField(36, defaultValue: false) + final bool isAdvantageGraphShown; + /// Decodes a Json from a [DisplaySettings] object Map toJson() => _$DisplaySettingsToJson(this); } diff --git a/src/ui/flutter_app/lib/appearance_settings/widgets/appearance_settings_page.dart b/src/ui/flutter_app/lib/appearance_settings/widgets/appearance_settings_page.dart index 3f7867e12..8156928ab 100644 --- a/src/ui/flutter_app/lib/appearance_settings/widgets/appearance_settings_page.dart +++ b/src/ui/flutter_app/lib/appearance_settings/widgets/appearance_settings_page.dart @@ -605,6 +605,12 @@ class AppearanceSettingsPage extends StatelessWidget { .copyWith(isPositionalAdvantageIndicatorShown: val), titleString: S.of(context).showPositionalAdvantageIndicator, ), + SettingsListTile.switchTile( + value: displaySettings.isAdvantageGraphShown, + onChanged: (bool val) => DB().displaySettings = + displaySettings.copyWith(isAdvantageGraphShown: val), + titleString: S.of(context).showAdvantageGraph, + ), SettingsListTile( titleString: S.of(context).boardCornerRadius, onTap: () => setBoardCornerRadius(context), diff --git a/src/ui/flutter_app/lib/game_page/services/painters/advantage_graph_painter.dart b/src/ui/flutter_app/lib/game_page/services/painters/advantage_graph_painter.dart new file mode 100644 index 000000000..be303d63a --- /dev/null +++ b/src/ui/flutter_app/lib/game_page/services/painters/advantage_graph_painter.dart @@ -0,0 +1,106 @@ +// This file is part of Sanmill. +// Copyright (C) 2019-2024 The Sanmill developers (see AUTHORS file) +// +// Sanmill is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Sanmill is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'dart:math' as math; + +import 'package:flutter/material.dart'; + +import '../../../shared/database/database.dart'; + +/// A custom painter to draw the advantage trend line, but only for the most recent 20 moves. +/// Positive values indicate white advantage, negative indicate black advantage. +/// If there are more than 20 moves, only the last 20 are shown. +/// As new moves come in, older moves are discarded from the left side. +class AdvantageGraphPainter extends CustomPainter { + AdvantageGraphPainter(this.data); + + final List data; + + @override + void paint(Canvas canvas, Size size) { + // Determine how many data points to show (up to 20). + final int showCount = math.min(20, data.length); + + // If not enough data points, do nothing. + if (showCount < 2) { + return; + } + + // Extract the subset of the data (last showCount moves). + final List shownData = data.sublist(data.length - showCount); + + // Paint for the advantage line. + final Paint linePaint = Paint() + ..color = Color.lerp( + DB().colorSettings.whitePieceColor, + DB().colorSettings.blackPieceColor, + 0.5, + )! + ..strokeWidth = 2 + ..style = PaintingStyle.stroke; + + // Paint for the zero advantage line. + final Paint zeroLinePaint = Paint() + ..color = DB().colorSettings.boardBackgroundColor + ..strokeWidth = 1 + ..style = PaintingStyle.stroke; + + const double margin = 10.0; + final double chartWidth = size.width - margin * 2; + final double chartHeight = size.height - margin * 2; + + // Zero line (value=0) in the vertical center. + final double zeroY = margin + chartHeight / 2; + + // Function to map advantage values [-100, 100] to canvas Y coordinates. + double valueToPixel(int val) { + // val=100 => top (margin) + // val=-100 => bottom (margin+chartHeight) + // val=0 => zeroY + return zeroY - (val * (chartHeight / 200.0)); + } + + // Horizontal step between points for the shownData subset. + final int count = shownData.length; + final double dxStep = chartWidth / (count - 1); + + final Path path = Path(); + for (int i = 0; i < count; i++) { + final double x = margin + i * dxStep; + final double y = valueToPixel(shownData[i]); + if (i == 0) { + path.moveTo(x, y); + } else { + path.lineTo(x, y); + } + } + + // Draw the zero advantage line. + canvas.drawLine( + Offset(margin, zeroY), + Offset(size.width - margin, zeroY), + zeroLinePaint, + ); + + // Draw the line path. + canvas.drawPath(path, linePaint); + } + + @override + bool shouldRepaint(AdvantageGraphPainter oldDelegate) { + return oldDelegate.data != data; + } +} diff --git a/src/ui/flutter_app/lib/game_page/widgets/play_area.dart b/src/ui/flutter_app/lib/game_page/widgets/play_area.dart index 993b2e627..c25083ba9 100644 --- a/src/ui/flutter_app/lib/game_page/widgets/play_area.dart +++ b/src/ui/flutter_app/lib/game_page/widgets/play_area.dart @@ -25,10 +25,12 @@ import '../../shared/database/database.dart'; import '../../shared/services/screenshot_service.dart'; import '../../shared/themes/app_theme.dart'; import '../services/mill.dart'; +import '../services/painters/advantage_graph_painter.dart'; import 'game_page.dart'; import 'modals/game_options_modal.dart'; import 'toolbars/game_toolbar.dart'; +/// The PlayArea widget is the main content of the game page. class PlayArea extends StatefulWidget { /// Creates a PlayArea widget. /// @@ -43,23 +45,41 @@ class PlayArea extends StatefulWidget { } class PlayAreaState extends State { + /// A list to store historical advantage values. + List advantageData = []; + @override void initState() { super.initState(); - // Listen to changes in header icons to update the UI accordingly. + // Listen to changes in header icons (usually triggered after a move). GameController().headerIconsNotifier.addListener(_updateUI); + + // Optionally, initialize advantageData with the current value if needed: + advantageData.add(_getCurrentAdvantageValue()); } @override void dispose() { - // Remove the listener when disposing to prevent memory leaks. GameController().headerIconsNotifier.removeListener(_updateUI); super.dispose(); } + /// Retrieve the current advantage value from GameController. + /// value > 0 means white advantage, value < 0 means black advantage. + /// The range is [-100, 100]. + int _getCurrentAdvantageValue() { + final int value = + GameController().value == null ? 0 : int.parse(GameController().value!); + return value; + } + /// Updates the UI by calling setState. + /// Also append the current advantage value to the list so that + /// after each move, the chart will reflect the latest advantage trend. void _updateUI() { - setState(() {}); + setState(() { + advantageData.add(_getCurrentAdvantageValue()); + }); } /// Takes a screenshot and saves it to the specified [storageLocation] with an optional [filename]. @@ -343,7 +363,7 @@ class PlayAreaState extends State { // Check if the toolbar should be displayed at the bottom. final bool isToolbarAtBottom = DB().displaySettings.isToolbarAtBottom; - // Build the main content of the page. + // The main column of the page content (without the bottom toolbars). final Widget mainContent = SizedBox( width: dimension, child: SafeArea( @@ -356,7 +376,7 @@ class PlayAreaState extends State { child: Column( children: [ GameHeader(), - // Conditionally display the piece count row based on display settings and game mode. + // Display piece counts if needed if ((DB().displaySettings.isUnplacedAndRemovedPiecesShown || GameController().gameInstance.gameMode == GameMode.setupPosition) && @@ -365,18 +385,19 @@ class PlayAreaState extends State { _buildPieceCountRow() else const SizedBox(height: AppTheme.boardMargin), - // Display the game board with the selected board image. + + // The game board NativeScreenshot( controller: ScreenshotService.screenshotController, child: Container( alignment: Alignment.center, child: GameBoard( - boardImage: widget - .boardImage, // Pass the ImageProvider to GameBoard + boardImage: widget.boardImage, ), ), ), - // Conditionally display the removed piece count row. + + // Display removed piece count if needed if ((DB().displaySettings.isUnplacedAndRemovedPiecesShown || GameController().gameInstance.gameMode == GameMode.setupPosition) && @@ -385,12 +406,26 @@ class PlayAreaState extends State { _buildRemovedPieceCountRow() else const SizedBox(height: AppTheme.boardMargin), - // Display the setup position toolbar if in setup mode and toolbar is not at bottom. + + // Insert the advantage trend chart below the board and above the next toolbar rows. + // Only show if there's data. + if (DB().displaySettings.isAdvantageGraphShown && + advantageData.isNotEmpty) + SizedBox( + height: 150, + width: double.infinity, + child: CustomPaint( + painter: AdvantageGraphPainter(advantageData), + ), + ), + + // Setup position toolbar if in setup mode and toolbar is not at bottom if (GameController().gameInstance.gameMode == GameMode.setupPosition && !isToolbarAtBottom) const SetupPositionToolbar(), - // Display the history navigation toolbar based on display settings and game mode. + + // History navigation toolbar if enabled, not in setup mode, and not at bottom if (DB().displaySettings.isHistoryNavigationToolbarShown && GameController().gameInstance.gameMode != GameMode.setupPosition && @@ -402,7 +437,8 @@ class PlayAreaState extends State { children: _buildToolbarItems( context, _getHistoryNavToolbarItems(context)), ), - // Display the analysis toolbar if enabled in display settings and toolbar is not at bottom. + + // Analysis toolbar if enabled and not at bottom if (DB().displaySettings.isAnalysisToolbarShown && !isToolbarAtBottom) GamePageToolbar( @@ -412,7 +448,8 @@ class PlayAreaState extends State { children: _buildToolbarItems( context, _getAnalysisToolbarItems(context)), ), - // Display the main toolbar if not in setup mode and toolbar is not at bottom. + + // Main toolbar if not in setup mode and not at bottom if (GameController().gameInstance.gameMode != GameMode.setupPosition && !isToolbarAtBottom) @@ -423,6 +460,7 @@ class PlayAreaState extends State { children: _buildToolbarItems( context, _getMainToolbarItems(context)), ), + const SizedBox(height: AppTheme.boardMargin), ], ), @@ -430,7 +468,7 @@ class PlayAreaState extends State { ), ); - // If toolbar should be at the bottom, use a Column with main content and toolbar separated. + // If toolbar should be at the bottom, separate them. if (isToolbarAtBottom) { return SizedBox( width: dimension, @@ -440,12 +478,14 @@ class PlayAreaState extends State { left: false, child: Column( children: [ - // Expanded to take up available space above the toolbar Expanded(child: mainContent), - // Display all toolbars at the bottom + + // Setup position toolbar if in setup mode if (GameController().gameInstance.gameMode == GameMode.setupPosition) const SetupPositionToolbar(), + + // History navigation toolbar if enabled and not in setup mode if (DB().displaySettings.isHistoryNavigationToolbarShown && GameController().gameInstance.gameMode != GameMode.setupPosition) @@ -456,7 +496,8 @@ class PlayAreaState extends State { children: _buildToolbarItems( context, _getHistoryNavToolbarItems(context)), ), - // Display the analysis toolbar if enabled in display settings. + + // Analysis toolbar if enabled if (DB().displaySettings.isAnalysisToolbarShown) GamePageToolbar( backgroundColor: @@ -465,7 +506,8 @@ class PlayAreaState extends State { children: _buildToolbarItems( context, _getAnalysisToolbarItems(context)), ), - // Display the main toolbar if not in setup mode. + + // Main toolbar if not in setup mode if (GameController().gameInstance.gameMode != GameMode.setupPosition) GamePageToolbar( @@ -482,7 +524,7 @@ class PlayAreaState extends State { ); } - // If toolbar is not at the bottom, return the main content as is. + // If toolbar is not at the bottom, just return the main content. return mainContent; }, ); diff --git a/src/ui/flutter_app/lib/l10n/intl_af.arb b/src/ui/flutter_app/lib/l10n/intl_af.arb index f960fe4c2..20d7255f1 100644 --- a/src/ui/flutter_app/lib/l10n/intl_af.arb +++ b/src/ui/flutter_app/lib/l10n/intl_af.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Laat die AI openingstrekke gebruik wat algemeen deur professionele menslike spelers tydens die vroeë spel gebruik word. Let wel: Hierdie funksie is tans slegs beskikbaar vir spesifieke reël stelle.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Wys voordeelgrafiek", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_am.arb b/src/ui/flutter_app/lib/l10n/intl_am.arb index 5a1f9fcfa..a90ae3bd0 100644 --- a/src/ui/flutter_app/lib/l10n/intl_am.arb +++ b/src/ui/flutter_app/lib/l10n/intl_am.arb @@ -1615,5 +1615,7 @@ "daSanQi": "ዳሳንቺ", "@daSanQi": {}, "useOpeningBook_Detail": "በጀርባ ጨዋታ ላይ ባለሙያ ሰው ተጫዋቾች በሚጠቀሙበት ቀጥታ ተንቀሳቃሽ እንዲጠቀም AI ያስተውል። ማስታወሻ: ይህ ባህሪ አሁን ብቻ ለክነት ህጎች ስብስብ ተመድቦ ነው።", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "የጥቅም ግራፍን አሳይ", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_ar.arb b/src/ui/flutter_app/lib/l10n/intl_ar.arb index 4d2cdbd40..4884b1e27 100644 --- a/src/ui/flutter_app/lib/l10n/intl_ar.arb +++ b/src/ui/flutter_app/lib/l10n/intl_ar.arb @@ -1517,5 +1517,7 @@ "daSanQi": "دا سان تشي", "@daSanQi": {}, "useOpeningBook_Detail": "دع الذكاء الاصطناعي يستخدم الافتتاحيات التي يستخدمها اللاعبون المحترفون في بداية اللعبة. ملاحظة: هذه الخاصية متاحة حاليًا لمجموعات قواعد محددة فقط.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "إظهار مخطط الميزة", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_az.arb b/src/ui/flutter_app/lib/l10n/intl_az.arb index 8c38a1aeb..09ab6537e 100644 --- a/src/ui/flutter_app/lib/l10n/intl_az.arb +++ b/src/ui/flutter_app/lib/l10n/intl_az.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "AI-ya oyunun əvvəlində peşəkar insan oyunçular tərəfindən geniş istifadə edilən açılış hərəkətlərini istifadə etməyə icazə ver. Qeyd: Bu xüsusiyyət hazırda yalnız müəyyən qayda dəstləri üçün mövcuddur.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Üstünlük qrafikini göstər", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_be.arb b/src/ui/flutter_app/lib/l10n/intl_be.arb index 93c9667b9..ba304bdb6 100644 --- a/src/ui/flutter_app/lib/l10n/intl_be.arb +++ b/src/ui/flutter_app/lib/l10n/intl_be.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Дазвольце ШІ выкарыстоўваць стартавыя ходы, якія звычайна выкарыстоўваюцца прафесійнымі гульцамі на раннім этапе гульні. Заўвага: Гэтая функцыя на дадзены момант даступная толькі для канкрэтных набораў правілаў.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Паказаць графік перавагі", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_bg.arb b/src/ui/flutter_app/lib/l10n/intl_bg.arb index 66bd08979..b978249b3 100644 --- a/src/ui/flutter_app/lib/l10n/intl_bg.arb +++ b/src/ui/flutter_app/lib/l10n/intl_bg.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Да Санчи", "@daSanQi": {}, "useOpeningBook_Detail": "Позволете на изкуствения интелект да използва начални ходове, често използвани от професионални човешки играчи по време на ранната игра. Забележка: Тази функция в момента е налична само за специфични комплекти правила.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Покажи графиката на предимството", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_bn.arb b/src/ui/flutter_app/lib/l10n/intl_bn.arb index 0108323be..1910f8b96 100644 --- a/src/ui/flutter_app/lib/l10n/intl_bn.arb +++ b/src/ui/flutter_app/lib/l10n/intl_bn.arb @@ -1517,5 +1517,7 @@ "daSanQi": "দা সান চি", "@daSanQi": {}, "useOpeningBook_Detail": "প্রাথমিক খেলার সময় পেশাদার মানব প্লেয়ারদের দ্বারা প্রায়শই ব্যবহৃত ওপেনিং চালগুলি এআই ব্যবহার করতে দিন। দ্রষ্টব্য: এই বৈশিষ্ট্য বর্তমানে কেবল নির্দিষ্ট নিয়ম সেটগুলির জন্য উপলব্ধ।", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "সুবিধার গ্রাফ দেখান", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_bo.arb b/src/ui/flutter_app/lib/l10n/intl_bo.arb index 4eb9b2f7e..8ef3d303c 100644 --- a/src/ui/flutter_app/lib/l10n/intl_bo.arb +++ b/src/ui/flutter_app/lib/l10n/intl_bo.arb @@ -1615,5 +1615,7 @@ "daSanQi": "ད་སམ་ཅི།", "@daSanQi": {}, "useOpeningBook_Detail": "རླུང་མཐུད་དཔར་ཆས་གཞི་ཁྲིད་དོན་ཐོག་ནས་མི་སྐྱོན་པའི་རེའུ་མིག་པ་སྔོན་ལམ་སྤྱིར་བཏང་གི་སྒྲིག་བརྒྱུད་དང་འབྲེལ་བཞིན་རྒྱུ་མཚན་འདི་ད་ལྟ་བུ་ཚད་ལྷག་མཐའ་གཞི་ཁྲིད་རྣམ་པ་རྣམས་ལ་རྩིས་ཐོག་མིན།", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "ངོས་ཕན་རི་མོ་སྟོན།", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_bs.arb b/src/ui/flutter_app/lib/l10n/intl_bs.arb index 75abed034..aa67d6e99 100644 --- a/src/ui/flutter_app/lib/l10n/intl_bs.arb +++ b/src/ui/flutter_app/lib/l10n/intl_bs.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Dopustite AI-u da koristi početne poteze koje često koriste profesionalni ljudski igrači u ranim fazama igre. Napomena: Ova funkcija trenutno je dostupna samo za određene setove pravila.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Prikaži grafikon prednosti", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_cs.arb b/src/ui/flutter_app/lib/l10n/intl_cs.arb index 6607abd96..5b70cc191 100644 --- a/src/ui/flutter_app/lib/l10n/intl_cs.arb +++ b/src/ui/flutter_app/lib/l10n/intl_cs.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Nechte AI používat otevírací tahy, které jsou běžně používány profesionálními hráči v rané fázi hry. Poznámka: Tato funkce je v současné době dostupná pouze pro konkrétní sady pravidel.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Zobrazit graf výhody", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_da.arb b/src/ui/flutter_app/lib/l10n/intl_da.arb index 63b1864f6..524c10ab6 100644 --- a/src/ui/flutter_app/lib/l10n/intl_da.arb +++ b/src/ui/flutter_app/lib/l10n/intl_da.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Lad AI bruge åbningsflytninger, som er almindeligt anvendt af professionelle menneskelige spillere i det tidlige spil. Bemærk: Denne funktion er i øjeblikket kun tilgængelig for bestemte regelsæt.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Vis fordelsgraf", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_de.arb b/src/ui/flutter_app/lib/l10n/intl_de.arb index 587300c61..67efc22eb 100644 --- a/src/ui/flutter_app/lib/l10n/intl_de.arb +++ b/src/ui/flutter_app/lib/l10n/intl_de.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Lassen Sie die KI Eröffnungszüge verwenden, die üblicherweise von professionellen menschlichen Spielern im frühen Spiel verwendet werden. Hinweis: Diese Funktion ist derzeit nur für bestimmte Regelsets verfügbar.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Vorteilsdiagramm anzeigen", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_de_ch.arb b/src/ui/flutter_app/lib/l10n/intl_de_ch.arb index 39ef0e145..9c06088ee 100644 --- a/src/ui/flutter_app/lib/l10n/intl_de_ch.arb +++ b/src/ui/flutter_app/lib/l10n/intl_de_ch.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Lassen Sie die KI Eröffnungszüge verwenden, die üblicherweise von professionellen menschlichen Spielern im frühen Spiel verwendet werden. Hinweis: Diese Funktion ist derzeit nur für bestimmte Regelsets verfügbar.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Vorteilsdiagramm anzeigen", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_el.arb b/src/ui/flutter_app/lib/l10n/intl_el.arb index b8fde7dee..5968e9e53 100644 --- a/src/ui/flutter_app/lib/l10n/intl_el.arb +++ b/src/ui/flutter_app/lib/l10n/intl_el.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Ντασάντσι", "@daSanQi": {}, "useOpeningBook_Detail": "Επιτρέψτε στην AI να χρησιμοποιεί κινήσεις ανοίγματος που συνηθίζονται από επαγγελματίες ανθρώπινους παίκτες κατά το πρώιμο στάδιο του παιχνιδιού. Σημείωση: Αυτή η δυνατότητα είναι διαθέσιμη επί του παρόντος μόνο για συγκεκριμένα σετ κανόνων.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Εμφάνιση γραφήματος πλεονεκτήματος", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_en.arb b/src/ui/flutter_app/lib/l10n/intl_en.arb index d21024790..23d523fb3 100644 --- a/src/ui/flutter_app/lib/l10n/intl_en.arb +++ b/src/ui/flutter_app/lib/l10n/intl_en.arb @@ -1615,5 +1615,9 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Let the AI use opening moves commonly employed by professional human players during the early game. Note: This feature is currently available only for specific rule sets.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Show advantage graph", + "@showAdvantageGraph": {}, + "showAdvantageGraph": "Mostrar gráfico de ventaja", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_es.arb b/src/ui/flutter_app/lib/l10n/intl_es.arb index 398355160..91c37fb42 100644 --- a/src/ui/flutter_app/lib/l10n/intl_es.arb +++ b/src/ui/flutter_app/lib/l10n/intl_es.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Dǎsānqí", "@daSanQi": {}, "useOpeningBook_Detail": "Permita que la IA use movimientos de apertura que comúnmente emplean los jugadores humanos profesionales durante el juego inicial. Nota: Esta característica está disponible actualmente solo para conjuntos de reglas específicos.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Mostrar gráfico de ventaja", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_et.arb b/src/ui/flutter_app/lib/l10n/intl_et.arb index cf5006077..181e94c6b 100644 --- a/src/ui/flutter_app/lib/l10n/intl_et.arb +++ b/src/ui/flutter_app/lib/l10n/intl_et.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Lubage AI-l kasutada avakäike, mida kasutavad tavaliselt professionaalsed inimmängijad varajases mängus. Märkus: See funktsioon on hetkel saadaval ainult teatud reeglistike jaoks.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Kuva eelise graafik", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_fa.arb b/src/ui/flutter_app/lib/l10n/intl_fa.arb index 7db60eff1..f5d3557f4 100644 --- a/src/ui/flutter_app/lib/l10n/intl_fa.arb +++ b/src/ui/flutter_app/lib/l10n/intl_fa.arb @@ -1517,5 +1517,7 @@ "daSanQi": "دا سان چی", "@daSanQi": {}, "useOpeningBook_Detail": "به هوش مصنوعی اجازه دهید از حرکات افتتاحیه که به طور معمول توسط بازیکنان حرفه‌ای انسانی در ابتدای بازی استفاده می‌شود، استفاده کند. توجه: این ویژگی در حال حاضر فقط برای مجموعه‌های قوانین خاص در دسترس است.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "نمودار مزیت را نشان دهید", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_fi.arb b/src/ui/flutter_app/lib/l10n/intl_fi.arb index 99d2b7fb6..4fd8fc118 100644 --- a/src/ui/flutter_app/lib/l10n/intl_fi.arb +++ b/src/ui/flutter_app/lib/l10n/intl_fi.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Anna tekoälyn käyttää aloitusliikkeitä, joita ammattilaiset ihmispelaajat yleisesti käyttävät pelin alussa. Huomautus: Tämä toiminto on tällä hetkellä saatavilla vain tietyille sääntöjoukoille.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Näytä etugraafi", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_fr.arb b/src/ui/flutter_app/lib/l10n/intl_fr.arb index 374c82e76..ef6a5e976 100644 --- a/src/ui/flutter_app/lib/l10n/intl_fr.arb +++ b/src/ui/flutter_app/lib/l10n/intl_fr.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Permettez à l'IA d'utiliser des mouvements d'ouverture couramment employés par les joueurs humains professionnels au début du jeu. Remarque: Cette fonctionnalité est actuellement disponible uniquement pour certains ensembles de règles.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Afficher le graphique d’avantage", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_gu.arb b/src/ui/flutter_app/lib/l10n/intl_gu.arb index 656bc2aba..b9097c550 100644 --- a/src/ui/flutter_app/lib/l10n/intl_gu.arb +++ b/src/ui/flutter_app/lib/l10n/intl_gu.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "પ્રારંભિક રમત દરમિયાન વ્યાવસાયિક માનવ ખેલાડીઓ દ્વારા સામાન્ય રીતે ઉપયોગમાં લેવાતા પ્રારંભિક ચાલો એઆઈને ઉપયોગ કરવા દો. નોંધ: આ સુવિધા હાલમાં કેટલાક વિશિષ્ટ નિયમ સમૂહો માટે જ ઉપલબ્ધ છે.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "લાભ ગ્રાફ બતાવો", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_he.arb b/src/ui/flutter_app/lib/l10n/intl_he.arb index 612de52a6..d9aa9e313 100644 --- a/src/ui/flutter_app/lib/l10n/intl_he.arb +++ b/src/ui/flutter_app/lib/l10n/intl_he.arb @@ -1615,5 +1615,7 @@ "daSanQi": "דאסאנצ'י", "@daSanQi": {}, "useOpeningBook_Detail": "אפשר לבינה המלאכותית להשתמש במהלכי פתיחה שמקובלים על ידי שחקנים מקצועיים בשלב המוקדם של המשחק. הערה: תכונה זו זמינה כעת רק עבור ערכות חוקים מסוימות.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "הצג גרף יתרון", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_hi.arb b/src/ui/flutter_app/lib/l10n/intl_hi.arb index cc4b4ffa6..3e7a4b991 100644 --- a/src/ui/flutter_app/lib/l10n/intl_hi.arb +++ b/src/ui/flutter_app/lib/l10n/intl_hi.arb @@ -1517,5 +1517,7 @@ "daSanQi": "दा सानची", "@daSanQi": {}, "useOpeningBook_Detail": "एआई को शुरुआती खेल के दौरान पेशेवर मानव खिलाड़ियों द्वारा आमतौर पर इस्तेमाल किए जाने वाले ओपनिंग मूव्स का उपयोग करने दें। ध्यान दें: यह सुविधा वर्तमान में केवल विशिष्ट नियम सेटों के लिए उपलब्ध है।", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "लाभ ग्राफ़ दिखाएँ", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_hr.arb b/src/ui/flutter_app/lib/l10n/intl_hr.arb index 95625d152..51ea5547f 100644 --- a/src/ui/flutter_app/lib/l10n/intl_hr.arb +++ b/src/ui/flutter_app/lib/l10n/intl_hr.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Dopusti UI-u da koristi otvarajuće poteze koje profesionalni ljudski igrači uobičajeno koriste u početku igre. Napomena: Ova je funkcija trenutačno dostupna samo za određene skupove pravila.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Prikaži graf prednosti", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_hu.arb b/src/ui/flutter_app/lib/l10n/intl_hu.arb index 20376d05c..c130e7456 100644 --- a/src/ui/flutter_app/lib/l10n/intl_hu.arb +++ b/src/ui/flutter_app/lib/l10n/intl_hu.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Engedje meg az AI-nak, hogy az első játékszakaszban a profi emberi játékosok által gyakran használt nyitómozdulatokat alkalmazza. Megjegyzés: Ez a funkció jelenleg csak bizonyos szabálykészletekhez érhető el.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Mutassa az előny grafikonját", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_hy.arb b/src/ui/flutter_app/lib/l10n/intl_hy.arb index 3309abd59..5a0d96ead 100644 --- a/src/ui/flutter_app/lib/l10n/intl_hy.arb +++ b/src/ui/flutter_app/lib/l10n/intl_hy.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Դասանցի", "@daSanQi": {}, "useOpeningBook_Detail": "Թույլատրեք AI-ին օգտագործել բացման քայլերը, որոնք հաճախ կիրառվում են մարզիկ մարդկանց կողմից խաղի վաղ փուլերում: Նշում՝ այս հատկությունը այժմ մատչելի է միայն որոշակի կանոնակարգերի համար:", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Ցուցադրել առավելության գրաֆիկը", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_id.arb b/src/ui/flutter_app/lib/l10n/intl_id.arb index 42dbe7886..4ef911047 100644 --- a/src/ui/flutter_app/lib/l10n/intl_id.arb +++ b/src/ui/flutter_app/lib/l10n/intl_id.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Izinkan AI menggunakan gerakan pembukaan yang biasa digunakan oleh pemain manusia profesional selama awal permainan. Catatan: Fitur ini saat ini hanya tersedia untuk set aturan tertentu.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Tampilkan grafik keunggulan", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_is.arb b/src/ui/flutter_app/lib/l10n/intl_is.arb index c62ed4803..8c719f1fb 100644 --- a/src/ui/flutter_app/lib/l10n/intl_is.arb +++ b/src/ui/flutter_app/lib/l10n/intl_is.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Leyfðu gervigreindinni að nota opnunaráð sem faglegir mannlegir leikmenn nota oft í upphafi leiks. Athugið: Þessi eiginleiki er núna aðeins í boði fyrir ákveðin regluset.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Sýna forskotslínurit", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_it.arb b/src/ui/flutter_app/lib/l10n/intl_it.arb index e1710b590..22fdc9d46 100644 --- a/src/ui/flutter_app/lib/l10n/intl_it.arb +++ b/src/ui/flutter_app/lib/l10n/intl_it.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Consenti all'IA di utilizzare mosse di apertura comunemente impiegate dai giocatori umani professionisti durante le prime fasi del gioco. Nota: questa funzione è attualmente disponibile solo per specifici insiemi di regole.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Mostra grafico del vantaggio", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_ja.arb b/src/ui/flutter_app/lib/l10n/intl_ja.arb index 837104bd9..acb92e059 100644 --- a/src/ui/flutter_app/lib/l10n/intl_ja.arb +++ b/src/ui/flutter_app/lib/l10n/intl_ja.arb @@ -1615,5 +1615,7 @@ "daSanQi": "中国モリスバリエーション 2 (ダーサンチー)", "@daSanQi": {}, "useOpeningBook_Detail": "初期ゲームでプロの人間プレーヤーが一般的に使用するオープニングムーブをAIが使用するようにします。注: この機能は現在、特定のルールセットでのみ利用可能です。", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "有利グラフを表示", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_kn.arb b/src/ui/flutter_app/lib/l10n/intl_kn.arb index 93102801f..794e64879 100644 --- a/src/ui/flutter_app/lib/l10n/intl_kn.arb +++ b/src/ui/flutter_app/lib/l10n/intl_kn.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "ಆರಂಭಿಕ ಆಟದಲ್ಲಿ ವೃತ್ತಿಪರ ಮಾನವ ಆಟಗಾರರು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ ಓಪನಿಂಗ್ ಚಲನೆಗಳನ್ನು AI ಬಳಸಲು ಅನುಮತಿಸಿ. ಗಮನಿಸಿ: ಈ ವೈಶಿಷ್ಟ್ಯ ಪ್ರಸ್ತುತ ಕೆಲವು ನಿಯಮ ಸೆಟ್ಗಳಿಗೆ ಮಾತ್ರ ಲಭ್ಯವಿದೆ.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "ಅಧಿಕ್ಯ ಗ್ರಾಫ್ ತೋರಿಸಿ", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_ko.arb b/src/ui/flutter_app/lib/l10n/intl_ko.arb index 98c3a8fa3..2814b835c 100644 --- a/src/ui/flutter_app/lib/l10n/intl_ko.arb +++ b/src/ui/flutter_app/lib/l10n/intl_ko.arb @@ -1517,5 +1517,7 @@ "daSanQi": "다삼치", "@daSanQi": {}, "useOpeningBook_Detail": "인공지능이 초기 게임에서 전문적인 인간 플레이어가 흔히 사용하는 오프닝 무브를 사용하도록 허용합니다. 참고: 이 기능은 현재 특정 규칙 세트에서만 사용 가능합니다.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "이점 그래프 표시", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_lt.arb b/src/ui/flutter_app/lib/l10n/intl_lt.arb index ccd65ba90..7b6db8f31 100644 --- a/src/ui/flutter_app/lib/l10n/intl_lt.arb +++ b/src/ui/flutter_app/lib/l10n/intl_lt.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Leiskite AI naudoti atidarymo ėjimus, kuriuos dažnai naudoja profesionalūs žmogaus žaidėjai ankstyvosiose žaidimo stadijose. Pastaba: Šiuo metu ši funkcija galima tik tam tikrose taisyklių rinkiniuose.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Rodyti pranašumo grafiką", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_lv.arb b/src/ui/flutter_app/lib/l10n/intl_lv.arb index 8bb226f34..fdf9d80c2 100644 --- a/src/ui/flutter_app/lib/l10n/intl_lv.arb +++ b/src/ui/flutter_app/lib/l10n/intl_lv.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Ļaujiet AI izmantot atklāšanas gājienus, ko bieži izmanto profesionālie cilvēku spēlētāji spēles sākumā. Piezīme: Šī funkcija pašlaik ir pieejama tikai konkrētiem noteikumu kopumiem.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Parādīt priekšrocību grafiku", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_mk.arb b/src/ui/flutter_app/lib/l10n/intl_mk.arb index a63e3d3ba..01f278d8f 100644 --- a/src/ui/flutter_app/lib/l10n/intl_mk.arb +++ b/src/ui/flutter_app/lib/l10n/intl_mk.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Дозволете на АИ да користи почетни потези кои обично ги користат професионални човечки играчи во раната фаза на играта. Забелешка: Оваа функционалност моментално е достапна само за одредени сетови на правила.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Прикажи график на предност", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_ms.arb b/src/ui/flutter_app/lib/l10n/intl_ms.arb index caf21b8ea..ae506a918 100644 --- a/src/ui/flutter_app/lib/l10n/intl_ms.arb +++ b/src/ui/flutter_app/lib/l10n/intl_ms.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Biarkan AI menggunakan langkah pembukaan yang biasa digunakan oleh pemain manusia profesional semasa permainan awal. Nota: Ciri ini hanya tersedia untuk set peraturan tertentu sahaja.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Tunjukkan graf kelebihan", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_my.arb b/src/ui/flutter_app/lib/l10n/intl_my.arb index a5eb036b2..5ebef9c7d 100644 --- a/src/ui/flutter_app/lib/l10n/intl_my.arb +++ b/src/ui/flutter_app/lib/l10n/intl_my.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "AI ကို ကစားပွဲအစမှာ ကစားသမားများက မကြာခဏသုံးစွဲတဲ့ဖွင့်ပွဲကို သုံးစွဲခွင့်ပြုပါ။ မှတ်ချက် - ယခုလိုင်းပေါ်ရှိ ဤအင်္ဂါရပ်သည် သတ်မှတ်ထားသော စည်းမျဉ်းစုံများအတွက်သာ ရရှိနိုင်သည်။", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "အားသာချက်ဂრაფပြပါ", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_nb.arb b/src/ui/flutter_app/lib/l10n/intl_nb.arb index ab52fef69..c020da9f9 100644 --- a/src/ui/flutter_app/lib/l10n/intl_nb.arb +++ b/src/ui/flutter_app/lib/l10n/intl_nb.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "La AI bruke åpningsbevegelser som er vanlig brukt av profesjonelle menneskelige spillere i begynnelsen av spillet. Merk: Denne funksjonen er for øyeblikket bare tilgjengelig for spesifikke regelsett.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Vis fordelsgraf", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_nl.arb b/src/ui/flutter_app/lib/l10n/intl_nl.arb index c8e7c245b..65f62f47b 100644 --- a/src/ui/flutter_app/lib/l10n/intl_nl.arb +++ b/src/ui/flutter_app/lib/l10n/intl_nl.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Laat de AI openingszetten gebruiken die vaak worden gebruikt door professionele menselijke spelers in het vroege spel. Opmerking: Deze functie is momenteel alleen beschikbaar voor specifieke regelsets.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Voordeelgrafiek weergeven", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_pl.arb b/src/ui/flutter_app/lib/l10n/intl_pl.arb index 43e59c197..4d24d357e 100644 --- a/src/ui/flutter_app/lib/l10n/intl_pl.arb +++ b/src/ui/flutter_app/lib/l10n/intl_pl.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Pozwól SI korzystać z ruchów otwarcia, które są powszechnie stosowane przez profesjonalnych ludzkich graczy na wczesnym etapie gry. Uwaga: Ta funkcja jest obecnie dostępna tylko dla określonych zestawów zasad.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Pokaż wykres przewagi", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_pt.arb b/src/ui/flutter_app/lib/l10n/intl_pt.arb index dd7784a27..54b37bde8 100644 --- a/src/ui/flutter_app/lib/l10n/intl_pt.arb +++ b/src/ui/flutter_app/lib/l10n/intl_pt.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Permita que a IA utilize movimentos de abertura comumente empregados por jogadores humanos profissionais durante o início do jogo. Nota: Esta funcionalidade está atualmente disponível apenas para conjuntos de regras específicos.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Mostrar gráfico de vantagem", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_ro.arb b/src/ui/flutter_app/lib/l10n/intl_ro.arb index 58db8bf9c..67633bf5a 100644 --- a/src/ui/flutter_app/lib/l10n/intl_ro.arb +++ b/src/ui/flutter_app/lib/l10n/intl_ro.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Permiteți IA să utilizeze mișcările de deschidere utilizate frecvent de jucătorii umani profesioniști în timpul jocului timpuriu. Notă: Această funcție este disponibilă în prezent doar pentru seturi de reguli specifice.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Afișează graficul avantajului", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_ru.arb b/src/ui/flutter_app/lib/l10n/intl_ru.arb index 0e1c168fa..9a9a8274d 100644 --- a/src/ui/flutter_app/lib/l10n/intl_ru.arb +++ b/src/ui/flutter_app/lib/l10n/intl_ru.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Дацци", "@daSanQi": {}, "useOpeningBook_Detail": "Позвольте ИИ использовать начальные ходы, которые часто применяются профессиональными человеческими игроками на раннем этапе игры. Примечание: Эта функция в настоящее время доступна только для определенных наборов правил.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Показать график преимущества", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_si.arb b/src/ui/flutter_app/lib/l10n/intl_si.arb index d40088ed5..e69d7112d 100644 --- a/src/ui/flutter_app/lib/l10n/intl_si.arb +++ b/src/ui/flutter_app/lib/l10n/intl_si.arb @@ -1615,5 +1615,7 @@ "daSanQi": "දාසාන්චි", "@daSanQi": {}, "useOpeningBook_Detail": "ආරම්භක ක්‍රීඩා කාලයේ ප්‍රවීණ මානව ක්‍රීඩකයන් විසින් නිතිපතා භාවිතා කරන විවෘත හැරවුම් AI භාවිතා කරන්න. සටහන: මෙම විශේෂාංගය දැනට විශේෂිත නියම කට්ටලයක් සඳහා පමණක් ලබා ඇත.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "වාසිය ග්‍රැෆය පෙන්වන්න", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_sk.arb b/src/ui/flutter_app/lib/l10n/intl_sk.arb index 7324ba2b7..0d341f92f 100644 --- a/src/ui/flutter_app/lib/l10n/intl_sk.arb +++ b/src/ui/flutter_app/lib/l10n/intl_sk.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Ta-san-čchi", "@daSanQi": {}, "useOpeningBook_Detail": "Dovoľte AI používať otváracie ťahy, ktoré sú bežne používané profesionálnymi ľudskými hráčmi na začiatku hry. Poznámka: Táto funkcia je momentálne dostupná len pre špecifické sady pravidiel.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Zobraziť graf výhody", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_sl.arb b/src/ui/flutter_app/lib/l10n/intl_sl.arb index d491ddec7..266921b41 100644 --- a/src/ui/flutter_app/lib/l10n/intl_sl.arb +++ b/src/ui/flutter_app/lib/l10n/intl_sl.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Dovolite AI, da uporablja odpiralne poteze, ki jih pogosto uporabljajo profesionalni človeški igralci v zgodnji fazi igre. Opomba: Ta funkcija je trenutno na voljo samo za določene komplete pravil.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Prikaži graf prednosti", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_sq.arb b/src/ui/flutter_app/lib/l10n/intl_sq.arb index cccc74d8a..d1da8b42b 100644 --- a/src/ui/flutter_app/lib/l10n/intl_sq.arb +++ b/src/ui/flutter_app/lib/l10n/intl_sq.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Lejo AI të përdorë lëvizjet e hapjes që përdoren zakonisht nga lojtarët profesionistë njerëzorë në fillim të lojës. Shënim: Kjo veçori është aktualisht në dispozicion vetëm për grupe të caktuara rregullash.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Trego grafikun e avantazhit", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_sr.arb b/src/ui/flutter_app/lib/l10n/intl_sr.arb index 4ef9dff8b..d4573a153 100644 --- a/src/ui/flutter_app/lib/l10n/intl_sr.arb +++ b/src/ui/flutter_app/lib/l10n/intl_sr.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Dozvolite AI-u da koristi otvarajuće poteze koji su uobičajeni među profesionalnim ljudskim igračima u ranim fazama igre. Napomena: Ova funkcija trenutno je dostupna samo za određene skupove pravila.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Prikaži grafikon prednosti", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_sv.arb b/src/ui/flutter_app/lib/l10n/intl_sv.arb index ffe77beac..68adfb6ac 100644 --- a/src/ui/flutter_app/lib/l10n/intl_sv.arb +++ b/src/ui/flutter_app/lib/l10n/intl_sv.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Låt AI använda öppningsdrag som ofta används av professionella mänskliga spelare under tidiga skeden av spelet. Obs: Denna funktion är för närvarande endast tillgänglig för specifika regeluppsättningar.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Visa fördelsgraf", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_sw.arb b/src/ui/flutter_app/lib/l10n/intl_sw.arb index 314c11a3d..bd171efe8 100644 --- a/src/ui/flutter_app/lib/l10n/intl_sw.arb +++ b/src/ui/flutter_app/lib/l10n/intl_sw.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Ruhusu AI kutumia hatua za ufunguzi zinazotumiwa kawaida na wachezaji wa kibinadamu wa kitaalamu katika mchezo wa mapema. Kumbuka: Kipengele hiki kwa sasa kinapatikana tu kwa seti maalum za sheria.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Onyesha grafu ya faida", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_te.arb b/src/ui/flutter_app/lib/l10n/intl_te.arb index d58b0d56b..34f9a0618 100644 --- a/src/ui/flutter_app/lib/l10n/intl_te.arb +++ b/src/ui/flutter_app/lib/l10n/intl_te.arb @@ -1535,5 +1535,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "ప్రారంభ ఆటలో వృత్తిపరమైన మానవ ఆటగాళ్లు సాధారణంగా ఉపయోగించే ఓపెనింగ్ మూవ్స్‌ను AI వాడనివ్వండి. గమనిక: ఈ ఫీచర్ ప్రస్తుతం కొన్ని నియమాల సెట్ల కోసం మాత్రమే అందుబాటులో ఉంది.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "ఆధిక్యత గ్రాఫ్‌ను చూపించు", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_th.arb b/src/ui/flutter_app/lib/l10n/intl_th.arb index bea6cca90..f8e5e1a6b 100644 --- a/src/ui/flutter_app/lib/l10n/intl_th.arb +++ b/src/ui/flutter_app/lib/l10n/intl_th.arb @@ -1517,5 +1517,7 @@ "daSanQi": "ต้าซานฉี", "@daSanQi": {}, "useOpeningBook_Detail": "ให้ AI ใช้การเดินเปิดที่มักถูกใช้โดยนักเล่นมืออาชีพในช่วงต้นเกม หมายเหตุ: คุณสมบัตินี้มีให้บริการในปัจจุบันสำหรับชุดกฎเฉพาะเท่านั้น", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "แสดงกราฟความได้เปรียบ", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_tr.arb b/src/ui/flutter_app/lib/l10n/intl_tr.arb index 69e264361..21f1c0d13 100644 --- a/src/ui/flutter_app/lib/l10n/intl_tr.arb +++ b/src/ui/flutter_app/lib/l10n/intl_tr.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Yapay zekanın, oyunun erken aşamalarında profesyonel insan oyuncular tarafından sıkça kullanılan açılış hamlelerini kullanmasına izin verin. Not: Bu özellik şu anda yalnızca belirli kurallar setleri için mevcuttur.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Avantaj grafiğini göster", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_uk.arb b/src/ui/flutter_app/lib/l10n/intl_uk.arb index b14393c6d..e8cb4fd93 100644 --- a/src/ui/flutter_app/lib/l10n/intl_uk.arb +++ b/src/ui/flutter_app/lib/l10n/intl_uk.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Да-Саньці", "@daSanQi": {}, "useOpeningBook_Detail": "Дозвольте ШІ використовувати початкові ходи, які часто використовуються професійними людськими гравцями на ранньому етапі гри. Примітка: Ця функція наразі доступна лише для певних наборів правил.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Показати графік переваги", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_ur.arb b/src/ui/flutter_app/lib/l10n/intl_ur.arb index 181fab636..3d4c90511 100644 --- a/src/ui/flutter_app/lib/l10n/intl_ur.arb +++ b/src/ui/flutter_app/lib/l10n/intl_ur.arb @@ -1615,5 +1615,7 @@ "daSanQi": "دا سانچی", "@daSanQi": {}, "useOpeningBook_Detail": "کھیل کے ابتدائی مرحلے میں پیشہ ورانہ انسانی کھلاڑیوں کی طرف سے عام طور پر استعمال ہونے والی افتتاحی چالوں کا استعمال کرنے دیں۔ نوٹ: یہ خصوصیت فی الحال صرف مخصوص قواعد کے سیٹوں کے لئے دستیاب ہے۔", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "فائدے کا گراف دکھائیں", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_uz.arb b/src/ui/flutter_app/lib/l10n/intl_uz.arb index 7a70d2d09..ec9a3ee62 100644 --- a/src/ui/flutter_app/lib/l10n/intl_uz.arb +++ b/src/ui/flutter_app/lib/l10n/intl_uz.arb @@ -1517,5 +1517,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "AI-dan o'yinning dastlabki bosqichida professional inson o'yinchilari tomonidan tez-tez ishlatiladigan ochish harakatlaridan foydalanishiga ruxsat bering. Eslatma: Ushbu xususiyat hozircha faqat ma'lum qoida to'plamlari uchun mavjud.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Afzallik grafikini ko‘rsatish", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_vi.arb b/src/ui/flutter_app/lib/l10n/intl_vi.arb index 98587c839..882aa312d 100644 --- a/src/ui/flutter_app/lib/l10n/intl_vi.arb +++ b/src/ui/flutter_app/lib/l10n/intl_vi.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Đả Tam Kỳ", "@daSanQi": {}, "useOpeningBook_Detail": "Cho phép AI sử dụng các nước đi mở đầu thường được sử dụng bởi các cầu thủ chuyên nghiệp trong giai đoạn đầu của trò chơi. Lưu ý: Tính năng này hiện chỉ có sẵn cho các bộ quy tắc cụ thể.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Hiển thị biểu đồ lợi thế", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_zh.arb b/src/ui/flutter_app/lib/l10n/intl_zh.arb index 5a5ca754e..18a8a7dfb 100644 --- a/src/ui/flutter_app/lib/l10n/intl_zh.arb +++ b/src/ui/flutter_app/lib/l10n/intl_zh.arb @@ -1517,5 +1517,7 @@ "daSanQi": "打三棋", "@daSanQi": {}, "useOpeningBook_Detail": "让 AI 在开局阶段采用人类专业棋手惯用的着法。注意:此功能目前仅适用于特定棋规。", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "显示优势图", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_zh_Hant.arb b/src/ui/flutter_app/lib/l10n/intl_zh_Hant.arb index a4b804938..0c6cffa95 100644 --- a/src/ui/flutter_app/lib/l10n/intl_zh_Hant.arb +++ b/src/ui/flutter_app/lib/l10n/intl_zh_Hant.arb @@ -1517,5 +1517,7 @@ "daSanQi": "打三棋", "@daSanQi": {}, "useOpeningBook_Detail": "讓 AI 在開局階段採用人類專業棋手慣用的著法。注意:此功能目前僅適用於特定棋規。", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "顯示優勢圖", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/intl_zu.arb b/src/ui/flutter_app/lib/l10n/intl_zu.arb index 0cf4ee4a3..687c8fe0f 100644 --- a/src/ui/flutter_app/lib/l10n/intl_zu.arb +++ b/src/ui/flutter_app/lib/l10n/intl_zu.arb @@ -1615,5 +1615,7 @@ "daSanQi": "Da San Qi", "@daSanQi": {}, "useOpeningBook_Detail": "Vumela i-AI ukuthi isebenzise ukuvula amanyathelo ajwayele ukusetshenziswa ngabadlali abaqeqeshiwe abantu ekuqaleni komdlalo. Qaphela: Lesi sici sitholakala okwamanje kumasethi womthetho athize kuphela.", - "@useOpeningBook_Detail": {} + "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Khombisa ishadi lezinzuzo", + "@showAdvantageGraph": {} } diff --git a/src/ui/flutter_app/lib/l10n/prompt.txt b/src/ui/flutter_app/lib/l10n/prompt.txt index ad58162b5..0f44e8701 100644 --- a/src/ui/flutter_app/lib/l10n/prompt.txt +++ b/src/ui/flutter_app/lib/l10n/prompt.txt @@ -1,8 +1,8 @@ Please translate the following contents of the arb file for Nine Men's Morris Game, output the complete arb file directly: ```json -"useOpeningBook_Detail": "Let the AI use opening moves commonly employed by professional human players during the early game. Note: This feature is currently available only for specific rule sets.", -"@useOpeningBook_Detail": {}, +"showAdvantageGraph": "Show advantage graph", +"@showAdvantageGraph": {}, ``` into: @@ -74,11 +74,11 @@ The format is as follows: ```json // intl_en.arb - "useOpeningBook_Detail": "Let the AI use opening moves commonly employed by professional human players during the early game. Note: This feature is currently available only for specific rule sets.", - "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "Show advantage graph", + "@showAdvantageGraph": {}, // intl_zh.arb - "useOpeningBook_Detail": "让 AI 在开局阶段采用人类专业棋手惯用的着法。注意:此功能目前仅适用于特定规则集。", - "@useOpeningBook_Detail": {}, + "showAdvantageGraph": "显示优势图", + "@showAdvantageGraph": {}, ```