diff --git a/lib/app_configuration/view/tabs/feed_configuration_tab.dart b/lib/app_configuration/view/tabs/feed_configuration_tab.dart index cbff207..3f6acc6 100644 --- a/lib/app_configuration/view/tabs/feed_configuration_tab.dart +++ b/lib/app_configuration/view/tabs/feed_configuration_tab.dart @@ -1,7 +1,7 @@ import 'package:core/core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/feed_decorator_form.dart'; -import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/saved_headlines_filters_limit_form.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/saved_feed_filters_limit_form.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/user_preference_limits_form.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/extensions/feed_decorator_type_l10n.dart'; @@ -92,8 +92,8 @@ class _FeedConfigurationTabState extends State { builder: (context, expandedIndex, child) { const tileIndex = 1; return ExpansionTile( - key: ValueKey('savedHeadlinesFilterLimitsTile_$expandedIndex'), - title: Text(l10n.savedHeadlinesFilterLimitsTitle), + key: ValueKey('savedFeedFilterLimitsTile_$expandedIndex'), + title: Text(l10n.savedFeedFiltersLimitLabel), childrenPadding: const EdgeInsetsDirectional.only( start: AppSpacing.lg, top: AppSpacing.md, @@ -106,7 +106,7 @@ class _FeedConfigurationTabState extends State { initiallyExpanded: expandedIndex == tileIndex, children: [ Text( - l10n.savedHeadlinesFilterLimitsDescription, + l10n.savedFeedFilterLimitsDescription, style: Theme.of(context).textTheme.bodySmall?.copyWith( color: Theme.of( context, @@ -114,7 +114,7 @@ class _FeedConfigurationTabState extends State { ), ), const SizedBox(height: AppSpacing.lg), - SavedHeadlinesFiltersLimitForm( + SavedFeedFiltersLimitForm( remoteConfig: widget.remoteConfig, onConfigChanged: widget.onConfigChanged, ), diff --git a/lib/app_configuration/widgets/saved_headlines_filters_limit_form.dart b/lib/app_configuration/widgets/saved_feed_filters_limit_form.dart similarity index 88% rename from lib/app_configuration/widgets/saved_headlines_filters_limit_form.dart rename to lib/app_configuration/widgets/saved_feed_filters_limit_form.dart index 557e539..d0bc253 100644 --- a/lib/app_configuration/widgets/saved_headlines_filters_limit_form.dart +++ b/lib/app_configuration/widgets/saved_feed_filters_limit_form.dart @@ -5,16 +5,16 @@ import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/extensions/app_user_role_l10n.dart'; import 'package:ui_kit/ui_kit.dart'; -/// {@template saved_headlines_filters_limit_form} -/// A form for configuring saved headlines filter limits within the +/// {@template saved_feed_filters_limit_form} +/// A form for configuring saved feed filter limits within the /// [RemoteConfig]. /// /// This form provides fields to set the maximum number of saved filters /// for guest, authenticated, and premium users. /// {@endtemplate} -class SavedHeadlinesFiltersLimitForm extends StatefulWidget { - /// {@macro saved_headlines_filters_limit_form} - const SavedHeadlinesFiltersLimitForm({ +class SavedFeedFiltersLimitForm extends StatefulWidget { + /// {@macro saved_feed_filters_limit_form} + const SavedFeedFiltersLimitForm({ required this.remoteConfig, required this.onConfigChanged, super.key, @@ -27,12 +27,11 @@ class SavedHeadlinesFiltersLimitForm extends StatefulWidget { final ValueChanged onConfigChanged; @override - State createState() => - _SavedHeadlinesFiltersLimitFormState(); + State createState() => + _SavedFeedFiltersLimitFormState(); } -class _SavedHeadlinesFiltersLimitFormState - extends State +class _SavedFeedFiltersLimitFormState extends State with SingleTickerProviderStateMixin { late TabController _tabController; late final Map _controllers; @@ -48,7 +47,7 @@ class _SavedHeadlinesFiltersLimitFormState } @override - void didUpdateWidget(covariant SavedHeadlinesFiltersLimitForm oldWidget) { + void didUpdateWidget(covariant SavedFeedFiltersLimitForm oldWidget) { super.didUpdateWidget(oldWidget); if (widget.remoteConfig.userPreferenceConfig != oldWidget.remoteConfig.userPreferenceConfig) { @@ -125,8 +124,8 @@ class _SavedHeadlinesFiltersLimitFormState children: AppUserRole.values.map((role) { final config = widget.remoteConfig.userPreferenceConfig; return AppConfigIntField( - label: l10n.savedHeadlinesLimitLabel, - description: l10n.savedHeadlinesLimitDescription, + label: l10n.savedFeedFiltersLimitLabel, + description: l10n.savedFeedFiltersLimitLabel, value: _getSavedFiltersLimit(config, role), onChanged: (value) { widget.onConfigChanged( diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 48b37d6..e014bb9 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -290,13 +290,13 @@ abstract class AppLocalizations { /// **'General'** String get generalTab; - /// Title for the User Content & Feed Limits section + /// Title for the User Content Limits section /// /// In en, this message translates to: - /// **'User Content & Feed Limits'** + /// **'User Content Limits'** String get userContentLimitsTitle; - /// Description for the User Content & Feed Limits section + /// Description for the User Content Limits section /// /// In en, this message translates to: /// **'Set limits on followed items and saved headlines for each user tier.'** @@ -1568,17 +1568,17 @@ abstract class AppLocalizations { /// **'Maximum number of countries, news sources, or categories this user role can follow (each type has its own limit).'** String get followedItemsLimitDescription; - /// Label for Saved Headlines Limit + /// Label for Saved filters Limits /// /// In en, this message translates to: - /// **'Saved Headlines Limit'** - String get savedHeadlinesLimitLabel; + /// **'Saved Filters Limits'** + String get savedFeedFiltersLimitLabel; /// Description for Saved Headlines Limit /// /// In en, this message translates to: - /// **'Maximum number of headlines this user role can save.'** - String get savedHeadlinesLimitDescription; + /// **'Maximum number of feed filters this user role can save.'** + String get savedFeedFiltersLimitDescription; /// Label for Ad Frequency /// @@ -1592,17 +1592,17 @@ abstract class AppLocalizations { /// **'How often an ad can appear for this user role (e.g., a value of 5 means an ad could be placed after every 5 news items).'** String get adFrequencyDescription; - /// Description for the Saved Headlines Filter Limits section + /// Title for the Saved Feed Filter Limits section /// /// In en, this message translates to: - /// **'Set limits on the number of saved headlines filters for each user tier.'** - String get savedHeadlinesFilterLimitsDescription; + /// **'Saved Filter Limits'** + String get savedFeedFilterLimitsTitle; - /// Title for the Saved Headlines Filter Limits section + /// Description for the Saved Headlines Filter Limits section /// /// In en, this message translates to: - /// **'Saved Headlines Filter Limits'** - String get savedHeadlinesFilterLimitsTitle; + /// **'Set limits on the number of saved feed filters for each user tier.'** + String get savedFeedFilterLimitsDescription; /// Label for Ad Placement Interval /// diff --git a/lib/l10n/app_localizations_ar.dart b/lib/l10n/app_localizations_ar.dart index 1e778cb..28904e6 100644 --- a/lib/l10n/app_localizations_ar.dart +++ b/lib/l10n/app_localizations_ar.dart @@ -118,7 +118,7 @@ class AppLocalizationsAr extends AppLocalizations { String get generalTab => 'عام'; @override - String get userContentLimitsTitle => 'حدود المحتوى والموجز للمستخدم'; + String get userContentLimitsTitle => 'حدود المحتوى'; @override String get userContentLimitsDescription => @@ -826,11 +826,11 @@ class AppLocalizationsAr extends AppLocalizations { 'الحد الأقصى لعدد البلدان أو مصادر الأخبار أو المواضيع التي يمكن لهذا الدور المستخدم متابعتها (لكل نوع حد خاص به).'; @override - String get savedHeadlinesLimitLabel => 'حد العناوين المحفوظة'; + String get savedFeedFiltersLimitLabel => 'حدود المرشحات'; @override - String get savedHeadlinesLimitDescription => - 'الحد الأقصى لعدد العناوين الرئيسية التي يمكن لهذا الدور المستخدم حفظها.'; + String get savedFeedFiltersLimitDescription => + 'الحد الأقصى لعدد مرشحات موجز الأخبار التي يمكن لهذا الدور المستخدم حفظها.'; @override String get adFrequencyLabel => 'تكرار الإعلان'; @@ -840,11 +840,11 @@ class AppLocalizationsAr extends AppLocalizations { 'عدد مرات ظهور الإعلان لهذا الدور المستخدم (على سبيل المثال، قيمة 5 تعني أنه يمكن وضع إعلان بعد كل 5 عناصر إخبارية).'; @override - String get savedHeadlinesFilterLimitsDescription => - 'الحد الأقصى لعدد مرشحات العناوين المحفوظة التي يمكن لهذا الدور إنشاؤها.'; + String get savedFeedFilterLimitsTitle => 'حد المرشحات المحفوظة'; @override - String get savedHeadlinesFilterLimitsTitle => 'حدود مرشحات العناوين المحفوظة'; + String get savedFeedFilterLimitsDescription => + 'الحد الأقصى لعدد مرشحات موجز الأخبار المحفوظة التي يمكن لهذا الدور إنشاؤها.'; @override String get adPlacementIntervalLabel => 'فترة وضع الإعلان'; diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 8523c0f..445cdd0 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -117,7 +117,7 @@ class AppLocalizationsEn extends AppLocalizations { String get generalTab => 'General'; @override - String get userContentLimitsTitle => 'User Content & Feed Limits'; + String get userContentLimitsTitle => 'User Content Limits'; @override String get userContentLimitsDescription => @@ -824,11 +824,11 @@ class AppLocalizationsEn extends AppLocalizations { 'Maximum number of countries, news sources, or categories this user role can follow (each type has its own limit).'; @override - String get savedHeadlinesLimitLabel => 'Saved Headlines Limit'; + String get savedFeedFiltersLimitLabel => 'Saved Filters Limits'; @override - String get savedHeadlinesLimitDescription => - 'Maximum number of headlines this user role can save.'; + String get savedFeedFiltersLimitDescription => + 'Maximum number of feed filters this user role can save.'; @override String get adFrequencyLabel => 'Ad Frequency'; @@ -838,11 +838,11 @@ class AppLocalizationsEn extends AppLocalizations { 'How often an ad can appear for this user role (e.g., a value of 5 means an ad could be placed after every 5 news items).'; @override - String get savedHeadlinesFilterLimitsDescription => - 'Set limits on the number of saved headlines filters for each user tier.'; + String get savedFeedFilterLimitsTitle => 'Saved Filter Limits'; @override - String get savedHeadlinesFilterLimitsTitle => 'Saved Headlines Filter Limits'; + String get savedFeedFilterLimitsDescription => + 'Set limits on the number of saved feed filters for each user tier.'; @override String get adPlacementIntervalLabel => 'Ad Placement Interval'; diff --git a/lib/l10n/arb/app_ar.arb b/lib/l10n/arb/app_ar.arb index b3e75a9..473bc18 100644 --- a/lib/l10n/arb/app_ar.arb +++ b/lib/l10n/arb/app_ar.arb @@ -143,13 +143,13 @@ "@generalTab": { "description": "عنوان تبويب الإعدادات العامة" }, - "userContentLimitsTitle": "حدود المحتوى والموجز للمستخدم", + "userContentLimitsTitle": "حدود المحتوى", "@userContentLimitsTitle": { - "description": "عنوان قسم حدود المحتوى والموجز للمستخدم" + "description": "عنوان قسم حدود المحتوى للمستخدم" }, "userContentLimitsDescription": "تعيين حدود للعناصر المتابعة والعناوين المحفوظة لكل فئة من فئات المستخدمين.", "@userContentLimitsDescription": { - "description": "وصف قسم حدود المحتوى والموجز للمستخدم" + "description": "وصف قسم حدود المحتوى للمستخدم" }, "feedActionsTitle": "إجراءات الموجز", "@feedActionsTitle": { @@ -1022,12 +1022,12 @@ "@followedItemsLimitDescription": { "description": "وصف حد العناصر المتابعة" }, - "savedHeadlinesLimitLabel": "حد العناوين المحفوظة", - "@savedHeadlinesLimitLabel": { - "description": "تسمية حد العناوين المحفوظة" + "savedFeedFiltersLimitLabel": "حدود المرشحات", + "@savedFeedFiltersLimitLabel": { + "description": "تسمية حد مرشحات موجز الأخبار المحفوظة" }, - "savedHeadlinesLimitDescription": "الحد الأقصى لعدد العناوين الرئيسية التي يمكن لهذا الدور المستخدم حفظها.", - "@savedHeadlinesLimitDescription": { + "savedFeedFiltersLimitDescription": "الحد الأقصى لعدد مرشحات موجز الأخبار التي يمكن لهذا الدور المستخدم حفظها.", + "@savedFeedFiltersLimitDescription": { "description": "وصف حد العناوين المحفوظة" }, "adFrequencyLabel": "تكرار الإعلان", @@ -1038,12 +1038,12 @@ "@adFrequencyDescription": { "description": "وصف تكرار الإعلان" }, - "savedHeadlinesFilterLimitsTitle": "حدود مرشحات العناوين المحفوظة", - "@savedHeadlinesFilterLimitsTitle": { - "description": "وصف لحد المرشحات المحفوظة" + "savedFeedFilterLimitsTitle": "حد المرشحات المحفوظة", + "@savedFeedFilterLimitsTitle": { + "description": "وصف لحد مرشحات موجز الأخبار المحفوظة" }, - "savedHeadlinesFilterLimitsDescription": "الحد الأقصى لعدد مرشحات العناوين المحفوظة التي يمكن لهذا الدور إنشاؤها.", - "@savedHeadlinesFilterLimitsDescription": { + "savedFeedFilterLimitsDescription": "الحد الأقصى لعدد مرشحات موجز الأخبار المحفوظة التي يمكن لهذا الدور إنشاؤها.", + "@savedFeedFilterLimitsDescription": { "description": "وصف لحد المرشحات المحفوظة" }, "adPlacementIntervalLabel": "فترة وضع الإعلان", diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 560b554..92c8900 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -143,13 +143,13 @@ "@generalTab": { "description": "Tab title for General settings" }, - "userContentLimitsTitle": "User Content & Feed Limits", + "userContentLimitsTitle": "User Content Limits", "@userContentLimitsTitle": { - "description": "Title for the User Content & Feed Limits section" + "description": "Title for the User Content Limits section" }, "userContentLimitsDescription": "Set limits on followed items and saved headlines for each user tier.", "@userContentLimitsDescription": { - "description": "Description for the User Content & Feed Limits section" + "description": "Description for the User Content Limits section" }, "feedActionsTitle": "Feed Actions", "@feedActionsTitle": { @@ -1022,12 +1022,12 @@ "@followedItemsLimitDescription": { "description": "Description for Followed Items Limit" }, - "savedHeadlinesLimitLabel": "Saved Headlines Limit", - "@savedHeadlinesLimitLabel": { - "description": "Label for Saved Headlines Limit" + "savedFeedFiltersLimitLabel": "Saved Filters Limits", + "@savedFeedFiltersLimitLabel": { + "description": "Label for Saved filters Limits" }, - "savedHeadlinesLimitDescription": "Maximum number of headlines this user role can save.", - "@savedHeadlinesLimitDescription": { + "savedFeedFiltersLimitDescription": "Maximum number of feed filters this user role can save.", + "@savedFeedFiltersLimitDescription": { "description": "Description for Saved Headlines Limit" }, "adFrequencyLabel": "Ad Frequency", @@ -1038,13 +1038,13 @@ "@adFrequencyDescription": { "description": "Description for Ad Frequency" }, - "savedHeadlinesFilterLimitsDescription": "Set limits on the number of saved headlines filters for each user tier.", - "@savedHeadlinesFilterLimitsDescription": { - "description": "Description for the Saved Headlines Filter Limits section" + "savedFeedFilterLimitsTitle": "Saved Filter Limits", + "@savedFeedFilterLimitsTitle": { + "description": "Title for the Saved Feed Filter Limits section" }, - "savedHeadlinesFilterLimitsTitle": "Saved Headlines Filter Limits", - "@savedHeadlinesFilterLimitsTitle": { - "description": "Title for the Saved Headlines Filter Limits section" + "savedFeedFilterLimitsDescription": "Set limits on the number of saved feed filters for each user tier.", + "@savedFeedFilterLimitsDescription": { + "description": "Description for the Saved Headlines Filter Limits section" }, "adPlacementIntervalLabel": "Ad Placement Interval", "@adPlacementIntervalLabel": {

AltStyle によって変換されたページ (->オリジナル) /