mirror of
https://github.com/darkmoonight/Rain.git
synced 2025-06-28 20:19:58 +00:00
minor improvements
This commit is contained in:
parent
e39177e9e7
commit
613512ef86
8 changed files with 234 additions and 124 deletions
|
@ -25,6 +25,7 @@ An application for viewing the weather
|
||||||
- Выбор между градусами Цельсия и Фаренгейта
|
- Выбор между градусами Цельсия и Фаренгейта
|
||||||
- Выбор между форматом времени 12 и 24-часовым
|
- Выбор между форматом времени 12 и 24-часовым
|
||||||
- Уведомления
|
- Уведомления
|
||||||
|
- Виджет
|
||||||
|
|
||||||
Также мы постарались сделать дизайн максимально удобным и красивым. -->
|
Также мы постарались сделать дизайн максимально удобным и красивым. -->
|
||||||
|
|
||||||
|
@ -43,6 +44,7 @@ The following options are provided:
|
||||||
- Choose between Celsius and Fahrenheit
|
- Choose between Celsius and Fahrenheit
|
||||||
- Choosing between 12-hour and 24-hour time formats
|
- Choosing between 12-hour and 24-hour time formats
|
||||||
- Notifications
|
- Notifications
|
||||||
|
- Widget
|
||||||
|
|
||||||
We also tried to make the design as convenient and beautiful as possible.
|
We also tried to make the design as convenient and beautiful as possible.
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ flutter {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "androidx.core:core-remoteviews:1.0.0"
|
implementation "androidx.core:core-remoteviews:1.0.0"
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove this for FLOSS version
|
// Remove this for FLOSS version
|
||||||
|
|
|
@ -21,8 +21,6 @@ allprojects {
|
||||||
rootProject.buildDir = '../build'
|
rootProject.buildDir = '../build'
|
||||||
subprojects {
|
subprojects {
|
||||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||||
}
|
|
||||||
subprojects {
|
|
||||||
project.evaluationDependsOn(':app')
|
project.evaluationDependsOn(':app')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,8 @@ class _WeatherPageState extends State<WeatherPage> {
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
height: 136,
|
height: 136,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
|
padding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 10, vertical: 5),
|
||||||
child: ScrollablePositionedList.separated(
|
child: ScrollablePositionedList.separated(
|
||||||
key: const PageStorageKey(0),
|
key: const PageStorageKey(0),
|
||||||
physics: const AlwaysScrollableScrollPhysics(),
|
physics: const AlwaysScrollableScrollPhysics(),
|
||||||
|
@ -91,7 +92,8 @@ class _WeatherPageState extends State<WeatherPage> {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
itemScrollController: weatherController.itemScrollController,
|
itemScrollController:
|
||||||
|
weatherController.itemScrollController,
|
||||||
itemCount: mainWeather.time!.length,
|
itemCount: mainWeather.time!.length,
|
||||||
itemBuilder: (ctx, i) {
|
itemBuilder: (ctx, i) {
|
||||||
final i24 = (i / 24).floor();
|
final i24 = (i / 24).floor();
|
||||||
|
@ -109,8 +111,10 @@ class _WeatherPageState extends State<WeatherPage> {
|
||||||
vertical: 5,
|
vertical: 5,
|
||||||
),
|
),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color:
|
color: i == hourOfDay
|
||||||
i == hourOfDay ? context.theme.colorScheme.primaryContainer : Colors.transparent,
|
? context
|
||||||
|
.theme.colorScheme.primaryContainer
|
||||||
|
: Colors.transparent,
|
||||||
borderRadius: const BorderRadius.all(
|
borderRadius: const BorderRadius.all(
|
||||||
Radius.circular(20),
|
Radius.circular(20),
|
||||||
),
|
),
|
||||||
|
|
|
@ -88,13 +88,18 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
text: 'theme'.tr,
|
text: 'theme'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.theme?.tr,
|
dropdownName: settings.theme?.tr,
|
||||||
dropdownList: <String>['system'.tr, 'dark'.tr, 'light'.tr],
|
dropdownList: <String>[
|
||||||
|
'system'.tr,
|
||||||
|
'dark'.tr,
|
||||||
|
'light'.tr
|
||||||
|
],
|
||||||
dropdownCange: (String? newValue) {
|
dropdownCange: (String? newValue) {
|
||||||
ThemeMode themeMode = newValue?.tr == 'system'.tr
|
ThemeMode themeMode =
|
||||||
? ThemeMode.system
|
newValue?.tr == 'system'.tr
|
||||||
: newValue?.tr == 'dark'.tr
|
? ThemeMode.system
|
||||||
? ThemeMode.dark
|
: newValue?.tr == 'dark'.tr
|
||||||
: ThemeMode.light;
|
? ThemeMode.dark
|
||||||
|
: ThemeMode.light;
|
||||||
String theme = newValue?.tr == 'system'.tr
|
String theme = newValue?.tr == 'system'.tr
|
||||||
? 'system'
|
? 'system'
|
||||||
: newValue?.tr == 'dark'.tr
|
: newValue?.tr == 'dark'.tr
|
||||||
|
@ -113,7 +118,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
value: settings.amoledTheme,
|
value: settings.amoledTheme,
|
||||||
onChange: (value) {
|
onChange: (value) {
|
||||||
themeController.saveOledTheme(value);
|
themeController.saveOledTheme(value);
|
||||||
MyApp.updateAppState(context, newAmoledTheme: value);
|
MyApp.updateAppState(context,
|
||||||
|
newAmoledTheme: value);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
|
@ -124,7 +130,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
value: settings.materialColor,
|
value: settings.materialColor,
|
||||||
onChange: (value) {
|
onChange: (value) {
|
||||||
themeController.saveMaterialTheme(value);
|
themeController.saveMaterialTheme(value);
|
||||||
MyApp.updateAppState(context, newMaterialColor: value);
|
MyApp.updateAppState(context,
|
||||||
|
newMaterialColor: value);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
|
@ -168,7 +175,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
value: settings.location,
|
value: settings.location,
|
||||||
onChange: (value) async {
|
onChange: (value) async {
|
||||||
if (value) {
|
if (value) {
|
||||||
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
|
bool serviceEnabled = await Geolocator
|
||||||
|
.isLocationServiceEnabled();
|
||||||
if (!serviceEnabled) {
|
if (!serviceEnabled) {
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
await showAdaptiveDialog(
|
await showAdaptiveDialog(
|
||||||
|
@ -179,21 +187,31 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
'location'.tr,
|
'location'.tr,
|
||||||
style: context.textTheme.titleLarge,
|
style: context.textTheme.titleLarge,
|
||||||
),
|
),
|
||||||
content: Text('no_location'.tr, style: context.textTheme.titleMedium),
|
content: Text('no_location'.tr,
|
||||||
|
style: context
|
||||||
|
.textTheme.titleMedium),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: false),
|
onPressed: () =>
|
||||||
|
Get.back(result: false),
|
||||||
child: Text('cancel'.tr,
|
child: Text('cancel'.tr,
|
||||||
style: context.theme.textTheme.titleMedium
|
style: context.theme
|
||||||
?.copyWith(color: Colors.blueAccent))),
|
.textTheme.titleMedium
|
||||||
|
?.copyWith(
|
||||||
|
color: Colors
|
||||||
|
.blueAccent))),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Geolocator.openLocationSettings();
|
Geolocator
|
||||||
|
.openLocationSettings();
|
||||||
Get.back(result: true);
|
Get.back(result: true);
|
||||||
},
|
},
|
||||||
child: Text('settings'.tr,
|
child: Text('settings'.tr,
|
||||||
style: context.theme.textTheme.titleMedium
|
style: context.theme
|
||||||
?.copyWith(color: Colors.green))),
|
.textTheme.titleMedium
|
||||||
|
?.copyWith(
|
||||||
|
color:
|
||||||
|
Colors.green))),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -217,15 +235,19 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
switcher: true,
|
switcher: true,
|
||||||
value: settings.notifications,
|
value: settings.notifications,
|
||||||
onChange: (value) async {
|
onChange: (value) async {
|
||||||
final resultExact = await flutterLocalNotificationsPlugin
|
final resultExact =
|
||||||
.resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()
|
await flutterLocalNotificationsPlugin
|
||||||
?.requestExactAlarmsPermission();
|
.resolvePlatformSpecificImplementation<
|
||||||
|
AndroidFlutterLocalNotificationsPlugin>()
|
||||||
|
?.requestExactAlarmsPermission();
|
||||||
final result = Platform.isIOS
|
final result = Platform.isIOS
|
||||||
? await flutterLocalNotificationsPlugin
|
? await flutterLocalNotificationsPlugin
|
||||||
.resolvePlatformSpecificImplementation<IOSFlutterLocalNotificationsPlugin>()
|
.resolvePlatformSpecificImplementation<
|
||||||
|
IOSFlutterLocalNotificationsPlugin>()
|
||||||
?.requestPermissions()
|
?.requestPermissions()
|
||||||
: await flutterLocalNotificationsPlugin
|
: await flutterLocalNotificationsPlugin
|
||||||
.resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()
|
.resolvePlatformSpecificImplementation<
|
||||||
|
AndroidFlutterLocalNotificationsPlugin>()
|
||||||
?.requestNotificationsPermission();
|
?.requestNotificationsPermission();
|
||||||
if (result != null && resultExact != null) {
|
if (result != null && resultExact != null) {
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
|
@ -233,7 +255,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
if (value) {
|
if (value) {
|
||||||
weatherController.notlification(weatherController.mainWeather);
|
weatherController.notlification(
|
||||||
|
weatherController.mainWeather);
|
||||||
} else {
|
} else {
|
||||||
flutterLocalNotificationsPlugin.cancelAll();
|
flutterLocalNotificationsPlugin.cancelAll();
|
||||||
}
|
}
|
||||||
|
@ -259,10 +282,12 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
settings.timeRange = int.parse(newValue!);
|
settings.timeRange = int.parse(newValue!);
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
MyApp.updateAppState(context, newTimeRange: int.parse(newValue!));
|
MyApp.updateAppState(context,
|
||||||
|
newTimeRange: int.parse(newValue!));
|
||||||
if (settings.notifications) {
|
if (settings.notifications) {
|
||||||
flutterLocalNotificationsPlugin.cancelAll();
|
flutterLocalNotificationsPlugin.cancelAll();
|
||||||
weatherController.notlification(weatherController.mainWeather);
|
weatherController.notlification(
|
||||||
|
weatherController.mainWeather);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -273,18 +298,27 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
info: true,
|
info: true,
|
||||||
infoSettings: true,
|
infoSettings: true,
|
||||||
textInfo: settings.timeformat == '12'
|
textInfo: settings.timeformat == '12'
|
||||||
? DateFormat.jm().format(
|
? DateFormat.jm().format(DateFormat.Hm()
|
||||||
DateFormat.Hm().parse(weatherController.timeConvert(timeStart).format(context)))
|
.parse(weatherController
|
||||||
: DateFormat.Hm().format(
|
.timeConvert(timeStart)
|
||||||
DateFormat.Hm().parse(weatherController.timeConvert(timeStart).format(context))),
|
.format(context)))
|
||||||
|
: DateFormat.Hm().format(DateFormat.Hm()
|
||||||
|
.parse(weatherController
|
||||||
|
.timeConvert(timeStart)
|
||||||
|
.format(context))),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final TimeOfDay? timeStartPicker = await showTimePicker(
|
final TimeOfDay? timeStartPicker =
|
||||||
|
await showTimePicker(
|
||||||
context: context,
|
context: context,
|
||||||
initialTime: weatherController.timeConvert(timeStart),
|
initialTime:
|
||||||
|
weatherController.timeConvert(timeStart),
|
||||||
builder: (context, child) {
|
builder: (context, child) {
|
||||||
final Widget mediaQueryWrapper = MediaQuery(
|
final Widget mediaQueryWrapper = MediaQuery(
|
||||||
data: MediaQuery.of(context).copyWith(
|
data: MediaQuery.of(context).copyWith(
|
||||||
alwaysUse24HourFormat: settings.timeformat == '12' ? false : true,
|
alwaysUse24HourFormat:
|
||||||
|
settings.timeformat == '12'
|
||||||
|
? false
|
||||||
|
: true,
|
||||||
),
|
),
|
||||||
child: child!,
|
child: child!,
|
||||||
);
|
);
|
||||||
|
@ -293,14 +327,18 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
);
|
);
|
||||||
if (timeStartPicker != null) {
|
if (timeStartPicker != null) {
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
settings.timeStart = timeStartPicker.format(context);
|
settings.timeStart =
|
||||||
|
timeStartPicker.format(context);
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
MyApp.updateAppState(context, newTimeStart: timeStartPicker.format(context));
|
MyApp.updateAppState(context,
|
||||||
|
newTimeStart:
|
||||||
|
timeStartPicker.format(context));
|
||||||
if (settings.notifications) {
|
if (settings.notifications) {
|
||||||
flutterLocalNotificationsPlugin.cancelAll();
|
flutterLocalNotificationsPlugin.cancelAll();
|
||||||
weatherController.notlification(weatherController.mainWeather);
|
weatherController.notlification(
|
||||||
|
weatherController.mainWeather);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -312,18 +350,27 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
info: true,
|
info: true,
|
||||||
infoSettings: true,
|
infoSettings: true,
|
||||||
textInfo: settings.timeformat == '12'
|
textInfo: settings.timeformat == '12'
|
||||||
? DateFormat.jm().format(
|
? DateFormat.jm().format(DateFormat.Hm()
|
||||||
DateFormat.Hm().parse(weatherController.timeConvert(timeEnd).format(context)))
|
.parse(weatherController
|
||||||
: DateFormat.Hm().format(
|
.timeConvert(timeEnd)
|
||||||
DateFormat.Hm().parse(weatherController.timeConvert(timeEnd).format(context))),
|
.format(context)))
|
||||||
|
: DateFormat.Hm().format(DateFormat.Hm()
|
||||||
|
.parse(weatherController
|
||||||
|
.timeConvert(timeEnd)
|
||||||
|
.format(context))),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final TimeOfDay? timeEndPicker = await showTimePicker(
|
final TimeOfDay? timeEndPicker =
|
||||||
|
await showTimePicker(
|
||||||
context: context,
|
context: context,
|
||||||
initialTime: weatherController.timeConvert(timeEnd),
|
initialTime:
|
||||||
|
weatherController.timeConvert(timeEnd),
|
||||||
builder: (context, child) {
|
builder: (context, child) {
|
||||||
final Widget mediaQueryWrapper = MediaQuery(
|
final Widget mediaQueryWrapper = MediaQuery(
|
||||||
data: MediaQuery.of(context).copyWith(
|
data: MediaQuery.of(context).copyWith(
|
||||||
alwaysUse24HourFormat: settings.timeformat == '12' ? false : true,
|
alwaysUse24HourFormat:
|
||||||
|
settings.timeformat == '12'
|
||||||
|
? false
|
||||||
|
: true,
|
||||||
),
|
),
|
||||||
child: child!,
|
child: child!,
|
||||||
);
|
);
|
||||||
|
@ -332,14 +379,18 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
);
|
);
|
||||||
if (timeEndPicker != null) {
|
if (timeEndPicker != null) {
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
settings.timeEnd = timeEndPicker.format(context);
|
settings.timeEnd =
|
||||||
|
timeEndPicker.format(context);
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
MyApp.updateAppState(context, newTimeEnd: timeEndPicker.format(context));
|
MyApp.updateAppState(context,
|
||||||
|
newTimeEnd:
|
||||||
|
timeEndPicker.format(context));
|
||||||
if (settings.notifications) {
|
if (settings.notifications) {
|
||||||
flutterLocalNotificationsPlugin.cancelAll();
|
flutterLocalNotificationsPlugin.cancelAll();
|
||||||
weatherController.notlification(weatherController.mainWeather);
|
weatherController.notlification(
|
||||||
|
weatherController.mainWeather);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -383,10 +434,15 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
text: 'degrees'.tr,
|
text: 'degrees'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.degrees.tr,
|
dropdownName: settings.degrees.tr,
|
||||||
dropdownList: <String>['celsius'.tr, 'fahrenheit'.tr],
|
dropdownList: <String>[
|
||||||
|
'celsius'.tr,
|
||||||
|
'fahrenheit'.tr
|
||||||
|
],
|
||||||
dropdownCange: (String? newValue) async {
|
dropdownCange: (String? newValue) async {
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
settings.degrees = newValue == 'celsius'.tr ? 'celsius' : 'fahrenheit';
|
settings.degrees = newValue == 'celsius'.tr
|
||||||
|
? 'celsius'
|
||||||
|
: 'fahrenheit';
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
await weatherController.deleteAll(false);
|
await weatherController.deleteAll(false);
|
||||||
|
@ -401,10 +457,16 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
text: 'measurements'.tr,
|
text: 'measurements'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.measurements.tr,
|
dropdownName: settings.measurements.tr,
|
||||||
dropdownList: <String>['metric'.tr, 'imperial'.tr],
|
dropdownList: <String>[
|
||||||
|
'metric'.tr,
|
||||||
|
'imperial'.tr
|
||||||
|
],
|
||||||
dropdownCange: (String? newValue) async {
|
dropdownCange: (String? newValue) async {
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
settings.measurements = newValue == 'metric'.tr ? 'metric' : 'imperial';
|
settings.measurements =
|
||||||
|
newValue == 'metric'.tr
|
||||||
|
? 'metric'
|
||||||
|
: 'imperial';
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
await weatherController.deleteAll(false);
|
await weatherController.deleteAll(false);
|
||||||
|
@ -422,7 +484,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
dropdownList: <String>['12'.tr, '24'.tr],
|
dropdownList: <String>['12'.tr, '24'.tr],
|
||||||
dropdownCange: (String? newValue) {
|
dropdownCange: (String? newValue) {
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
settings.timeformat = newValue == '12'.tr ? '12' : '24';
|
settings.timeformat =
|
||||||
|
newValue == '12'.tr ? '12' : '24';
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
setState(() {});
|
setState(() {});
|
||||||
|
@ -443,7 +506,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
text: 'language'.tr,
|
text: 'language'.tr,
|
||||||
info: true,
|
info: true,
|
||||||
infoSettings: true,
|
infoSettings: true,
|
||||||
textInfo: appLanguages.firstWhere((element) => (element['locale'] == locale),
|
textInfo: appLanguages.firstWhere(
|
||||||
|
(element) => (element['locale'] == locale),
|
||||||
orElse: () => appLanguages.first)['name'],
|
orElse: () => appLanguages.first)['name'],
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
@ -470,7 +534,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
return Card(
|
return Card(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
|
margin: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 10, vertical: 5),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
appLanguages[index]['name'],
|
appLanguages[index]['name'],
|
||||||
|
@ -478,8 +543,11 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
MyApp.updateAppState(context, newLocale: appLanguages[index]['locale']);
|
MyApp.updateAppState(context,
|
||||||
updateLanguage(appLanguages[index]['locale']);
|
newLocale: appLanguages[index]
|
||||||
|
['locale']);
|
||||||
|
updateLanguage(
|
||||||
|
appLanguages[index]['locale']);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -521,13 +589,15 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.card),
|
icon: const Icon(Iconsax.card),
|
||||||
text: 'DonationAlerts',
|
text: 'DonationAlerts',
|
||||||
onPressed: () => urlLauncher('https://www.donationalerts.com/r/yoshimok'),
|
onPressed: () => urlLauncher(
|
||||||
|
'https://www.donationalerts.com/r/yoshimok'),
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.wallet),
|
icon: const Icon(Iconsax.wallet),
|
||||||
text: 'ЮMoney',
|
text: 'ЮMoney',
|
||||||
onPressed: () => urlLauncher('https://yoomoney.ru/to/4100117672775961'),
|
onPressed: () => urlLauncher(
|
||||||
|
'https://yoomoney.ru/to/4100117672775961'),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
],
|
],
|
||||||
|
@ -545,30 +615,34 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
info: true,
|
info: true,
|
||||||
textInfo: '$appVersion',
|
textInfo: '$appVersion',
|
||||||
),
|
),
|
||||||
|
SettingCard(
|
||||||
|
icon: const Icon(Iconsax.document),
|
||||||
|
text: 'license'.tr,
|
||||||
|
onPressed: () => Get.to(
|
||||||
|
LicensePage(
|
||||||
|
applicationIcon: Container(
|
||||||
|
width: 100,
|
||||||
|
height: 100,
|
||||||
|
margin: const EdgeInsets.symmetric(vertical: 5),
|
||||||
|
decoration: const BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(20)),
|
||||||
|
image: DecorationImage(
|
||||||
|
image: AssetImage('assets/icons/icon.png'))),
|
||||||
|
),
|
||||||
|
applicationName: 'Rain',
|
||||||
|
applicationVersion: appVersion,
|
||||||
|
),
|
||||||
|
transition: Transition.downToUp,
|
||||||
|
),
|
||||||
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: Image.asset(
|
icon: Image.asset(
|
||||||
'assets/images/github.png',
|
'assets/images/github.png',
|
||||||
scale: 20,
|
scale: 20,
|
||||||
),
|
),
|
||||||
text: '${'project'.tr} GitHub',
|
text: '${'project'.tr} GitHub',
|
||||||
onPressed: () => urlLauncher('https://github.com/DarkMooNight/Rain'),
|
onPressed: () =>
|
||||||
),
|
urlLauncher('https://github.com/DarkMooNight/Rain'),
|
||||||
SettingCard(
|
|
||||||
icon: const Icon(Iconsax.document),
|
|
||||||
text: 'license'.tr,
|
|
||||||
onPressed: () => Get.to(
|
|
||||||
LicensePage(
|
|
||||||
applicationIcon: const SizedBox(
|
|
||||||
width: 100,
|
|
||||||
height: 100,
|
|
||||||
child: Image(
|
|
||||||
image: AssetImage('assets/icons/icon.png'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
applicationName: 'Rain',
|
|
||||||
applicationVersion: appVersion,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -68,7 +68,8 @@ class _WeatherDailyState extends State<WeatherDaily> {
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
DateFormat.EEEE(locale.languageCode).format(weatherData['timeDaily'][index]),
|
DateFormat.EEEE(locale.languageCode)
|
||||||
|
.format(weatherData['timeDaily'][index]),
|
||||||
style: labelLarge,
|
style: labelLarge,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -77,13 +78,15 @@ class _WeatherDailyState extends State<WeatherDaily> {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
statusWeather.getImage7Day(weatherCodeDaily[index]),
|
statusWeather
|
||||||
|
.getImage7Day(weatherCodeDaily[index]),
|
||||||
scale: 3,
|
scale: 3,
|
||||||
),
|
),
|
||||||
const SizedBox(width: 5),
|
const SizedBox(width: 5),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
statusWeather.getText(weatherCodeDaily[index]),
|
statusWeather
|
||||||
|
.getText(weatherCodeDaily[index]),
|
||||||
style: labelLarge,
|
style: labelLarge,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
|
@ -96,7 +99,9 @@ class _WeatherDailyState extends State<WeatherDaily> {
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
statusData.getDegree(weatherData['temperature2MMin'][index].round()),
|
statusData.getDegree(
|
||||||
|
weatherData['temperature2MMin'][index]
|
||||||
|
.round()),
|
||||||
style: labelLarge,
|
style: labelLarge,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
|
@ -104,7 +109,9 @@ class _WeatherDailyState extends State<WeatherDaily> {
|
||||||
style: bodyMediumGrey,
|
style: bodyMediumGrey,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
statusData.getDegree(weatherData['temperature2MMax'][index].round()),
|
statusData.getDegree(
|
||||||
|
weatherData['temperature2MMax'][index]
|
||||||
|
.round()),
|
||||||
style: bodyMediumGrey,
|
style: bodyMediumGrey,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -39,7 +39,8 @@ class Translation extends Translations {
|
||||||
'hPa': 'гПа',
|
'hPa': 'гПа',
|
||||||
'settings': 'Настр.',
|
'settings': 'Настр.',
|
||||||
'no_inter': 'Нет интернета',
|
'no_inter': 'Нет интернета',
|
||||||
'on_inter': 'Включите интернет для получения метеорологических данных.',
|
'on_inter':
|
||||||
|
'Включите интернет для получения метеорологических данных.',
|
||||||
'location': 'Местоположение',
|
'location': 'Местоположение',
|
||||||
'no_location':
|
'no_location':
|
||||||
'Включите службу определения местоположения для получения метеорологических данных для текущего местоположения.',
|
'Включите службу определения местоположения для получения метеорологических данных для текущего местоположения.',
|
||||||
|
@ -110,7 +111,7 @@ class Translation extends Translations {
|
||||||
'system': 'Системная',
|
'system': 'Системная',
|
||||||
'dark': 'Тёмная',
|
'dark': 'Тёмная',
|
||||||
'light': 'Светлая',
|
'light': 'Светлая',
|
||||||
'license': 'Лицензия',
|
'license': 'Лицензии',
|
||||||
},
|
},
|
||||||
'en_US': {
|
'en_US': {
|
||||||
'start': 'Get Started',
|
'start': 'Get Started',
|
||||||
|
@ -150,7 +151,8 @@ class Translation extends Translations {
|
||||||
'no_inter': 'No Internet',
|
'no_inter': 'No Internet',
|
||||||
'on_inter': 'Turn on the Internet to get meteorological data.',
|
'on_inter': 'Turn on the Internet to get meteorological data.',
|
||||||
'location': 'Location',
|
'location': 'Location',
|
||||||
'no_location': 'Enable the location service to get weather data for the current location.',
|
'no_location':
|
||||||
|
'Enable the location service to get weather data for the current location.',
|
||||||
'theme': 'Theme',
|
'theme': 'Theme',
|
||||||
'low': 'Low',
|
'low': 'Low',
|
||||||
'high': 'High',
|
'high': 'High',
|
||||||
|
@ -162,7 +164,8 @@ class Translation extends Translations {
|
||||||
'district': 'District',
|
'district': 'District',
|
||||||
'noWeatherCard': 'Add a city',
|
'noWeatherCard': 'Add a city',
|
||||||
'deletedCardWeather': 'Deleting a city',
|
'deletedCardWeather': 'Deleting a city',
|
||||||
'deletedCardWeatherQuery': 'Are you sure you want to delete the city?',
|
'deletedCardWeatherQuery':
|
||||||
|
'Are you sure you want to delete the city?',
|
||||||
'delete': 'Delete',
|
'delete': 'Delete',
|
||||||
'cancel': 'Cancel',
|
'cancel': 'Cancel',
|
||||||
'time': 'Time in the city',
|
'time': 'Time in the city',
|
||||||
|
@ -218,7 +221,7 @@ class Translation extends Translations {
|
||||||
'system': 'System',
|
'system': 'System',
|
||||||
'dark': 'Dark',
|
'dark': 'Dark',
|
||||||
'light': 'Light',
|
'light': 'Light',
|
||||||
'license': 'License',
|
'license': 'Licenses',
|
||||||
},
|
},
|
||||||
'fr_FR': {
|
'fr_FR': {
|
||||||
'start': 'Démarrer',
|
'start': 'Démarrer',
|
||||||
|
@ -256,7 +259,8 @@ class Translation extends Translations {
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Par.',
|
'settings': 'Par.',
|
||||||
'no_inter': 'Pas de réseau',
|
'no_inter': 'Pas de réseau',
|
||||||
'on_inter': 'Connectez-vous à internet pour obtenir des données météorologiques.',
|
'on_inter':
|
||||||
|
'Connectez-vous à internet pour obtenir des données météorologiques.',
|
||||||
'location': 'Localisation',
|
'location': 'Localisation',
|
||||||
'no_location':
|
'no_location':
|
||||||
'Activez le service de localisation pour obtenir les données météorologiques de l\'endroit actuel.',
|
'Activez le service de localisation pour obtenir les données météorologiques de l\'endroit actuel.',
|
||||||
|
@ -271,7 +275,8 @@ class Translation extends Translations {
|
||||||
'district': 'District',
|
'district': 'District',
|
||||||
'noWeatherCard': 'Ajouter une ville',
|
'noWeatherCard': 'Ajouter une ville',
|
||||||
'deletedCardWeather': 'Supprimer une ville',
|
'deletedCardWeather': 'Supprimer une ville',
|
||||||
'deletedCardWeatherQuery': 'Êtes-vous sûr de vouloir supprimer la ville ?',
|
'deletedCardWeatherQuery':
|
||||||
|
'Êtes-vous sûr de vouloir supprimer la ville ?',
|
||||||
'delete': 'Supprimer',
|
'delete': 'Supprimer',
|
||||||
'cancel': 'Annuler',
|
'cancel': 'Annuler',
|
||||||
'time': 'Heure locale',
|
'time': 'Heure locale',
|
||||||
|
@ -327,7 +332,7 @@ class Translation extends Translations {
|
||||||
'system': 'Système',
|
'system': 'Système',
|
||||||
'dark': 'Sombre',
|
'dark': 'Sombre',
|
||||||
'light': 'Clair',
|
'light': 'Clair',
|
||||||
'license': 'Licence',
|
'license': 'Licences',
|
||||||
},
|
},
|
||||||
'it_IT': {
|
'it_IT': {
|
||||||
'start': 'Clicca per iniziare',
|
'start': 'Clicca per iniziare',
|
||||||
|
@ -365,9 +370,11 @@ class Translation extends Translations {
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Imposta.',
|
'settings': 'Imposta.',
|
||||||
'no_inter': 'Non c\'è connessione Internet',
|
'no_inter': 'Non c\'è connessione Internet',
|
||||||
'on_inter': 'Attiva la connessione Internet per avere dati meteorologici.',
|
'on_inter':
|
||||||
|
'Attiva la connessione Internet per avere dati meteorologici.',
|
||||||
'location': 'Posizione',
|
'location': 'Posizione',
|
||||||
'no_location': 'Abilita il servizio di localizzazione per ottenere i dati meteo per la posizione corrente.',
|
'no_location':
|
||||||
|
'Abilita il servizio di localizzazione per ottenere i dati meteo per la posizione corrente.',
|
||||||
'theme': 'Tema',
|
'theme': 'Tema',
|
||||||
'low': 'Basso',
|
'low': 'Basso',
|
||||||
'high': 'Alto',
|
'high': 'Alto',
|
||||||
|
@ -379,7 +386,8 @@ class Translation extends Translations {
|
||||||
'district': 'Regione',
|
'district': 'Regione',
|
||||||
'noWeatherCard': 'Aggiungi una città',
|
'noWeatherCard': 'Aggiungi una città',
|
||||||
'deletedCardWeather': 'Rimozione della città',
|
'deletedCardWeather': 'Rimozione della città',
|
||||||
'deletedCardWeatherQuery': 'Sei sicuro di voler rimuovere questa città?',
|
'deletedCardWeatherQuery':
|
||||||
|
'Sei sicuro di voler rimuovere questa città?',
|
||||||
'delete': 'Elimina',
|
'delete': 'Elimina',
|
||||||
'cancel': 'Annulla',
|
'cancel': 'Annulla',
|
||||||
'time': 'Orario locale',
|
'time': 'Orario locale',
|
||||||
|
@ -435,7 +443,7 @@ class Translation extends Translations {
|
||||||
'system': 'Sistema',
|
'system': 'Sistema',
|
||||||
'dark': 'Scuro',
|
'dark': 'Scuro',
|
||||||
'light': 'Chiaro',
|
'light': 'Chiaro',
|
||||||
'license': 'Licenza',
|
'license': 'Licenze',
|
||||||
},
|
},
|
||||||
'de_DE': {
|
'de_DE': {
|
||||||
'start': 'Los gehts',
|
'start': 'Los gehts',
|
||||||
|
@ -473,9 +481,11 @@ class Translation extends Translations {
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Einstellungen',
|
'settings': 'Einstellungen',
|
||||||
'no_inter': 'Keine Internetverbindung',
|
'no_inter': 'Keine Internetverbindung',
|
||||||
'on_inter': 'Schalte das Internet ein, um meteorologische Daten zu erhalten.',
|
'on_inter':
|
||||||
|
'Schalte das Internet ein, um meteorologische Daten zu erhalten.',
|
||||||
'location': 'Standort',
|
'location': 'Standort',
|
||||||
'no_location': 'Aktiviere den Standortdienst, um Wetterdaten für den aktuellen Standort zu erhalten.',
|
'no_location':
|
||||||
|
'Aktiviere den Standortdienst, um Wetterdaten für den aktuellen Standort zu erhalten.',
|
||||||
'theme': 'Thema',
|
'theme': 'Thema',
|
||||||
'low': 'Niedrig',
|
'low': 'Niedrig',
|
||||||
'high': 'Hoch',
|
'high': 'Hoch',
|
||||||
|
@ -487,7 +497,8 @@ class Translation extends Translations {
|
||||||
'district': 'Bezirk',
|
'district': 'Bezirk',
|
||||||
'noWeatherCard': 'Füge eine Stadt hinzu',
|
'noWeatherCard': 'Füge eine Stadt hinzu',
|
||||||
'deletedCardWeather': 'Stadt löschen',
|
'deletedCardWeather': 'Stadt löschen',
|
||||||
'deletedCardWeatherQuery': 'Sind Sie sicher, dass Sie die Stadt löschen möchten?',
|
'deletedCardWeatherQuery':
|
||||||
|
'Sind Sie sicher, dass Sie die Stadt löschen möchten?',
|
||||||
'delete': 'Löschen',
|
'delete': 'Löschen',
|
||||||
'cancel': 'Abbrechen',
|
'cancel': 'Abbrechen',
|
||||||
'time': 'Ortszeit',
|
'time': 'Ortszeit',
|
||||||
|
@ -543,7 +554,7 @@ class Translation extends Translations {
|
||||||
'system': 'System',
|
'system': 'System',
|
||||||
'dark': 'Dunkel',
|
'dark': 'Dunkel',
|
||||||
'light': 'Hell',
|
'light': 'Hell',
|
||||||
'license': 'Lizenz',
|
'license': 'Lizenzen',
|
||||||
},
|
},
|
||||||
'tr_TR': {
|
'tr_TR': {
|
||||||
'start': 'Başlat',
|
'start': 'Başlat',
|
||||||
|
@ -583,7 +594,8 @@ class Translation extends Translations {
|
||||||
'no_inter': 'İnternet yok',
|
'no_inter': 'İnternet yok',
|
||||||
'on_inter': 'Hava durumu verilerini almak için interneti açın.',
|
'on_inter': 'Hava durumu verilerini almak için interneti açın.',
|
||||||
'location': 'Konum',
|
'location': 'Konum',
|
||||||
'no_location': 'Mevcut konumun hava durumu verilerini almak için konum servisini açın.',
|
'no_location':
|
||||||
|
'Mevcut konumun hava durumu verilerini almak için konum servisini açın.',
|
||||||
'theme': 'Tema',
|
'theme': 'Tema',
|
||||||
'low': 'Düşük',
|
'low': 'Düşük',
|
||||||
'high': 'Yüksek',
|
'high': 'Yüksek',
|
||||||
|
@ -595,7 +607,8 @@ class Translation extends Translations {
|
||||||
'district': 'İlçe',
|
'district': 'İlçe',
|
||||||
'noWeatherCard': 'Şehri ekle',
|
'noWeatherCard': 'Şehri ekle',
|
||||||
'deletedCardWeather': 'Şehir silme',
|
'deletedCardWeather': 'Şehir silme',
|
||||||
'deletedCardWeatherQuery': 'Şehri silmek istediğinizden emin misiniz?',
|
'deletedCardWeatherQuery':
|
||||||
|
'Şehri silmek istediğinizden emin misiniz?',
|
||||||
'delete': 'Sil',
|
'delete': 'Sil',
|
||||||
'cancel': 'İptal',
|
'cancel': 'İptal',
|
||||||
'time': 'Şehirde Saat',
|
'time': 'Şehirde Saat',
|
||||||
|
@ -651,7 +664,7 @@ class Translation extends Translations {
|
||||||
'system': 'Sistem',
|
'system': 'Sistem',
|
||||||
'dark': 'Karanlık',
|
'dark': 'Karanlık',
|
||||||
'light': 'Aydınlık',
|
'light': 'Aydınlık',
|
||||||
'license': 'Lisans',
|
'license': 'Lisanslar',
|
||||||
},
|
},
|
||||||
'pt_BR': {
|
'pt_BR': {
|
||||||
'start': 'Iniciar',
|
'start': 'Iniciar',
|
||||||
|
@ -691,7 +704,8 @@ class Translation extends Translations {
|
||||||
'no_inter': 'Sem conexão',
|
'no_inter': 'Sem conexão',
|
||||||
'on_inter': 'Conecte-se a internet para atualizar os dados de clima.',
|
'on_inter': 'Conecte-se a internet para atualizar os dados de clima.',
|
||||||
'location': 'Localização',
|
'location': 'Localização',
|
||||||
'no_location': 'Habilite a localização para obter dados de clima do local atual.',
|
'no_location':
|
||||||
|
'Habilite a localização para obter dados de clima do local atual.',
|
||||||
'theme': 'Tema',
|
'theme': 'Tema',
|
||||||
'low': 'Baixo',
|
'low': 'Baixo',
|
||||||
'high': 'Alto',
|
'high': 'Alto',
|
||||||
|
@ -703,7 +717,8 @@ class Translation extends Translations {
|
||||||
'district': 'Distrito',
|
'district': 'Distrito',
|
||||||
'noWeatherCard': 'Adicione uma cidade',
|
'noWeatherCard': 'Adicione uma cidade',
|
||||||
'deletedCardWeather': 'Deletando a cidade',
|
'deletedCardWeather': 'Deletando a cidade',
|
||||||
'deletedCardWeatherQuery': 'Você tem certeza que deseja remover esta cidade?',
|
'deletedCardWeatherQuery':
|
||||||
|
'Você tem certeza que deseja remover esta cidade?',
|
||||||
'delete': 'Deletar',
|
'delete': 'Deletar',
|
||||||
'cancel': 'Cancelar',
|
'cancel': 'Cancelar',
|
||||||
'time': 'Clima na cidade',
|
'time': 'Clima na cidade',
|
||||||
|
@ -759,7 +774,7 @@ class Translation extends Translations {
|
||||||
'system': 'Sistema',
|
'system': 'Sistema',
|
||||||
'dark': 'Escuro',
|
'dark': 'Escuro',
|
||||||
'light': 'Claro',
|
'light': 'Claro',
|
||||||
'license': 'Licença',
|
'license': 'Licenças',
|
||||||
},
|
},
|
||||||
'es_ES': {
|
'es_ES': {
|
||||||
'start': 'Empezar',
|
'start': 'Empezar',
|
||||||
|
@ -797,9 +812,11 @@ class Translation extends Translations {
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Ajustes',
|
'settings': 'Ajustes',
|
||||||
'no_inter': 'Sin conexión a Internet',
|
'no_inter': 'Sin conexión a Internet',
|
||||||
'on_inter': 'Conéctate a Internet para obtener información meteorológica.',
|
'on_inter':
|
||||||
|
'Conéctate a Internet para obtener información meteorológica.',
|
||||||
'location': 'Ubicación',
|
'location': 'Ubicación',
|
||||||
'no_location': 'Activa la localización para obtener información meteorológica para tu ubicación actual.',
|
'no_location':
|
||||||
|
'Activa la localización para obtener información meteorológica para tu ubicación actual.',
|
||||||
'theme': 'Tema',
|
'theme': 'Tema',
|
||||||
'low': 'Bajo',
|
'low': 'Bajo',
|
||||||
'high': 'Alto',
|
'high': 'Alto',
|
||||||
|
@ -811,7 +828,8 @@ class Translation extends Translations {
|
||||||
'district': 'Distrito',
|
'district': 'Distrito',
|
||||||
'noWeatherCard': 'Añadir una ciudad',
|
'noWeatherCard': 'Añadir una ciudad',
|
||||||
'deletedCardWeather': 'Eliminar una ciudad',
|
'deletedCardWeather': 'Eliminar una ciudad',
|
||||||
'deletedCardWeatherQuery': '¿Estás seguro de que quieres eliminar la ciudad?',
|
'deletedCardWeatherQuery':
|
||||||
|
'¿Estás seguro de que quieres eliminar la ciudad?',
|
||||||
'delete': 'Eliminar',
|
'delete': 'Eliminar',
|
||||||
'cancel': 'Cancelar',
|
'cancel': 'Cancelar',
|
||||||
'time': 'Hora en la ciudad',
|
'time': 'Hora en la ciudad',
|
||||||
|
@ -867,7 +885,7 @@ class Translation extends Translations {
|
||||||
'system': 'Sistema',
|
'system': 'Sistema',
|
||||||
'dark': 'Oscuro',
|
'dark': 'Oscuro',
|
||||||
'light': 'Claro',
|
'light': 'Claro',
|
||||||
'license': 'Licencia',
|
'license': 'Licencias',
|
||||||
},
|
},
|
||||||
'sk_SK': {
|
'sk_SK': {
|
||||||
'start': 'Začať',
|
'start': 'Začať',
|
||||||
|
@ -905,9 +923,11 @@ class Translation extends Translations {
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Set.',
|
'settings': 'Set.',
|
||||||
'no_inter': 'Žiadny internet',
|
'no_inter': 'Žiadny internet',
|
||||||
'on_inter': 'Pripojte sa na internet a získajte meteorologické údaje.',
|
'on_inter':
|
||||||
|
'Pripojte sa na internet a získajte meteorologické údaje.',
|
||||||
'location': 'Poloha',
|
'location': 'Poloha',
|
||||||
'no_location': 'Ak chcete získať údaje o počasí pre aktuálnu polohu, povoľte službu určovania polohy.',
|
'no_location':
|
||||||
|
'Ak chcete získať údaje o počasí pre aktuálnu polohu, povoľte službu určovania polohy.',
|
||||||
'theme': 'Téma',
|
'theme': 'Téma',
|
||||||
'low': 'Nízky',
|
'low': 'Nízky',
|
||||||
'high': 'Vysoký',
|
'high': 'Vysoký',
|
||||||
|
@ -975,7 +995,7 @@ class Translation extends Translations {
|
||||||
'system': 'Systém',
|
'system': 'Systém',
|
||||||
'dark': 'Tmavá',
|
'dark': 'Tmavá',
|
||||||
'light': 'Svetlá',
|
'light': 'Svetlá',
|
||||||
'license': 'Licencia',
|
'license': 'Licencie',
|
||||||
},
|
},
|
||||||
'nl_NL': {
|
'nl_NL': {
|
||||||
'start': 'Beginnen',
|
'start': 'Beginnen',
|
||||||
|
@ -1013,9 +1033,11 @@ class Translation extends Translations {
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Instellingen.',
|
'settings': 'Instellingen.',
|
||||||
'no_inter': 'Geen Internet',
|
'no_inter': 'Geen Internet',
|
||||||
'on_inter': 'Schakel Internet in om meteorologische gegevens te ontvangen.',
|
'on_inter':
|
||||||
|
'Schakel Internet in om meteorologische gegevens te ontvangen.',
|
||||||
'location': 'Locatie',
|
'location': 'Locatie',
|
||||||
'no_location': 'Schakel de locatiedienst in om weer gegevens voor de huidige locatie te ontvangen.',
|
'no_location':
|
||||||
|
'Schakel de locatiedienst in om weer gegevens voor de huidige locatie te ontvangen.',
|
||||||
'theme': 'Thema',
|
'theme': 'Thema',
|
||||||
'low': 'Laag',
|
'low': 'Laag',
|
||||||
'high': 'Hoog',
|
'high': 'Hoog',
|
||||||
|
@ -1027,7 +1049,8 @@ class Translation extends Translations {
|
||||||
'district': 'District',
|
'district': 'District',
|
||||||
'noWeatherCard': 'Voeg een stad toe',
|
'noWeatherCard': 'Voeg een stad toe',
|
||||||
'deletedCardWeather': 'Verwijder een city',
|
'deletedCardWeather': 'Verwijder een city',
|
||||||
'deletedCardWeatherQuery': 'Weet je zeker dat je de stad wilt verwijderen?',
|
'deletedCardWeatherQuery':
|
||||||
|
'Weet je zeker dat je de stad wilt verwijderen?',
|
||||||
'delete': 'Verwijder',
|
'delete': 'Verwijder',
|
||||||
'cancel': 'Annuleer',
|
'cancel': 'Annuleer',
|
||||||
'time': 'Tijd in de stad',
|
'time': 'Tijd in de stad',
|
||||||
|
@ -1083,7 +1106,7 @@ class Translation extends Translations {
|
||||||
'system': 'Systeem',
|
'system': 'Systeem',
|
||||||
'dark': 'Donker',
|
'dark': 'Donker',
|
||||||
'light': 'Licht',
|
'light': 'Licht',
|
||||||
'license': 'Licentie',
|
'license': 'Licenties',
|
||||||
},
|
},
|
||||||
"hi_IN": {
|
"hi_IN": {
|
||||||
'start': 'शुरू करें',
|
'start': 'शुरू करें',
|
||||||
|
@ -1231,7 +1254,8 @@ class Translation extends Translations {
|
||||||
'no_inter': 'Fără Internet',
|
'no_inter': 'Fără Internet',
|
||||||
'on_inter': 'Pornește Internetul pentru a obține date meteorologice.',
|
'on_inter': 'Pornește Internetul pentru a obține date meteorologice.',
|
||||||
'location': 'Locație',
|
'location': 'Locație',
|
||||||
'no_location': 'Activează serviciul de localizare pentru a obține date meteorologice pentru locația curentă.',
|
'no_location':
|
||||||
|
'Activează serviciul de localizare pentru a obține date meteorologice pentru locația curentă.',
|
||||||
'theme': 'Temă',
|
'theme': 'Temă',
|
||||||
'low': 'Scăzut',
|
'low': 'Scăzut',
|
||||||
'high': 'Ridicat',
|
'high': 'Ridicat',
|
||||||
|
@ -1299,7 +1323,7 @@ class Translation extends Translations {
|
||||||
'system': 'Sistem',
|
'system': 'Sistem',
|
||||||
'dark': 'Întunecat',
|
'dark': 'Întunecat',
|
||||||
'light': 'Luminos',
|
'light': 'Luminos',
|
||||||
'license': 'Licență',
|
'license': 'Licențe',
|
||||||
},
|
},
|
||||||
'zh_CN': {
|
'zh_CN': {
|
||||||
'start': '开始',
|
'start': '开始',
|
||||||
|
@ -1446,7 +1470,8 @@ class Translation extends Translations {
|
||||||
'no_inter': 'Brak internetu',
|
'no_inter': 'Brak internetu',
|
||||||
'on_inter': 'Włącz Internet, aby uzyskać dane meteorologiczne.',
|
'on_inter': 'Włącz Internet, aby uzyskać dane meteorologiczne.',
|
||||||
'location': 'Lokalizacja',
|
'location': 'Lokalizacja',
|
||||||
'no_location': 'Włącz usługę lokalizacyjną, aby uzyskać dane pogodowe dla bieżącej lokalizacji.',
|
'no_location':
|
||||||
|
'Włącz usługę lokalizacyjną, aby uzyskać dane pogodowe dla bieżącej lokalizacji.',
|
||||||
'theme': 'Motyw',
|
'theme': 'Motyw',
|
||||||
'low': 'Niski',
|
'low': 'Niski',
|
||||||
'high': 'Wysoki',
|
'high': 'Wysoki',
|
||||||
|
@ -1514,7 +1539,7 @@ class Translation extends Translations {
|
||||||
'system': 'System',
|
'system': 'System',
|
||||||
'dark': 'Ciemny',
|
'dark': 'Ciemny',
|
||||||
'light': 'Jasny',
|
'light': 'Jasny',
|
||||||
'license': 'Licencja',
|
'license': 'Licencje',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -753,10 +753,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: platform
|
name: platform
|
||||||
sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102
|
sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.2"
|
version: "3.1.3"
|
||||||
plugin_platform_interface:
|
plugin_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue