Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Fix/saved filters l10n #101

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
fulleni merged 14 commits into main from fix/saved-filters-l10n
Oct 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
14 commits
Select commit Hold shift + click to select a range
b830a7c
fix(l10n): update localization for saved feed filters limit
fulleni Oct 13, 2025
b731f65
refactor(app_configuration): rename widget for better reusability
fulleni Oct 13, 2025
e044399
refactor(app_configuration): rename SavedHeadlinesFiltersLimitForm to...
fulleni Oct 13, 2025
e9ce6c8
fix(localization): update saved feed filter limits terminology
fulleni Oct 13, 2025
d04a33b
fix(localization): update feed configuration tab localization
fulleni Oct 13, 2025
c2175bf
refactor(l10n): remove feed limits references from user content section
fulleni Oct 13, 2025
679ab3c
fix(l10n): remove feed limits references from user content
fulleni Oct 13, 2025
347fda2
fix(localization): adjust saved feed filters limit labels and descrip...
fulleni Oct 13, 2025
b44f638
fix(l10n): refine app localizations for saved filters limit label
fulleni Oct 13, 2025
31dffce
fix(localization): correct translation and consistency issues
fulleni Oct 13, 2025
429055c
chore: misc
fulleni Oct 13, 2025
2233ffc
refactor(l10n): adjust content limits section titles in Arabic
fulleni Oct 13, 2025
80435cc
style(l10n): improve consistency in saved feed filters limit labels
fulleni Oct 13, 2025
606d490
refactor(app_configuration): update localization key and improve UI n...
fulleni Oct 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions lib/app_configuration/view/tabs/feed_configuration_tab.dart
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -92,8 +92,8 @@ class _FeedConfigurationTabState extends State<FeedConfigurationTab> {
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,
Expand All @@ -106,15 +106,15 @@ class _FeedConfigurationTabState extends State<FeedConfigurationTab> {
initiallyExpanded: expandedIndex == tileIndex,
children: [
Text(
l10n.savedHeadlinesFilterLimitsDescription,
l10n.savedFeedFilterLimitsDescription,
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: Theme.of(
context,
).colorScheme.onSurface.withOpacity(0.7),
),
),
const SizedBox(height: AppSpacing.lg),
SavedHeadlinesFiltersLimitForm(
SavedFeedFiltersLimitForm(
remoteConfig: widget.remoteConfig,
onConfigChanged: widget.onConfigChanged,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -27,12 +27,11 @@ class SavedHeadlinesFiltersLimitForm extends StatefulWidget {
final ValueChanged<RemoteConfig> onConfigChanged;

@override
State<SavedHeadlinesFiltersLimitForm> createState() =>
_SavedHeadlinesFiltersLimitFormState();
State<SavedFeedFiltersLimitForm> createState() =>
_SavedFeedFiltersLimitFormState();
}

class _SavedHeadlinesFiltersLimitFormState
extends State<SavedHeadlinesFiltersLimitForm>
class _SavedFeedFiltersLimitFormState extends State<SavedFeedFiltersLimitForm>
with SingleTickerProviderStateMixin {
late TabController _tabController;
late final Map<AppUserRole, TextEditingController> _controllers;
Expand All @@ -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) {
Expand Down Expand Up @@ -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(
Expand Down
28 changes: 14 additions & 14 deletions lib/l10n/app_localizations.dart
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -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.'**
Expand Down Expand Up @@ -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
///
Expand All @@ -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
///
Expand Down
14 changes: 7 additions & 7 deletions lib/l10n/app_localizations_ar.dart
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class AppLocalizationsAr extends AppLocalizations {
String get generalTab => 'عام';

@override
String get userContentLimitsTitle => 'حدود المحتوى والموجز للمستخدم';
String get userContentLimitsTitle => 'حدود المحتوى';

@override
String get userContentLimitsDescription =>
Expand Down Expand Up @@ -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 => 'تكرار الإعلان';
Expand All @@ -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 => 'فترة وضع الإعلان';
Expand Down
14 changes: 7 additions & 7 deletions lib/l10n/app_localizations_en.dart
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -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 =>
Expand Down Expand Up @@ -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';
Expand All @@ -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';
Expand Down
26 changes: 13 additions & 13 deletions lib/l10n/arb/app_ar.arb
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,13 @@
"@generalTab": {
"description": "عنوان تبويب الإعدادات العامة"
},
"userContentLimitsTitle": "حدود المحتوى والموجز للمستخدم",
"userContentLimitsTitle": "حدود المحتوى",
"@userContentLimitsTitle": {
"description": "عنوان قسم حدود المحتوى والموجز للمستخدم"
"description": "عنوان قسم حدود المحتوى للمستخدم"
},
"userContentLimitsDescription": "تعيين حدود للعناصر المتابعة والعناوين المحفوظة لكل فئة من فئات المستخدمين.",
"@userContentLimitsDescription": {
"description": "وصف قسم حدود المحتوى والموجز للمستخدم"
"description": "وصف قسم حدود المحتوى للمستخدم"
},
"feedActionsTitle": "إجراءات الموجز",
"@feedActionsTitle": {
Expand Down Expand Up @@ -1022,12 +1022,12 @@
"@followedItemsLimitDescription": {
"description": "وصف حد العناصر المتابعة"
},
"savedHeadlinesLimitLabel": "حد العناوين المحفوظة",
"@savedHeadlinesLimitLabel": {
"description": "تسمية حد العناوين المحفوظة"
"savedFeedFiltersLimitLabel": "حدود المرشحات",
"@savedFeedFiltersLimitLabel": {
"description": "تسمية حد مرشحات موجز الأخبار المحفوظة"
},
"savedHeadlinesLimitDescription": "الحد الأقصى لعدد العناوين الرئيسية التي يمكن لهذا الدور المستخدم حفظها.",
"@savedHeadlinesLimitDescription": {
"savedFeedFiltersLimitDescription": "الحد الأقصى لعدد مرشحات موجز الأخبار التي يمكن لهذا الدور المستخدم حفظها.",
"@savedFeedFiltersLimitDescription": {
"description": "وصف حد العناوين المحفوظة"
},
"adFrequencyLabel": "تكرار الإعلان",
Expand All @@ -1038,12 +1038,12 @@
"@adFrequencyDescription": {
"description": "وصف تكرار الإعلان"
},
"savedHeadlinesFilterLimitsTitle": "حدود مرشحات العناوين المحفوظة",
"@savedHeadlinesFilterLimitsTitle": {
"description": "وصف لحد المرشحات المحفوظة"
"savedFeedFilterLimitsTitle": "حد المرشحات المحفوظة",
"@savedFeedFilterLimitsTitle": {
"description": "وصف لحد مرشحات موجز الأخبار المحفوظة"
},
"savedHeadlinesFilterLimitsDescription": "الحد الأقصى لعدد مرشحات العناوين المحفوظة التي يمكن لهذا الدور إنشاؤها.",
"@savedHeadlinesFilterLimitsDescription": {
"savedFeedFilterLimitsDescription": "الحد الأقصى لعدد مرشحات موجز الأخبار المحفوظة التي يمكن لهذا الدور إنشاؤها.",
"@savedFeedFilterLimitsDescription": {
"description": "وصف لحد المرشحات المحفوظة"
},
"adPlacementIntervalLabel": "فترة وضع الإعلان",
Expand Down
28 changes: 14 additions & 14 deletions lib/l10n/arb/app_en.arb
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down Expand Up @@ -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",
Expand All @@ -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": {
Expand Down
Loading

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