43 lines
1.3 KiB
Dart
Raw Normal View History

2024-12-21 22:56:48 +04:00
import 'package:course_work/components/locale/l10n/app_localizations.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class Formatter {
static String formatPrice(int price) {
return '${NumberFormat.decimalPattern('ru').format(price)}';
}
static IconData getStarIconForRating(double? rating) {
if (rating == null) {
return Icons.star_border;
}
if (rating == 0.0) {
return Icons.star_border;
}
if (rating < 5) {
return Icons.star_half;
}
return Icons.star;
}
static String getReviewString(AppLocale locale, int reviewCount) {
switch (locale.localeName) {
case 'ru':
if (reviewCount % 10 == 0 || (reviewCount % 100 >= 10 && reviewCount % 100 <= 20) || (reviewCount % 10 >= 5 && reviewCount % 10 <= 9)) {
return '${locale.apiReviewCount}ов';
}
if (reviewCount % 10 >= 2 && reviewCount % 10 <= 4) {
return '${locale.apiReviewCount}а';
}
return locale.apiReviewCount;
case 'en':
if (reviewCount == 1) {
return locale.apiReviewCount;
}
return '${locale.apiReviewCount}s';
default:
return locale.apiReviewCount;
}
}
}