fix(i18n): 印尼语内容缺失时不再回退中文

This commit is contained in:
Vicky authored and trae-solo-agent committed 2026-10-30 17:14:37 +08:00
1 parent 9ef8eb15b0
commit 19196ceb8e
13 files changed
+261 -95

No files matched your search

@@ -7,6 +7,7 @@ import 'package:provider/provider.dart';
import '../../../core/data/models/drama.dart';
import '../../../core/data/services/category_controller.dart';
import '../../../core/formatting/content_locale_guard.dart';
import '../../../core/theme/app_dimens.dart';
import '../../../core/widgets/app_pull_to_refresh.dart';
import '../../../core/widgets/drama_grid_skeleton.dart';
@@ -77,7 +78,10 @@ class _HomeCategoryDramasState extends State<HomeCategoryDramas> {
final controller = context.watch<CategoryController>();
final categoryId = widget.lockedCategoryId ?? '';
final slot = categoryId.isEmpty ? null : controller.slotOf(categoryId);
final dramas = slot?.dramas ?? const <Drama>[];
final dramas = visibleDramasForLocale(
slot?.dramas ?? const <Drama>[],
Localizations.localeOf(context).languageCode,
);
return Column(
children: [
Expanded(
@@ -164,9 +168,8 @@ class _HomeCategoryDramasState extends State<HomeCategoryDramas> {
hasMore: slot?.hasMore ?? false,
hasItems: dramas.isNotEmpty,
errorMessage: null,
onRetry: () => context.read<CategoryController>().loadMore(
categoryId,
),
onRetry: () =>
context.read<CategoryController>().loadMore(categoryId),
),
),
),
+13 -3
View File
@@ -12,6 +12,7 @@ import '../../../core/data/services/catalog_controller.dart';
import '../../../core/data/services/category_controller.dart';
import '../../../core/data/services/home_feed_controller.dart';
import '../../../core/data/services/wallet_controller.dart';
import '../../../core/formatting/content_locale_guard.dart';
import '../../../core/theme/app_colors.dart';
import '../../../core/theme/app_dimens.dart';
import '../../../core/widgets/app_pull_to_refresh.dart';
@@ -194,7 +195,10 @@ class _HomeFeedGridState extends State<HomeFeedGrid> {
mainAxisSpacing: AppDimens.homeGridRowGap,
);
}
final dramas = _dramasFor(category);
final dramas = _dramasFor(
category,
Localizations.localeOf(context).languageCode,
);
if (widget.feedController.loadingFirstPage && dramas.isEmpty) {
return const DramaGridSkeleton(
key: Key('home-grid-skeleton'),
@@ -324,8 +328,14 @@ class _HomeFeedGridState extends State<HomeFeedGrid> {
];
}
List<Drama> _dramasFor(HomeGridCategoryShortcut category) {
final dramas = widget.feedController.dramas;
List<Drama> _dramasFor(
HomeGridCategoryShortcut category,
String languageCode,
) {
final dramas = visibleDramasForLocale(
widget.feedController.dramas,
languageCode,
);
final categoryName = category.categoryName.toLowerCase();
if (categoryName.isEmpty) return dramas;
final matched = dramas