Date picker transaltion (#2203)

## Description
Fixes https://github.com/ente-io/ente/issues/2155

## Tests
Tested locally
This commit is contained in:
Neeraj Gupta
2024-06-18 15:48:10 +05:30
committed by GitHub
2 changed files with 1756 additions and 8 deletions

1700
mobile/lib/generated/intl/messages_ru.dart generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,7 @@ import "package:flutter/material.dart";
import "package:flutter_datetime_picker_bdaya/flutter_datetime_picker_bdaya.dart";
import "package:intl/intl.dart";
import "package:photos/ente_theme_data.dart";
import "package:photos/l10n/l10n.dart";
import 'package:photos/models/file/file.dart';
import "package:photos/theme/ente_theme.dart";
import "package:photos/ui/components/info_item_widget.dart";
@@ -46,24 +47,38 @@ class _CreationTimeItemState extends State<CreationTimeItem> {
}
void _showDateTimePicker(EnteFile file) async {
final Locale locale = await getLocale();
final localeType = getFromLocalString(locale);
final dateResult = await DatePickerBdaya.showDatePicker(
context,
minTime: DateTime(1800, 1, 1),
maxTime: DateTime.now(),
currentTime: DateTime.fromMicrosecondsSinceEpoch(file.creationTime!),
locale: LocaleType.en,
locale: localeType,
theme: Theme.of(context).colorScheme.dateTimePickertheme,
);
if (dateResult == null) {
return;
}
final dateWithTimeResult = await DatePickerBdaya.showTime12hPicker(
context,
showTitleActions: true,
currentTime: dateResult,
locale: LocaleType.en,
theme: Theme.of(context).colorScheme.dateTimePickertheme,
);
late DateTime? dateWithTimeResult;
if (_showAmPmTimePicker(locale)) {
dateWithTimeResult = await DatePickerBdaya.showTime12hPicker(
context,
showTitleActions: true,
currentTime: dateResult,
locale: localeType,
theme: Theme.of(context).colorScheme.dateTimePickertheme,
);
} else {
dateWithTimeResult = await DatePickerBdaya.showTimePicker(
context,
showTitleActions: true,
currentTime: dateResult,
locale: localeType,
theme: Theme.of(context).colorScheme.dateTimePickertheme,
);
}
if (dateWithTimeResult != null) {
if (await editTime(
context,
@@ -75,4 +90,37 @@ class _CreationTimeItemState extends State<CreationTimeItem> {
}
}
}
bool _showAmPmTimePicker(Locale locale) {
return locale.languageCode == "en" ||
locale.languageCode == "es" ||
locale.languageCode == "pt";
}
LocaleType getFromLocalString(Locale locale) {
switch (locale.languageCode) {
case "en":
return LocaleType.en;
case "es":
return LocaleType.es;
case "de":
return LocaleType.de;
case "fr":
return LocaleType.fr;
case "it":
return LocaleType.it;
case "nl":
return LocaleType.nl;
case "pt":
return LocaleType.pt;
case "ru":
return LocaleType.ru;
case "tr":
return LocaleType.tr;
case "zh":
return LocaleType.zh;
default:
return LocaleType.en;
}
}
}