mirror of
https://github.com/darkmoonight/Rain.git
synced 2025-06-28 20:19:58 +00:00
Fix bugs
This commit is contained in:
parent
d169f6237f
commit
fb150421a6
62 changed files with 5006 additions and 4901 deletions
|
@ -62,5 +62,5 @@ This project is licensed under the [MIT License](./LICENSE).
|
||||||
### 👨💻 Our Contributors
|
### 👨💻 Our Contributors
|
||||||
|
|
||||||
<a href='https://github.com/darkmoonight/Rain/graphs/contributors'>
|
<a href='https://github.com/darkmoonight/Rain/graphs/contributors'>
|
||||||
<img src='https://contrib.rocks/image?repo=darkmoonight/Rain' />
|
<img src='https://contrib.rocks/image?repo=darkmoonight/Rain'/>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -7,8 +7,8 @@ import 'package:rain/app/data/db.dart';
|
||||||
import 'package:rain/main.dart';
|
import 'package:rain/main.dart';
|
||||||
|
|
||||||
class WeatherAPI {
|
class WeatherAPI {
|
||||||
final Dio dio = Dio()
|
final Dio dio =
|
||||||
..options.baseUrl = 'https://api.open-meteo.com/v1/forecast?';
|
Dio()..options.baseUrl = 'https://api.open-meteo.com/v1/forecast?';
|
||||||
final Dio dioLocation = Dio();
|
final Dio dioLocation = Dio();
|
||||||
|
|
||||||
static const String _weatherParams =
|
static const String _weatherParams =
|
||||||
|
@ -41,14 +41,25 @@ class WeatherAPI {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<WeatherCard> getWeatherCard(double lat, double lon, String city,
|
Future<WeatherCard> getWeatherCard(
|
||||||
String district, String timezone) async {
|
double lat,
|
||||||
|
double lon,
|
||||||
|
String city,
|
||||||
|
String district,
|
||||||
|
String timezone,
|
||||||
|
) async {
|
||||||
final String urlWeather = _buildWeatherUrl(lat, lon);
|
final String urlWeather = _buildWeatherUrl(lat, lon);
|
||||||
try {
|
try {
|
||||||
Response response = await dio.get(urlWeather);
|
Response response = await dio.get(urlWeather);
|
||||||
WeatherDataApi weatherData = WeatherDataApi.fromJson(response.data);
|
WeatherDataApi weatherData = WeatherDataApi.fromJson(response.data);
|
||||||
return _mapWeatherDataToCard(
|
return _mapWeatherDataToCard(
|
||||||
weatherData, lat, lon, city, district, timezone);
|
weatherData,
|
||||||
|
lat,
|
||||||
|
lon,
|
||||||
|
city,
|
||||||
|
district,
|
||||||
|
timezone,
|
||||||
|
);
|
||||||
} on DioException catch (e) {
|
} on DioException catch (e) {
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
print(e);
|
print(e);
|
||||||
|
@ -124,8 +135,14 @@ class WeatherAPI {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
WeatherCard _mapWeatherDataToCard(WeatherDataApi weatherData, double lat,
|
WeatherCard _mapWeatherDataToCard(
|
||||||
double lon, String city, String district, String timezone) {
|
WeatherDataApi weatherData,
|
||||||
|
double lat,
|
||||||
|
double lon,
|
||||||
|
String city,
|
||||||
|
String district,
|
||||||
|
String timezone,
|
||||||
|
) {
|
||||||
return WeatherCard(
|
return WeatherCard(
|
||||||
time: weatherData.hourly.time,
|
time: weatherData.hourly.time,
|
||||||
temperature2M: weatherData.hourly.temperature2M,
|
temperature2M: weatherData.hourly.temperature2M,
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
class CityApi {
|
class CityApi {
|
||||||
CityApi({
|
CityApi({required this.results});
|
||||||
required this.results,
|
|
||||||
});
|
|
||||||
|
|
||||||
List<Result> results;
|
List<Result> results;
|
||||||
|
|
||||||
factory CityApi.fromJson(Map<String, dynamic> json) => CityApi(
|
factory CityApi.fromJson(Map<String, dynamic> json) => CityApi(
|
||||||
results: json['results'] == null
|
results:
|
||||||
|
json['results'] == null
|
||||||
? List<Result>.empty()
|
? List<Result>.empty()
|
||||||
: List<Result>.from(json['results'].map((x) => Result.fromJson(x))),
|
: List<Result>.from(json['results'].map((x) => Result.fromJson(x))),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class Result {
|
class Result {
|
||||||
|
@ -26,9 +25,9 @@ class Result {
|
||||||
double longitude;
|
double longitude;
|
||||||
|
|
||||||
factory Result.fromJson(Map<String, dynamic> json) => Result(
|
factory Result.fromJson(Map<String, dynamic> json) => Result(
|
||||||
admin1: json['admin1'] ?? '',
|
admin1: json['admin1'] ?? '',
|
||||||
name: json['name'],
|
name: json['name'],
|
||||||
latitude: json['latitude'],
|
latitude: json['latitude'],
|
||||||
longitude: json['longitude'],
|
longitude: json['longitude'],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
|
||||||
import 'package:flutter_timezone/flutter_timezone.dart';
|
import 'package:flutter_timezone/flutter_timezone.dart';
|
||||||
import 'package:geocoding/geocoding.dart';
|
import 'package:geocoding/geocoding.dart';
|
||||||
import 'package:geolocator/geolocator.dart';
|
import 'package:geolocator/geolocator.dart';
|
||||||
|
@ -53,15 +52,14 @@ class WeatherController extends GetxController {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
weatherCards
|
weatherCards.assignAll(
|
||||||
.assignAll(isar.weatherCards.where().sortByIndex().findAllSync());
|
isar.weatherCards.where().sortByIndex().findAllSync(),
|
||||||
|
);
|
||||||
super.onInit();
|
super.onInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Position> determinePosition() async {
|
Future<Position> _determinePosition() async {
|
||||||
LocationPermission permission;
|
LocationPermission permission = await Geolocator.checkPermission();
|
||||||
|
|
||||||
permission = await Geolocator.checkPermission();
|
|
||||||
if (permission == LocationPermission.denied) {
|
if (permission == LocationPermission.denied) {
|
||||||
permission = await Geolocator.requestPermission();
|
permission = await Geolocator.requestPermission();
|
||||||
if (permission == LocationPermission.denied) {
|
if (permission == LocationPermission.denied) {
|
||||||
|
@ -71,7 +69,8 @@ class WeatherController extends GetxController {
|
||||||
|
|
||||||
if (permission == LocationPermission.deniedForever) {
|
if (permission == LocationPermission.deniedForever) {
|
||||||
return Future.error(
|
return Future.error(
|
||||||
'Location permissions are permanently denied, we cannot request permissions.');
|
'Location permissions are permanently denied, we cannot request permissions.',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return await Geolocator.getCurrentPosition();
|
return await Geolocator.getCurrentPosition();
|
||||||
}
|
}
|
||||||
|
@ -80,25 +79,26 @@ class WeatherController extends GetxController {
|
||||||
if (settings.location) {
|
if (settings.location) {
|
||||||
await getCurrentLocation();
|
await getCurrentLocation();
|
||||||
} else {
|
} else {
|
||||||
if ((isar.locationCaches.where().findAllSync()).isNotEmpty) {
|
final locationCity = isar.locationCaches.where().findFirstSync();
|
||||||
LocationCache locationCity =
|
if (locationCity != null) {
|
||||||
(isar.locationCaches.where().findFirstSync())!;
|
await getLocation(
|
||||||
await getLocation(locationCity.lat!, locationCity.lon!,
|
locationCity.lat!,
|
||||||
locationCity.district!, locationCity.city!);
|
locationCity.lon!,
|
||||||
|
locationCity.district!,
|
||||||
|
locationCity.city!,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> getCurrentLocation() async {
|
Future<void> getCurrentLocation() async {
|
||||||
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
|
|
||||||
|
|
||||||
if (!(await isOnline.value)) {
|
if (!(await isOnline.value)) {
|
||||||
showSnackBar(content: 'no_inter'.tr);
|
showSnackBar(content: 'no_inter'.tr);
|
||||||
await readCache();
|
await readCache();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!serviceEnabled) {
|
if (!await Geolocator.isLocationServiceEnabled()) {
|
||||||
showSnackBar(
|
showSnackBar(
|
||||||
content: 'no_location'.tr,
|
content: 'no_location'.tr,
|
||||||
onPressed: () => Geolocator.openLocationSettings(),
|
onPressed: () => Geolocator.openLocationSettings(),
|
||||||
|
@ -107,70 +107,73 @@ class WeatherController extends GetxController {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((isar.mainWeatherCaches.where().findAllSync()).isNotEmpty) {
|
if (isar.mainWeatherCaches.where().findAllSync().isNotEmpty) {
|
||||||
await readCache();
|
await readCache();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Position position = await determinePosition();
|
final position = await _determinePosition();
|
||||||
List<Placemark> placemarks =
|
final placemarks = await placemarkFromCoordinates(
|
||||||
await placemarkFromCoordinates(position.latitude, position.longitude);
|
position.latitude,
|
||||||
Placemark place = placemarks[0];
|
position.longitude,
|
||||||
|
);
|
||||||
|
final place = placemarks[0];
|
||||||
|
|
||||||
_latitude.value = position.latitude;
|
_latitude.value = position.latitude;
|
||||||
_longitude.value = position.longitude;
|
_longitude.value = position.longitude;
|
||||||
_district.value = '${place.administrativeArea}';
|
_district.value = place.administrativeArea ?? '';
|
||||||
_city.value = '${place.locality}';
|
_city.value = place.locality ?? '';
|
||||||
|
|
||||||
_mainWeather.value =
|
_mainWeather.value = await WeatherAPI().getWeatherData(
|
||||||
await WeatherAPI().getWeatherData(_latitude.value, _longitude.value);
|
_latitude.value,
|
||||||
|
_longitude.value,
|
||||||
|
);
|
||||||
|
|
||||||
notificationCheck();
|
notificationCheck();
|
||||||
|
|
||||||
await writeCache();
|
await writeCache();
|
||||||
await readCache();
|
await readCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Map> getCurrentLocationSearch() async {
|
Future<Map> getCurrentLocationSearch() async {
|
||||||
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
|
|
||||||
double lat, lon;
|
|
||||||
String city, district;
|
|
||||||
|
|
||||||
if (!(await isOnline.value)) {
|
if (!(await isOnline.value)) {
|
||||||
showSnackBar(content: 'no_inter'.tr);
|
showSnackBar(content: 'no_inter'.tr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!serviceEnabled) {
|
if (!await Geolocator.isLocationServiceEnabled()) {
|
||||||
showSnackBar(
|
showSnackBar(
|
||||||
content: 'no_location'.tr,
|
content: 'no_location'.tr,
|
||||||
onPressed: () => Geolocator.openLocationSettings(),
|
onPressed: () => Geolocator.openLocationSettings(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Position position = await determinePosition();
|
final position = await _determinePosition();
|
||||||
List<Placemark> placemarks =
|
final placemarks = await placemarkFromCoordinates(
|
||||||
await placemarkFromCoordinates(position.latitude, position.longitude);
|
position.latitude,
|
||||||
Placemark place = placemarks[0];
|
position.longitude,
|
||||||
|
);
|
||||||
|
final place = placemarks[0];
|
||||||
|
|
||||||
lat = position.latitude;
|
return {
|
||||||
lon = position.longitude;
|
'lat': position.latitude,
|
||||||
city = '${place.administrativeArea}';
|
'lon': position.longitude,
|
||||||
district = '${place.locality}';
|
'city': place.administrativeArea ?? '',
|
||||||
|
'district': place.locality ?? '',
|
||||||
Map location = {'lat': lat, 'lon': lon, 'city': city, 'district': district};
|
};
|
||||||
|
|
||||||
return location;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> getLocation(double latitude, double longitude, String district,
|
Future<void> getLocation(
|
||||||
String locality) async {
|
double latitude,
|
||||||
|
double longitude,
|
||||||
|
String district,
|
||||||
|
String locality,
|
||||||
|
) async {
|
||||||
if (!(await isOnline.value)) {
|
if (!(await isOnline.value)) {
|
||||||
showSnackBar(content: 'no_inter'.tr);
|
showSnackBar(content: 'no_inter'.tr);
|
||||||
await readCache();
|
await readCache();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((isar.mainWeatherCaches.where().findAllSync()).isNotEmpty) {
|
if (isar.mainWeatherCaches.where().findAllSync().isNotEmpty) {
|
||||||
await readCache();
|
await readCache();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -180,11 +183,12 @@ class WeatherController extends GetxController {
|
||||||
_district.value = district;
|
_district.value = district;
|
||||||
_city.value = locality;
|
_city.value = locality;
|
||||||
|
|
||||||
_mainWeather.value =
|
_mainWeather.value = await WeatherAPI().getWeatherData(
|
||||||
await WeatherAPI().getWeatherData(_latitude.value, _longitude.value);
|
_latitude.value,
|
||||||
|
_longitude.value,
|
||||||
|
);
|
||||||
|
|
||||||
notificationCheck();
|
notificationCheck();
|
||||||
|
|
||||||
await writeCache();
|
await writeCache();
|
||||||
await readCache();
|
await readCache();
|
||||||
}
|
}
|
||||||
|
@ -201,10 +205,14 @@ class WeatherController extends GetxController {
|
||||||
_mainWeather.value = mainWeatherCache;
|
_mainWeather.value = mainWeatherCache;
|
||||||
_location.value = locationCache;
|
_location.value = locationCache;
|
||||||
|
|
||||||
hourOfDay.value =
|
hourOfDay.value = getTime(
|
||||||
getTime(_mainWeather.value.time!, _mainWeather.value.timezone!);
|
_mainWeather.value.time!,
|
||||||
dayOfNow.value =
|
_mainWeather.value.timezone!,
|
||||||
getDay(_mainWeather.value.timeDaily!, _mainWeather.value.timezone!);
|
);
|
||||||
|
dayOfNow.value = getDay(
|
||||||
|
_mainWeather.value.timeDaily!,
|
||||||
|
_mainWeather.value.timezone!,
|
||||||
|
);
|
||||||
|
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
Workmanager().registerPeriodicTask(
|
Workmanager().registerPeriodicTask(
|
||||||
|
@ -235,16 +243,10 @@ class WeatherController extends GetxController {
|
||||||
);
|
);
|
||||||
|
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
final mainWeatherCachesIsEmpty =
|
if (isar.mainWeatherCaches.where().findAllSync().isEmpty) {
|
||||||
(isar.mainWeatherCaches.where().findAllSync()).isEmpty;
|
|
||||||
final locationCachesIsEmpty =
|
|
||||||
(isar.locationCaches.where().findAllSync()).isEmpty;
|
|
||||||
|
|
||||||
if (mainWeatherCachesIsEmpty) {
|
|
||||||
isar.mainWeatherCaches.putSync(_mainWeather.value);
|
isar.mainWeatherCaches.putSync(_mainWeather.value);
|
||||||
}
|
}
|
||||||
|
if (isar.locationCaches.where().findAllSync().isEmpty) {
|
||||||
if (locationCachesIsEmpty) {
|
|
||||||
isar.locationCaches.putSync(locationCaches);
|
isar.locationCaches.putSync(locationCaches);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -261,7 +263,7 @@ class WeatherController extends GetxController {
|
||||||
.timestampLessThan(cacheExpiry)
|
.timestampLessThan(cacheExpiry)
|
||||||
.deleteAllSync();
|
.deleteAllSync();
|
||||||
});
|
});
|
||||||
if ((isar.mainWeatherCaches.where().findAllSync()).isEmpty) {
|
if (isar.mainWeatherCaches.where().findAllSync().isEmpty) {
|
||||||
await flutterLocalNotificationsPlugin.cancelAll();
|
await flutterLocalNotificationsPlugin.cancelAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -271,31 +273,39 @@ class WeatherController extends GetxController {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
|
final serviceEnabled = await Geolocator.isLocationServiceEnabled();
|
||||||
await flutterLocalNotificationsPlugin.cancelAll();
|
await flutterLocalNotificationsPlugin.cancelAll();
|
||||||
|
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
if (!settings.location) {
|
if (!settings.location) {
|
||||||
isar.mainWeatherCaches.where().deleteAllSync();
|
isar.mainWeatherCaches.where().deleteAllSync();
|
||||||
}
|
}
|
||||||
if ((settings.location && serviceEnabled) || changeCity) {
|
if (settings.location && serviceEnabled || changeCity) {
|
||||||
isar.mainWeatherCaches.where().deleteAllSync();
|
isar.mainWeatherCaches.where().deleteAllSync();
|
||||||
isar.locationCaches.where().deleteAllSync();
|
isar.locationCaches.where().deleteAllSync();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Card Weather
|
|
||||||
Future<void> addCardWeather(
|
Future<void> addCardWeather(
|
||||||
double latitude, double longitude, String city, String district) async {
|
double latitude,
|
||||||
|
double longitude,
|
||||||
|
String city,
|
||||||
|
String district,
|
||||||
|
) async {
|
||||||
if (!(await isOnline.value)) {
|
if (!(await isOnline.value)) {
|
||||||
showSnackBar(content: 'no_inter'.tr);
|
showSnackBar(content: 'no_inter'.tr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String tz = tzmap.latLngToTimezoneString(latitude, longitude);
|
final tz = tzmap.latLngToTimezoneString(latitude, longitude);
|
||||||
_weatherCard.value = await WeatherAPI()
|
_weatherCard.value = await WeatherAPI().getWeatherCard(
|
||||||
.getWeatherCard(latitude, longitude, city, district, tz);
|
latitude,
|
||||||
|
longitude,
|
||||||
|
city,
|
||||||
|
district,
|
||||||
|
tz,
|
||||||
|
);
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
weatherCards.add(_weatherCard.value);
|
weatherCards.add(_weatherCard.value);
|
||||||
isar.weatherCards.putSync(_weatherCard.value);
|
isar.weatherCards.putSync(_weatherCard.value);
|
||||||
|
@ -303,21 +313,27 @@ class WeatherController extends GetxController {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> updateCacheCard(bool refresh) async {
|
Future<void> updateCacheCard(bool refresh) async {
|
||||||
List<WeatherCard> weatherCard = refresh
|
final weatherCard =
|
||||||
? isar.weatherCards.where().sortByIndex().findAllSync()
|
refresh
|
||||||
: isar.weatherCards
|
? isar.weatherCards.where().sortByIndex().findAllSync()
|
||||||
.filter()
|
: isar.weatherCards
|
||||||
.timestampLessThan(cacheExpiry)
|
.filter()
|
||||||
.sortByIndex()
|
.timestampLessThan(cacheExpiry)
|
||||||
.findAllSync();
|
.sortByIndex()
|
||||||
|
.findAllSync();
|
||||||
|
|
||||||
if ((!(await isOnline.value)) || weatherCard.isEmpty) {
|
if (!(await isOnline.value) || weatherCard.isEmpty) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var oldCard in weatherCard) {
|
for (var oldCard in weatherCard) {
|
||||||
var updatedCard = await WeatherAPI().getWeatherCard(oldCard.lat!,
|
final updatedCard = await WeatherAPI().getWeatherCard(
|
||||||
oldCard.lon!, oldCard.city!, oldCard.district!, oldCard.timezone!);
|
oldCard.lat!,
|
||||||
|
oldCard.lon!,
|
||||||
|
oldCard.city!,
|
||||||
|
oldCard.district!,
|
||||||
|
oldCard.timezone!,
|
||||||
|
);
|
||||||
isar.writeTxnSync(() {
|
isar.writeTxnSync(() {
|
||||||
oldCard
|
oldCard
|
||||||
..time = updatedCard.time
|
..time = updatedCard.time
|
||||||
|
@ -358,8 +374,8 @@ class WeatherController extends GetxController {
|
||||||
|
|
||||||
isar.weatherCards.putSync(oldCard);
|
isar.weatherCards.putSync(oldCard);
|
||||||
|
|
||||||
var newCard = oldCard;
|
final newCard = oldCard;
|
||||||
int oldIdx = weatherCard.indexOf(oldCard);
|
final oldIdx = weatherCard.indexOf(oldCard);
|
||||||
weatherCards[oldIdx] = newCard;
|
weatherCards[oldIdx] = newCard;
|
||||||
weatherCards.refresh();
|
weatherCards.refresh();
|
||||||
});
|
});
|
||||||
|
@ -428,35 +444,26 @@ class WeatherController extends GetxController {
|
||||||
}
|
}
|
||||||
|
|
||||||
int getTime(List<String> time, String timezone) {
|
int getTime(List<String> time, String timezone) {
|
||||||
int getTime = 0;
|
return time.indexWhere((t) {
|
||||||
for (var i = 0; i < time.length; i++) {
|
final dateTime = DateTime.parse(t);
|
||||||
if (tz.TZDateTime.now(tz.getLocation(timezone)).hour ==
|
return tz.TZDateTime.now(tz.getLocation(timezone)).hour ==
|
||||||
DateTime.parse(time[i]).hour &&
|
dateTime.hour &&
|
||||||
tz.TZDateTime.now(tz.getLocation(timezone)).day ==
|
tz.TZDateTime.now(tz.getLocation(timezone)).day == dateTime.day;
|
||||||
DateTime.parse(time[i]).day) {
|
});
|
||||||
getTime = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return getTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int getDay(List<DateTime> time, String timezone) {
|
int getDay(List<DateTime> time, String timezone) {
|
||||||
int getDay = 0;
|
return time.indexWhere(
|
||||||
for (var i = 0; i < time.length; i++) {
|
(t) => tz.TZDateTime.now(tz.getLocation(timezone)).day == t.day,
|
||||||
if (tz.TZDateTime.now(tz.getLocation(timezone)).day == time[i].day) {
|
);
|
||||||
getDay = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return getDay;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TimeOfDay timeConvert(String normTime) {
|
TimeOfDay timeConvert(String normTime) {
|
||||||
int hh = 0;
|
final hh = normTime.endsWith('PM') ? 12 : 0;
|
||||||
if (normTime.endsWith('PM')) hh = 12;
|
final timeParts = normTime.split(' ')[0].split(':');
|
||||||
normTime = normTime.split(' ')[0];
|
|
||||||
return TimeOfDay(
|
return TimeOfDay(
|
||||||
hour: hh + int.parse(normTime.split(':')[0]) % 24,
|
hour: hh + int.parse(timeParts[0]) % 24,
|
||||||
minute: int.parse(normTime.split(':')[1]) % 60,
|
minute: int.parse(timeParts[1]) % 60,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -464,8 +471,8 @@ class WeatherController extends GetxController {
|
||||||
final directory = await getTemporaryDirectory();
|
final directory = await getTemporaryDirectory();
|
||||||
final imagePath = '${directory.path}/$icon';
|
final imagePath = '${directory.path}/$icon';
|
||||||
|
|
||||||
final ByteData data = await rootBundle.load('assets/images/$icon');
|
final data = await rootBundle.load('assets/images/$icon');
|
||||||
final List<int> bytes = data.buffer.asUint8List();
|
final bytes = data.buffer.asUint8List();
|
||||||
|
|
||||||
await File(imagePath).writeAsBytes(bytes);
|
await File(imagePath).writeAsBytes(bytes);
|
||||||
|
|
||||||
|
@ -473,12 +480,12 @@ class WeatherController extends GetxController {
|
||||||
}
|
}
|
||||||
|
|
||||||
void notification(MainWeatherCache mainWeatherCache) async {
|
void notification(MainWeatherCache mainWeatherCache) async {
|
||||||
DateTime now = DateTime.now();
|
final now = DateTime.now();
|
||||||
int startHour = timeConvert(timeStart).hour;
|
final startHour = timeConvert(timeStart).hour;
|
||||||
int endHour = timeConvert(timeEnd).hour;
|
final endHour = timeConvert(timeEnd).hour;
|
||||||
|
|
||||||
for (var i = 0; i < mainWeatherCache.time!.length; i += timeRange) {
|
for (var i = 0; i < mainWeatherCache.time!.length; i += timeRange) {
|
||||||
DateTime notificationTime = DateTime.parse(mainWeatherCache.time![i]);
|
final notificationTime = DateTime.parse(mainWeatherCache.time![i]);
|
||||||
|
|
||||||
if (notificationTime.isAfter(now) &&
|
if (notificationTime.isAfter(now) &&
|
||||||
notificationTime.hour >= startHour &&
|
notificationTime.hour >= startHour &&
|
||||||
|
@ -505,7 +512,7 @@ class WeatherController extends GetxController {
|
||||||
|
|
||||||
void notificationCheck() async {
|
void notificationCheck() async {
|
||||||
if (settings.notifications) {
|
if (settings.notifications) {
|
||||||
final List<PendingNotificationRequest> pendingNotificationRequests =
|
final pendingNotificationRequests =
|
||||||
await flutterLocalNotificationsPlugin.pendingNotificationRequests();
|
await flutterLocalNotificationsPlugin.pendingNotificationRequests();
|
||||||
if (pendingNotificationRequests.isEmpty) {
|
if (pendingNotificationRequests.isEmpty) {
|
||||||
notification(_mainWeather.value);
|
notification(_mainWeather.value);
|
||||||
|
@ -513,7 +520,7 @@ class WeatherController extends GetxController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void reorder(oldIndex, newIndex) {
|
void reorder(int oldIndex, int newIndex) {
|
||||||
if (newIndex > oldIndex) {
|
if (newIndex > oldIndex) {
|
||||||
newIndex -= 1;
|
newIndex -= 1;
|
||||||
}
|
}
|
||||||
|
@ -533,15 +540,11 @@ class WeatherController extends GetxController {
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
|
|
||||||
return Future.wait<bool?>([
|
final results = await Future.wait<bool?>([
|
||||||
HomeWidget.saveWidgetData(
|
HomeWidget.saveWidgetData('background_color', color),
|
||||||
'background_color',
|
|
||||||
color,
|
|
||||||
),
|
|
||||||
HomeWidget.updateWidget(androidName: androidWidgetName),
|
HomeWidget.updateWidget(androidName: androidWidgetName),
|
||||||
]).then((value) {
|
]);
|
||||||
return !value.contains(false);
|
return !results.contains(false);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> updateWidgetTextColor(String color) async {
|
Future<bool> updateWidgetTextColor(String color) async {
|
||||||
|
@ -550,15 +553,11 @@ class WeatherController extends GetxController {
|
||||||
isar.settings.putSync(settings);
|
isar.settings.putSync(settings);
|
||||||
});
|
});
|
||||||
|
|
||||||
return Future.wait<bool?>([
|
final results = await Future.wait<bool?>([
|
||||||
HomeWidget.saveWidgetData(
|
HomeWidget.saveWidgetData('text_color', color),
|
||||||
'text_color',
|
|
||||||
color,
|
|
||||||
),
|
|
||||||
HomeWidget.updateWidget(androidName: androidWidgetName),
|
HomeWidget.updateWidget(androidName: androidWidgetName),
|
||||||
]).then((value) {
|
]);
|
||||||
return !value.contains(false);
|
return !results.contains(false);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> updateWidget() async {
|
Future<bool> updateWidget() async {
|
||||||
|
@ -573,34 +572,36 @@ class WeatherController extends GetxController {
|
||||||
WeatherCardSchema,
|
WeatherCardSchema,
|
||||||
], directory: (await getApplicationSupportDirectory()).path);
|
], directory: (await getApplicationSupportDirectory()).path);
|
||||||
|
|
||||||
MainWeatherCache? mainWeatherCache;
|
final mainWeatherCache =
|
||||||
mainWeatherCache = isarWidget.mainWeatherCaches.where().findFirstSync();
|
isarWidget.mainWeatherCaches.where().findFirstSync();
|
||||||
if (mainWeatherCache == null) return false;
|
if (mainWeatherCache == null) return false;
|
||||||
|
|
||||||
int hour = getTime(mainWeatherCache.time!, mainWeatherCache.timezone!);
|
final hour = getTime(mainWeatherCache.time!, mainWeatherCache.timezone!);
|
||||||
int day = getDay(mainWeatherCache.timeDaily!, mainWeatherCache.timezone!);
|
final day = getDay(mainWeatherCache.timeDaily!, mainWeatherCache.timezone!);
|
||||||
|
|
||||||
return Future.wait<bool?>([
|
final results = await Future.wait<bool?>([
|
||||||
HomeWidget.saveWidgetData(
|
HomeWidget.saveWidgetData(
|
||||||
'weather_icon',
|
'weather_icon',
|
||||||
await getLocalImagePath(StatusWeather().getImageNotification(
|
await getLocalImagePath(
|
||||||
|
StatusWeather().getImageNotification(
|
||||||
mainWeatherCache.weathercode![hour],
|
mainWeatherCache.weathercode![hour],
|
||||||
mainWeatherCache.time![hour],
|
mainWeatherCache.time![hour],
|
||||||
mainWeatherCache.sunrise![day],
|
mainWeatherCache.sunrise![day],
|
||||||
mainWeatherCache.sunset![day],
|
mainWeatherCache.sunset![day],
|
||||||
))),
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
HomeWidget.saveWidgetData(
|
HomeWidget.saveWidgetData(
|
||||||
'weather_degree',
|
'weather_degree',
|
||||||
'${mainWeatherCache.temperature2M?[hour].round()}°',
|
'${mainWeatherCache.temperature2M?[hour].round()}°',
|
||||||
),
|
),
|
||||||
HomeWidget.updateWidget(androidName: androidWidgetName),
|
HomeWidget.updateWidget(androidName: androidWidgetName),
|
||||||
]).then((value) {
|
]);
|
||||||
return !value.contains(false);
|
return !results.contains(false);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void urlLauncher(String uri) async {
|
void urlLauncher(String uri) async {
|
||||||
final Uri url = Uri.parse(uri);
|
final url = Uri.parse(uri);
|
||||||
if (!await launchUrl(url, mode: LaunchMode.externalApplication)) {
|
if (!await launchUrl(url, mode: LaunchMode.externalApplication)) {
|
||||||
throw Exception('Could not launch $url');
|
throw Exception('Could not launch $url');
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,43 +105,43 @@ class MainWeatherCache {
|
||||||
});
|
});
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => {
|
Map<String, dynamic> toJson() => {
|
||||||
'id': id,
|
'id': id,
|
||||||
'time': time,
|
'time': time,
|
||||||
'weathercode': weathercode,
|
'weathercode': weathercode,
|
||||||
'temperature2M': temperature2M,
|
'temperature2M': temperature2M,
|
||||||
'apparentTemperature': apparentTemperature,
|
'apparentTemperature': apparentTemperature,
|
||||||
'relativehumidity2M': relativehumidity2M,
|
'relativehumidity2M': relativehumidity2M,
|
||||||
'precipitation': precipitation,
|
'precipitation': precipitation,
|
||||||
'rain': rain,
|
'rain': rain,
|
||||||
'surfacePressure': surfacePressure,
|
'surfacePressure': surfacePressure,
|
||||||
'visibility': visibility,
|
'visibility': visibility,
|
||||||
'evapotranspiration': evapotranspiration,
|
'evapotranspiration': evapotranspiration,
|
||||||
'windspeed10M': windspeed10M,
|
'windspeed10M': windspeed10M,
|
||||||
'winddirection10M': winddirection10M,
|
'winddirection10M': winddirection10M,
|
||||||
'windgusts10M': windgusts10M,
|
'windgusts10M': windgusts10M,
|
||||||
'cloudcover': cloudcover,
|
'cloudcover': cloudcover,
|
||||||
'uvIndex': uvIndex,
|
'uvIndex': uvIndex,
|
||||||
'dewpoint2M': dewpoint2M,
|
'dewpoint2M': dewpoint2M,
|
||||||
'precipitationProbability': precipitationProbability,
|
'precipitationProbability': precipitationProbability,
|
||||||
'shortwaveRadiation': shortwaveRadiation,
|
'shortwaveRadiation': shortwaveRadiation,
|
||||||
'timeDaily': timeDaily,
|
'timeDaily': timeDaily,
|
||||||
'weathercodeDaily': weathercodeDaily,
|
'weathercodeDaily': weathercodeDaily,
|
||||||
'temperature2MMax': temperature2MMax,
|
'temperature2MMax': temperature2MMax,
|
||||||
'temperature2MMin': temperature2MMin,
|
'temperature2MMin': temperature2MMin,
|
||||||
'apparentTemperatureMax': apparentTemperatureMax,
|
'apparentTemperatureMax': apparentTemperatureMax,
|
||||||
'apparentTemperatureMin': apparentTemperatureMin,
|
'apparentTemperatureMin': apparentTemperatureMin,
|
||||||
'sunrise': sunrise,
|
'sunrise': sunrise,
|
||||||
'sunset': sunset,
|
'sunset': sunset,
|
||||||
'precipitationSum': precipitationSum,
|
'precipitationSum': precipitationSum,
|
||||||
'precipitationProbabilityMax': precipitationProbabilityMax,
|
'precipitationProbabilityMax': precipitationProbabilityMax,
|
||||||
'windspeed10MMax': windspeed10MMax,
|
'windspeed10MMax': windspeed10MMax,
|
||||||
'windgusts10MMax': windgusts10MMax,
|
'windgusts10MMax': windgusts10MMax,
|
||||||
'uvIndexMax': uvIndexMax,
|
'uvIndexMax': uvIndexMax,
|
||||||
'rainSum': rainSum,
|
'rainSum': rainSum,
|
||||||
'winddirection10MDominant': winddirection10MDominant,
|
'winddirection10MDominant': winddirection10MDominant,
|
||||||
'timezone': timezone,
|
'timezone': timezone,
|
||||||
'timestamp': timestamp,
|
'timestamp': timestamp,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@collection
|
@collection
|
||||||
|
@ -152,20 +152,15 @@ class LocationCache {
|
||||||
String? city;
|
String? city;
|
||||||
String? district;
|
String? district;
|
||||||
|
|
||||||
LocationCache({
|
LocationCache({this.lat, this.lon, this.city, this.district});
|
||||||
this.lat,
|
|
||||||
this.lon,
|
|
||||||
this.city,
|
|
||||||
this.district,
|
|
||||||
});
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => {
|
Map<String, dynamic> toJson() => {
|
||||||
'id': id,
|
'id': id,
|
||||||
'lat': lat,
|
'lat': lat,
|
||||||
'lon': lon,
|
'lon': lon,
|
||||||
'city': city,
|
'city': city,
|
||||||
'district': district,
|
'district': district,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@collection
|
@collection
|
||||||
|
@ -256,56 +251,57 @@ class WeatherCard {
|
||||||
});
|
});
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => {
|
Map<String, dynamic> toJson() => {
|
||||||
'id': id,
|
'id': id,
|
||||||
'time': time,
|
'time': time,
|
||||||
'weathercode': weathercode,
|
'weathercode': weathercode,
|
||||||
'temperature2M': temperature2M,
|
'temperature2M': temperature2M,
|
||||||
'apparentTemperature': apparentTemperature,
|
'apparentTemperature': apparentTemperature,
|
||||||
'relativehumidity2M': relativehumidity2M,
|
'relativehumidity2M': relativehumidity2M,
|
||||||
'precipitation': precipitation,
|
'precipitation': precipitation,
|
||||||
'rain': rain,
|
'rain': rain,
|
||||||
'surfacePressure': surfacePressure,
|
'surfacePressure': surfacePressure,
|
||||||
'visibility': visibility,
|
'visibility': visibility,
|
||||||
'evapotranspiration': evapotranspiration,
|
'evapotranspiration': evapotranspiration,
|
||||||
'windspeed10M': windspeed10M,
|
'windspeed10M': windspeed10M,
|
||||||
'winddirection10M': winddirection10M,
|
'winddirection10M': winddirection10M,
|
||||||
'windgusts10M': windgusts10M,
|
'windgusts10M': windgusts10M,
|
||||||
'cloudcover': cloudcover,
|
'cloudcover': cloudcover,
|
||||||
'uvIndex': uvIndex,
|
'uvIndex': uvIndex,
|
||||||
'dewpoint2M': dewpoint2M,
|
'dewpoint2M': dewpoint2M,
|
||||||
'precipitationProbability': precipitationProbability,
|
'precipitationProbability': precipitationProbability,
|
||||||
'shortwaveRadiation': shortwaveRadiation,
|
'shortwaveRadiation': shortwaveRadiation,
|
||||||
'timeDaily': timeDaily,
|
'timeDaily': timeDaily,
|
||||||
'weathercodeDaily': weathercodeDaily,
|
'weathercodeDaily': weathercodeDaily,
|
||||||
'temperature2MMax': temperature2MMax,
|
'temperature2MMax': temperature2MMax,
|
||||||
'temperature2MMin': temperature2MMin,
|
'temperature2MMin': temperature2MMin,
|
||||||
'apparentTemperatureMax': apparentTemperatureMax,
|
'apparentTemperatureMax': apparentTemperatureMax,
|
||||||
'apparentTemperatureMin': apparentTemperatureMin,
|
'apparentTemperatureMin': apparentTemperatureMin,
|
||||||
'sunrise': sunrise,
|
'sunrise': sunrise,
|
||||||
'sunset': sunset,
|
'sunset': sunset,
|
||||||
'precipitationSum': precipitationSum,
|
'precipitationSum': precipitationSum,
|
||||||
'precipitationProbabilityMax': precipitationProbabilityMax,
|
'precipitationProbabilityMax': precipitationProbabilityMax,
|
||||||
'windspeed10MMax': windspeed10MMax,
|
'windspeed10MMax': windspeed10MMax,
|
||||||
'windgusts10MMax': windgusts10MMax,
|
'windgusts10MMax': windgusts10MMax,
|
||||||
'uvIndexMax': uvIndexMax,
|
'uvIndexMax': uvIndexMax,
|
||||||
'rainSum': rainSum,
|
'rainSum': rainSum,
|
||||||
'winddirection10MDominant': winddirection10MDominant,
|
'winddirection10MDominant': winddirection10MDominant,
|
||||||
'timezone': timezone,
|
'timezone': timezone,
|
||||||
'timestamp': timestamp,
|
'timestamp': timestamp,
|
||||||
'lat': lat,
|
'lat': lat,
|
||||||
'lon': lon,
|
'lon': lon,
|
||||||
'city': city,
|
'city': city,
|
||||||
'district': district,
|
'district': district,
|
||||||
'index': index,
|
'index': index,
|
||||||
};
|
};
|
||||||
|
|
||||||
factory WeatherCard.fromJson(Map<String, dynamic> json) {
|
factory WeatherCard.fromJson(Map<String, dynamic> json) {
|
||||||
return WeatherCard(
|
return WeatherCard(
|
||||||
time: List<String>.from(json['time'] ?? []),
|
time: List<String>.from(json['time'] ?? []),
|
||||||
weathercode: List<int>.from(json['weathercode'] ?? []),
|
weathercode: List<int>.from(json['weathercode'] ?? []),
|
||||||
temperature2M: List<double>.from(json['temperature2M'] ?? []),
|
temperature2M: List<double>.from(json['temperature2M'] ?? []),
|
||||||
apparentTemperature:
|
apparentTemperature: List<double?>.from(
|
||||||
List<double?>.from(json['apparentTemperature'] ?? []),
|
json['apparentTemperature'] ?? [],
|
||||||
|
),
|
||||||
relativehumidity2M: List<int?>.from(json['relativehumidity2M'] ?? []),
|
relativehumidity2M: List<int?>.from(json['relativehumidity2M'] ?? []),
|
||||||
precipitation: List<double>.from(json['precipitation'] ?? []),
|
precipitation: List<double>.from(json['precipitation'] ?? []),
|
||||||
rain: List<double?>.from(json['rain'] ?? []),
|
rain: List<double?>.from(json['rain'] ?? []),
|
||||||
|
@ -318,26 +314,31 @@ class WeatherCard {
|
||||||
cloudcover: List<int?>.from(json['cloudcover'] ?? []),
|
cloudcover: List<int?>.from(json['cloudcover'] ?? []),
|
||||||
uvIndex: List<double?>.from(json['uvIndex'] ?? []),
|
uvIndex: List<double?>.from(json['uvIndex'] ?? []),
|
||||||
dewpoint2M: List<double?>.from(json['dewpoint2M'] ?? []),
|
dewpoint2M: List<double?>.from(json['dewpoint2M'] ?? []),
|
||||||
precipitationProbability:
|
precipitationProbability: List<int?>.from(
|
||||||
List<int?>.from(json['precipitationProbability'] ?? []),
|
json['precipitationProbability'] ?? [],
|
||||||
|
),
|
||||||
shortwaveRadiation: List<double?>.from(json['shortwaveRadiation'] ?? []),
|
shortwaveRadiation: List<double?>.from(json['shortwaveRadiation'] ?? []),
|
||||||
timeDaily: List<DateTime>.from(json['timeDaily'] ?? []),
|
timeDaily: List<DateTime>.from(json['timeDaily'] ?? []),
|
||||||
weathercodeDaily: List<int?>.from(json['weathercodeDaily'] ?? []),
|
weathercodeDaily: List<int?>.from(json['weathercodeDaily'] ?? []),
|
||||||
temperature2MMax: List<double?>.from(json['temperature2MMax'] ?? []),
|
temperature2MMax: List<double?>.from(json['temperature2MMax'] ?? []),
|
||||||
temperature2MMin: List<double?>.from(json['temperature2MMin'] ?? []),
|
temperature2MMin: List<double?>.from(json['temperature2MMin'] ?? []),
|
||||||
apparentTemperatureMax:
|
apparentTemperatureMax: List<double?>.from(
|
||||||
List<double?>.from(json['apparentTemperatureMax'] ?? []),
|
json['apparentTemperatureMax'] ?? [],
|
||||||
apparentTemperatureMin:
|
),
|
||||||
List<double?>.from(json['apparentTemperatureMin'] ?? []),
|
apparentTemperatureMin: List<double?>.from(
|
||||||
|
json['apparentTemperatureMin'] ?? [],
|
||||||
|
),
|
||||||
windspeed10MMax: List<double?>.from(json['windspeed10MMax'] ?? []),
|
windspeed10MMax: List<double?>.from(json['windspeed10MMax'] ?? []),
|
||||||
windgusts10MMax: List<double?>.from(json['windgusts10MMax'] ?? []),
|
windgusts10MMax: List<double?>.from(json['windgusts10MMax'] ?? []),
|
||||||
uvIndexMax: List<double?>.from(json['uvIndexMax'] ?? []),
|
uvIndexMax: List<double?>.from(json['uvIndexMax'] ?? []),
|
||||||
rainSum: List<double?>.from(json['rainSum'] ?? []),
|
rainSum: List<double?>.from(json['rainSum'] ?? []),
|
||||||
winddirection10MDominant:
|
winddirection10MDominant: List<int?>.from(
|
||||||
List<int?>.from(json['winddirection10MDominant'] ?? []),
|
json['winddirection10MDominant'] ?? [],
|
||||||
|
),
|
||||||
precipitationSum: List<double?>.from(json['precipitationSum'] ?? []),
|
precipitationSum: List<double?>.from(json['precipitationSum'] ?? []),
|
||||||
precipitationProbabilityMax:
|
precipitationProbabilityMax: List<int?>.from(
|
||||||
List<int?>.from(json['precipitationProbabilityMax'] ?? []),
|
json['precipitationProbabilityMax'] ?? [],
|
||||||
|
),
|
||||||
sunrise: List<String>.from(json['sunrise'] ?? []),
|
sunrise: List<String>.from(json['sunrise'] ?? []),
|
||||||
sunset: List<String>.from(json['sunset'] ?? []),
|
sunset: List<String>.from(json['sunset'] ?? []),
|
||||||
lat: json['lat'],
|
lat: json['lat'],
|
||||||
|
|
|
@ -15,10 +15,7 @@ import 'package:rain/app/ui/widgets/text_form.dart';
|
||||||
import 'package:rain/main.dart';
|
import 'package:rain/main.dart';
|
||||||
|
|
||||||
class SelectGeolocation extends StatefulWidget {
|
class SelectGeolocation extends StatefulWidget {
|
||||||
const SelectGeolocation({
|
const SelectGeolocation({super.key, required this.isStart});
|
||||||
super.key,
|
|
||||||
required this.isStart,
|
|
||||||
});
|
|
||||||
final bool isStart;
|
final bool isStart;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -94,19 +91,17 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
resizeToAvoidBottomInset: true,
|
resizeToAvoidBottomInset: true,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
leading: widget.isStart
|
leading:
|
||||||
? null
|
widget.isStart
|
||||||
: IconButton(
|
? null
|
||||||
onPressed: () {
|
: IconButton(
|
||||||
Get.back();
|
onPressed: () {
|
||||||
},
|
Get.back();
|
||||||
icon: const Icon(
|
},
|
||||||
IconsaxPlusLinear.arrow_left_3,
|
icon: const Icon(IconsaxPlusLinear.arrow_left_3, size: 20),
|
||||||
size: 20,
|
splashColor: Colors.transparent,
|
||||||
|
highlightColor: Colors.transparent,
|
||||||
),
|
),
|
||||||
splashColor: Colors.transparent,
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
),
|
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
title: Text(
|
title: Text(
|
||||||
'searchCity'.tr,
|
'searchCity'.tr,
|
||||||
|
@ -131,7 +126,8 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: 10),
|
horizontal: 10,
|
||||||
|
),
|
||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius: const BorderRadius.all(
|
borderRadius: const BorderRadius.all(
|
||||||
Radius.circular(20),
|
Radius.circular(20),
|
||||||
|
@ -150,19 +146,22 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
initialZoom: 3,
|
initialZoom: 3,
|
||||||
interactionOptions:
|
interactionOptions:
|
||||||
const InteractionOptions(
|
const InteractionOptions(
|
||||||
flags: InteractiveFlag.all &
|
flags:
|
||||||
~InteractiveFlag.rotate,
|
InteractiveFlag.all &
|
||||||
),
|
~InteractiveFlag.rotate,
|
||||||
|
),
|
||||||
cameraConstraint:
|
cameraConstraint:
|
||||||
CameraConstraint.contain(
|
CameraConstraint.contain(
|
||||||
bounds: LatLngBounds(
|
bounds: LatLngBounds(
|
||||||
const LatLng(-90, -180),
|
const LatLng(-90, -180),
|
||||||
const LatLng(90, 180),
|
const LatLng(90, 180),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onLongPress: (tapPosition, point) =>
|
onLongPress:
|
||||||
fillMap(point.latitude,
|
(tapPosition, point) => fillMap(
|
||||||
point.longitude),
|
point.latitude,
|
||||||
|
point.longitude,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
children: [
|
children: [
|
||||||
if (_isDarkMode)
|
if (_isDarkMode)
|
||||||
|
@ -177,9 +176,11 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
attributions: [
|
attributions: [
|
||||||
TextSourceAttribution(
|
TextSourceAttribution(
|
||||||
'OpenStreetMap contributors',
|
'OpenStreetMap contributors',
|
||||||
onTap: () => weatherController
|
onTap:
|
||||||
.urlLauncher(
|
() => weatherController
|
||||||
'https://openstreetmap.org/copyright'),
|
.urlLauncher(
|
||||||
|
'https://openstreetmap.org/copyright',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -189,8 +190,12 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding:
|
padding: const EdgeInsets.fromLTRB(
|
||||||
const EdgeInsets.fromLTRB(10, 15, 10, 5),
|
10,
|
||||||
|
15,
|
||||||
|
10,
|
||||||
|
5,
|
||||||
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
'searchMethod'.tr,
|
'searchMethod'.tr,
|
||||||
style: context.theme.textTheme.bodyLarge
|
style: context.theme.textTheme.bodyLarge
|
||||||
|
@ -204,42 +209,54 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
child: RawAutocomplete<Result>(
|
child: RawAutocomplete<Result>(
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
textEditingController: _controller,
|
textEditingController: _controller,
|
||||||
fieldViewBuilder: (BuildContext context,
|
fieldViewBuilder: (
|
||||||
TextEditingController
|
BuildContext context,
|
||||||
fieldTextEditingController,
|
TextEditingController
|
||||||
FocusNode fieldFocusNode,
|
fieldTextEditingController,
|
||||||
VoidCallback onFieldSubmitted) {
|
FocusNode fieldFocusNode,
|
||||||
|
VoidCallback onFieldSubmitted,
|
||||||
|
) {
|
||||||
return MyTextForm(
|
return MyTextForm(
|
||||||
elevation: kTextFieldElevation,
|
elevation: kTextFieldElevation,
|
||||||
labelText: 'search'.tr,
|
labelText: 'search'.tr,
|
||||||
type: TextInputType.text,
|
type: TextInputType.text,
|
||||||
icon: const Icon(IconsaxPlusLinear
|
icon: const Icon(
|
||||||
.global_search),
|
IconsaxPlusLinear.global_search,
|
||||||
|
),
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
optionsBuilder: (TextEditingValue
|
optionsBuilder: (
|
||||||
textEditingValue) {
|
TextEditingValue textEditingValue,
|
||||||
|
) {
|
||||||
if (textEditingValue.text.isEmpty) {
|
if (textEditingValue.text.isEmpty) {
|
||||||
return const Iterable<
|
return const Iterable<
|
||||||
Result>.empty();
|
Result
|
||||||
|
>.empty();
|
||||||
}
|
}
|
||||||
return WeatherAPI().getCity(
|
return WeatherAPI().getCity(
|
||||||
textEditingValue.text, locale);
|
textEditingValue.text,
|
||||||
|
locale,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
onSelected: (Result selection) =>
|
onSelected:
|
||||||
fillController(selection),
|
(Result selection) =>
|
||||||
displayStringForOption: (Result
|
fillController(selection),
|
||||||
option) =>
|
displayStringForOption:
|
||||||
'${option.name}, ${option.admin1}',
|
(Result option) =>
|
||||||
optionsViewBuilder:
|
'${option.name}, ${option.admin1}',
|
||||||
(BuildContext context,
|
optionsViewBuilder: (
|
||||||
AutocompleteOnSelected<Result>
|
BuildContext context,
|
||||||
onSelected,
|
AutocompleteOnSelected<Result>
|
||||||
Iterable<Result> options) {
|
onSelected,
|
||||||
|
Iterable<Result> options,
|
||||||
|
) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: 10,
|
horizontal: 10,
|
||||||
|
@ -255,21 +272,26 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: options.length,
|
itemCount: options.length,
|
||||||
itemBuilder:
|
itemBuilder: (
|
||||||
(BuildContext context,
|
BuildContext context,
|
||||||
int index) {
|
int index,
|
||||||
|
) {
|
||||||
final Result option =
|
final Result option =
|
||||||
options
|
options.elementAt(
|
||||||
.elementAt(index);
|
index,
|
||||||
|
);
|
||||||
return InkWell(
|
return InkWell(
|
||||||
onTap: () =>
|
onTap:
|
||||||
onSelected(option),
|
() => onSelected(
|
||||||
|
option,
|
||||||
|
),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
'${option.name}, ${option.admin1}',
|
'${option.name}, ${option.admin1}',
|
||||||
style: context
|
style:
|
||||||
.textTheme
|
context
|
||||||
.labelLarge,
|
.textTheme
|
||||||
|
.labelLarge,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -292,47 +314,53 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
bool serviceEnabled =
|
bool serviceEnabled =
|
||||||
await Geolocator
|
await Geolocator.isLocationServiceEnabled();
|
||||||
.isLocationServiceEnabled();
|
|
||||||
if (!serviceEnabled) {
|
if (!serviceEnabled) {
|
||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
await showAdaptiveDialog(
|
await showAdaptiveDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder:
|
builder: (
|
||||||
(BuildContext context) {
|
BuildContext context,
|
||||||
|
) {
|
||||||
return AlertDialog.adaptive(
|
return AlertDialog.adaptive(
|
||||||
title: Text(
|
title: Text(
|
||||||
'location'.tr,
|
'location'.tr,
|
||||||
style: context
|
style:
|
||||||
.textTheme.titleLarge,
|
context
|
||||||
|
.textTheme
|
||||||
|
.titleLarge,
|
||||||
),
|
),
|
||||||
content: Text(
|
content: Text(
|
||||||
'no_location'.tr,
|
'no_location'.tr,
|
||||||
style: context.textTheme
|
style:
|
||||||
.titleMedium,
|
context
|
||||||
|
.textTheme
|
||||||
|
.titleMedium,
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () =>
|
onPressed:
|
||||||
Get.back(
|
() => Get.back(
|
||||||
result: false),
|
result: false,
|
||||||
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
'cancel'.tr,
|
'cancel'.tr,
|
||||||
style: context
|
style: context
|
||||||
.textTheme
|
.textTheme
|
||||||
.titleMedium
|
.titleMedium
|
||||||
?.copyWith(
|
?.copyWith(
|
||||||
color: Colors
|
color:
|
||||||
.blueAccent,
|
Colors
|
||||||
),
|
.blueAccent,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Geolocator
|
Geolocator.openLocationSettings();
|
||||||
.openLocationSettings();
|
|
||||||
Get.back(
|
Get.back(
|
||||||
result: true);
|
result: true,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'settings'.tr,
|
'settings'.tr,
|
||||||
|
@ -340,8 +368,10 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
.textTheme
|
.textTheme
|
||||||
.titleMedium
|
.titleMedium
|
||||||
?.copyWith(
|
?.copyWith(
|
||||||
color: Colors
|
color:
|
||||||
.green),
|
Colors
|
||||||
|
.green,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -380,8 +410,9 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
if (value == null || value.isEmpty) {
|
if (value == null || value.isEmpty) {
|
||||||
return 'validateValue'.tr;
|
return 'validateValue'.tr;
|
||||||
}
|
}
|
||||||
double? numericValue =
|
double? numericValue = double.tryParse(
|
||||||
double.tryParse(value);
|
value,
|
||||||
|
);
|
||||||
if (numericValue == null) {
|
if (numericValue == null) {
|
||||||
return 'validateNumber'.tr;
|
return 'validateNumber'.tr;
|
||||||
}
|
}
|
||||||
|
@ -407,8 +438,9 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
if (value == null || value.isEmpty) {
|
if (value == null || value.isEmpty) {
|
||||||
return 'validateValue'.tr;
|
return 'validateValue'.tr;
|
||||||
}
|
}
|
||||||
double? numericValue =
|
double? numericValue = double.tryParse(
|
||||||
double.tryParse(value);
|
value,
|
||||||
|
);
|
||||||
if (numericValue == null) {
|
if (numericValue == null) {
|
||||||
return 'validateNumber'.tr;
|
return 'validateNumber'.tr;
|
||||||
}
|
}
|
||||||
|
@ -424,10 +456,14 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
controller: _controllerCity,
|
controller: _controllerCity,
|
||||||
labelText: 'city'.tr,
|
labelText: 'city'.tr,
|
||||||
type: TextInputType.name,
|
type: TextInputType.name,
|
||||||
icon:
|
icon: const Icon(
|
||||||
const Icon(IconsaxPlusLinear.building_3),
|
IconsaxPlusLinear.building_3,
|
||||||
|
),
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
validator: (value) {
|
validator: (value) {
|
||||||
if (value == null || value.isEmpty) {
|
if (value == null || value.isEmpty) {
|
||||||
return 'validateName'.tr;
|
return 'validateName'.tr;
|
||||||
|
@ -442,7 +478,10 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
type: TextInputType.streetAddress,
|
type: TextInputType.streetAddress,
|
||||||
icon: const Icon(IconsaxPlusLinear.global),
|
icon: const Icon(IconsaxPlusLinear.global),
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
const Gap(20),
|
const Gap(20),
|
||||||
],
|
],
|
||||||
|
@ -453,8 +492,10 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding:
|
padding: const EdgeInsets.symmetric(
|
||||||
const EdgeInsets.symmetric(horizontal: 10, vertical: 8),
|
horizontal: 10,
|
||||||
|
vertical: 8,
|
||||||
|
),
|
||||||
child: MyTextButton(
|
child: MyTextButton(
|
||||||
buttonName: 'done'.tr,
|
buttonName: 'done'.tr,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
@ -472,8 +513,10 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
_controllerCity.text,
|
_controllerCity.text,
|
||||||
);
|
);
|
||||||
widget.isStart
|
widget.isStart
|
||||||
? Get.off(() => const HomePage(),
|
? Get.off(
|
||||||
transition: Transition.downToUp)
|
() => const HomePage(),
|
||||||
|
transition: Transition.downToUp,
|
||||||
|
)
|
||||||
: Get.back();
|
: Get.back();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Future.error(error);
|
Future.error(error);
|
||||||
|
@ -487,9 +530,7 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
if (isLoading)
|
if (isLoading)
|
||||||
BackdropFilter(
|
BackdropFilter(
|
||||||
filter: ImageFilter.blur(sigmaY: 3, sigmaX: 3),
|
filter: ImageFilter.blur(sigmaY: 3, sigmaX: 3),
|
||||||
child: const Center(
|
child: const Center(child: CircularProgressIndicator()),
|
||||||
child: CircularProgressIndicator(),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -102,20 +102,20 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
leading: switch (tabIndex) {
|
leading: switch (tabIndex) {
|
||||||
0 => IconButton(
|
0 => IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Get.to(() => const SelectGeolocation(isStart: false),
|
Get.to(
|
||||||
transition: Transition.downToUp);
|
() => const SelectGeolocation(isStart: false),
|
||||||
},
|
transition: Transition.downToUp,
|
||||||
icon: const Icon(
|
);
|
||||||
IconsaxPlusLinear.global_search,
|
},
|
||||||
size: 18,
|
icon: const Icon(IconsaxPlusLinear.global_search, size: 18),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
int() => null,
|
int() => null,
|
||||||
},
|
},
|
||||||
title: switch (tabIndex) {
|
title: switch (tabIndex) {
|
||||||
0 => visible
|
0 =>
|
||||||
? RawAutocomplete<Result>(
|
visible
|
||||||
|
? RawAutocomplete<Result>(
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
textEditingController: _controller,
|
textEditingController: _controller,
|
||||||
fieldViewBuilder: (_, __, ___, ____) {
|
fieldViewBuilder: (_, __, ___, ____) {
|
||||||
|
@ -123,17 +123,17 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
style: labelLarge?.copyWith(fontSize: 16),
|
style: labelLarge?.copyWith(fontSize: 16),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(hintText: 'search'.tr),
|
||||||
hintText: 'search'.tr,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
optionsBuilder: (TextEditingValue textEditingValue) {
|
optionsBuilder: (TextEditingValue textEditingValue) {
|
||||||
if (textEditingValue.text.isEmpty) {
|
if (textEditingValue.text.isEmpty) {
|
||||||
return const Iterable<Result>.empty();
|
return const Iterable<Result>.empty();
|
||||||
}
|
}
|
||||||
return WeatherAPI()
|
return WeatherAPI().getCity(
|
||||||
.getCity(textEditingValue.text, locale);
|
textEditingValue.text,
|
||||||
|
locale,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
onSelected: (Result selection) async {
|
onSelected: (Result selection) async {
|
||||||
await weatherController.deleteAll(true);
|
await weatherController.deleteAll(true);
|
||||||
|
@ -148,11 +148,13 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
_focusNode.unfocus();
|
_focusNode.unfocus();
|
||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
displayStringForOption: (Result option) =>
|
displayStringForOption:
|
||||||
'${option.name}, ${option.admin1}',
|
(Result option) => '${option.name}, ${option.admin1}',
|
||||||
optionsViewBuilder: (BuildContext context,
|
optionsViewBuilder: (
|
||||||
AutocompleteOnSelected<Result> onSelected,
|
BuildContext context,
|
||||||
Iterable<Result> options) {
|
AutocompleteOnSelected<Result> onSelected,
|
||||||
|
Iterable<Result> options,
|
||||||
|
) {
|
||||||
return Align(
|
return Align(
|
||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
child: Material(
|
child: Material(
|
||||||
|
@ -165,8 +167,9 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: options.length,
|
itemCount: options.length,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
final Result option =
|
final Result option = options.elementAt(
|
||||||
options.elementAt(index);
|
index,
|
||||||
|
);
|
||||||
return InkWell(
|
return InkWell(
|
||||||
onTap: () => onSelected(option),
|
onTap: () => onSelected(option),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
|
@ -183,78 +186,63 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
: Obx(
|
: Obx(() {
|
||||||
() {
|
final location = weatherController.location;
|
||||||
final location = weatherController.location;
|
final city = location.city;
|
||||||
final city = location.city;
|
final district = location.district;
|
||||||
final district = location.district;
|
return Text(
|
||||||
return Text(
|
weatherController.isLoading.isFalse
|
||||||
weatherController.isLoading.isFalse
|
? district!.isEmpty
|
||||||
? district!.isEmpty
|
? '$city'
|
||||||
? '$city'
|
: city!.isEmpty
|
||||||
: city!.isEmpty
|
? district
|
||||||
? district
|
: city == district
|
||||||
: city == district
|
? city
|
||||||
? city
|
: '$city'
|
||||||
: '$city' ', $district'
|
', $district'
|
||||||
: settings.location
|
: settings.location
|
||||||
? 'search'.tr
|
? 'search'.tr
|
||||||
: (isar.locationCaches.where().findAllSync())
|
: (isar.locationCaches.where().findAllSync())
|
||||||
.isNotEmpty
|
.isNotEmpty
|
||||||
? 'loading'.tr
|
? 'loading'.tr
|
||||||
: 'searchCity'.tr,
|
: 'searchCity'.tr,
|
||||||
style: textStyle,
|
style: textStyle,
|
||||||
);
|
);
|
||||||
},
|
}),
|
||||||
),
|
1 => Text('cities'.tr, style: textStyle),
|
||||||
1 => Text(
|
2 =>
|
||||||
'cities'.tr,
|
settings.hideMap
|
||||||
style: textStyle,
|
? Text('settings_full'.tr, style: textStyle)
|
||||||
),
|
: Text('map'.tr, style: textStyle),
|
||||||
2 => settings.hideMap
|
3 => Text('settings_full'.tr, style: textStyle),
|
||||||
? Text(
|
|
||||||
'settings_full'.tr,
|
|
||||||
style: textStyle,
|
|
||||||
)
|
|
||||||
: Text(
|
|
||||||
'map'.tr,
|
|
||||||
style: textStyle,
|
|
||||||
),
|
|
||||||
3 => Text(
|
|
||||||
'settings_full'.tr,
|
|
||||||
style: textStyle,
|
|
||||||
),
|
|
||||||
int() => null,
|
int() => null,
|
||||||
},
|
},
|
||||||
actions: switch (tabIndex) {
|
actions: switch (tabIndex) {
|
||||||
0 => [
|
0 => [
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
_controller.clear();
|
_controller.clear();
|
||||||
_focusNode.unfocus();
|
_focusNode.unfocus();
|
||||||
visible = false;
|
visible = false;
|
||||||
} else {
|
} else {
|
||||||
visible = true;
|
visible = true;
|
||||||
}
|
}
|
||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
visible
|
visible
|
||||||
? IconsaxPlusLinear.close_circle
|
? IconsaxPlusLinear.close_circle
|
||||||
: IconsaxPlusLinear.search_normal_1,
|
: IconsaxPlusLinear.search_normal_1,
|
||||||
size: 18,
|
size: 18,
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
],
|
],
|
||||||
int() => null,
|
int() => null,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: TabBarView(
|
child: TabBarView(controller: tabController, children: pages),
|
||||||
controller: tabController,
|
|
||||||
children: pages,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
bottomNavigationBar: NavigationBar(
|
bottomNavigationBar: NavigationBar(
|
||||||
onDestinationSelected: (int index) => changeTabIndex(index),
|
onDestinationSelected: (int index) => changeTabIndex(index),
|
||||||
|
@ -283,19 +271,20 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
floatingActionButton: tabIndex == 1
|
floatingActionButton:
|
||||||
? FloatingActionButton(
|
tabIndex == 1
|
||||||
onPressed: () => showModalBottomSheet(
|
? FloatingActionButton(
|
||||||
context: context,
|
onPressed:
|
||||||
isScrollControlled: true,
|
() => showModalBottomSheet(
|
||||||
enableDrag: false,
|
context: context,
|
||||||
builder: (BuildContext context) => const CreatePlace(),
|
isScrollControlled: true,
|
||||||
),
|
enableDrag: false,
|
||||||
child: const Icon(
|
builder:
|
||||||
IconsaxPlusLinear.add,
|
(BuildContext context) => const CreatePlace(),
|
||||||
),
|
),
|
||||||
)
|
child: const Icon(IconsaxPlusLinear.add),
|
||||||
: null,
|
)
|
||||||
|
: null,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -35,9 +35,7 @@ class _MainPageState extends State<MainPage> {
|
||||||
if (weatherController.isLoading.isTrue) {
|
if (weatherController.isLoading.isTrue) {
|
||||||
return ListView(
|
return ListView(
|
||||||
children: const [
|
children: const [
|
||||||
MyShimmer(
|
MyShimmer(hight: 200),
|
||||||
hight: 200,
|
|
||||||
),
|
|
||||||
MyShimmer(
|
MyShimmer(
|
||||||
hight: 130,
|
hight: 130,
|
||||||
edgeInsetsMargin: EdgeInsets.symmetric(vertical: 15),
|
edgeInsetsMargin: EdgeInsets.symmetric(vertical: 15),
|
||||||
|
@ -53,7 +51,7 @@ class _MainPageState extends State<MainPage> {
|
||||||
MyShimmer(
|
MyShimmer(
|
||||||
hight: 450,
|
hight: 450,
|
||||||
edgeInsetsMargin: EdgeInsets.only(bottom: 15),
|
edgeInsetsMargin: EdgeInsets.only(bottom: 15),
|
||||||
)
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -82,8 +80,10 @@ class _MainPageState extends State<MainPage> {
|
||||||
Card(
|
Card(
|
||||||
margin: const EdgeInsets.only(bottom: 15),
|
margin: const EdgeInsets.only(bottom: 15),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding:
|
padding: const EdgeInsets.symmetric(
|
||||||
const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
|
horizontal: 10,
|
||||||
|
vertical: 5,
|
||||||
|
),
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
height: 135,
|
height: 135,
|
||||||
child: ScrollablePositionedList.separated(
|
child: ScrollablePositionedList.separated(
|
||||||
|
@ -115,9 +115,13 @@ class _MainPageState extends State<MainPage> {
|
||||||
vertical: 5,
|
vertical: 5,
|
||||||
),
|
),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: i == hourOfDay
|
color:
|
||||||
? context.theme.colorScheme.secondaryContainer
|
i == hourOfDay
|
||||||
: Colors.transparent,
|
? context
|
||||||
|
.theme
|
||||||
|
.colorScheme
|
||||||
|
.secondaryContainer
|
||||||
|
: Colors.transparent,
|
||||||
borderRadius: const BorderRadius.all(
|
borderRadius: const BorderRadius.all(
|
||||||
Radius.circular(20),
|
Radius.circular(20),
|
||||||
),
|
),
|
||||||
|
@ -136,10 +140,7 @@ class _MainPageState extends State<MainPage> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SunsetSunrise(
|
SunsetSunrise(timeSunrise: sunrise, timeSunset: sunset),
|
||||||
timeSunrise: sunrise,
|
|
||||||
timeSunset: sunset,
|
|
||||||
),
|
|
||||||
DescContainer(
|
DescContainer(
|
||||||
humidity: mainWeather.relativehumidity2M?[hourOfDay],
|
humidity: mainWeather.relativehumidity2M?[hourOfDay],
|
||||||
wind: mainWeather.windspeed10M?[hourOfDay],
|
wind: mainWeather.windspeed10M?[hourOfDay],
|
||||||
|
@ -162,13 +163,12 @@ class _MainPageState extends State<MainPage> {
|
||||||
),
|
),
|
||||||
DailyContainer(
|
DailyContainer(
|
||||||
weatherData: weatherCard,
|
weatherData: weatherCard,
|
||||||
onTap: () => Get.to(
|
onTap:
|
||||||
() => DailyCardList(
|
() => Get.to(
|
||||||
weatherData: weatherCard,
|
() => DailyCardList(weatherData: weatherCard),
|
||||||
),
|
transition: Transition.downToUp,
|
||||||
transition: Transition.downToUp,
|
),
|
||||||
),
|
),
|
||||||
)
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -66,10 +66,9 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
_offsetAnimation = Tween<Offset>(
|
_offsetAnimation = Tween<Offset>(
|
||||||
begin: const Offset(0.0, 1.0),
|
begin: const Offset(0.0, 1.0),
|
||||||
end: Offset.zero,
|
end: Offset.zero,
|
||||||
).animate(CurvedAnimation(
|
).animate(
|
||||||
parent: _animationController,
|
CurvedAnimation(parent: _animationController, curve: Curves.easeInOut),
|
||||||
curve: Curves.easeInOut,
|
);
|
||||||
));
|
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,25 +113,26 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
_focusNode.unfocus();
|
_focusNode.unfocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buidStyleMarkers(int weathercode, String time, String sunrise,
|
Widget _buidStyleMarkers(
|
||||||
String sunset, double temperature2M) {
|
int weathercode,
|
||||||
|
String time,
|
||||||
|
String sunrise,
|
||||||
|
String sunset,
|
||||||
|
double temperature2M,
|
||||||
|
) {
|
||||||
return Card(
|
return Card(
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
statusWeather.getImageNow(
|
statusWeather.getImageNow(weathercode, time, sunrise, sunset),
|
||||||
weathercode,
|
|
||||||
time,
|
|
||||||
sunrise,
|
|
||||||
sunset,
|
|
||||||
),
|
|
||||||
scale: 18,
|
scale: 18,
|
||||||
),
|
),
|
||||||
const MaxGap(5),
|
const MaxGap(5),
|
||||||
Text(
|
Text(
|
||||||
statusData
|
statusData.getDegree(
|
||||||
.getDegree(roundDegree ? temperature2M.round() : temperature2M),
|
roundDegree ? temperature2M.round() : temperature2M,
|
||||||
|
),
|
||||||
style: context.textTheme.labelLarge?.copyWith(
|
style: context.textTheme.labelLarge?.copyWith(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
|
@ -144,7 +144,10 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
}
|
}
|
||||||
|
|
||||||
Marker _buildMainLocationMarker(
|
Marker _buildMainLocationMarker(
|
||||||
WeatherCard weatherCard, int hourOfDay, int dayOfNow) {
|
WeatherCard weatherCard,
|
||||||
|
int hourOfDay,
|
||||||
|
int dayOfNow,
|
||||||
|
) {
|
||||||
return Marker(
|
return Marker(
|
||||||
height: 50,
|
height: 50,
|
||||||
width: 100,
|
width: 100,
|
||||||
|
@ -171,15 +174,25 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
onTap: () => _onMarkerTap(weatherCardList),
|
onTap: () => _onMarkerTap(weatherCardList),
|
||||||
child: _buidStyleMarkers(
|
child: _buidStyleMarkers(
|
||||||
weatherCardList.weathercode![weatherController.getTime(
|
weatherCardList.weathercode![weatherController.getTime(
|
||||||
weatherCardList.time!, weatherCardList.timezone!)],
|
weatherCardList.time!,
|
||||||
|
weatherCardList.timezone!,
|
||||||
|
)],
|
||||||
weatherCardList.time![weatherController.getTime(
|
weatherCardList.time![weatherController.getTime(
|
||||||
weatherCardList.time!, weatherCardList.timezone!)],
|
weatherCardList.time!,
|
||||||
|
weatherCardList.timezone!,
|
||||||
|
)],
|
||||||
weatherCardList.sunrise![weatherController.getDay(
|
weatherCardList.sunrise![weatherController.getDay(
|
||||||
weatherCardList.timeDaily!, weatherCardList.timezone!)],
|
weatherCardList.timeDaily!,
|
||||||
|
weatherCardList.timezone!,
|
||||||
|
)],
|
||||||
weatherCardList.sunset![weatherController.getDay(
|
weatherCardList.sunset![weatherController.getDay(
|
||||||
weatherCardList.timeDaily!, weatherCardList.timezone!)],
|
weatherCardList.timeDaily!,
|
||||||
|
weatherCardList.timezone!,
|
||||||
|
)],
|
||||||
weatherCardList.temperature2M![weatherController.getTime(
|
weatherCardList.temperature2M![weatherController.getTime(
|
||||||
weatherCardList.time!, weatherCardList.timezone!)],
|
weatherCardList.time!,
|
||||||
|
weatherCardList.timezone!,
|
||||||
|
)],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -199,25 +212,26 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
Widget _buildWeatherCard() {
|
Widget _buildWeatherCard() {
|
||||||
return _isCardVisible && _selectedWeatherCard != null
|
return _isCardVisible && _selectedWeatherCard != null
|
||||||
? SlideTransition(
|
? SlideTransition(
|
||||||
position: _offsetAnimation,
|
position: _offsetAnimation,
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () => Get.to(
|
onTap:
|
||||||
() => PlaceInfo(weatherCard: _selectedWeatherCard!),
|
() => Get.to(
|
||||||
transition: Transition.downToUp,
|
() => PlaceInfo(weatherCard: _selectedWeatherCard!),
|
||||||
),
|
transition: Transition.downToUp,
|
||||||
child: PlaceCard(
|
),
|
||||||
time: _selectedWeatherCard!.time!,
|
child: PlaceCard(
|
||||||
timeDaily: _selectedWeatherCard!.timeDaily!,
|
time: _selectedWeatherCard!.time!,
|
||||||
timeDay: _selectedWeatherCard!.sunrise!,
|
timeDaily: _selectedWeatherCard!.timeDaily!,
|
||||||
timeNight: _selectedWeatherCard!.sunset!,
|
timeDay: _selectedWeatherCard!.sunrise!,
|
||||||
weather: _selectedWeatherCard!.weathercode!,
|
timeNight: _selectedWeatherCard!.sunset!,
|
||||||
degree: _selectedWeatherCard!.temperature2M!,
|
weather: _selectedWeatherCard!.weathercode!,
|
||||||
district: _selectedWeatherCard!.district!,
|
degree: _selectedWeatherCard!.temperature2M!,
|
||||||
city: _selectedWeatherCard!.city!,
|
district: _selectedWeatherCard!.district!,
|
||||||
timezone: _selectedWeatherCard!.timezone!,
|
city: _selectedWeatherCard!.city!,
|
||||||
),
|
timezone: _selectedWeatherCard!.timezone!,
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
|
)
|
||||||
: const SizedBox.shrink();
|
: const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,15 +275,17 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onTap: (_, __) => _hideCard(),
|
onTap: (_, __) => _hideCard(),
|
||||||
onLongPress: (tapPosition, point) => showModalBottomSheet(
|
onLongPress:
|
||||||
context: context,
|
(tapPosition, point) => showModalBottomSheet(
|
||||||
isScrollControlled: true,
|
context: context,
|
||||||
enableDrag: false,
|
isScrollControlled: true,
|
||||||
builder: (BuildContext context) => CreatePlace(
|
enableDrag: false,
|
||||||
latitude: '${point.latitude}',
|
builder:
|
||||||
longitude: '${point.longitude}',
|
(BuildContext context) => CreatePlace(
|
||||||
),
|
latitude: '${point.latitude}',
|
||||||
),
|
longitude: '${point.longitude}',
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
children: [
|
children: [
|
||||||
if (_isDarkMode)
|
if (_isDarkMode)
|
||||||
|
@ -290,8 +306,10 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
attributions: [
|
attributions: [
|
||||||
TextSourceAttribution(
|
TextSourceAttribution(
|
||||||
'OpenStreetMap contributors',
|
'OpenStreetMap contributors',
|
||||||
onTap: () => weatherController
|
onTap:
|
||||||
.urlLauncher('https://openstreetmap.org/copyright'),
|
() => weatherController.urlLauncher(
|
||||||
|
'https://openstreetmap.org/copyright',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -305,14 +323,15 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
dayOfNow,
|
dayOfNow,
|
||||||
);
|
);
|
||||||
|
|
||||||
final cardMarkers = weatherController.weatherCards
|
final cardMarkers =
|
||||||
.map((weatherCardList) =>
|
weatherController.weatherCards
|
||||||
_buildCardMarker(weatherCardList))
|
.map(
|
||||||
.toList();
|
(weatherCardList) =>
|
||||||
|
_buildCardMarker(weatherCardList),
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
|
||||||
return MarkerLayer(
|
return MarkerLayer(markers: [mainMarker, ...cardMarkers]);
|
||||||
markers: [mainMarker, ...cardMarkers],
|
|
||||||
);
|
|
||||||
}),
|
}),
|
||||||
ExpandableFab(
|
ExpandableFab(
|
||||||
key: _fabKey,
|
key: _fabKey,
|
||||||
|
@ -331,24 +350,32 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
FloatingActionButton(
|
FloatingActionButton(
|
||||||
heroTag: null,
|
heroTag: null,
|
||||||
child: const Icon(IconsaxPlusLinear.home_2),
|
child: const Icon(IconsaxPlusLinear.home_2),
|
||||||
onPressed: () => _resetMapOrientation(
|
onPressed:
|
||||||
center:
|
() => _resetMapOrientation(
|
||||||
LatLng(mainLocation.lat!, mainLocation.lon!),
|
center: LatLng(
|
||||||
zoom: 8),
|
mainLocation.lat!,
|
||||||
|
mainLocation.lon!,
|
||||||
|
),
|
||||||
|
zoom: 8,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
FloatingActionButton(
|
FloatingActionButton(
|
||||||
heroTag: null,
|
heroTag: null,
|
||||||
child: const Icon(IconsaxPlusLinear.search_zoom_out_1),
|
child: const Icon(IconsaxPlusLinear.search_zoom_out_1),
|
||||||
onPressed: () => _animatedMapController.animatedZoomOut(
|
onPressed:
|
||||||
customId: _useTransformer ? _useTransformerId : null,
|
() => _animatedMapController.animatedZoomOut(
|
||||||
),
|
customId:
|
||||||
|
_useTransformer ? _useTransformerId : null,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
FloatingActionButton(
|
FloatingActionButton(
|
||||||
heroTag: null,
|
heroTag: null,
|
||||||
child: const Icon(IconsaxPlusLinear.search_zoom_in),
|
child: const Icon(IconsaxPlusLinear.search_zoom_in),
|
||||||
onPressed: () => _animatedMapController.animatedZoomIn(
|
onPressed:
|
||||||
customId: _useTransformer ? _useTransformerId : null,
|
() => _animatedMapController.animatedZoomIn(
|
||||||
),
|
customId:
|
||||||
|
_useTransformer ? _useTransformerId : null,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -363,10 +390,12 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
RawAutocomplete<Result>(
|
RawAutocomplete<Result>(
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
textEditingController: _controllerSearch,
|
textEditingController: _controllerSearch,
|
||||||
fieldViewBuilder: (BuildContext context,
|
fieldViewBuilder: (
|
||||||
TextEditingController fieldTextEditingController,
|
BuildContext context,
|
||||||
FocusNode fieldFocusNode,
|
TextEditingController fieldTextEditingController,
|
||||||
VoidCallback onFieldSubmitted) {
|
FocusNode fieldFocusNode,
|
||||||
|
VoidCallback onFieldSubmitted,
|
||||||
|
) {
|
||||||
return MyTextForm(
|
return MyTextForm(
|
||||||
labelText: 'search'.tr,
|
labelText: 'search'.tr,
|
||||||
type: TextInputType.text,
|
type: TextInputType.text,
|
||||||
|
@ -375,18 +404,19 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
margin: const EdgeInsets.only(left: 10, right: 10, top: 10),
|
margin: const EdgeInsets.only(left: 10, right: 10, top: 10),
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
iconButton: _controllerSearch.text.isNotEmpty
|
iconButton:
|
||||||
? IconButton(
|
_controllerSearch.text.isNotEmpty
|
||||||
onPressed: () {
|
? IconButton(
|
||||||
_controllerSearch.clear();
|
onPressed: () {
|
||||||
},
|
_controllerSearch.clear();
|
||||||
icon: const Icon(
|
},
|
||||||
IconsaxPlusLinear.close_circle,
|
icon: const Icon(
|
||||||
color: Colors.grey,
|
IconsaxPlusLinear.close_circle,
|
||||||
size: 20,
|
color: Colors.grey,
|
||||||
),
|
size: 20,
|
||||||
)
|
),
|
||||||
: null,
|
)
|
||||||
|
: null,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
optionsBuilder: (TextEditingValue textEditingValue) {
|
optionsBuilder: (TextEditingValue textEditingValue) {
|
||||||
|
@ -397,18 +427,24 @@ class _MapPageState extends State<MapPage> with TickerProviderStateMixin {
|
||||||
},
|
},
|
||||||
onSelected: (Result selection) {
|
onSelected: (Result selection) {
|
||||||
_animatedMapController.mapController.move(
|
_animatedMapController.mapController.move(
|
||||||
LatLng(selection.latitude, selection.longitude), 14);
|
LatLng(selection.latitude, selection.longitude),
|
||||||
|
14,
|
||||||
|
);
|
||||||
_controllerSearch.clear();
|
_controllerSearch.clear();
|
||||||
_focusNode.unfocus();
|
_focusNode.unfocus();
|
||||||
},
|
},
|
||||||
displayStringForOption: (Result option) =>
|
displayStringForOption:
|
||||||
'${option.name}, ${option.admin1}',
|
(Result option) => '${option.name}, ${option.admin1}',
|
||||||
optionsViewBuilder: (BuildContext context,
|
optionsViewBuilder: (
|
||||||
AutocompleteOnSelected<Result> onSelected,
|
BuildContext context,
|
||||||
Iterable<Result> options) {
|
AutocompleteOnSelected<Result> onSelected,
|
||||||
|
Iterable<Result> options,
|
||||||
|
) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding:
|
padding: const EdgeInsets.symmetric(
|
||||||
const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
|
horizontal: 10,
|
||||||
|
vertical: 5,
|
||||||
|
),
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: Alignment.topCenter,
|
alignment: Alignment.topCenter,
|
||||||
child: Material(
|
child: Material(
|
||||||
|
|
|
@ -32,8 +32,10 @@ class _OnBordingState extends State<OnBording> {
|
||||||
void onBoardHome() {
|
void onBoardHome() {
|
||||||
settings.onboard = true;
|
settings.onboard = true;
|
||||||
isar.writeTxnSync(() => isar.settings.putSync(settings));
|
isar.writeTxnSync(() => isar.settings.putSync(settings));
|
||||||
Get.off(() => const SelectGeolocation(isStart: true),
|
Get.off(
|
||||||
transition: Transition.downToUp);
|
() => const SelectGeolocation(isStart: true),
|
||||||
|
transition: Transition.downToUp,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -52,22 +54,24 @@ class _OnBordingState extends State<OnBording> {
|
||||||
pageIndex = index;
|
pageIndex = index;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
itemBuilder: (context, index) => OnboardContent(
|
itemBuilder:
|
||||||
image: data[index].image,
|
(context, index) => OnboardContent(
|
||||||
title: data[index].title,
|
image: data[index].image,
|
||||||
description: data[index].description,
|
title: data[index].title,
|
||||||
),
|
description: data[index].description,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
...List.generate(
|
...List.generate(
|
||||||
data.length,
|
data.length,
|
||||||
(index) => Padding(
|
(index) => Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 5),
|
padding: const EdgeInsets.symmetric(horizontal: 5),
|
||||||
child: DotIndicator(isActive: index == pageIndex),
|
child: DotIndicator(isActive: index == pageIndex),
|
||||||
)),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
|
@ -79,12 +83,12 @@ class _OnBordingState extends State<OnBording> {
|
||||||
pageIndex == data.length - 1
|
pageIndex == data.length - 1
|
||||||
? onBoardHome()
|
? onBoardHome()
|
||||||
: pageController.nextPage(
|
: pageController.nextPage(
|
||||||
duration: const Duration(milliseconds: 300),
|
duration: const Duration(milliseconds: 300),
|
||||||
curve: Curves.ease,
|
curve: Curves.ease,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -93,10 +97,7 @@ class _OnBordingState extends State<OnBording> {
|
||||||
}
|
}
|
||||||
|
|
||||||
class DotIndicator extends StatelessWidget {
|
class DotIndicator extends StatelessWidget {
|
||||||
const DotIndicator({
|
const DotIndicator({super.key, this.isActive = false});
|
||||||
super.key,
|
|
||||||
this.isActive = false,
|
|
||||||
});
|
|
||||||
|
|
||||||
final bool isActive;
|
final bool isActive;
|
||||||
|
|
||||||
|
@ -107,9 +108,10 @@ class DotIndicator extends StatelessWidget {
|
||||||
height: 8,
|
height: 8,
|
||||||
width: 8,
|
width: 8,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: isActive
|
color:
|
||||||
? context.theme.colorScheme.secondary
|
isActive
|
||||||
: context.theme.colorScheme.secondaryContainer,
|
? context.theme.colorScheme.secondary
|
||||||
|
: context.theme.colorScheme.secondaryContainer,
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -128,17 +130,20 @@ class Onboard {
|
||||||
|
|
||||||
final List<Onboard> data = [
|
final List<Onboard> data = [
|
||||||
Onboard(
|
Onboard(
|
||||||
image: 'assets/icons/Rain.png',
|
image: 'assets/icons/Rain.png',
|
||||||
title: 'name'.tr,
|
title: 'name'.tr,
|
||||||
description: 'description'.tr),
|
description: 'description'.tr,
|
||||||
|
),
|
||||||
Onboard(
|
Onboard(
|
||||||
image: 'assets/icons/Design.png',
|
image: 'assets/icons/Design.png',
|
||||||
title: 'name2'.tr,
|
title: 'name2'.tr,
|
||||||
description: 'description2'.tr),
|
description: 'description2'.tr,
|
||||||
|
),
|
||||||
Onboard(
|
Onboard(
|
||||||
image: 'assets/icons/Team.png',
|
image: 'assets/icons/Team.png',
|
||||||
title: 'name3'.tr,
|
title: 'name3'.tr,
|
||||||
description: 'description3'.tr),
|
description: 'description3'.tr,
|
||||||
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
class OnboardContent extends StatelessWidget {
|
class OnboardContent extends StatelessWidget {
|
||||||
|
@ -158,14 +163,12 @@ class OnboardContent extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(image, scale: 5),
|
||||||
image,
|
|
||||||
scale: 5,
|
|
||||||
),
|
|
||||||
Text(
|
Text(
|
||||||
title,
|
title,
|
||||||
style: context.textTheme.titleLarge
|
style: context.textTheme.titleLarge?.copyWith(
|
||||||
?.copyWith(fontWeight: FontWeight.w600),
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
const Gap(10),
|
const Gap(10),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
|
|
@ -12,10 +12,7 @@ import 'package:rain/app/ui/widgets/weather/sunset_sunrise.dart';
|
||||||
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
|
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
|
||||||
|
|
||||||
class PlaceInfo extends StatefulWidget {
|
class PlaceInfo extends StatefulWidget {
|
||||||
const PlaceInfo({
|
const PlaceInfo({super.key, required this.weatherCard});
|
||||||
super.key,
|
|
||||||
required this.weatherCard,
|
|
||||||
});
|
|
||||||
final WeatherCard weatherCard;
|
final WeatherCard weatherCard;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -37,10 +34,14 @@ class _PlaceInfoState extends State<PlaceInfo> {
|
||||||
void getTime() {
|
void getTime() {
|
||||||
final weatherCard = widget.weatherCard;
|
final weatherCard = widget.weatherCard;
|
||||||
|
|
||||||
timeNow =
|
timeNow = weatherController.getTime(
|
||||||
weatherController.getTime(weatherCard.time!, weatherCard.timezone!);
|
weatherCard.time!,
|
||||||
dayNow =
|
weatherCard.timezone!,
|
||||||
weatherController.getDay(weatherCard.timeDaily!, weatherCard.timezone!);
|
);
|
||||||
|
dayNow = weatherController.getDay(
|
||||||
|
weatherCard.timeDaily!,
|
||||||
|
weatherCard.timezone!,
|
||||||
|
);
|
||||||
Future.delayed(const Duration(milliseconds: 30), () {
|
Future.delayed(const Duration(milliseconds: 30), () {
|
||||||
itemScrollController.scrollTo(
|
itemScrollController.scrollTo(
|
||||||
index: timeNow,
|
index: timeNow,
|
||||||
|
@ -66,10 +67,7 @@ class _PlaceInfoState extends State<PlaceInfo> {
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
onPressed: () => Get.back(),
|
onPressed: () => Get.back(),
|
||||||
icon: const Icon(
|
icon: const Icon(IconsaxPlusLinear.arrow_left_3, size: 20),
|
||||||
IconsaxPlusLinear.arrow_left_3,
|
|
||||||
size: 20,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
title: Text(
|
title: Text(
|
||||||
weatherCard.district!.isNotEmpty
|
weatherCard.district!.isNotEmpty
|
||||||
|
@ -100,8 +98,10 @@ class _PlaceInfoState extends State<PlaceInfo> {
|
||||||
Card(
|
Card(
|
||||||
margin: const EdgeInsets.only(bottom: 15),
|
margin: const EdgeInsets.only(bottom: 15),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding:
|
padding: const EdgeInsets.symmetric(
|
||||||
const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
|
horizontal: 10,
|
||||||
|
vertical: 5,
|
||||||
|
),
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
height: 135,
|
height: 135,
|
||||||
child: ScrollablePositionedList.separated(
|
child: ScrollablePositionedList.separated(
|
||||||
|
@ -116,35 +116,42 @@ class _PlaceInfoState extends State<PlaceInfo> {
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
itemScrollController: itemScrollController,
|
itemScrollController: itemScrollController,
|
||||||
itemCount: weatherCard.time!.length,
|
itemCount: weatherCard.time!.length,
|
||||||
itemBuilder: (ctx, i) => GestureDetector(
|
itemBuilder:
|
||||||
onTap: () {
|
(ctx, i) => GestureDetector(
|
||||||
timeNow = i;
|
onTap: () {
|
||||||
dayNow = (i / 24).floor();
|
timeNow = i;
|
||||||
setState(() {});
|
dayNow = (i / 24).floor();
|
||||||
},
|
setState(() {});
|
||||||
child: Container(
|
},
|
||||||
margin: const EdgeInsets.symmetric(vertical: 5),
|
child: Container(
|
||||||
padding: const EdgeInsets.symmetric(
|
margin: const EdgeInsets.symmetric(vertical: 5),
|
||||||
horizontal: 20,
|
padding: const EdgeInsets.symmetric(
|
||||||
vertical: 5,
|
horizontal: 20,
|
||||||
),
|
vertical: 5,
|
||||||
decoration: BoxDecoration(
|
),
|
||||||
color: i == timeNow
|
decoration: BoxDecoration(
|
||||||
? context.theme.colorScheme.secondaryContainer
|
color:
|
||||||
: Colors.transparent,
|
i == timeNow
|
||||||
borderRadius: const BorderRadius.all(
|
? context
|
||||||
Radius.circular(20),
|
.theme
|
||||||
|
.colorScheme
|
||||||
|
.secondaryContainer
|
||||||
|
: Colors.transparent,
|
||||||
|
borderRadius: const BorderRadius.all(
|
||||||
|
Radius.circular(20),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Hourly(
|
||||||
|
time: weatherCard.time![i],
|
||||||
|
weather: weatherCard.weathercode![i],
|
||||||
|
degree: weatherCard.temperature2M![i],
|
||||||
|
timeDay:
|
||||||
|
weatherCard.sunrise![(i / 24).floor()],
|
||||||
|
timeNight:
|
||||||
|
weatherCard.sunset![(i / 24).floor()],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Hourly(
|
|
||||||
time: weatherCard.time![i],
|
|
||||||
weather: weatherCard.weathercode![i],
|
|
||||||
degree: weatherCard.temperature2M![i],
|
|
||||||
timeDay: weatherCard.sunrise![(i / 24).floor()],
|
|
||||||
timeNight: weatherCard.sunset![(i / 24).floor()],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -175,12 +182,11 @@ class _PlaceInfoState extends State<PlaceInfo> {
|
||||||
),
|
),
|
||||||
DailyContainer(
|
DailyContainer(
|
||||||
weatherData: weatherCard,
|
weatherData: weatherCard,
|
||||||
onTap: () => Get.to(
|
onTap:
|
||||||
() => DailyCardList(
|
() => Get.to(
|
||||||
weatherData: weatherCard,
|
() => DailyCardList(weatherData: weatherCard),
|
||||||
),
|
transition: Transition.downToUp,
|
||||||
transition: Transition.downToUp,
|
),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -33,71 +33,72 @@ class _PlaceListState extends State<PlaceList> {
|
||||||
final textTheme = context.textTheme;
|
final textTheme = context.textTheme;
|
||||||
final titleMedium = textTheme.titleMedium;
|
final titleMedium = textTheme.titleMedium;
|
||||||
return Obx(
|
return Obx(
|
||||||
() => weatherController.weatherCards.isEmpty
|
() =>
|
||||||
? Center(
|
weatherController.weatherCards.isEmpty
|
||||||
child: SingleChildScrollView(
|
? Center(
|
||||||
child: Column(
|
child: SingleChildScrollView(
|
||||||
children: [
|
child: Column(
|
||||||
Image.asset(
|
children: [
|
||||||
'assets/icons/City.png',
|
Image.asset('assets/icons/City.png', scale: 6),
|
||||||
scale: 6,
|
SizedBox(
|
||||||
),
|
width: Get.size.width * 0.8,
|
||||||
SizedBox(
|
child: Text(
|
||||||
width: Get.size.width * 0.8,
|
'noWeatherCard'.tr,
|
||||||
child: Text(
|
textAlign: TextAlign.center,
|
||||||
'noWeatherCard'.tr,
|
style: titleMedium?.copyWith(
|
||||||
textAlign: TextAlign.center,
|
fontWeight: FontWeight.w600,
|
||||||
style: titleMedium?.copyWith(
|
fontSize: 18,
|
||||||
fontWeight: FontWeight.w600,
|
),
|
||||||
fontSize: 18,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: NestedScrollView(
|
||||||
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
headerSliverBuilder: (context, innerBoxIsScrolled) {
|
||||||
|
return [
|
||||||
|
SliverToBoxAdapter(
|
||||||
|
child: MyTextForm(
|
||||||
|
labelText: 'search'.tr,
|
||||||
|
type: TextInputType.text,
|
||||||
|
icon: const Icon(
|
||||||
|
IconsaxPlusLinear.search_normal_1,
|
||||||
|
size: 20,
|
||||||
|
),
|
||||||
|
controller: searchTasks,
|
||||||
|
margin: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 10,
|
||||||
|
vertical: 5,
|
||||||
|
),
|
||||||
|
onChanged: applyFilter,
|
||||||
|
iconButton:
|
||||||
|
searchTasks.text.isNotEmpty
|
||||||
|
? IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
searchTasks.clear();
|
||||||
|
applyFilter('');
|
||||||
|
},
|
||||||
|
icon: const Icon(
|
||||||
|
IconsaxPlusLinear.close_circle,
|
||||||
|
color: Colors.grey,
|
||||||
|
size: 20,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: null,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
];
|
||||||
|
},
|
||||||
|
body: RefreshIndicator(
|
||||||
|
onRefresh: () async {
|
||||||
|
await weatherController.updateCacheCard(true);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
child: PlaceCardList(searchCity: filter),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
|
||||||
: NestedScrollView(
|
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
|
||||||
headerSliverBuilder: (context, innerBoxIsScrolled) {
|
|
||||||
return [
|
|
||||||
SliverToBoxAdapter(
|
|
||||||
child: MyTextForm(
|
|
||||||
labelText: 'search'.tr,
|
|
||||||
type: TextInputType.text,
|
|
||||||
icon: const Icon(
|
|
||||||
IconsaxPlusLinear.search_normal_1,
|
|
||||||
size: 20,
|
|
||||||
),
|
|
||||||
controller: searchTasks,
|
|
||||||
margin: const EdgeInsets.symmetric(
|
|
||||||
horizontal: 10, vertical: 5),
|
|
||||||
onChanged: applyFilter,
|
|
||||||
iconButton: searchTasks.text.isNotEmpty
|
|
||||||
? IconButton(
|
|
||||||
onPressed: () {
|
|
||||||
searchTasks.clear();
|
|
||||||
applyFilter('');
|
|
||||||
},
|
|
||||||
icon: const Icon(
|
|
||||||
IconsaxPlusLinear.close_circle,
|
|
||||||
color: Colors.grey,
|
|
||||||
size: 20,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: null,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
];
|
|
||||||
},
|
|
||||||
body: RefreshIndicator(
|
|
||||||
onRefresh: () async {
|
|
||||||
await weatherController.updateCacheCard(true);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
child: PlaceCardList(searchCity: filter),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,11 +9,7 @@ import 'package:rain/app/ui/widgets/text_form.dart';
|
||||||
import 'package:rain/main.dart';
|
import 'package:rain/main.dart';
|
||||||
|
|
||||||
class CreatePlace extends StatefulWidget {
|
class CreatePlace extends StatefulWidget {
|
||||||
const CreatePlace({
|
const CreatePlace({super.key, this.latitude, this.longitude});
|
||||||
super.key,
|
|
||||||
this.latitude,
|
|
||||||
this.longitude,
|
|
||||||
});
|
|
||||||
final String? latitude;
|
final String? latitude;
|
||||||
final String? longitude;
|
final String? longitude;
|
||||||
|
|
||||||
|
@ -85,7 +81,8 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
const kTextFieldElevation = 4.0;
|
const kTextFieldElevation = 4.0;
|
||||||
bool showButton = _controllerLon.text.isNotEmpty &&
|
bool showButton =
|
||||||
|
_controllerLon.text.isNotEmpty &&
|
||||||
_controllerLat.text.isNotEmpty &&
|
_controllerLat.text.isNotEmpty &&
|
||||||
_controllerCity.text.isNotEmpty &&
|
_controllerCity.text.isNotEmpty &&
|
||||||
_controllerDistrict.text.isNotEmpty;
|
_controllerDistrict.text.isNotEmpty;
|
||||||
|
@ -115,18 +112,21 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
padding: const EdgeInsets.only(top: 14, bottom: 7),
|
padding: const EdgeInsets.only(top: 14, bottom: 7),
|
||||||
child: Text(
|
child: Text(
|
||||||
'create'.tr,
|
'create'.tr,
|
||||||
style: context.textTheme.titleLarge
|
style: context.textTheme.titleLarge?.copyWith(
|
||||||
?.copyWith(fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
RawAutocomplete<Result>(
|
RawAutocomplete<Result>(
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
textEditingController: _controller,
|
textEditingController: _controller,
|
||||||
fieldViewBuilder: (BuildContext context,
|
fieldViewBuilder: (
|
||||||
TextEditingController fieldTextEditingController,
|
BuildContext context,
|
||||||
FocusNode fieldFocusNode,
|
TextEditingController fieldTextEditingController,
|
||||||
VoidCallback onFieldSubmitted) {
|
FocusNode fieldFocusNode,
|
||||||
|
VoidCallback onFieldSubmitted,
|
||||||
|
) {
|
||||||
return MyTextForm(
|
return MyTextForm(
|
||||||
elevation: kTextFieldElevation,
|
elevation: kTextFieldElevation,
|
||||||
labelText: 'search'.tr,
|
labelText: 'search'.tr,
|
||||||
|
@ -134,7 +134,10 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
icon: const Icon(IconsaxPlusLinear.global_search),
|
icon: const Icon(IconsaxPlusLinear.global_search),
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -142,16 +145,20 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
if (textEditingValue.text.isEmpty) {
|
if (textEditingValue.text.isEmpty) {
|
||||||
return const Iterable<Result>.empty();
|
return const Iterable<Result>.empty();
|
||||||
}
|
}
|
||||||
return WeatherAPI()
|
return WeatherAPI().getCity(
|
||||||
.getCity(textEditingValue.text, locale);
|
textEditingValue.text,
|
||||||
|
locale,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
onSelected: (Result selection) =>
|
onSelected:
|
||||||
fillController(selection),
|
(Result selection) => fillController(selection),
|
||||||
displayStringForOption: (Result option) =>
|
displayStringForOption:
|
||||||
'${option.name}, ${option.admin1}',
|
(Result option) => '${option.name}, ${option.admin1}',
|
||||||
optionsViewBuilder: (BuildContext context,
|
optionsViewBuilder: (
|
||||||
AutocompleteOnSelected<Result> onSelected,
|
BuildContext context,
|
||||||
Iterable<Result> options) {
|
AutocompleteOnSelected<Result> onSelected,
|
||||||
|
Iterable<Result> options,
|
||||||
|
) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 10),
|
padding: const EdgeInsets.symmetric(horizontal: 10),
|
||||||
child: Align(
|
child: Align(
|
||||||
|
@ -164,8 +171,9 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: options.length,
|
itemCount: options.length,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
final Result option =
|
final Result option = options.elementAt(
|
||||||
options.elementAt(index);
|
index,
|
||||||
|
);
|
||||||
return InkWell(
|
return InkWell(
|
||||||
onTap: () => onSelected(option),
|
onTap: () => onSelected(option),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
|
@ -189,8 +197,11 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
type: TextInputType.number,
|
type: TextInputType.number,
|
||||||
icon: const Icon(IconsaxPlusLinear.location),
|
icon: const Icon(IconsaxPlusLinear.location),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin: const EdgeInsets.only(
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
validator: (value) {
|
validator: (value) {
|
||||||
if (value == null || value.isEmpty) {
|
if (value == null || value.isEmpty) {
|
||||||
return 'validateValue'.tr;
|
return 'validateValue'.tr;
|
||||||
|
@ -212,8 +223,11 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
type: TextInputType.number,
|
type: TextInputType.number,
|
||||||
icon: const Icon(IconsaxPlusLinear.location),
|
icon: const Icon(IconsaxPlusLinear.location),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin: const EdgeInsets.only(
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
validator: (value) {
|
validator: (value) {
|
||||||
if (value == null || value.isEmpty) {
|
if (value == null || value.isEmpty) {
|
||||||
return 'validateValue'.tr;
|
return 'validateValue'.tr;
|
||||||
|
@ -235,8 +249,11 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
type: TextInputType.name,
|
type: TextInputType.name,
|
||||||
icon: const Icon(IconsaxPlusLinear.building_3),
|
icon: const Icon(IconsaxPlusLinear.building_3),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin: const EdgeInsets.only(
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
validator: (value) {
|
validator: (value) {
|
||||||
if (value == null || value.isEmpty) {
|
if (value == null || value.isEmpty) {
|
||||||
return 'validateName'.tr;
|
return 'validateName'.tr;
|
||||||
|
@ -251,8 +268,11 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
type: TextInputType.streetAddress,
|
type: TextInputType.streetAddress,
|
||||||
icon: const Icon(IconsaxPlusLinear.global),
|
icon: const Icon(IconsaxPlusLinear.global),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin: const EdgeInsets.only(
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
left: 10,
|
||||||
|
right: 10,
|
||||||
|
top: 10,
|
||||||
|
),
|
||||||
validator: (value) {
|
validator: (value) {
|
||||||
if (value == null || value.isEmpty) {
|
if (value == null || value.isEmpty) {
|
||||||
return 'validateName'.tr;
|
return 'validateName'.tr;
|
||||||
|
@ -262,7 +282,9 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: 10, vertical: 10),
|
horizontal: 10,
|
||||||
|
vertical: 10,
|
||||||
|
),
|
||||||
child: SizeTransition(
|
child: SizeTransition(
|
||||||
sizeFactor: _animation,
|
sizeFactor: _animation,
|
||||||
axisAlignment: -1.0,
|
axisAlignment: -1.0,
|
||||||
|
@ -291,10 +313,7 @@ class _CreatePlaceState extends State<CreatePlace>
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (isLoading)
|
if (isLoading) const Center(child: CircularProgressIndicator()),
|
||||||
const Center(
|
|
||||||
child: CircularProgressIndicator(),
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -54,10 +54,15 @@ class _PlaceCardState extends State<PlaceCard> {
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
statusData.getDegree(widget.degree[weatherController
|
statusData.getDegree(
|
||||||
.getTime(widget.time, widget.timezone)]
|
widget
|
||||||
.round()
|
.degree[weatherController.getTime(
|
||||||
.toInt()),
|
widget.time,
|
||||||
|
widget.timezone,
|
||||||
|
)]
|
||||||
|
.round()
|
||||||
|
.toInt(),
|
||||||
|
),
|
||||||
style: context.textTheme.titleLarge?.copyWith(
|
style: context.textTheme.titleLarge?.copyWith(
|
||||||
fontSize: 22,
|
fontSize: 22,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
|
@ -65,8 +70,12 @@ class _PlaceCardState extends State<PlaceCard> {
|
||||||
),
|
),
|
||||||
const Gap(7),
|
const Gap(7),
|
||||||
Text(
|
Text(
|
||||||
statusWeather.getText(widget.weather[weatherController
|
statusWeather.getText(
|
||||||
.getTime(widget.time, widget.timezone)]),
|
widget.weather[weatherController.getTime(
|
||||||
|
widget.time,
|
||||||
|
widget.timezone,
|
||||||
|
)],
|
||||||
|
),
|
||||||
style: context.textTheme.titleMedium?.copyWith(
|
style: context.textTheme.titleMedium?.copyWith(
|
||||||
color: Colors.grey,
|
color: Colors.grey,
|
||||||
fontWeight: FontWeight.w400,
|
fontWeight: FontWeight.w400,
|
||||||
|
@ -79,11 +88,11 @@ class _PlaceCardState extends State<PlaceCard> {
|
||||||
widget.district.isEmpty
|
widget.district.isEmpty
|
||||||
? widget.city
|
? widget.city
|
||||||
: widget.city.isEmpty
|
: widget.city.isEmpty
|
||||||
? widget.district
|
? widget.district
|
||||||
: widget.city == widget.district
|
: widget.city == widget.district
|
||||||
? widget.city
|
? widget.city
|
||||||
: '${widget.city}'
|
: '${widget.city}'
|
||||||
', ${widget.district}',
|
', ${widget.district}',
|
||||||
style: context.textTheme.titleMedium?.copyWith(
|
style: context.textTheme.titleMedium?.copyWith(
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
),
|
),
|
||||||
|
@ -107,14 +116,23 @@ class _PlaceCardState extends State<PlaceCard> {
|
||||||
const Gap(5),
|
const Gap(5),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
statusWeather.getImageNow(
|
statusWeather.getImageNow(
|
||||||
widget.weather[
|
widget.weather[weatherController.getTime(
|
||||||
weatherController.getTime(widget.time, widget.timezone)],
|
widget.time,
|
||||||
widget.time[
|
widget.timezone,
|
||||||
weatherController.getTime(widget.time, widget.timezone)],
|
)],
|
||||||
widget.timeDay[weatherController.getDay(
|
widget.time[weatherController.getTime(
|
||||||
widget.timeDaily, widget.timezone)],
|
widget.time,
|
||||||
widget.timeNight[weatherController.getDay(
|
widget.timezone,
|
||||||
widget.timeDaily, widget.timezone)]),
|
)],
|
||||||
|
widget.timeDay[weatherController.getDay(
|
||||||
|
widget.timeDaily,
|
||||||
|
widget.timezone,
|
||||||
|
)],
|
||||||
|
widget.timeNight[weatherController.getDay(
|
||||||
|
widget.timeDaily,
|
||||||
|
widget.timezone,
|
||||||
|
)],
|
||||||
|
),
|
||||||
scale: 6.5,
|
scale: 6.5,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -6,10 +6,7 @@ import 'package:rain/app/ui/places/view/place_info.dart';
|
||||||
import 'package:rain/app/ui/places/widgets/place_card.dart';
|
import 'package:rain/app/ui/places/widgets/place_card.dart';
|
||||||
|
|
||||||
class PlaceCardList extends StatefulWidget {
|
class PlaceCardList extends StatefulWidget {
|
||||||
const PlaceCardList({
|
const PlaceCardList({super.key, required this.searchCity});
|
||||||
super.key,
|
|
||||||
required this.searchCity,
|
|
||||||
});
|
|
||||||
final String searchCity;
|
final String searchCity;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -24,15 +21,21 @@ class _PlaceCardListState extends State<PlaceCardList> {
|
||||||
final textTheme = context.textTheme;
|
final textTheme = context.textTheme;
|
||||||
final titleMedium = textTheme.titleMedium;
|
final titleMedium = textTheme.titleMedium;
|
||||||
|
|
||||||
var weatherCards = weatherController.weatherCards
|
var weatherCards =
|
||||||
.where((weatherCard) => (widget.searchCity.isEmpty ||
|
weatherController.weatherCards
|
||||||
weatherCard.city!.toLowerCase().contains(widget.searchCity)))
|
.where(
|
||||||
.toList()
|
(weatherCard) =>
|
||||||
.obs;
|
(widget.searchCity.isEmpty ||
|
||||||
|
weatherCard.city!.toLowerCase().contains(
|
||||||
|
widget.searchCity,
|
||||||
|
)),
|
||||||
|
)
|
||||||
|
.toList()
|
||||||
|
.obs;
|
||||||
|
|
||||||
return ReorderableListView(
|
return ReorderableListView(
|
||||||
onReorder: (oldIndex, newIndex) =>
|
onReorder:
|
||||||
weatherController.reorder(oldIndex, newIndex),
|
(oldIndex, newIndex) => weatherController.reorder(oldIndex, newIndex),
|
||||||
children: [
|
children: [
|
||||||
...weatherCards.map(
|
...weatherCards.map(
|
||||||
(weatherCardList) => Dismissible(
|
(weatherCardList) => Dismissible(
|
||||||
|
@ -42,10 +45,7 @@ class _PlaceCardListState extends State<PlaceCardList> {
|
||||||
alignment: Alignment.centerRight,
|
alignment: Alignment.centerRight,
|
||||||
child: const Padding(
|
child: const Padding(
|
||||||
padding: EdgeInsets.only(right: 15),
|
padding: EdgeInsets.only(right: 15),
|
||||||
child: Icon(
|
child: Icon(IconsaxPlusLinear.trash_square, color: Colors.red),
|
||||||
IconsaxPlusLinear.trash_square,
|
|
||||||
color: Colors.red,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
confirmDismiss: (DismissDirection direction) async {
|
confirmDismiss: (DismissDirection direction) async {
|
||||||
|
@ -75,9 +75,7 @@ class _PlaceCardListState extends State<PlaceCardList> {
|
||||||
onPressed: () => Get.back(result: true),
|
onPressed: () => Get.back(result: true),
|
||||||
child: Text(
|
child: Text(
|
||||||
'delete'.tr,
|
'delete'.tr,
|
||||||
style: titleMedium?.copyWith(
|
style: titleMedium?.copyWith(color: Colors.red),
|
||||||
color: Colors.red,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -89,12 +87,11 @@ class _PlaceCardListState extends State<PlaceCardList> {
|
||||||
await weatherController.deleteCardWeather(weatherCardList);
|
await weatherController.deleteCardWeather(weatherCardList);
|
||||||
},
|
},
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () => Get.to(
|
onTap:
|
||||||
() => PlaceInfo(
|
() => Get.to(
|
||||||
weatherCard: weatherCardList,
|
() => PlaceInfo(weatherCard: weatherCardList),
|
||||||
),
|
transition: Transition.downToUp,
|
||||||
transition: Transition.downToUp,
|
),
|
||||||
),
|
|
||||||
child: PlaceCard(
|
child: PlaceCard(
|
||||||
time: weatherCardList.time!,
|
time: weatherCardList.time!,
|
||||||
timeDaily: weatherCardList.timeDaily!,
|
timeDaily: weatherCardList.timeDaily!,
|
||||||
|
|
|
@ -41,9 +41,7 @@ class SettingCard extends StatelessWidget {
|
||||||
elevation: elevation ?? 1,
|
elevation: elevation ?? 1,
|
||||||
margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
|
margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)),
|
||||||
borderRadius: BorderRadius.circular(15),
|
|
||||||
),
|
|
||||||
onTap: onPressed,
|
onTap: onPressed,
|
||||||
leading: icon,
|
leading: icon,
|
||||||
title: Text(
|
title: Text(
|
||||||
|
@ -51,50 +49,44 @@ class SettingCard extends StatelessWidget {
|
||||||
style: context.textTheme.titleMedium,
|
style: context.textTheme.titleMedium,
|
||||||
overflow: TextOverflow.visible,
|
overflow: TextOverflow.visible,
|
||||||
),
|
),
|
||||||
trailing: switcher
|
trailing:
|
||||||
? Transform.scale(
|
switcher
|
||||||
scale: 0.8,
|
? Transform.scale(
|
||||||
child: Switch(
|
scale: 0.8,
|
||||||
value: value!,
|
child: Switch(value: value!, onChanged: onChange),
|
||||||
onChanged: onChange,
|
)
|
||||||
),
|
: dropdown
|
||||||
)
|
|
||||||
: dropdown
|
|
||||||
? DropdownButton<String>(
|
? DropdownButton<String>(
|
||||||
icon: const Padding(
|
icon: const Padding(
|
||||||
padding: EdgeInsets.only(left: 7),
|
padding: EdgeInsets.only(left: 7),
|
||||||
child: Icon(IconsaxPlusLinear.arrow_down),
|
child: Icon(IconsaxPlusLinear.arrow_down),
|
||||||
),
|
),
|
||||||
iconSize: 15,
|
iconSize: 15,
|
||||||
alignment: AlignmentDirectional.centerEnd,
|
alignment: AlignmentDirectional.centerEnd,
|
||||||
borderRadius: const BorderRadius.all(Radius.circular(15)),
|
borderRadius: const BorderRadius.all(Radius.circular(15)),
|
||||||
underline: Container(),
|
underline: Container(),
|
||||||
value: dropdownName,
|
value: dropdownName,
|
||||||
items: dropdownList!
|
items:
|
||||||
.map<DropdownMenuItem<String>>((String value) {
|
dropdownList!.map<DropdownMenuItem<String>>((
|
||||||
return DropdownMenuItem<String>(
|
String value,
|
||||||
value: value,
|
) {
|
||||||
child: Text(value),
|
return DropdownMenuItem<String>(
|
||||||
);
|
value: value,
|
||||||
}).toList(),
|
child: Text(value),
|
||||||
onChanged: dropdownCange,
|
);
|
||||||
)
|
}).toList(),
|
||||||
|
onChanged: dropdownCange,
|
||||||
|
)
|
||||||
: info
|
: info
|
||||||
? infoSettings
|
? infoSettings
|
||||||
? Wrap(
|
? Wrap(
|
||||||
children: [
|
children: [
|
||||||
infoWidget!,
|
infoWidget!,
|
||||||
const Icon(
|
const Icon(IconsaxPlusLinear.arrow_right_3, size: 18),
|
||||||
IconsaxPlusLinear.arrow_right_3,
|
],
|
||||||
size: 18,
|
)
|
||||||
),
|
: infoWidget!
|
||||||
],
|
: const Icon(IconsaxPlusLinear.arrow_right_3, size: 18),
|
||||||
)
|
|
||||||
: infoWidget!
|
|
||||||
: const Icon(
|
|
||||||
IconsaxPlusLinear.arrow_right_3,
|
|
||||||
size: 18,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,13 +19,11 @@ class MyTextButton extends StatelessWidget {
|
||||||
style: ButtonStyle(
|
style: ButtonStyle(
|
||||||
shadowColor: const WidgetStatePropertyAll(Colors.transparent),
|
shadowColor: const WidgetStatePropertyAll(Colors.transparent),
|
||||||
backgroundColor: WidgetStatePropertyAll(
|
backgroundColor: WidgetStatePropertyAll(
|
||||||
context.theme.colorScheme.secondaryContainer.withAlpha(80)),
|
context.theme.colorScheme.secondaryContainer.withAlpha(80),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
onPressed: onPressed,
|
onPressed: onPressed,
|
||||||
child: Text(
|
child: Text(buttonName, style: context.textTheme.titleMedium),
|
||||||
buttonName,
|
|
||||||
style: context.textTheme.titleMedium,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,7 @@ import 'package:get/get.dart';
|
||||||
import 'package:shimmer/shimmer.dart';
|
import 'package:shimmer/shimmer.dart';
|
||||||
|
|
||||||
class MyShimmer extends StatelessWidget {
|
class MyShimmer extends StatelessWidget {
|
||||||
const MyShimmer({
|
const MyShimmer({super.key, required this.hight, this.edgeInsetsMargin});
|
||||||
super.key,
|
|
||||||
required this.hight,
|
|
||||||
this.edgeInsetsMargin,
|
|
||||||
});
|
|
||||||
final double hight;
|
final double hight;
|
||||||
final EdgeInsets? edgeInsetsMargin;
|
final EdgeInsets? edgeInsetsMargin;
|
||||||
|
|
||||||
|
@ -16,12 +12,7 @@ class MyShimmer extends StatelessWidget {
|
||||||
return Shimmer.fromColors(
|
return Shimmer.fromColors(
|
||||||
baseColor: context.theme.cardColor,
|
baseColor: context.theme.cardColor,
|
||||||
highlightColor: context.theme.primaryColor,
|
highlightColor: context.theme.primaryColor,
|
||||||
child: Card(
|
child: Card(margin: edgeInsetsMargin, child: SizedBox(height: hight)),
|
||||||
margin: edgeInsetsMargin,
|
|
||||||
child: SizedBox(
|
|
||||||
height: hight,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,50 +32,51 @@ class _DailyCardState extends State<DailyCard> {
|
||||||
return widget.weathercodeDaily == null
|
return widget.weathercodeDaily == null
|
||||||
? Container()
|
? Container()
|
||||||
: Card(
|
: Card(
|
||||||
margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 8),
|
margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 8),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20),
|
padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${statusData.getDegree(widget.temperature2MMin?.round())} / ${statusData.getDegree(widget.temperature2MMax?.round())}',
|
'${statusData.getDegree(widget.temperature2MMin?.round())} / ${statusData.getDegree(widget.temperature2MMax?.round())}',
|
||||||
style: context.textTheme.titleLarge?.copyWith(
|
style: context.textTheme.titleLarge?.copyWith(
|
||||||
fontSize: 22,
|
fontSize: 22,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
),
|
|
||||||
),
|
),
|
||||||
const Gap(5),
|
),
|
||||||
Text(
|
const Gap(5),
|
||||||
DateFormat.MMMMEEEEd(locale.languageCode)
|
Text(
|
||||||
.format(widget.timeDaily),
|
DateFormat.MMMMEEEEd(
|
||||||
style: context.textTheme.titleMedium?.copyWith(
|
locale.languageCode,
|
||||||
color: Colors.grey,
|
).format(widget.timeDaily),
|
||||||
fontWeight: FontWeight.w400,
|
style: context.textTheme.titleMedium?.copyWith(
|
||||||
),
|
color: Colors.grey,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
),
|
),
|
||||||
const Gap(5),
|
),
|
||||||
Text(
|
const Gap(5),
|
||||||
statusWeather.getText(widget.weathercodeDaily),
|
Text(
|
||||||
style: context.textTheme.titleMedium?.copyWith(
|
statusWeather.getText(widget.weathercodeDaily),
|
||||||
color: Colors.grey,
|
style: context.textTheme.titleMedium?.copyWith(
|
||||||
fontWeight: FontWeight.w400,
|
color: Colors.grey,
|
||||||
),
|
fontWeight: FontWeight.w400,
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
),
|
],
|
||||||
),
|
),
|
||||||
const Gap(5),
|
),
|
||||||
Image.asset(
|
const Gap(5),
|
||||||
statusWeather.getImageNowDaily(widget.weathercodeDaily),
|
Image.asset(
|
||||||
scale: 6.5,
|
statusWeather.getImageNowDaily(widget.weathercodeDaily),
|
||||||
),
|
scale: 6.5,
|
||||||
],
|
),
|
||||||
),
|
],
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,16 +64,14 @@ class _DailyCardInfoState extends State<DailyCardInfo> {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(IconsaxPlusLinear.arrow_left_3, size: 20),
|
||||||
IconsaxPlusLinear.arrow_left_3,
|
|
||||||
size: 20,
|
|
||||||
),
|
|
||||||
splashColor: Colors.transparent,
|
splashColor: Colors.transparent,
|
||||||
highlightColor: Colors.transparent,
|
highlightColor: Colors.transparent,
|
||||||
),
|
),
|
||||||
title: Text(
|
title: Text(
|
||||||
DateFormat.MMMMEEEEd(locale.languageCode)
|
DateFormat.MMMMEEEEd(
|
||||||
.format(timeDaily[pageIndex]),
|
locale.languageCode,
|
||||||
|
).format(timeDaily[pageIndex]),
|
||||||
style: textTheme.titleMedium?.copyWith(
|
style: textTheme.titleMedium?.copyWith(
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
fontSize: 18,
|
fontSize: 18,
|
||||||
|
@ -115,133 +113,145 @@ class _DailyCardInfoState extends State<DailyCardInfo> {
|
||||||
return indexedWeatherCodeDaily == null
|
return indexedWeatherCodeDaily == null
|
||||||
? null
|
? null
|
||||||
: Container(
|
: Container(
|
||||||
margin: const EdgeInsets.symmetric(horizontal: 10),
|
margin: const EdgeInsets.symmetric(horizontal: 10),
|
||||||
child: ListView(
|
child: ListView(
|
||||||
children: [
|
children: [
|
||||||
Now(
|
Now(
|
||||||
weather:
|
weather:
|
||||||
weatherData.weathercode![startIndex + hourOfDay],
|
weatherData.weathercode![startIndex + hourOfDay],
|
||||||
degree: weatherData
|
degree:
|
||||||
.temperature2M![startIndex + hourOfDay],
|
weatherData.temperature2M![startIndex + hourOfDay],
|
||||||
feels: weatherData
|
feels:
|
||||||
.apparentTemperature![startIndex + hourOfDay]!,
|
weatherData.apparentTemperature![startIndex +
|
||||||
time: weatherData.time![startIndex + hourOfDay],
|
hourOfDay]!,
|
||||||
timeDay: sunrise,
|
time: weatherData.time![startIndex + hourOfDay],
|
||||||
timeNight: sunset,
|
timeDay: sunrise,
|
||||||
tempMax: temperature2MMax!,
|
timeNight: sunset,
|
||||||
tempMin: temperature2MMin!,
|
tempMax: temperature2MMax!,
|
||||||
),
|
tempMin: temperature2MMin!,
|
||||||
Card(
|
),
|
||||||
margin: const EdgeInsets.only(bottom: 15),
|
Card(
|
||||||
child: Padding(
|
margin: const EdgeInsets.only(bottom: 15),
|
||||||
padding: const EdgeInsets.symmetric(
|
child: Padding(
|
||||||
horizontal: 10, vertical: 5),
|
padding: const EdgeInsets.symmetric(
|
||||||
child: SizedBox(
|
horizontal: 10,
|
||||||
height: 135,
|
vertical: 5,
|
||||||
child: ScrollablePositionedList.separated(
|
),
|
||||||
separatorBuilder:
|
child: SizedBox(
|
||||||
(BuildContext context, int index) {
|
height: 135,
|
||||||
return const VerticalDivider(
|
child: ScrollablePositionedList.separated(
|
||||||
width: 10,
|
separatorBuilder: (
|
||||||
indent: 40,
|
BuildContext context,
|
||||||
endIndent: 40,
|
int index,
|
||||||
);
|
) {
|
||||||
},
|
return const VerticalDivider(
|
||||||
scrollDirection: Axis.horizontal,
|
width: 10,
|
||||||
itemCount: 24,
|
indent: 40,
|
||||||
itemBuilder: (ctx, i) {
|
endIndent: 40,
|
||||||
int hourlyIndex = startIndex + i;
|
);
|
||||||
return GestureDetector(
|
},
|
||||||
onTap: () {
|
scrollDirection: Axis.horizontal,
|
||||||
hourOfDay = i;
|
itemCount: 24,
|
||||||
setState(() {});
|
itemBuilder: (ctx, i) {
|
||||||
},
|
int hourlyIndex = startIndex + i;
|
||||||
child: Container(
|
return GestureDetector(
|
||||||
margin: const EdgeInsets.symmetric(
|
onTap: () {
|
||||||
vertical: 5),
|
hourOfDay = i;
|
||||||
padding: const EdgeInsets.symmetric(
|
setState(() {});
|
||||||
horizontal: 20,
|
},
|
||||||
vertical: 5,
|
child: Container(
|
||||||
),
|
margin: const EdgeInsets.symmetric(
|
||||||
decoration: BoxDecoration(
|
vertical: 5,
|
||||||
color: i == hourOfDay
|
),
|
||||||
? context.theme.colorScheme
|
padding: const EdgeInsets.symmetric(
|
||||||
.secondaryContainer
|
horizontal: 20,
|
||||||
: Colors.transparent,
|
vertical: 5,
|
||||||
borderRadius: const BorderRadius.all(
|
),
|
||||||
Radius.circular(20),
|
decoration: BoxDecoration(
|
||||||
),
|
color:
|
||||||
),
|
i == hourOfDay
|
||||||
child: Hourly(
|
? context
|
||||||
time: weatherData.time![hourlyIndex],
|
.theme
|
||||||
weather: weatherData
|
.colorScheme
|
||||||
.weathercode![hourlyIndex],
|
.secondaryContainer
|
||||||
degree: weatherData
|
: Colors.transparent,
|
||||||
.temperature2M![hourlyIndex],
|
borderRadius: const BorderRadius.all(
|
||||||
timeDay: sunrise,
|
Radius.circular(20),
|
||||||
timeNight: sunset,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
child: Hourly(
|
||||||
},
|
time: weatherData.time![hourlyIndex],
|
||||||
),
|
weather:
|
||||||
|
weatherData.weathercode![hourlyIndex],
|
||||||
|
degree:
|
||||||
|
weatherData
|
||||||
|
.temperature2M![hourlyIndex],
|
||||||
|
timeDay: sunrise,
|
||||||
|
timeNight: sunset,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SunsetSunrise(
|
),
|
||||||
timeSunrise: sunrise,
|
SunsetSunrise(timeSunrise: sunrise, timeSunset: sunset),
|
||||||
timeSunset: sunset,
|
DescContainer(
|
||||||
),
|
humidity:
|
||||||
DescContainer(
|
weatherData.relativehumidity2M?[startIndex +
|
||||||
humidity: weatherData
|
hourOfDay],
|
||||||
.relativehumidity2M?[startIndex + hourOfDay],
|
wind: weatherData.windspeed10M?[startIndex + hourOfDay],
|
||||||
wind:
|
visibility:
|
||||||
weatherData.windspeed10M?[startIndex + hourOfDay],
|
weatherData.visibility?[startIndex + hourOfDay],
|
||||||
visibility:
|
feels:
|
||||||
weatherData.visibility?[startIndex + hourOfDay],
|
weatherData.apparentTemperature?[startIndex +
|
||||||
feels: weatherData
|
hourOfDay],
|
||||||
.apparentTemperature?[startIndex + hourOfDay],
|
evaporation:
|
||||||
evaporation: weatherData
|
weatherData.evapotranspiration?[startIndex +
|
||||||
.evapotranspiration?[startIndex + hourOfDay],
|
hourOfDay],
|
||||||
precipitation: weatherData
|
precipitation:
|
||||||
.precipitation?[startIndex + hourOfDay],
|
weatherData.precipitation?[startIndex + hourOfDay],
|
||||||
direction: weatherData
|
direction:
|
||||||
.winddirection10M?[startIndex + hourOfDay],
|
weatherData.winddirection10M?[startIndex +
|
||||||
pressure: weatherData
|
hourOfDay],
|
||||||
.surfacePressure?[startIndex + hourOfDay],
|
pressure:
|
||||||
rain: weatherData.rain?[startIndex + hourOfDay],
|
weatherData.surfacePressure?[startIndex +
|
||||||
cloudcover:
|
hourOfDay],
|
||||||
weatherData.cloudcover?[startIndex + hourOfDay],
|
rain: weatherData.rain?[startIndex + hourOfDay],
|
||||||
windgusts:
|
cloudcover:
|
||||||
weatherData.windgusts10M?[startIndex + hourOfDay],
|
weatherData.cloudcover?[startIndex + hourOfDay],
|
||||||
uvIndex: weatherData.uvIndex?[startIndex + hourOfDay],
|
windgusts:
|
||||||
dewpoint2M:
|
weatherData.windgusts10M?[startIndex + hourOfDay],
|
||||||
weatherData.dewpoint2M?[startIndex + hourOfDay],
|
uvIndex: weatherData.uvIndex?[startIndex + hourOfDay],
|
||||||
precipitationProbability:
|
dewpoint2M:
|
||||||
weatherData.precipitationProbability?[
|
weatherData.dewpoint2M?[startIndex + hourOfDay],
|
||||||
startIndex + hourOfDay],
|
precipitationProbability:
|
||||||
shortwaveRadiation: weatherData
|
weatherData.precipitationProbability?[startIndex +
|
||||||
.shortwaveRadiation?[startIndex + hourOfDay],
|
hourOfDay],
|
||||||
initiallyExpanded: true,
|
shortwaveRadiation:
|
||||||
title: 'hourlyVariables'.tr,
|
weatherData.shortwaveRadiation?[startIndex +
|
||||||
),
|
hourOfDay],
|
||||||
DescContainer(
|
initiallyExpanded: true,
|
||||||
apparentTemperatureMin: apparentTemperatureMin,
|
title: 'hourlyVariables'.tr,
|
||||||
apparentTemperatureMax: apparentTemperatureMax,
|
),
|
||||||
uvIndexMax: uvIndexMax,
|
DescContainer(
|
||||||
windDirection10MDominant: windDirection10MDominant,
|
apparentTemperatureMin: apparentTemperatureMin,
|
||||||
windSpeed10MMax: windSpeed10MMax,
|
apparentTemperatureMax: apparentTemperatureMax,
|
||||||
windGusts10MMax: windGusts10MMax,
|
uvIndexMax: uvIndexMax,
|
||||||
precipitationProbabilityMax:
|
windDirection10MDominant: windDirection10MDominant,
|
||||||
precipitationProbabilityMax,
|
windSpeed10MMax: windSpeed10MMax,
|
||||||
rainSum: rainSum,
|
windGusts10MMax: windGusts10MMax,
|
||||||
precipitationSum: precipitationSum,
|
precipitationProbabilityMax:
|
||||||
initiallyExpanded: true,
|
precipitationProbabilityMax,
|
||||||
title: 'dailyVariables'.tr,
|
rainSum: rainSum,
|
||||||
),
|
precipitationSum: precipitationSum,
|
||||||
],
|
initiallyExpanded: true,
|
||||||
),
|
title: 'dailyVariables'.tr,
|
||||||
);
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -6,10 +6,7 @@ import 'package:rain/app/ui/widgets/weather/daily/daily_card_info.dart';
|
||||||
import 'package:rain/app/ui/widgets/weather/daily/daily_card.dart';
|
import 'package:rain/app/ui/widgets/weather/daily/daily_card.dart';
|
||||||
|
|
||||||
class DailyCardList extends StatefulWidget {
|
class DailyCardList extends StatefulWidget {
|
||||||
const DailyCardList({
|
const DailyCardList({super.key, required this.weatherData});
|
||||||
super.key,
|
|
||||||
required this.weatherData,
|
|
||||||
});
|
|
||||||
final WeatherCard weatherData;
|
final WeatherCard weatherData;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -31,10 +28,7 @@ class _DailyCardListState extends State<DailyCardList> {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(IconsaxPlusLinear.arrow_left_3, size: 20),
|
||||||
IconsaxPlusLinear.arrow_left_3,
|
|
||||||
size: 20,
|
|
||||||
),
|
|
||||||
splashColor: transparent,
|
splashColor: transparent,
|
||||||
highlightColor: transparent,
|
highlightColor: transparent,
|
||||||
),
|
),
|
||||||
|
@ -49,21 +43,21 @@ class _DailyCardListState extends State<DailyCardList> {
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
itemCount: timeDaily.length,
|
itemCount: timeDaily.length,
|
||||||
itemBuilder: (context, index) => GestureDetector(
|
itemBuilder:
|
||||||
onTap: () => Get.to(
|
(context, index) => GestureDetector(
|
||||||
() => DailyCardInfo(
|
onTap:
|
||||||
weatherData: weatherData,
|
() => Get.to(
|
||||||
index: index,
|
() =>
|
||||||
|
DailyCardInfo(weatherData: weatherData, index: index),
|
||||||
|
transition: Transition.downToUp,
|
||||||
|
),
|
||||||
|
child: DailyCard(
|
||||||
|
timeDaily: timeDaily[index],
|
||||||
|
weathercodeDaily: weatherData.weathercodeDaily![index],
|
||||||
|
temperature2MMax: weatherData.temperature2MMax![index],
|
||||||
|
temperature2MMin: weatherData.temperature2MMin![index],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
transition: Transition.downToUp,
|
|
||||||
),
|
|
||||||
child: DailyCard(
|
|
||||||
timeDaily: timeDaily[index],
|
|
||||||
weathercodeDaily: weatherData.weathercodeDaily![index],
|
|
||||||
temperature2MMax: weatherData.temperature2MMax![index],
|
|
||||||
temperature2MMin: weatherData.temperature2MMin![index],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -29,9 +29,7 @@ class _DailyContainerState extends State<DailyContainer> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final splashColor = context.theme.colorScheme.primary.withOpacity(0.4);
|
final splashColor = context.theme.colorScheme.primary.withOpacity(0.4);
|
||||||
const inkWellBorderRadius = BorderRadius.all(
|
const inkWellBorderRadius = BorderRadius.all(Radius.circular(16));
|
||||||
Radius.circular(16),
|
|
||||||
);
|
|
||||||
|
|
||||||
final weatherData = widget.weatherData;
|
final weatherData = widget.weatherData;
|
||||||
final weatherCodeDaily = weatherData.weathercodeDaily ?? [];
|
final weatherCodeDaily = weatherData.weathercodeDaily ?? [];
|
||||||
|
@ -52,13 +50,14 @@ class _DailyContainerState extends State<DailyContainer> {
|
||||||
return InkWell(
|
return InkWell(
|
||||||
splashColor: splashColor,
|
splashColor: splashColor,
|
||||||
borderRadius: inkWellBorderRadius,
|
borderRadius: inkWellBorderRadius,
|
||||||
onTap: () => Get.to(
|
onTap:
|
||||||
() => DailyCardInfo(
|
() => Get.to(
|
||||||
weatherData: weatherData,
|
() => DailyCardInfo(
|
||||||
index: index,
|
weatherData: weatherData,
|
||||||
),
|
index: index,
|
||||||
transition: Transition.downToUp,
|
),
|
||||||
),
|
transition: Transition.downToUp,
|
||||||
|
),
|
||||||
child: Container(
|
child: Container(
|
||||||
margin: const EdgeInsets.symmetric(vertical: 12),
|
margin: const EdgeInsets.symmetric(vertical: 12),
|
||||||
child: Row(
|
child: Row(
|
||||||
|
@ -66,8 +65,9 @@ class _DailyContainerState extends State<DailyContainer> {
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
DateFormat.EEEE(locale.languageCode)
|
DateFormat.EEEE(
|
||||||
.format((weatherData.timeDaily ?? [])[index]),
|
locale.languageCode,
|
||||||
|
).format((weatherData.timeDaily ?? [])[index]),
|
||||||
style: labelLarge,
|
style: labelLarge,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
|
@ -77,15 +77,17 @@ class _DailyContainerState extends State<DailyContainer> {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
statusWeather
|
statusWeather.getImage7Day(
|
||||||
.getImage7Day(weatherCodeDaily[index]),
|
weatherCodeDaily[index],
|
||||||
|
),
|
||||||
scale: 3,
|
scale: 3,
|
||||||
),
|
),
|
||||||
const Gap(5),
|
const Gap(5),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
statusWeather
|
statusWeather.getText(
|
||||||
.getText(weatherCodeDaily[index]),
|
weatherCodeDaily[index],
|
||||||
|
),
|
||||||
style: labelLarge,
|
style: labelLarge,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
|
@ -99,18 +101,17 @@ class _DailyContainerState extends State<DailyContainer> {
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
statusData.getDegree(
|
statusData.getDegree(
|
||||||
(weatherData.temperature2MMin ?? [])[index]
|
(weatherData.temperature2MMin ?? [])[index]
|
||||||
?.round()),
|
?.round(),
|
||||||
style: labelLarge,
|
),
|
||||||
),
|
|
||||||
Text(
|
|
||||||
' / ',
|
|
||||||
style: labelLarge,
|
style: labelLarge,
|
||||||
),
|
),
|
||||||
|
Text(' / ', style: labelLarge),
|
||||||
Text(
|
Text(
|
||||||
statusData.getDegree(
|
statusData.getDegree(
|
||||||
(weatherData.temperature2MMax ?? [])[index]
|
(weatherData.temperature2MMax ?? [])[index]
|
||||||
?.round()),
|
?.round(),
|
||||||
|
),
|
||||||
style: labelLarge,
|
style: labelLarge,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -35,14 +35,12 @@ class _DescWeatherState extends State<DescWeather> {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(widget.imageName, scale: 20),
|
||||||
widget.imageName,
|
|
||||||
scale: 20,
|
|
||||||
),
|
|
||||||
const Gap(5),
|
const Gap(5),
|
||||||
Text(
|
Text(
|
||||||
widget.value,
|
widget.value,
|
||||||
style: textTheme.labelLarge,
|
style: textTheme.labelLarge,
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|
|
@ -107,10 +107,7 @@ class _DescContainerState extends State<DescContainer> {
|
||||||
margin: const EdgeInsets.only(bottom: 15),
|
margin: const EdgeInsets.only(bottom: 15),
|
||||||
child: ExpansionTile(
|
child: ExpansionTile(
|
||||||
shape: const Border(),
|
shape: const Border(),
|
||||||
title: Text(
|
title: Text(title, style: context.textTheme.labelLarge),
|
||||||
title,
|
|
||||||
style: context.textTheme.labelLarge,
|
|
||||||
),
|
|
||||||
initiallyExpanded: initiallyExpanded,
|
initiallyExpanded: initiallyExpanded,
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
|
@ -122,180 +119,180 @@ class _DescContainerState extends State<DescContainer> {
|
||||||
apparentTemperatureMin == null
|
apparentTemperatureMin == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/cold.png',
|
imageName: 'assets/images/cold.png',
|
||||||
value: statusData
|
value: statusData.getDegree(
|
||||||
.getDegree(apparentTemperatureMin.round()),
|
apparentTemperatureMin.round(),
|
||||||
desc: 'apparentTemperatureMin'.tr,
|
|
||||||
),
|
),
|
||||||
|
desc: 'apparentTemperatureMin'.tr,
|
||||||
|
),
|
||||||
apparentTemperatureMax == null
|
apparentTemperatureMax == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/hot.png',
|
imageName: 'assets/images/hot.png',
|
||||||
value: statusData
|
value: statusData.getDegree(
|
||||||
.getDegree(apparentTemperatureMax.round()),
|
apparentTemperatureMax.round(),
|
||||||
desc: 'apparentTemperatureMax'.tr,
|
|
||||||
),
|
),
|
||||||
|
desc: 'apparentTemperatureMax'.tr,
|
||||||
|
),
|
||||||
uvIndexMax == null
|
uvIndexMax == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/uv.png',
|
imageName: 'assets/images/uv.png',
|
||||||
value: '${uvIndexMax.round()}',
|
value: '${uvIndexMax.round()}',
|
||||||
desc: 'uvIndex'.tr,
|
desc: 'uvIndex'.tr,
|
||||||
message: message.getUvIndex(uvIndexMax.round()),
|
message: message.getUvIndex(uvIndexMax.round()),
|
||||||
),
|
),
|
||||||
windDirection10MDominant == null
|
windDirection10MDominant == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/windsock.png',
|
imageName: 'assets/images/windsock.png',
|
||||||
value: '$windDirection10MDominant°',
|
value: '$windDirection10MDominant°',
|
||||||
desc: 'direction'.tr,
|
desc: 'direction'.tr,
|
||||||
message: message.getDirection(windDirection10MDominant),
|
message: message.getDirection(windDirection10MDominant),
|
||||||
),
|
),
|
||||||
windSpeed10MMax == null
|
windSpeed10MMax == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/wind.png',
|
imageName: 'assets/images/wind.png',
|
||||||
value: statusData.getSpeed(windSpeed10MMax.round()),
|
value: statusData.getSpeed(windSpeed10MMax.round()),
|
||||||
desc: 'wind'.tr,
|
desc: 'wind'.tr,
|
||||||
),
|
),
|
||||||
windGusts10MMax == null
|
windGusts10MMax == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/windgusts.png',
|
imageName: 'assets/images/windgusts.png',
|
||||||
value: statusData.getSpeed(windGusts10MMax.round()),
|
value: statusData.getSpeed(windGusts10MMax.round()),
|
||||||
desc: 'windgusts'.tr,
|
desc: 'windgusts'.tr,
|
||||||
),
|
),
|
||||||
precipitationProbabilityMax == null
|
precipitationProbabilityMax == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName:
|
imageName: 'assets/images/precipitation_probability.png',
|
||||||
'assets/images/precipitation_probability.png',
|
value: '$precipitationProbabilityMax%',
|
||||||
value: '$precipitationProbabilityMax%',
|
desc: 'precipitationProbability'.tr,
|
||||||
desc: 'precipitationProbability'.tr,
|
),
|
||||||
),
|
|
||||||
rainSum == null
|
rainSum == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/water.png',
|
imageName: 'assets/images/water.png',
|
||||||
value: statusData.getPrecipitation(rainSum),
|
value: statusData.getPrecipitation(rainSum),
|
||||||
desc: 'rain'.tr,
|
desc: 'rain'.tr,
|
||||||
),
|
),
|
||||||
precipitationSum == null
|
precipitationSum == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/rainfall.png',
|
imageName: 'assets/images/rainfall.png',
|
||||||
value: statusData.getPrecipitation(precipitationSum),
|
value: statusData.getPrecipitation(precipitationSum),
|
||||||
desc: 'precipitation'.tr,
|
desc: 'precipitation'.tr,
|
||||||
),
|
),
|
||||||
dewpoint2M == null
|
dewpoint2M == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/dew.png',
|
imageName: 'assets/images/dew.png',
|
||||||
value: statusData.getDegree(dewpoint2M.round()),
|
value: statusData.getDegree(dewpoint2M.round()),
|
||||||
desc: 'dewpoint'.tr,
|
desc: 'dewpoint'.tr,
|
||||||
),
|
),
|
||||||
feels == null
|
feels == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/temperature.png',
|
imageName: 'assets/images/temperature.png',
|
||||||
value: statusData.getDegree(feels.round()),
|
value: statusData.getDegree(feels.round()),
|
||||||
desc: 'feels'.tr,
|
desc: 'feels'.tr,
|
||||||
),
|
),
|
||||||
visibility == null
|
visibility == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/fog.png',
|
imageName: 'assets/images/fog.png',
|
||||||
value: statusData.getVisibility(visibility),
|
value: statusData.getVisibility(visibility),
|
||||||
desc: 'visibility'.tr,
|
desc: 'visibility'.tr,
|
||||||
),
|
),
|
||||||
direction == null
|
direction == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/windsock.png',
|
imageName: 'assets/images/windsock.png',
|
||||||
value: '$direction°',
|
value: '$direction°',
|
||||||
desc: 'direction'.tr,
|
desc: 'direction'.tr,
|
||||||
message: message.getDirection(direction),
|
message: message.getDirection(direction),
|
||||||
),
|
),
|
||||||
wind == null
|
wind == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/wind.png',
|
imageName: 'assets/images/wind.png',
|
||||||
value: statusData.getSpeed(wind.round()),
|
value: statusData.getSpeed(wind.round()),
|
||||||
desc: 'wind'.tr,
|
desc: 'wind'.tr,
|
||||||
),
|
),
|
||||||
windgusts == null
|
windgusts == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/windgusts.png',
|
imageName: 'assets/images/windgusts.png',
|
||||||
value: statusData.getSpeed(windgusts.round()),
|
value: statusData.getSpeed(windgusts.round()),
|
||||||
desc: 'windgusts'.tr,
|
desc: 'windgusts'.tr,
|
||||||
),
|
),
|
||||||
evaporation == null
|
evaporation == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/evaporation.png',
|
imageName: 'assets/images/evaporation.png',
|
||||||
value: statusData.getPrecipitation(evaporation.abs()),
|
value: statusData.getPrecipitation(evaporation.abs()),
|
||||||
desc: 'evaporation'.tr,
|
desc: 'evaporation'.tr,
|
||||||
),
|
),
|
||||||
precipitation == null
|
precipitation == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/rainfall.png',
|
imageName: 'assets/images/rainfall.png',
|
||||||
value: statusData.getPrecipitation(precipitation),
|
value: statusData.getPrecipitation(precipitation),
|
||||||
desc: 'precipitation'.tr,
|
desc: 'precipitation'.tr,
|
||||||
),
|
),
|
||||||
rain == null
|
rain == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/water.png',
|
imageName: 'assets/images/water.png',
|
||||||
value: statusData.getPrecipitation(rain),
|
value: statusData.getPrecipitation(rain),
|
||||||
desc: 'rain'.tr,
|
desc: 'rain'.tr,
|
||||||
),
|
),
|
||||||
precipitationProbability == null
|
precipitationProbability == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName:
|
imageName: 'assets/images/precipitation_probability.png',
|
||||||
'assets/images/precipitation_probability.png',
|
value: '$precipitationProbability%',
|
||||||
value: '$precipitationProbability%',
|
desc: 'precipitationProbability'.tr,
|
||||||
desc: 'precipitationProbability'.tr,
|
),
|
||||||
),
|
|
||||||
humidity == null
|
humidity == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/humidity.png',
|
imageName: 'assets/images/humidity.png',
|
||||||
value: '$humidity%',
|
value: '$humidity%',
|
||||||
desc: 'humidity'.tr,
|
desc: 'humidity'.tr,
|
||||||
),
|
),
|
||||||
cloudcover == null
|
cloudcover == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/cloudy.png',
|
imageName: 'assets/images/cloudy.png',
|
||||||
value: '$cloudcover%',
|
value: '$cloudcover%',
|
||||||
desc: 'cloudcover'.tr,
|
desc: 'cloudcover'.tr,
|
||||||
),
|
),
|
||||||
pressure == null
|
pressure == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/atmospheric.png',
|
imageName: 'assets/images/atmospheric.png',
|
||||||
value: statusData.getPressure(pressure.round()),
|
value: statusData.getPressure(pressure.round()),
|
||||||
desc: 'pressure'.tr,
|
desc: 'pressure'.tr,
|
||||||
message: message.getPressure(pressure.round()),
|
message: message.getPressure(pressure.round()),
|
||||||
),
|
),
|
||||||
uvIndex == null
|
uvIndex == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/uv.png',
|
imageName: 'assets/images/uv.png',
|
||||||
value: '${uvIndex.round()}',
|
value: '${uvIndex.round()}',
|
||||||
desc: 'uvIndex'.tr,
|
desc: 'uvIndex'.tr,
|
||||||
message: message.getUvIndex(uvIndex.round()),
|
message: message.getUvIndex(uvIndex.round()),
|
||||||
),
|
),
|
||||||
shortwaveRadiation == null
|
shortwaveRadiation == null
|
||||||
? Container()
|
? Container()
|
||||||
: DescWeather(
|
: DescWeather(
|
||||||
imageName: 'assets/images/shortwave_radiation.png',
|
imageName: 'assets/images/shortwave_radiation.png',
|
||||||
value: '${shortwaveRadiation.round()} ${'W/m2'.tr}',
|
value: '${shortwaveRadiation.round()} ${'W/m2'.tr}',
|
||||||
desc: 'shortwaveRadiation'.tr,
|
desc: 'shortwaveRadiation'.tr,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -37,16 +37,13 @@ class _HourlyState extends State<Hourly> {
|
||||||
children: [
|
children: [
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
|
Text(statusData.getTimeFormat(time), style: textTheme.labelLarge),
|
||||||
Text(
|
Text(
|
||||||
statusData.getTimeFormat(time),
|
DateFormat(
|
||||||
style: textTheme.labelLarge,
|
'E',
|
||||||
),
|
locale.languageCode,
|
||||||
Text(
|
).format(DateTime.tryParse(time)!),
|
||||||
DateFormat('E', locale.languageCode)
|
style: textTheme.labelLarge?.copyWith(color: Colors.grey),
|
||||||
.format(DateTime.tryParse(time)!),
|
|
||||||
style: textTheme.labelLarge?.copyWith(
|
|
||||||
color: Colors.grey,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -61,9 +58,7 @@ class _HourlyState extends State<Hourly> {
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
statusData.getDegree(widget.degree.round()),
|
statusData.getDegree(widget.degree.round()),
|
||||||
style: textTheme.titleMedium?.copyWith(
|
style: textTheme.titleMedium?.copyWith(fontWeight: FontWeight.w600),
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -39,113 +39,131 @@ class _NowState extends State<Now> {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return largeElement
|
return largeElement
|
||||||
? Padding(
|
? Padding(
|
||||||
padding: const EdgeInsets.only(bottom: 15),
|
padding: const EdgeInsets.only(bottom: 15),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
const Gap(15),
|
||||||
|
Image(
|
||||||
|
image: AssetImage(
|
||||||
|
statusWeather.getImageNow(
|
||||||
|
widget.weather,
|
||||||
|
widget.time,
|
||||||
|
widget.timeDay,
|
||||||
|
widget.timeNight,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
fit: BoxFit.fill,
|
||||||
|
height: 200,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'${roundDegree ? widget.degree.round() : widget.degree}',
|
||||||
|
style: context.textTheme.displayLarge?.copyWith(
|
||||||
|
fontSize: 90,
|
||||||
|
fontWeight: FontWeight.w800,
|
||||||
|
shadows: const [Shadow(blurRadius: 15, offset: Offset(5, 5))],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
statusWeather.getText(widget.weather),
|
||||||
|
style: context.textTheme.titleLarge,
|
||||||
|
),
|
||||||
|
const Gap(5),
|
||||||
|
Text(
|
||||||
|
DateFormat.MMMMEEEEd(
|
||||||
|
locale.languageCode,
|
||||||
|
).format(DateTime.parse(widget.time)),
|
||||||
|
style: context.textTheme.labelLarge?.copyWith(
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: Card(
|
||||||
|
margin: const EdgeInsets.only(bottom: 15),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(
|
||||||
|
top: 18,
|
||||||
|
bottom: 18,
|
||||||
|
left: 25,
|
||||||
|
right: 15,
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
const Gap(15),
|
Expanded(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
DateFormat.MMMMEEEEd(
|
||||||
|
locale.languageCode,
|
||||||
|
).format(DateTime.parse(widget.time)),
|
||||||
|
style: context.textTheme.labelLarge?.copyWith(
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const Gap(5),
|
||||||
|
Text(
|
||||||
|
statusWeather.getText(widget.weather),
|
||||||
|
style: context.textTheme.titleLarge?.copyWith(
|
||||||
|
fontSize: 20,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text('feels'.tr, style: context.textTheme.bodyMedium),
|
||||||
|
Text(' • ', style: context.textTheme.bodyMedium),
|
||||||
|
Text(
|
||||||
|
statusData.getDegree(widget.feels.round()),
|
||||||
|
style: context.textTheme.bodyMedium,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const Gap(30),
|
||||||
|
Text(
|
||||||
|
statusData.getDegree(
|
||||||
|
roundDegree ? widget.degree.round() : widget.degree,
|
||||||
|
),
|
||||||
|
style: context.textTheme.displayMedium?.copyWith(
|
||||||
|
fontWeight: FontWeight.w800,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const Gap(5),
|
||||||
|
Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
statusData.getDegree((widget.tempMin.round())),
|
||||||
|
style: context.textTheme.labelLarge,
|
||||||
|
),
|
||||||
|
Text(' / ', style: context.textTheme.labelLarge),
|
||||||
|
Text(
|
||||||
|
statusData.getDegree((widget.tempMax.round())),
|
||||||
|
style: context.textTheme.labelLarge,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
Image(
|
Image(
|
||||||
image: AssetImage(statusWeather.getImageNow(widget.weather,
|
image: AssetImage(
|
||||||
widget.time, widget.timeDay, widget.timeNight)),
|
statusWeather.getImageNow(
|
||||||
|
widget.weather,
|
||||||
|
widget.time,
|
||||||
|
widget.timeDay,
|
||||||
|
widget.timeNight,
|
||||||
|
),
|
||||||
|
),
|
||||||
fit: BoxFit.fill,
|
fit: BoxFit.fill,
|
||||||
height: 200,
|
height: 140,
|
||||||
),
|
|
||||||
Text(
|
|
||||||
'${roundDegree ? widget.degree.round() : widget.degree}',
|
|
||||||
style: context.textTheme.displayLarge?.copyWith(
|
|
||||||
fontSize: 90,
|
|
||||||
fontWeight: FontWeight.w800,
|
|
||||||
shadows: const [
|
|
||||||
Shadow(
|
|
||||||
blurRadius: 15,
|
|
||||||
offset: Offset(5, 5),
|
|
||||||
)
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
statusWeather.getText(widget.weather),
|
|
||||||
style: context.textTheme.titleLarge,
|
|
||||||
),
|
|
||||||
const Gap(5),
|
|
||||||
Text(
|
|
||||||
DateFormat.MMMMEEEEd(locale.languageCode).format(
|
|
||||||
DateTime.parse(widget.time),
|
|
||||||
),
|
|
||||||
style: context.textTheme.labelLarge?.copyWith(
|
|
||||||
color: Colors.grey,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
: Card(
|
);
|
||||||
margin: const EdgeInsets.only(bottom: 15),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(
|
|
||||||
top: 18, bottom: 18, left: 25, right: 15),
|
|
||||||
child: Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
DateFormat.MMMMEEEEd(locale.languageCode).format(
|
|
||||||
DateTime.parse(widget.time),
|
|
||||||
),
|
|
||||||
style: context.textTheme.labelLarge?.copyWith(
|
|
||||||
color: Colors.grey,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const Gap(5),
|
|
||||||
Text(
|
|
||||||
statusWeather.getText(widget.weather),
|
|
||||||
style: context.textTheme.titleLarge
|
|
||||||
?.copyWith(fontSize: 20),
|
|
||||||
),
|
|
||||||
Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text('feels'.tr,
|
|
||||||
style: context.textTheme.bodyMedium),
|
|
||||||
Text(' • ', style: context.textTheme.bodyMedium),
|
|
||||||
Text(statusData.getDegree(widget.feels.round()),
|
|
||||||
style: context.textTheme.bodyMedium),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
const Gap(30),
|
|
||||||
Text(
|
|
||||||
statusData.getDegree(roundDegree
|
|
||||||
? widget.degree.round()
|
|
||||||
: widget.degree),
|
|
||||||
style: context.textTheme.displayMedium?.copyWith(
|
|
||||||
fontWeight: FontWeight.w800,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const Gap(5),
|
|
||||||
Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text(statusData.getDegree((widget.tempMin.round())),
|
|
||||||
style: context.textTheme.labelLarge),
|
|
||||||
Text(' / ', style: context.textTheme.labelLarge),
|
|
||||||
Text(statusData.getDegree((widget.tempMax.round())),
|
|
||||||
style: context.textTheme.labelLarge),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Image(
|
|
||||||
image: AssetImage(statusWeather.getImageNow(widget.weather,
|
|
||||||
widget.time, widget.timeDay, widget.timeNight)),
|
|
||||||
fit: BoxFit.fill,
|
|
||||||
height: 140,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,14 +63,17 @@ class StatusData {
|
||||||
String getTimeFormat(String time) {
|
String getTimeFormat(String time) {
|
||||||
switch (settings.timeformat) {
|
switch (settings.timeformat) {
|
||||||
case '12':
|
case '12':
|
||||||
return DateFormat.jm(locale.languageCode)
|
return DateFormat.jm(
|
||||||
.format(DateTime.tryParse(time)!);
|
locale.languageCode,
|
||||||
|
).format(DateTime.tryParse(time)!);
|
||||||
case '24':
|
case '24':
|
||||||
return DateFormat.Hm(locale.languageCode)
|
return DateFormat.Hm(
|
||||||
.format(DateTime.tryParse(time)!);
|
locale.languageCode,
|
||||||
|
).format(DateTime.tryParse(time)!);
|
||||||
default:
|
default:
|
||||||
return DateFormat.Hm(locale.languageCode)
|
return DateFormat.Hm(
|
||||||
.format(DateTime.tryParse(time)!);
|
locale.languageCode,
|
||||||
|
).format(DateTime.tryParse(time)!);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,15 +4,29 @@ const assetImageRoot = 'assets/images/';
|
||||||
|
|
||||||
class StatusWeather {
|
class StatusWeather {
|
||||||
String getImageNow(
|
String getImageNow(
|
||||||
int weather, String time, String timeDay, String timeNight) {
|
int weather,
|
||||||
|
String time,
|
||||||
|
String timeDay,
|
||||||
|
String timeNight,
|
||||||
|
) {
|
||||||
final currentTime = DateTime.parse(time);
|
final currentTime = DateTime.parse(time);
|
||||||
final day = DateTime.parse(timeDay);
|
final day = DateTime.parse(timeDay);
|
||||||
final night = DateTime.parse(timeNight);
|
final night = DateTime.parse(timeNight);
|
||||||
|
|
||||||
final dayTime =
|
final dayTime = DateTime(
|
||||||
DateTime(day.year, day.month, day.day, day.hour, day.minute);
|
day.year,
|
||||||
final nightTime =
|
day.month,
|
||||||
DateTime(night.year, night.month, night.day, night.hour, night.minute);
|
day.day,
|
||||||
|
day.hour,
|
||||||
|
day.minute,
|
||||||
|
);
|
||||||
|
final nightTime = DateTime(
|
||||||
|
night.year,
|
||||||
|
night.month,
|
||||||
|
night.day,
|
||||||
|
night.hour,
|
||||||
|
night.minute,
|
||||||
|
);
|
||||||
|
|
||||||
switch (weather) {
|
switch (weather) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -112,15 +126,29 @@ class StatusWeather {
|
||||||
}
|
}
|
||||||
|
|
||||||
String getImageToday(
|
String getImageToday(
|
||||||
int weather, String time, String timeDay, String timeNight) {
|
int weather,
|
||||||
|
String time,
|
||||||
|
String timeDay,
|
||||||
|
String timeNight,
|
||||||
|
) {
|
||||||
final currentTime = DateTime.parse(time);
|
final currentTime = DateTime.parse(time);
|
||||||
final day = DateTime.parse(timeDay);
|
final day = DateTime.parse(timeDay);
|
||||||
final night = DateTime.parse(timeNight);
|
final night = DateTime.parse(timeNight);
|
||||||
|
|
||||||
final dayTime =
|
final dayTime = DateTime(
|
||||||
DateTime(day.year, day.month, day.day, day.hour, day.minute);
|
day.year,
|
||||||
final nightTime =
|
day.month,
|
||||||
DateTime(night.year, night.month, night.day, night.hour, night.minute);
|
day.day,
|
||||||
|
day.hour,
|
||||||
|
day.minute,
|
||||||
|
);
|
||||||
|
final nightTime = DateTime(
|
||||||
|
night.year,
|
||||||
|
night.month,
|
||||||
|
night.day,
|
||||||
|
night.hour,
|
||||||
|
night.minute,
|
||||||
|
);
|
||||||
|
|
||||||
switch (weather) {
|
switch (weather) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -274,15 +302,29 @@ class StatusWeather {
|
||||||
}
|
}
|
||||||
|
|
||||||
String getImageNotification(
|
String getImageNotification(
|
||||||
int weather, String time, String timeDay, String timeNight) {
|
int weather,
|
||||||
|
String time,
|
||||||
|
String timeDay,
|
||||||
|
String timeNight,
|
||||||
|
) {
|
||||||
final currentTime = DateTime.parse(time);
|
final currentTime = DateTime.parse(time);
|
||||||
final day = DateTime.parse(timeDay);
|
final day = DateTime.parse(timeDay);
|
||||||
final night = DateTime.parse(timeNight);
|
final night = DateTime.parse(timeNight);
|
||||||
|
|
||||||
final dayTime =
|
final dayTime = DateTime(
|
||||||
DateTime(day.year, day.month, day.day, day.hour, day.minute);
|
day.year,
|
||||||
final nightTime =
|
day.month,
|
||||||
DateTime(night.year, night.month, night.day, night.hour, night.minute);
|
day.day,
|
||||||
|
day.hour,
|
||||||
|
day.minute,
|
||||||
|
);
|
||||||
|
final nightTime = DateTime(
|
||||||
|
night.year,
|
||||||
|
night.month,
|
||||||
|
night.day,
|
||||||
|
night.hour,
|
||||||
|
night.minute,
|
||||||
|
);
|
||||||
|
|
||||||
switch (weather) {
|
switch (weather) {
|
||||||
case 0:
|
case 0:
|
||||||
|
|
|
@ -55,10 +55,7 @@ class _SunsetSunriseState extends State<SunsetSunrise> {
|
||||||
),
|
),
|
||||||
const Gap(5),
|
const Gap(5),
|
||||||
Flexible(
|
Flexible(
|
||||||
child: Image.asset(
|
child: Image.asset('assets/images/sunrise.png', scale: 10),
|
||||||
'assets/images/sunrise.png',
|
|
||||||
scale: 10,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -86,10 +83,7 @@ class _SunsetSunriseState extends State<SunsetSunrise> {
|
||||||
),
|
),
|
||||||
const Gap(5),
|
const Gap(5),
|
||||||
Flexible(
|
Flexible(
|
||||||
child: Image.asset(
|
child: Image.asset('assets/images/sunset.png', scale: 10),
|
||||||
'assets/images/sunset.png',
|
|
||||||
scale: 10,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -10,9 +10,17 @@ extension HexColor on Color {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Prefixes a hash sign if [leadingHashSign] is set to `true` (default is `true`).
|
/// Prefixes a hash sign if [leadingHashSign] is set to `true` (default is `true`).
|
||||||
String toHex({bool leadingHashSign = true}) => '${leadingHashSign ? '#' : ''}'
|
String toHex({bool leadingHashSign = true}) {
|
||||||
'${alpha.toRadixString(16).padLeft(2, '0')}'
|
final argb = toARGB32(); // Get 32-bit integer representation
|
||||||
'${red.toRadixString(16).padLeft(2, '0')}'
|
final a = (argb >> 24) & 0xFF;
|
||||||
'${green.toRadixString(16).padLeft(2, '0')}'
|
final r = (argb >> 16) & 0xFF;
|
||||||
'${blue.toRadixString(16).padLeft(2, '0')}';
|
final g = (argb >> 8) & 0xFF;
|
||||||
|
final b = argb & 0xFF;
|
||||||
|
|
||||||
|
return '${leadingHashSign ? '#' : ''}'
|
||||||
|
'${a.toRadixString(16).padLeft(2, '0')}'
|
||||||
|
'${r.toRadixString(16).padLeft(2, '0')}'
|
||||||
|
'${g.toRadixString(16).padLeft(2, '0')}'
|
||||||
|
'${b.toRadixString(16).padLeft(2, '0')}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,16 +15,17 @@ class NotificationShow {
|
||||||
|
|
||||||
AndroidNotificationDetails androidNotificationDetails =
|
AndroidNotificationDetails androidNotificationDetails =
|
||||||
AndroidNotificationDetails(
|
AndroidNotificationDetails(
|
||||||
'Rain',
|
'Rain',
|
||||||
'DARK NIGHT',
|
'DARK NIGHT',
|
||||||
priority: Priority.high,
|
priority: Priority.high,
|
||||||
importance: Importance.max,
|
importance: Importance.max,
|
||||||
playSound: false,
|
playSound: false,
|
||||||
enableVibration: false,
|
enableVibration: false,
|
||||||
largeIcon: FilePathAndroidBitmap(imagePath),
|
largeIcon: FilePathAndroidBitmap(imagePath),
|
||||||
|
);
|
||||||
|
NotificationDetails notificationDetails = NotificationDetails(
|
||||||
|
android: androidNotificationDetails,
|
||||||
);
|
);
|
||||||
NotificationDetails notificationDetails =
|
|
||||||
NotificationDetails(android: androidNotificationDetails);
|
|
||||||
|
|
||||||
var scheduledTime = tz.TZDateTime.from(date, tz.local);
|
var scheduledTime = tz.TZDateTime.from(date, tz.local);
|
||||||
flutterLocalNotificationsPlugin.zonedSchedule(
|
flutterLocalNotificationsPlugin.zonedSchedule(
|
||||||
|
|
|
@ -7,14 +7,15 @@ void showSnackBar({required String content, Function? onPressed}) {
|
||||||
globalKey.currentState?.showSnackBar(
|
globalKey.currentState?.showSnackBar(
|
||||||
SnackBar(
|
SnackBar(
|
||||||
content: Text(content),
|
content: Text(content),
|
||||||
action: onPressed != null
|
action:
|
||||||
? SnackBarAction(
|
onPressed != null
|
||||||
label: 'settings'.tr,
|
? SnackBarAction(
|
||||||
onPressed: () {
|
label: 'settings'.tr,
|
||||||
onPressed();
|
onPressed: () {
|
||||||
},
|
onPressed();
|
||||||
)
|
},
|
||||||
: null,
|
)
|
||||||
|
: null,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
275
lib/main.dart
275
lib/main.dart
|
@ -33,7 +33,7 @@ final ValueNotifier<Future<bool>> isOnline = ValueNotifier(
|
||||||
InternetConnection().hasInternetAccess,
|
InternetConnection().hasInternetAccess,
|
||||||
);
|
);
|
||||||
|
|
||||||
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
||||||
FlutterLocalNotificationsPlugin();
|
FlutterLocalNotificationsPlugin();
|
||||||
|
|
||||||
bool amoledTheme = false;
|
bool amoledTheme = false;
|
||||||
|
@ -47,36 +47,36 @@ String timeEnd = '21:00';
|
||||||
String widgetBackgroundColor = '';
|
String widgetBackgroundColor = '';
|
||||||
String widgetTextColor = '';
|
String widgetTextColor = '';
|
||||||
|
|
||||||
final List appLanguages = [
|
|
||||||
{'name': 'বাংলা', 'locale': const Locale('bn', 'IN')},
|
|
||||||
{'name': 'Čeština', 'locale': const Locale('cs', 'CZ')},
|
|
||||||
{'name': 'Dansk', 'locale': const Locale('da', 'DK')},
|
|
||||||
{'name': 'Deutsch', 'locale': const Locale('de', 'DE')},
|
|
||||||
{'name': 'English', 'locale': const Locale('en', 'US')},
|
|
||||||
{'name': 'Español', 'locale': const Locale('es', 'ES')},
|
|
||||||
{'name': 'Français', 'locale': const Locale('fr', 'FR')},
|
|
||||||
// {'name': 'Gaeilge', 'locale': const Locale('ga', 'IE')},
|
|
||||||
{'name': 'हिन्दी', 'locale': const Locale('hi', 'IN')},
|
|
||||||
{'name': 'Magyar', 'locale': const Locale('hu', 'HU')},
|
|
||||||
{'name': 'Italiano', 'locale': const Locale('it', 'IT')},
|
|
||||||
{'name': '한국어', 'locale': const Locale('ko', 'KR')},
|
|
||||||
{'name': 'فارسی', 'locale': const Locale('fa', 'IR')},
|
|
||||||
{'name': 'ქართული', 'locale': const Locale('ka', 'GE')},
|
|
||||||
{'name': 'Nederlands', 'locale': const Locale('nl', 'NL')},
|
|
||||||
{'name': 'Polski', 'locale': const Locale('pl', 'PL')},
|
|
||||||
{'name': 'Português (Brasil)', 'locale': const Locale('pt', 'BR')},
|
|
||||||
{'name': 'Română', 'locale': const Locale('ro', 'RO')},
|
|
||||||
{'name': 'Русский', 'locale': const Locale('ru', 'RU')},
|
|
||||||
{'name': 'Slovenčina', 'locale': const Locale('sk', 'SK')},
|
|
||||||
{'name': 'Türkçe', 'locale': const Locale('tr', 'TR')},
|
|
||||||
{'name': 'اردو', 'locale': const Locale('ur', 'PK')},
|
|
||||||
{'name': '中文(简体)', 'locale': const Locale('zh', 'CN')},
|
|
||||||
{'name': '中文(繁體)', 'locale': const Locale('zh', 'TW')},
|
|
||||||
];
|
|
||||||
|
|
||||||
const String appGroupId = 'DARK NIGHT';
|
const String appGroupId = 'DARK NIGHT';
|
||||||
const String androidWidgetName = 'OreoWidget';
|
const String androidWidgetName = 'OreoWidget';
|
||||||
|
|
||||||
|
const List<Map<String, dynamic>> appLanguages = [
|
||||||
|
{'name': 'বাংলা', 'locale': Locale('bn', 'IN')},
|
||||||
|
{'name': 'Čeština', 'locale': Locale('cs', 'CZ')},
|
||||||
|
{'name': 'Dansk', 'locale': Locale('da', 'DK')},
|
||||||
|
{'name': 'Deutsch', 'locale': Locale('de', 'DE')},
|
||||||
|
{'name': 'English', 'locale': Locale('en', 'US')},
|
||||||
|
{'name': 'Español', 'locale': Locale('es', 'ES')},
|
||||||
|
{'name': 'Français', 'locale': Locale('fr', 'FR')},
|
||||||
|
// {'name': 'Gaeilge', 'locale': Locale('ga', 'IE')},
|
||||||
|
{'name': 'हिन्दी', 'locale': Locale('hi', 'IN')},
|
||||||
|
{'name': 'Magyar', 'locale': Locale('hu', 'HU')},
|
||||||
|
{'name': 'Italiano', 'locale': Locale('it', 'IT')},
|
||||||
|
{'name': '한국어', 'locale': Locale('ko', 'KR')},
|
||||||
|
{'name': 'فارسی', 'locale': Locale('fa', 'IR')},
|
||||||
|
{'name': 'ქართული', 'locale': Locale('ka', 'GE')},
|
||||||
|
{'name': 'Nederlands', 'locale': Locale('nl', 'NL')},
|
||||||
|
{'name': 'Polski', 'locale': Locale('pl', 'PL')},
|
||||||
|
{'name': 'Português (Brasil)', 'locale': Locale('pt', 'BR')},
|
||||||
|
{'name': 'Română', 'locale': Locale('ro', 'RO')},
|
||||||
|
{'name': 'Русский', 'locale': Locale('ru', 'RU')},
|
||||||
|
{'name': 'Slovenčina', 'locale': Locale('sk', 'SK')},
|
||||||
|
{'name': 'Türkçe', 'locale': Locale('tr', 'TR')},
|
||||||
|
{'name': 'اردو', 'locale': Locale('ur', 'PK')},
|
||||||
|
{'name': '中文(简体)', 'locale': Locale('zh', 'CN')},
|
||||||
|
{'name': '中文(繁體)', 'locale': Locale('zh', 'TW')},
|
||||||
|
];
|
||||||
|
|
||||||
@pragma('vm:entry-point')
|
@pragma('vm:entry-point')
|
||||||
void callbackDispatcher() {
|
void callbackDispatcher() {
|
||||||
Workmanager().executeTask((task, inputData) {
|
Workmanager().executeTask((task, inputData) {
|
||||||
|
@ -85,59 +85,40 @@ void callbackDispatcher() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
final String timeZoneName;
|
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
Connectivity().onConnectivityChanged.listen((
|
await _initializeApp();
|
||||||
List<ConnectivityResult> result,
|
|
||||||
) {
|
|
||||||
result.contains(ConnectivityResult.none)
|
|
||||||
? isOnline.value = Future(() => false)
|
|
||||||
: isOnline.value = InternetConnection().hasInternetAccess;
|
|
||||||
});
|
|
||||||
DeviceFeature().init();
|
|
||||||
if (Platform.isAndroid) {
|
|
||||||
Workmanager().initialize(callbackDispatcher, isInDebugMode: kDebugMode);
|
|
||||||
await setOptimalDisplayMode();
|
|
||||||
}
|
|
||||||
timeZoneName = await FlutterTimezone.getLocalTimezone();
|
|
||||||
tz.initializeTimeZones();
|
|
||||||
tz.setLocalLocation(tz.getLocation(timeZoneName));
|
|
||||||
await isarInit();
|
|
||||||
const AndroidInitializationSettings initializationSettingsAndroid =
|
|
||||||
AndroidInitializationSettings('@mipmap/ic_launcher');
|
|
||||||
const DarwinInitializationSettings initializationSettingsDarwin =
|
|
||||||
DarwinInitializationSettings();
|
|
||||||
const LinuxInitializationSettings initializationSettingsLinux =
|
|
||||||
LinuxInitializationSettings(defaultActionName: 'Rain');
|
|
||||||
const InitializationSettings initializationSettings = InitializationSettings(
|
|
||||||
android: initializationSettingsAndroid,
|
|
||||||
iOS: initializationSettingsDarwin,
|
|
||||||
linux: initializationSettingsLinux,
|
|
||||||
);
|
|
||||||
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
|
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> setOptimalDisplayMode() async {
|
Future<void> _initializeApp() async {
|
||||||
final List<DisplayMode> supported = await FlutterDisplayMode.supported;
|
_setupConnectivityListener();
|
||||||
final DisplayMode active = await FlutterDisplayMode.active;
|
await _initializeTimeZone();
|
||||||
final List<DisplayMode> sameResolution =
|
await _initializeIsar();
|
||||||
supported
|
await _initializeNotifications();
|
||||||
.where(
|
if (Platform.isAndroid) {
|
||||||
(DisplayMode m) =>
|
await _setOptimalDisplayMode();
|
||||||
m.width == active.width && m.height == active.height,
|
Workmanager().initialize(callbackDispatcher, isInDebugMode: kDebugMode);
|
||||||
)
|
HomeWidget.setAppGroupId(appGroupId);
|
||||||
.toList()
|
}
|
||||||
..sort(
|
DeviceFeature().init();
|
||||||
(DisplayMode a, DisplayMode b) =>
|
|
||||||
b.refreshRate.compareTo(a.refreshRate),
|
|
||||||
);
|
|
||||||
final DisplayMode mostOptimalMode =
|
|
||||||
sameResolution.isNotEmpty ? sameResolution.first : active;
|
|
||||||
await FlutterDisplayMode.setPreferredMode(mostOptimalMode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> isarInit() async {
|
void _setupConnectivityListener() {
|
||||||
|
Connectivity().onConnectivityChanged.listen((result) {
|
||||||
|
isOnline.value =
|
||||||
|
result.contains(ConnectivityResult.none)
|
||||||
|
? Future.value(false)
|
||||||
|
: InternetConnection().hasInternetAccess;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _initializeTimeZone() async {
|
||||||
|
final timeZoneName = await FlutterTimezone.getLocalTimezone();
|
||||||
|
tz.initializeTimeZones();
|
||||||
|
tz.setLocalLocation(tz.getLocation(timeZoneName));
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _initializeIsar() async {
|
||||||
isar = await Isar.open([
|
isar = await Isar.open([
|
||||||
SettingsSchema,
|
SettingsSchema,
|
||||||
MainWeatherCacheSchema,
|
MainWeatherCacheSchema,
|
||||||
|
@ -159,6 +140,28 @@ Future<void> isarInit() async {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _initializeNotifications() async {
|
||||||
|
const initializationSettings = InitializationSettings(
|
||||||
|
android: AndroidInitializationSettings('@mipmap/ic_launcher'),
|
||||||
|
iOS: DarwinInitializationSettings(),
|
||||||
|
linux: LinuxInitializationSettings(defaultActionName: 'Rain'),
|
||||||
|
);
|
||||||
|
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _setOptimalDisplayMode() async {
|
||||||
|
final supported = await FlutterDisplayMode.supported;
|
||||||
|
final active = await FlutterDisplayMode.active;
|
||||||
|
final sameResolution =
|
||||||
|
supported
|
||||||
|
.where((m) => m.width == active.width && m.height == active.height)
|
||||||
|
.toList()
|
||||||
|
..sort((a, b) => b.refreshRate.compareTo(a.refreshRate));
|
||||||
|
final mostOptimalMode =
|
||||||
|
sameResolution.isNotEmpty ? sameResolution.first : active;
|
||||||
|
await FlutterDisplayMode.setPreferredMode(mostOptimalMode);
|
||||||
|
}
|
||||||
|
|
||||||
class MyApp extends StatefulWidget {
|
class MyApp extends StatefulWidget {
|
||||||
const MyApp({super.key});
|
const MyApp({super.key});
|
||||||
|
|
||||||
|
@ -177,30 +180,14 @@ class MyApp extends StatefulWidget {
|
||||||
}) async {
|
}) async {
|
||||||
final state = context.findAncestorStateOfType<_MyAppState>()!;
|
final state = context.findAncestorStateOfType<_MyAppState>()!;
|
||||||
|
|
||||||
if (newAmoledTheme != null) {
|
if (newAmoledTheme != null) state.changeAmoledTheme(newAmoledTheme);
|
||||||
state.changeAmoledTheme(newAmoledTheme);
|
if (newMaterialColor != null) state.changeMarerialTheme(newMaterialColor);
|
||||||
}
|
if (newRoundDegree != null) state.changeRoundDegree(newRoundDegree);
|
||||||
if (newMaterialColor != null) {
|
if (newLargeElement != null) state.changeLargeElement(newLargeElement);
|
||||||
state.changeMarerialTheme(newMaterialColor);
|
if (newLocale != null) state.changeLocale(newLocale);
|
||||||
}
|
if (newTimeRange != null) state.changeTimeRange(newTimeRange);
|
||||||
if (newRoundDegree != null) {
|
if (newTimeStart != null) state.changeTimeStart(newTimeStart);
|
||||||
state.changeRoundDegree(newRoundDegree);
|
if (newTimeEnd != null) state.changeTimeEnd(newTimeEnd);
|
||||||
}
|
|
||||||
if (newLargeElement != null) {
|
|
||||||
state.changeLargeElement(newLargeElement);
|
|
||||||
}
|
|
||||||
if (newLocale != null) {
|
|
||||||
state.changeLocale(newLocale);
|
|
||||||
}
|
|
||||||
if (newTimeRange != null) {
|
|
||||||
state.changeTimeRange(newTimeRange);
|
|
||||||
}
|
|
||||||
if (newTimeStart != null) {
|
|
||||||
state.changeTimeStart(newTimeStart);
|
|
||||||
}
|
|
||||||
if (newTimeEnd != null) {
|
|
||||||
state.changeTimeEnd(newTimeEnd);
|
|
||||||
}
|
|
||||||
if (newWidgetBackgroundColor != null) {
|
if (newWidgetBackgroundColor != null) {
|
||||||
state.changeWidgetBackgroundColor(newWidgetBackgroundColor);
|
state.changeWidgetBackgroundColor(newWidgetBackgroundColor);
|
||||||
}
|
}
|
||||||
|
@ -216,68 +203,28 @@ class MyApp extends StatefulWidget {
|
||||||
class _MyAppState extends State<MyApp> {
|
class _MyAppState extends State<MyApp> {
|
||||||
final themeController = Get.put(ThemeController());
|
final themeController = Get.put(ThemeController());
|
||||||
|
|
||||||
void changeAmoledTheme(bool newAmoledTheme) {
|
void changeAmoledTheme(bool newAmoledTheme) =>
|
||||||
setState(() {
|
setState(() => amoledTheme = newAmoledTheme);
|
||||||
amoledTheme = newAmoledTheme;
|
void changeMarerialTheme(bool newMaterialColor) =>
|
||||||
});
|
setState(() => materialColor = newMaterialColor);
|
||||||
}
|
void changeRoundDegree(bool newRoundDegree) =>
|
||||||
|
setState(() => roundDegree = newRoundDegree);
|
||||||
void changeMarerialTheme(bool newMaterialColor) {
|
void changeLargeElement(bool newLargeElement) =>
|
||||||
setState(() {
|
setState(() => largeElement = newLargeElement);
|
||||||
materialColor = newMaterialColor;
|
void changeTimeRange(int newTimeRange) =>
|
||||||
});
|
setState(() => timeRange = newTimeRange);
|
||||||
}
|
void changeTimeStart(String newTimeStart) =>
|
||||||
|
setState(() => timeStart = newTimeStart);
|
||||||
void changeRoundDegree(bool newRoundDegree) {
|
void changeTimeEnd(String newTimeEnd) => setState(() => timeEnd = newTimeEnd);
|
||||||
setState(() {
|
void changeLocale(Locale newLocale) => setState(() => locale = newLocale);
|
||||||
roundDegree = newRoundDegree;
|
void changeWidgetBackgroundColor(String newWidgetBackgroundColor) =>
|
||||||
});
|
setState(() => widgetBackgroundColor = newWidgetBackgroundColor);
|
||||||
}
|
void changeWidgetTextColor(String newWidgetTextColor) =>
|
||||||
|
setState(() => widgetTextColor = newWidgetTextColor);
|
||||||
void changeLargeElement(bool newLargeElement) {
|
|
||||||
setState(() {
|
|
||||||
largeElement = newLargeElement;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void changeTimeRange(int newTimeRange) {
|
|
||||||
setState(() {
|
|
||||||
timeRange = newTimeRange;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void changeTimeStart(String newTimeStart) {
|
|
||||||
setState(() {
|
|
||||||
timeStart = newTimeStart;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void changeTimeEnd(String newTimeEnd) {
|
|
||||||
setState(() {
|
|
||||||
timeEnd = newTimeEnd;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void changeLocale(Locale newLocale) {
|
|
||||||
setState(() {
|
|
||||||
locale = newLocale;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void changeWidgetBackgroundColor(String newWidgetBackgroundColor) {
|
|
||||||
setState(() {
|
|
||||||
widgetBackgroundColor = newWidgetBackgroundColor;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void changeWidgetTextColor(String newWidgetTextColor) {
|
|
||||||
setState(() {
|
|
||||||
widgetTextColor = newWidgetTextColor;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
super.initState();
|
||||||
amoledTheme = settings.amoledTheme;
|
amoledTheme = settings.amoledTheme;
|
||||||
materialColor = settings.materialColor;
|
materialColor = settings.materialColor;
|
||||||
roundDegree = settings.roundDegree;
|
roundDegree = settings.roundDegree;
|
||||||
|
@ -291,10 +238,6 @@ class _MyAppState extends State<MyApp> {
|
||||||
timeEnd = settings.timeEnd ?? '21:00';
|
timeEnd = settings.timeEnd ?? '21:00';
|
||||||
widgetBackgroundColor = settings.widgetBackgroundColor ?? '';
|
widgetBackgroundColor = settings.widgetBackgroundColor ?? '';
|
||||||
widgetTextColor = settings.widgetTextColor ?? '';
|
widgetTextColor = settings.widgetTextColor ?? '';
|
||||||
if (Platform.isAndroid) {
|
|
||||||
HomeWidget.setAppGroupId(appGroupId);
|
|
||||||
}
|
|
||||||
super.initState();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -379,10 +322,10 @@ class _MyAppState extends State<MyApp> {
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
home:
|
home:
|
||||||
settings.onboard
|
settings.onboard
|
||||||
? (locationCache.city == null) ||
|
? (locationCache.city == null ||
|
||||||
(locationCache.district == null) ||
|
locationCache.district == null ||
|
||||||
(locationCache.lat == null) ||
|
locationCache.lat == null ||
|
||||||
(locationCache.lon == null)
|
locationCache.lon == null)
|
||||||
? const SelectGeolocation(isStart: true)
|
? const SelectGeolocation(isStart: true)
|
||||||
: const HomePage()
|
: const HomePage()
|
||||||
: const OnBording(),
|
: const OnBording(),
|
||||||
|
|
|
@ -20,15 +20,19 @@ ColorScheme colorSchemeDark = ColorScheme.fromSeed(
|
||||||
);
|
);
|
||||||
|
|
||||||
ThemeData lightTheme(
|
ThemeData lightTheme(
|
||||||
Color? color, ColorScheme? colorScheme, bool edgeToEdgeAvailable) {
|
Color? color,
|
||||||
|
ColorScheme? colorScheme,
|
||||||
|
bool edgeToEdgeAvailable,
|
||||||
|
) {
|
||||||
return baseLigth.copyWith(
|
return baseLigth.copyWith(
|
||||||
brightness: Brightness.light,
|
brightness: Brightness.light,
|
||||||
colorScheme: colorScheme
|
colorScheme:
|
||||||
?.copyWith(
|
colorScheme
|
||||||
brightness: Brightness.light,
|
?.copyWith(
|
||||||
surface: baseLigth.colorScheme.surface,
|
brightness: Brightness.light,
|
||||||
)
|
surface: baseLigth.colorScheme.surface,
|
||||||
.harmonized(),
|
)
|
||||||
|
.harmonized(),
|
||||||
textTheme: GoogleFonts.ubuntuTextTheme(baseLigth.textTheme),
|
textTheme: GoogleFonts.ubuntuTextTheme(baseLigth.textTheme),
|
||||||
appBarTheme: AppBarTheme(
|
appBarTheme: AppBarTheme(
|
||||||
backgroundColor: color,
|
backgroundColor: color,
|
||||||
|
@ -54,9 +58,7 @@ ThemeData lightTheme(
|
||||||
color: color,
|
color: color,
|
||||||
surfaceTintColor:
|
surfaceTintColor:
|
||||||
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
|
||||||
borderRadius: BorderRadius.circular(20),
|
|
||||||
),
|
|
||||||
shadowColor: Colors.transparent,
|
shadowColor: Colors.transparent,
|
||||||
),
|
),
|
||||||
bottomSheetTheme: baseLigth.bottomSheetTheme.copyWith(
|
bottomSheetTheme: baseLigth.bottomSheetTheme.copyWith(
|
||||||
|
@ -73,11 +75,9 @@ ThemeData lightTheme(
|
||||||
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
||||||
),
|
),
|
||||||
inputDecorationTheme: baseLigth.inputDecorationTheme.copyWith(
|
inputDecorationTheme: baseLigth.inputDecorationTheme.copyWith(
|
||||||
labelStyle: WidgetStateTextStyle.resolveWith(
|
labelStyle: WidgetStateTextStyle.resolveWith((Set<WidgetState> states) {
|
||||||
(Set<WidgetState> states) {
|
return const TextStyle(fontSize: 14);
|
||||||
return const TextStyle(fontSize: 14);
|
}),
|
||||||
},
|
|
||||||
),
|
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
focusedBorder: InputBorder.none,
|
focusedBorder: InputBorder.none,
|
||||||
enabledBorder: InputBorder.none,
|
enabledBorder: InputBorder.none,
|
||||||
|
@ -87,15 +87,19 @@ ThemeData lightTheme(
|
||||||
}
|
}
|
||||||
|
|
||||||
ThemeData darkTheme(
|
ThemeData darkTheme(
|
||||||
Color? color, ColorScheme? colorScheme, bool edgeToEdgeAvailable) {
|
Color? color,
|
||||||
|
ColorScheme? colorScheme,
|
||||||
|
bool edgeToEdgeAvailable,
|
||||||
|
) {
|
||||||
return baseDark.copyWith(
|
return baseDark.copyWith(
|
||||||
brightness: Brightness.dark,
|
brightness: Brightness.dark,
|
||||||
colorScheme: colorScheme
|
colorScheme:
|
||||||
?.copyWith(
|
colorScheme
|
||||||
brightness: Brightness.dark,
|
?.copyWith(
|
||||||
surface: baseDark.colorScheme.surface,
|
brightness: Brightness.dark,
|
||||||
)
|
surface: baseDark.colorScheme.surface,
|
||||||
.harmonized(),
|
)
|
||||||
|
.harmonized(),
|
||||||
textTheme: GoogleFonts.ubuntuTextTheme(baseDark.textTheme),
|
textTheme: GoogleFonts.ubuntuTextTheme(baseDark.textTheme),
|
||||||
appBarTheme: AppBarTheme(
|
appBarTheme: AppBarTheme(
|
||||||
backgroundColor: color,
|
backgroundColor: color,
|
||||||
|
@ -121,9 +125,7 @@ ThemeData darkTheme(
|
||||||
color: color,
|
color: color,
|
||||||
surfaceTintColor:
|
surfaceTintColor:
|
||||||
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
|
||||||
borderRadius: BorderRadius.circular(20),
|
|
||||||
),
|
|
||||||
shadowColor: Colors.transparent,
|
shadowColor: Colors.transparent,
|
||||||
),
|
),
|
||||||
bottomSheetTheme: baseDark.bottomSheetTheme.copyWith(
|
bottomSheetTheme: baseDark.bottomSheetTheme.copyWith(
|
||||||
|
@ -140,11 +142,9 @@ ThemeData darkTheme(
|
||||||
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
color == oledColor ? Colors.transparent : colorScheme?.surfaceTint,
|
||||||
),
|
),
|
||||||
inputDecorationTheme: baseDark.inputDecorationTheme.copyWith(
|
inputDecorationTheme: baseDark.inputDecorationTheme.copyWith(
|
||||||
labelStyle: WidgetStateTextStyle.resolveWith(
|
labelStyle: WidgetStateTextStyle.resolveWith((Set<WidgetState> states) {
|
||||||
(Set<WidgetState> states) {
|
return const TextStyle(fontSize: 14);
|
||||||
return const TextStyle(fontSize: 14);
|
}),
|
||||||
},
|
|
||||||
),
|
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
focusedBorder: InputBorder.none,
|
focusedBorder: InputBorder.none,
|
||||||
enabledBorder: InputBorder.none,
|
enabledBorder: InputBorder.none,
|
||||||
|
|
|
@ -4,9 +4,10 @@ import 'package:rain/app/data/db.dart';
|
||||||
import 'package:rain/main.dart';
|
import 'package:rain/main.dart';
|
||||||
|
|
||||||
class ThemeController extends GetxController {
|
class ThemeController extends GetxController {
|
||||||
ThemeMode get theme => settings.theme == 'system'
|
ThemeMode get theme =>
|
||||||
? ThemeMode.system
|
settings.theme == 'system'
|
||||||
: settings.theme == 'dark'
|
? ThemeMode.system
|
||||||
|
: settings.theme == 'dark'
|
||||||
? ThemeMode.dark
|
? ThemeMode.dark
|
||||||
: ThemeMode.light;
|
: ThemeMode.light;
|
||||||
|
|
||||||
|
|
|
@ -1,141 +1,141 @@
|
||||||
class BnIn {
|
class BnIn {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'শুরু করুন',
|
'start': 'শুরু করুন',
|
||||||
'description':
|
'description':
|
||||||
'প্রতি ঘণ্টায়, দিনে এবং সপ্তাহের জন্য প্রতিষ্ঠানের জন্য সক্রিয় পূর্বাভাস সহ আবহাওয়া অ্যাপ্লিকেশন।',
|
'প্রতি ঘণ্টায়, দিনে এবং সপ্তাহের জন্য প্রতিষ্ঠানের জন্য সক্রিয় পূর্বাভাস সহ আবহাওয়া অ্যাপ্লিকেশন।',
|
||||||
'name': 'আবহাওয়া',
|
'name': 'আবহাওয়া',
|
||||||
'name2': 'সুবিধাজনক ডিজাইন',
|
'name2': 'সুবিধাজনক ডিজাইন',
|
||||||
'name3': 'আমাদের সাথে যোগাযোগ করুন',
|
'name3': 'আমাদের সাথে যোগাযোগ করুন',
|
||||||
'description2':
|
'description2':
|
||||||
'সমস্ত নেভিগেশনটি এমনভাবে তৈরি করা হয়েছে যাতে আপনি অ্যাপ্লিকেশনে সর্বোত্তম সুবিধায় এবং দ্রুত ইন্টারঅ্যাক্ট করতে পারেন।',
|
'সমস্ত নেভিগেশনটি এমনভাবে তৈরি করা হয়েছে যাতে আপনি অ্যাপ্লিকেশনে সর্বোত্তম সুবিধায় এবং দ্রুত ইন্টারঅ্যাক্ট করতে পারেন।',
|
||||||
'description3':
|
'description3':
|
||||||
'আপনার যদি কোনও সমস্যা হয়, অনুগ্রহ করে ইমেল বা অ্যাপ্লিকেশন পর্যালোচনার মাধ্যমে আমাদের সাথে যোগাযোগ করুন।',
|
'আপনার যদি কোনও সমস্যা হয়, অনুগ্রহ করে ইমেল বা অ্যাপ্লিকেশন পর্যালোচনার মাধ্যমে আমাদের সাথে যোগাযোগ করুন।',
|
||||||
'next': 'পরবর্তী',
|
'next': 'পরবর্তী',
|
||||||
'search': 'অনুসন্ধান...',
|
'search': 'অনুসন্ধান...',
|
||||||
'loading': 'লোড হচ্ছে...',
|
'loading': 'লোড হচ্ছে...',
|
||||||
'searchCity': 'আপনার শহর খুঁজুন',
|
'searchCity': 'আপনার শহর খুঁজুন',
|
||||||
'humidity': 'আর্দ্ধমন্দ',
|
'humidity': 'আর্দ্ধমন্দ',
|
||||||
'wind': 'বায়ু',
|
'wind': 'বায়ু',
|
||||||
'visibility': 'দৃশ্যতা',
|
'visibility': 'দৃশ্যতা',
|
||||||
'feels': 'অনুভব',
|
'feels': 'অনুভব',
|
||||||
'evaporation': 'অবপাত ও প্রবাহ',
|
'evaporation': 'অবপাত ও প্রবাহ',
|
||||||
'precipitation': 'বৃষ্টিপাত',
|
'precipitation': 'বৃষ্টিপাত',
|
||||||
'direction': 'দিশা',
|
'direction': 'দিশা',
|
||||||
'pressure': 'চাপ',
|
'pressure': 'চাপ',
|
||||||
'rain': 'বৃষ্টি',
|
'rain': 'বৃষ্টি',
|
||||||
'clear_sky': 'পরিষ্কার আকাশ',
|
'clear_sky': 'পরিষ্কার আকাশ',
|
||||||
'cloudy': 'মেঘলা',
|
'cloudy': 'মেঘলা',
|
||||||
'overcast': 'মেঘাচ্ছন্ন',
|
'overcast': 'মেঘাচ্ছন্ন',
|
||||||
'fog': 'কুয়াশা',
|
'fog': 'কুয়াশা',
|
||||||
'drizzle': 'বৃষ্টি বৃষ্টি',
|
'drizzle': 'বৃষ্টি বৃষ্টি',
|
||||||
'freezing_drizzle': 'শীতল বৃষ্টি',
|
'freezing_drizzle': 'শীতল বৃষ্টি',
|
||||||
'freezing_rain': 'শীতল বৃষ্টি',
|
'freezing_rain': 'শীতল বৃষ্টি',
|
||||||
'rain_showers': 'বৃষ্টির বৃষ্টি',
|
'rain_showers': 'বৃষ্টির বৃষ্টি',
|
||||||
'snow': 'তুষার',
|
'snow': 'তুষার',
|
||||||
'thunderstorm': 'বজ্রপাত',
|
'thunderstorm': 'বজ্রপাত',
|
||||||
'kph': 'কিমি/ঘণ্টা',
|
'kph': 'কিমি/ঘণ্টা',
|
||||||
'mph': 'মাইল/ঘণ্টা',
|
'mph': 'মাইল/ঘণ্টা',
|
||||||
'm/s': 'মি/সে',
|
'm/s': 'মি/সে',
|
||||||
'mmHg': 'মিমি Hg',
|
'mmHg': 'মিমি Hg',
|
||||||
'mi': 'মাইল',
|
'mi': 'মাইল',
|
||||||
'km': 'কিমি',
|
'km': 'কিমি',
|
||||||
'inch': 'ইঞ্চ',
|
'inch': 'ইঞ্চ',
|
||||||
'mm': 'মিমি',
|
'mm': 'মিমি',
|
||||||
'hPa': 'হেক্টোপাস্কল',
|
'hPa': 'হেক্টোপাস্কল',
|
||||||
'settings': 'সেটিংস',
|
'settings': 'সেটিংস',
|
||||||
'no_inter': 'ইন্টারনেট নেই',
|
'no_inter': 'ইন্টারনেট নেই',
|
||||||
'on_inter': 'মেটিয়োরোলজিক তথ্য পেতে ইন্টারনেট চালু করুন।',
|
'on_inter': 'মেটিয়োরোলজিক তথ্য পেতে ইন্টারনেট চালু করুন।',
|
||||||
'location': 'অবস্থান',
|
'location': 'অবস্থান',
|
||||||
'no_location':
|
'no_location':
|
||||||
'বর্তমান অবস্থানের জন্য আবহাওয়া ডেটা পেতে অবস্থান সেবা সক্রিয় করুন।',
|
'বর্তমান অবস্থানের জন্য আবহাওয়া ডেটা পেতে অবস্থান সেবা সক্রিয় করুন।',
|
||||||
'theme': 'থিম',
|
'theme': 'থিম',
|
||||||
'low': 'নিম্ন',
|
'low': 'নিম্ন',
|
||||||
'high': 'উচ্চ',
|
'high': 'উচ্চ',
|
||||||
'normal': 'সাধারণ',
|
'normal': 'সাধারণ',
|
||||||
'lat': 'অক্ষাংশ',
|
'lat': 'অক্ষাংশ',
|
||||||
'lon': 'দ্রাঘিমাংশ',
|
'lon': 'দ্রাঘিমাংশ',
|
||||||
'create': 'তৈরি করুন',
|
'create': 'তৈরি করুন',
|
||||||
'city': 'শহর',
|
'city': 'শহর',
|
||||||
'district': 'জেলা',
|
'district': 'জেলা',
|
||||||
'noWeatherCard': 'একটি শহর যোগ করুন',
|
'noWeatherCard': 'একটি শহর যোগ করুন',
|
||||||
'deletedCardWeather': 'একটি শহর মুছে ফেলা হচ্ছে',
|
'deletedCardWeather': 'একটি শহর মুছে ফেলা হচ্ছে',
|
||||||
'deletedCardWeatherQuery': 'আপনি কি নিশ্চিত যে আপনি শহরটি মুছতে চান?',
|
'deletedCardWeatherQuery': 'আপনি কি নিশ্চিত যে আপনি শহরটি মুছতে চান?',
|
||||||
'delete': 'মুছে ফেলুন',
|
'delete': 'মুছে ফেলুন',
|
||||||
'cancel': 'বাতিল করুন',
|
'cancel': 'বাতিল করুন',
|
||||||
'time': 'শহরে সময়',
|
'time': 'শহরে সময়',
|
||||||
'validateName': 'দয়া করে নাম লিখুন',
|
'validateName': 'দয়া করে নাম লিখুন',
|
||||||
'measurements': 'মাপনের সিস্টেম',
|
'measurements': 'মাপনের সিস্টেম',
|
||||||
'degrees': 'ডিগ্রি',
|
'degrees': 'ডিগ্রি',
|
||||||
'celsius': 'সেলসিয়াস',
|
'celsius': 'সেলসিয়াস',
|
||||||
'fahrenheit': 'ফারেনহাইট',
|
'fahrenheit': 'ফারেনহাইট',
|
||||||
'imperial': 'ইমপেরিয়াল',
|
'imperial': 'ইমপেরিয়াল',
|
||||||
'metric': 'মেট্রিক',
|
'metric': 'মেট্রিক',
|
||||||
'validateValue': 'দয়া করে একটি মান লিখুন',
|
'validateValue': 'দয়া করে একটি মান লিখুন',
|
||||||
'validateNumber': 'দয়া করে একটি বৈধ সংখ্যা লিখুন',
|
'validateNumber': 'দয়া করে একটি বৈধ সংখ্যা লিখুন',
|
||||||
'validate90': 'মান -৯০ থেকে ৯০ মধ্যে হতে হবে',
|
'validate90': 'মান -৯০ থেকে ৯০ মধ্যে হতে হবে',
|
||||||
'validate180': 'মান -১৮০ থেকে ১৮০ মধ্যে হতে হবে',
|
'validate180': 'মান -১৮০ থেকে ১৮০ মধ্যে হতে হবে',
|
||||||
'notifications': 'বিজ্ঞপ্তি',
|
'notifications': 'বিজ্ঞপ্তি',
|
||||||
'sunrise': 'সূর্যোদয়',
|
'sunrise': 'সূর্যোদয়',
|
||||||
'sunset': 'সূর্যাস্ত',
|
'sunset': 'সূর্যাস্ত',
|
||||||
'timeformat': 'সময় বিন্যাস',
|
'timeformat': 'সময় বিন্যাস',
|
||||||
'12': '১২-ঘণ্টা',
|
'12': '১২-ঘণ্টা',
|
||||||
'24': '২৪-ঘণ্টা',
|
'24': '২৪-ঘণ্টা',
|
||||||
'cloudcover': 'মেঘপর্দা',
|
'cloudcover': 'মেঘপর্দা',
|
||||||
'uvIndex': 'আল্ট্রাভায়োলেট-সূচী',
|
'uvIndex': 'আল্ট্রাভায়োলেট-সূচী',
|
||||||
'materialColor': 'গতিবিধির রঙ',
|
'materialColor': 'গতিবিধির রঙ',
|
||||||
'uvLow': 'নিম্ন',
|
'uvLow': 'নিম্ন',
|
||||||
'uvAverage': 'মধ্যম',
|
'uvAverage': 'মধ্যম',
|
||||||
'uvHigh': 'উচ্চ',
|
'uvHigh': 'উচ্চ',
|
||||||
'uvVeryHigh': 'অত্যন্ত উচ্চ',
|
'uvVeryHigh': 'অত্যন্ত উচ্চ',
|
||||||
'uvExtreme': 'একাধিক',
|
'uvExtreme': 'একাধিক',
|
||||||
'weatherMore': '১২-দিনের আবহাওয়া পূর্বানুমান',
|
'weatherMore': '১২-দিনের আবহাওয়া পূর্বানুমান',
|
||||||
'windgusts': 'ঝংকার',
|
'windgusts': 'ঝংকার',
|
||||||
'north': 'উত্তর',
|
'north': 'উত্তর',
|
||||||
'northeast': 'উত্তরপূর্ব',
|
'northeast': 'উত্তরপূর্ব',
|
||||||
'east': 'পূর্ব',
|
'east': 'পূর্ব',
|
||||||
'southeast': 'দক্ষিণপূর্ব',
|
'southeast': 'দক্ষিণপূর্ব',
|
||||||
'south': 'দক্ষিণ',
|
'south': 'দক্ষিণ',
|
||||||
'southwest': 'দক্ষিণপশ্চিম',
|
'southwest': 'দক্ষিণপশ্চিম',
|
||||||
'west': 'পশ্চিম',
|
'west': 'পশ্চিম',
|
||||||
'northwest': 'উত্তরপশ্চিম',
|
'northwest': 'উত্তরপশ্চিম',
|
||||||
'project': 'প্রকল্প',
|
'project': 'প্রকল্প',
|
||||||
'version': 'অ্যাপ্লিকেশন সংস্করণ',
|
'version': 'অ্যাপ্লিকেশন সংস্করণ',
|
||||||
'precipitationProbability': 'বৃষ্টিপাতের সম্ভাবনা',
|
'precipitationProbability': 'বৃষ্টিপাতের সম্ভাবনা',
|
||||||
'apparentTemperatureMin':
|
'apparentTemperatureMin':
|
||||||
'ন্যায্য ন্যায্য তাপমাত্রা ন্যায্য ন্যায্য ন্যায্য ন্যায্য ন্যায্য ন্যায্য ন্যায্য',
|
'ন্যায্য ন্যায্য তাপমাত্রা ন্যায্য ন্যায্য ন্যায্য ন্যায্য ন্যায্য ন্যায্য ন্যায্য',
|
||||||
'apparentTemperatureMax': 'সর্বাধিক ন্যায্য তাপমাত্রা',
|
'apparentTemperatureMax': 'সর্বাধিক ন্যায্য তাপমাত্রা',
|
||||||
'amoledTheme': 'এমোলেড-থিম',
|
'amoledTheme': 'এমোলেড-থিম',
|
||||||
'appearance': 'উপস্থিতি',
|
'appearance': 'উপস্থিতি',
|
||||||
'functions': 'কার্য',
|
'functions': 'কার্য',
|
||||||
'data': 'ডেটা',
|
'data': 'ডেটা',
|
||||||
'language': 'ভাষা',
|
'language': 'ভাষা',
|
||||||
'timeRange': 'সময় পরিস্থিতি (ঘণ্টায়)',
|
'timeRange': 'সময় পরিস্থিতি (ঘণ্টায়)',
|
||||||
'timeStart': 'শুরুর সময়',
|
'timeStart': 'শুরুর সময়',
|
||||||
'timeEnd': 'শেষ সময়',
|
'timeEnd': 'শেষ সময়',
|
||||||
'support': 'সাহায্য',
|
'support': 'সাহায্য',
|
||||||
'system': 'সিস্টেম',
|
'system': 'সিস্টেম',
|
||||||
'dark': 'ডার্ক',
|
'dark': 'ডার্ক',
|
||||||
'light': 'আলো',
|
'light': 'আলো',
|
||||||
'license': 'লাইসেন্স',
|
'license': 'লাইসেন্স',
|
||||||
'widget': 'উইজেট',
|
'widget': 'উইজেট',
|
||||||
'widgetBackground': 'উইজেট পেশা',
|
'widgetBackground': 'উইজেট পেশা',
|
||||||
'widgetText': 'উইজেট টেক্সট',
|
'widgetText': 'উইজেট টেক্সট',
|
||||||
'dewpoint': 'তুষার বিন্দু',
|
'dewpoint': 'তুষার বিন্দু',
|
||||||
'shortwaveRadiation': 'সংক্ষেপণ তরঙ্গ প্রকৃতি',
|
'shortwaveRadiation': 'সংক্ষেপণ তরঙ্গ প্রকৃতি',
|
||||||
'W/m2': 'ডব্লিউ/মিটার বর্গ',
|
'W/m2': 'ডব্লিউ/মিটার বর্গ',
|
||||||
'roundDegree': 'ডিগ্রি রাউন্ড করুন',
|
'roundDegree': 'ডিগ্রি রাউন্ড করুন',
|
||||||
'settings_full': 'সেটিংস',
|
'settings_full': 'সেটিংস',
|
||||||
'cities': 'শহর',
|
'cities': 'শহর',
|
||||||
'groups': 'আমাদের দলগুলি',
|
'groups': 'আমাদের দলগুলি',
|
||||||
'openMeteo': 'Open-Meteo থেকে ডেটা (CC-BY 4.0)',
|
'openMeteo': 'Open-Meteo থেকে ডেটা (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'ঘণ্টায় আবহাওয়ার পরিবর্তনশীল',
|
'hourlyVariables': 'ঘণ্টায় আবহাওয়ার পরিবর্তনশীল',
|
||||||
'dailyVariables': 'দৈনিক আবহাওয়ার পরিবর্তনশীল',
|
'dailyVariables': 'দৈনিক আবহাওয়ার পরিবর্তনশীল',
|
||||||
'largeElement': 'বড় আবহাওয়া ডিসপ্লে',
|
'largeElement': 'বড় আবহাওয়া ডিসপ্লে',
|
||||||
'map': 'মানচিত্র',
|
'map': 'মানচিত্র',
|
||||||
'clearCacheStore': 'ক্যাশ পরিষ্কার করুন',
|
'clearCacheStore': 'ক্যাশ পরিষ্কার করুন',
|
||||||
'deletedCacheStore': 'ক্যাশ পরিষ্কার করা হচ্ছে',
|
'deletedCacheStore': 'ক্যাশ পরিষ্কার করা হচ্ছে',
|
||||||
'deletedCacheStoreQuery': 'আপনি কি সত্যিই ক্যাশ পরিষ্কার করতে চান?',
|
'deletedCacheStoreQuery': 'আপনি কি সত্যিই ক্যাশ পরিষ্কার করতে চান?',
|
||||||
'addWidget': 'উইজেট যোগ করুন',
|
'addWidget': 'উইজেট যোগ করুন',
|
||||||
'hideMap': 'মানচিত্র লুকান',
|
'hideMap': 'মানচিত্র লুকান',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,141 +1,141 @@
|
||||||
class CsCz {
|
class CsCz {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Začít',
|
'start': 'Začít',
|
||||||
'description':
|
'description':
|
||||||
'Aplikace počasí s aktuálním předpovědí na každou hodinu, den a týden pro libovolné místo.',
|
'Aplikace počasí s aktuálním předpovědí na každou hodinu, den a týden pro libovolné místo.',
|
||||||
'name': 'Počasí',
|
'name': 'Počasí',
|
||||||
'name2': 'Pohodlný design',
|
'name2': 'Pohodlný design',
|
||||||
'name3': 'Kontaktujte nás',
|
'name3': 'Kontaktujte nás',
|
||||||
'description2':
|
'description2':
|
||||||
'Celá navigace je navržena tak, aby bylo možné s aplikací co nejpohodlněji a nejrychleji interagovat.',
|
'Celá navigace je navržena tak, aby bylo možné s aplikací co nejpohodlněji a nejrychleji interagovat.',
|
||||||
'description3':
|
'description3':
|
||||||
'Pokud narazíte na nějaké potíže, kontaktujte nás prosím e-mailem nebo v recenzích aplikace.',
|
'Pokud narazíte na nějaké potíže, kontaktujte nás prosím e-mailem nebo v recenzích aplikace.',
|
||||||
'next': 'Další',
|
'next': 'Další',
|
||||||
'search': 'Hledat...',
|
'search': 'Hledat...',
|
||||||
'loading': 'Načítá se...',
|
'loading': 'Načítá se...',
|
||||||
'searchCity': 'Najděte své místo',
|
'searchCity': 'Najděte své místo',
|
||||||
'humidity': 'Vlhkost',
|
'humidity': 'Vlhkost',
|
||||||
'wind': 'Vítr',
|
'wind': 'Vítr',
|
||||||
'visibility': 'Viditelnost',
|
'visibility': 'Viditelnost',
|
||||||
'feels': 'Pocitová teplota',
|
'feels': 'Pocitová teplota',
|
||||||
'evaporation': 'Evapotranspirace',
|
'evaporation': 'Evapotranspirace',
|
||||||
'precipitation': 'Srážky',
|
'precipitation': 'Srážky',
|
||||||
'direction': 'Směr',
|
'direction': 'Směr',
|
||||||
'pressure': 'Tlak',
|
'pressure': 'Tlak',
|
||||||
'rain': 'Déšť',
|
'rain': 'Déšť',
|
||||||
'clear_sky': 'Jasno',
|
'clear_sky': 'Jasno',
|
||||||
'cloudy': 'Oblačno',
|
'cloudy': 'Oblačno',
|
||||||
'overcast': 'Zataženo',
|
'overcast': 'Zataženo',
|
||||||
'fog': 'Mlha',
|
'fog': 'Mlha',
|
||||||
'drizzle': 'Mrholení',
|
'drizzle': 'Mrholení',
|
||||||
'drizzling_rain': 'Mrznúce mrholení',
|
'drizzling_rain': 'Mrznúce mrholení',
|
||||||
'freezing_rain': 'Mrazivý déšť',
|
'freezing_rain': 'Mrazivý déšť',
|
||||||
'heavy_rains': 'Přeháňky',
|
'heavy_rains': 'Přeháňky',
|
||||||
'snow': 'Sníh',
|
'snow': 'Sníh',
|
||||||
'thunderstorm': 'Bouřka',
|
'thunderstorm': 'Bouřka',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Nast.',
|
'settings': 'Nast.',
|
||||||
'no_inter': 'Žádný internet',
|
'no_inter': 'Žádný internet',
|
||||||
'on_inter': 'Připojte se k internetu a získejte meteorologické údaje.',
|
'on_inter': 'Připojte se k internetu a získejte meteorologické údaje.',
|
||||||
'location': 'Poloha',
|
'location': 'Poloha',
|
||||||
'no_location':
|
'no_location':
|
||||||
'Chcete-li získat údaje o počasí pro aktuální polohu, povolte službu určování polohy.',
|
'Chcete-li získat údaje o počasí pro aktuální polohu, povolte službu určování polohy.',
|
||||||
'theme': 'Téma',
|
'theme': 'Téma',
|
||||||
'low': 'Nízký',
|
'low': 'Nízký',
|
||||||
'high': 'Vysoký',
|
'high': 'Vysoký',
|
||||||
'normal': 'Normální',
|
'normal': 'Normální',
|
||||||
'lat': 'Zeměpisná šířka',
|
'lat': 'Zeměpisná šířka',
|
||||||
'lon': 'Zemepisná délka',
|
'lon': 'Zemepisná délka',
|
||||||
'create': 'Vytvořit',
|
'create': 'Vytvořit',
|
||||||
'city': 'Místo',
|
'city': 'Místo',
|
||||||
'district': 'Okres',
|
'district': 'Okres',
|
||||||
'noWeatherCard': 'Přidat město',
|
'noWeatherCard': 'Přidat město',
|
||||||
'deletedCardWeather': 'Vymazat město',
|
'deletedCardWeather': 'Vymazat město',
|
||||||
'deletedCardWeatherQuery': 'Opravdu chcete odstranit město?',
|
'deletedCardWeatherQuery': 'Opravdu chcete odstranit město?',
|
||||||
'delete': 'Odstranit',
|
'delete': 'Odstranit',
|
||||||
'cancel': 'Zrušit',
|
'cancel': 'Zrušit',
|
||||||
'time': 'Čas ve městě',
|
'time': 'Čas ve městě',
|
||||||
'validateName': 'Prosím zadejte název',
|
'validateName': 'Prosím zadejte název',
|
||||||
'measurements': 'Jednotky měření',
|
'measurements': 'Jednotky měření',
|
||||||
'degrees': 'Stupně',
|
'degrees': 'Stupně',
|
||||||
'celsius': 'Celzius',
|
'celsius': 'Celzius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'Imperiální',
|
'imperial': 'Imperiální',
|
||||||
'metric': 'Metrické',
|
'metric': 'Metrické',
|
||||||
'validateValue': 'Zadejte hodnotu',
|
'validateValue': 'Zadejte hodnotu',
|
||||||
'validateNumber': 'Zadejte platné číslo',
|
'validateNumber': 'Zadejte platné číslo',
|
||||||
'validate90': 'Hodnota musí být mezi -90 a 90',
|
'validate90': 'Hodnota musí být mezi -90 a 90',
|
||||||
'validate180': 'Hodnota musí být mezi -180 a 180',
|
'validate180': 'Hodnota musí být mezi -180 a 180',
|
||||||
'notifications': 'Notifikace',
|
'notifications': 'Notifikace',
|
||||||
'sunrise': 'Východ slunce',
|
'sunrise': 'Východ slunce',
|
||||||
'sunset': 'Západ slunce',
|
'sunset': 'Západ slunce',
|
||||||
'timeformat': 'Formát času',
|
'timeformat': 'Formát času',
|
||||||
'12': '12-hodinový',
|
'12': '12-hodinový',
|
||||||
'24': '24-hodinový',
|
'24': '24-hodinový',
|
||||||
'cloudcover': 'Oblačnost',
|
'cloudcover': 'Oblačnost',
|
||||||
'uvIndex': 'UV-index',
|
'uvIndex': 'UV-index',
|
||||||
'materialColor': 'Dynamické Barvy',
|
'materialColor': 'Dynamické Barvy',
|
||||||
'uvLow': 'Nízký',
|
'uvLow': 'Nízký',
|
||||||
'uvAverage': 'Mírný',
|
'uvAverage': 'Mírný',
|
||||||
'uvHigh': 'Vysoký',
|
'uvHigh': 'Vysoký',
|
||||||
'uvVeryHigh': 'Velmi vysoký',
|
'uvVeryHigh': 'Velmi vysoký',
|
||||||
'uvExtreme': 'Extrémní',
|
'uvExtreme': 'Extrémní',
|
||||||
'weatherMore': 'Předpověď počasí na 12 dní',
|
'weatherMore': 'Předpověď počasí na 12 dní',
|
||||||
'windgusts': 'Nárazy větru',
|
'windgusts': 'Nárazy větru',
|
||||||
'north': 'Sever',
|
'north': 'Sever',
|
||||||
'northeast': 'Severo-Východ',
|
'northeast': 'Severo-Východ',
|
||||||
'east': 'Východ',
|
'east': 'Východ',
|
||||||
'southeast': 'Juhovýchod',
|
'southeast': 'Juhovýchod',
|
||||||
'south': 'Juž',
|
'south': 'Juž',
|
||||||
'southwest': 'Juhozápad',
|
'southwest': 'Juhozápad',
|
||||||
'west': 'Západ',
|
'west': 'Západ',
|
||||||
'northwest': 'Severo-Západ',
|
'northwest': 'Severo-Západ',
|
||||||
'project': 'Projekt na',
|
'project': 'Projekt na',
|
||||||
'version': 'Verzia aplikace',
|
'version': 'Verzia aplikace',
|
||||||
'precipitationProbability': 'Pravděpodobnost srážek',
|
'precipitationProbability': 'Pravděpodobnost srážek',
|
||||||
'apparentTemperatureMin': 'Minimální pocitová teplota',
|
'apparentTemperatureMin': 'Minimální pocitová teplota',
|
||||||
'apparentTemperatureMax': 'Maximální pocitová teplota',
|
'apparentTemperatureMax': 'Maximální pocitová teplota',
|
||||||
'amoledTheme': 'AMOLED-téma',
|
'amoledTheme': 'AMOLED-téma',
|
||||||
'appearance': 'Vzhled',
|
'appearance': 'Vzhled',
|
||||||
'functions': 'Funkce',
|
'functions': 'Funkce',
|
||||||
'data': 'Data',
|
'data': 'Data',
|
||||||
'language': 'Jazyk',
|
'language': 'Jazyk',
|
||||||
'timeRange': 'Frekvence (v hodinách)',
|
'timeRange': 'Frekvence (v hodinách)',
|
||||||
'timeStart': 'Čas začátku',
|
'timeStart': 'Čas začátku',
|
||||||
'timeEnd': 'Čas ukončení',
|
'timeEnd': 'Čas ukončení',
|
||||||
'support': 'Podpora',
|
'support': 'Podpora',
|
||||||
'system': 'Systém',
|
'system': 'Systém',
|
||||||
'dark': 'Tmavá',
|
'dark': 'Tmavá',
|
||||||
'light': 'Světlá',
|
'light': 'Světlá',
|
||||||
'license': 'Licence',
|
'license': 'Licence',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Pozadí widgetu',
|
'widgetBackground': 'Pozadí widgetu',
|
||||||
'widgetText': 'Text widgetu',
|
'widgetText': 'Text widgetu',
|
||||||
'dewpoint': 'Rosný bod',
|
'dewpoint': 'Rosný bod',
|
||||||
'shortwaveRadiation': 'Krátká vlnová radiace',
|
'shortwaveRadiation': 'Krátká vlnová radiace',
|
||||||
'roundDegree': 'Zaokrouhlit stupně',
|
'roundDegree': 'Zaokrouhlit stupně',
|
||||||
'settings_full': 'Nastavení',
|
'settings_full': 'Nastavení',
|
||||||
'cities': 'Města',
|
'cities': 'Města',
|
||||||
'searchMethod': 'Použijte hledání nebo geolokaci',
|
'searchMethod': 'Použijte hledání nebo geolokaci',
|
||||||
'done': 'Hotovo',
|
'done': 'Hotovo',
|
||||||
'groups': 'Naše skupiny',
|
'groups': 'Naše skupiny',
|
||||||
'openMeteo': 'Data z Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Data z Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Hodinové meteorologické proměnné',
|
'hourlyVariables': 'Hodinové meteorologické proměnné',
|
||||||
'dailyVariables': 'Denní meteorologické proměnné',
|
'dailyVariables': 'Denní meteorologické proměnné',
|
||||||
'largeElement': 'Velké zobrazení počasí',
|
'largeElement': 'Velké zobrazení počasí',
|
||||||
'map': 'Mapa',
|
'map': 'Mapa',
|
||||||
'clearCacheStore': 'Vymazat mezipaměť',
|
'clearCacheStore': 'Vymazat mezipaměť',
|
||||||
'deletedCacheStore': 'Čištění mezipaměti',
|
'deletedCacheStore': 'Čištění mezipaměti',
|
||||||
'deletedCacheStoreQuery': 'Opravdu chcete vymazat mezipaměť?',
|
'deletedCacheStoreQuery': 'Opravdu chcete vymazat mezipaměť?',
|
||||||
'addWidget': 'Přidat widget',
|
'addWidget': 'Přidat widget',
|
||||||
'hideMap': 'Skrýt mapu',
|
'hideMap': 'Skrýt mapu',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
class DaDk {
|
class DaDk {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Kom i gang',
|
'start': 'Kom i gang',
|
||||||
'description':
|
'description':
|
||||||
'Vejr app med en opdateret vejrudsigt for hver time, dag og uge for ethvert sted.',
|
'Vejr app med en opdateret vejrudsigt for hver time, dag og uge for ethvert sted.',
|
||||||
'name': 'Vejr',
|
'name': 'Vejr',
|
||||||
'name2': 'Praktisk design',
|
'name2': 'Praktisk design',
|
||||||
'name3': 'Kontakt os',
|
'name3': 'Kontakt os',
|
||||||
'description2':
|
'description2':
|
||||||
'Al navigation er designet til at interagere med appen så bekvemt og hurtigt som muligt.',
|
'Al navigation er designet til at interagere med appen så bekvemt og hurtigt som muligt.',
|
||||||
'description3':
|
'description3':
|
||||||
'Hvis du støder på problemer, må du meget gerne kontakte os via e-mail eller i app anmeldelserne.',
|
'Hvis du støder på problemer, må du meget gerne kontakte os via e-mail eller i app anmeldelserne.',
|
||||||
'next': 'Næste',
|
'next': 'Næste',
|
||||||
'search': 'Søg...',
|
'search': 'Søg...',
|
||||||
'loading': 'Henter...',
|
'loading': 'Henter...',
|
||||||
'searchCity': 'Find din by',
|
'searchCity': 'Find din by',
|
||||||
'humidity': 'Luftfugtighed',
|
'humidity': 'Luftfugtighed',
|
||||||
'wind': 'Vind',
|
'wind': 'Vind',
|
||||||
'visibility': 'Sigtbarhed',
|
'visibility': 'Sigtbarhed',
|
||||||
'feels': 'Føles som',
|
'feels': 'Føles som',
|
||||||
'evaporation': 'Fordampning',
|
'evaporation': 'Fordampning',
|
||||||
'precipitation': 'Nedbør',
|
'precipitation': 'Nedbør',
|
||||||
'direction': 'Retning',
|
'direction': 'Retning',
|
||||||
'pressure': 'Tryk',
|
'pressure': 'Tryk',
|
||||||
'rain': 'Regn',
|
'rain': 'Regn',
|
||||||
'clear_sky': 'Skyfri himmel',
|
'clear_sky': 'Skyfri himmel',
|
||||||
'cloudy': 'Skyet',
|
'cloudy': 'Skyet',
|
||||||
'overcast': 'Overskyet',
|
'overcast': 'Overskyet',
|
||||||
'fog': 'Tåge',
|
'fog': 'Tåge',
|
||||||
'drizzle': 'Støv regn',
|
'drizzle': 'Støv regn',
|
||||||
'drizzling_rain': 'Frysende støvregn',
|
'drizzling_rain': 'Frysende støvregn',
|
||||||
'freezing_rain': 'Frostregn',
|
'freezing_rain': 'Frostregn',
|
||||||
'heavy_rains': 'Regnskyl',
|
'heavy_rains': 'Regnskyl',
|
||||||
'snow': 'Sne',
|
'snow': 'Sne',
|
||||||
'thunderstorm': 'Tordenvejr',
|
'thunderstorm': 'Tordenvejr',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'tommer',
|
'inch': 'tommer',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Inds.',
|
'settings': 'Inds.',
|
||||||
'no_inter': 'Ingen Internet',
|
'no_inter': 'Ingen Internet',
|
||||||
'on_inter': 'Tænd for internettet for at få meteorologisk data.',
|
'on_inter': 'Tænd for internettet for at få meteorologisk data.',
|
||||||
'location': 'Placering',
|
'location': 'Placering',
|
||||||
'no_location':
|
'no_location':
|
||||||
'Aktiver placeringer for at få vejrdata for den aktuelle placering.',
|
'Aktiver placeringer for at få vejrdata for den aktuelle placering.',
|
||||||
'theme': 'Tema',
|
'theme': 'Tema',
|
||||||
'low': 'Lav',
|
'low': 'Lav',
|
||||||
'high': 'Høj',
|
'high': 'Høj',
|
||||||
'normal': 'Normal',
|
'normal': 'Normal',
|
||||||
'lat': 'Breddegrad',
|
'lat': 'Breddegrad',
|
||||||
'lon': 'Længdegrad',
|
'lon': 'Længdegrad',
|
||||||
'create': 'Opret',
|
'create': 'Opret',
|
||||||
'city': 'By',
|
'city': 'By',
|
||||||
'district': 'Distrikt',
|
'district': 'Distrikt',
|
||||||
'noWeatherCard': 'Tilføj en by',
|
'noWeatherCard': 'Tilføj en by',
|
||||||
'deletedCardWeather': 'Slet en by',
|
'deletedCardWeather': 'Slet en by',
|
||||||
'deletedCardWeatherQuery': 'Er du sikker på at du vil slette denne by?',
|
'deletedCardWeatherQuery': 'Er du sikker på at du vil slette denne by?',
|
||||||
'delete': 'Slet',
|
'delete': 'Slet',
|
||||||
'cancel': 'Annullere',
|
'cancel': 'Annullere',
|
||||||
'time': 'Tid i byen',
|
'time': 'Tid i byen',
|
||||||
'validateName': 'Indtast venligst navnet',
|
'validateName': 'Indtast venligst navnet',
|
||||||
'measurements': 'Foranstaltningssystemet',
|
'measurements': 'Foranstaltningssystemet',
|
||||||
'degrees': 'Grader',
|
'degrees': 'Grader',
|
||||||
'celsius': 'Celsius',
|
'celsius': 'Celsius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'Imperialistisk',
|
'imperial': 'Imperialistisk',
|
||||||
'metric': 'Metrisk',
|
'metric': 'Metrisk',
|
||||||
'validateValue': 'Indtast en værdi',
|
'validateValue': 'Indtast en værdi',
|
||||||
'validateNumber': 'Indtast et gyldigt nummer',
|
'validateNumber': 'Indtast et gyldigt nummer',
|
||||||
'validate90': 'Værdien skal være mellem -90 og 90',
|
'validate90': 'Værdien skal være mellem -90 og 90',
|
||||||
'validate180': 'Værdien skal være mellem -180 og 180',
|
'validate180': 'Værdien skal være mellem -180 og 180',
|
||||||
'notifications': 'Notifikationer',
|
'notifications': 'Notifikationer',
|
||||||
'sunrise': 'Solopgang',
|
'sunrise': 'Solopgang',
|
||||||
'sunset': 'Solnedgang',
|
'sunset': 'Solnedgang',
|
||||||
'timeformat': 'Tids format',
|
'timeformat': 'Tids format',
|
||||||
'12': '12-timer',
|
'12': '12-timer',
|
||||||
'24': '24-timer',
|
'24': '24-timer',
|
||||||
'cloudcover': 'skydække',
|
'cloudcover': 'skydække',
|
||||||
'uvIndex': 'UV-index',
|
'uvIndex': 'UV-index',
|
||||||
'materialColor': 'Dynamiske farver',
|
'materialColor': 'Dynamiske farver',
|
||||||
'uvLow': 'Lav',
|
'uvLow': 'Lav',
|
||||||
'uvAverage': 'Moderat',
|
'uvAverage': 'Moderat',
|
||||||
'uvHigh': 'Høj',
|
'uvHigh': 'Høj',
|
||||||
'uvVeryHigh': 'Meget højt',
|
'uvVeryHigh': 'Meget højt',
|
||||||
'uvExtreme': 'Ekstrem',
|
'uvExtreme': 'Ekstrem',
|
||||||
'weatherMore': '12 dages vejrudsigt',
|
'weatherMore': '12 dages vejrudsigt',
|
||||||
'windgusts': 'Vindstød',
|
'windgusts': 'Vindstød',
|
||||||
'north': 'Nord',
|
'north': 'Nord',
|
||||||
'northeast': 'Nordøst',
|
'northeast': 'Nordøst',
|
||||||
'east': 'Øst',
|
'east': 'Øst',
|
||||||
'southeast': 'Sydøst',
|
'southeast': 'Sydøst',
|
||||||
'south': 'Syd',
|
'south': 'Syd',
|
||||||
'southwest': 'Sydvest',
|
'southwest': 'Sydvest',
|
||||||
'west': 'Vest',
|
'west': 'Vest',
|
||||||
'northwest': 'Nordvest',
|
'northwest': 'Nordvest',
|
||||||
'project': 'Projektet findes på',
|
'project': 'Projektet findes på',
|
||||||
'version': 'App version',
|
'version': 'App version',
|
||||||
'precipitationProbability': 'Sandsynlighed for nedbør',
|
'precipitationProbability': 'Sandsynlighed for nedbør',
|
||||||
'apparentTemperatureMin': 'Minimum temperature',
|
'apparentTemperatureMin': 'Minimum temperature',
|
||||||
'apparentTemperatureMax': 'Maksimal temperatur',
|
'apparentTemperatureMax': 'Maksimal temperatur',
|
||||||
'amoledTheme': 'AMOLED-tema',
|
'amoledTheme': 'AMOLED-tema',
|
||||||
'appearance': 'Udseende',
|
'appearance': 'Udseende',
|
||||||
'functions': 'Funktioner',
|
'functions': 'Funktioner',
|
||||||
'data': 'Data',
|
'data': 'Data',
|
||||||
'language': 'Sprog',
|
'language': 'Sprog',
|
||||||
'timeRange': 'Hyppighed (i timer)',
|
'timeRange': 'Hyppighed (i timer)',
|
||||||
'timeStart': 'Start tid',
|
'timeStart': 'Start tid',
|
||||||
'timeEnd': 'Slut tid',
|
'timeEnd': 'Slut tid',
|
||||||
'support': 'Support',
|
'support': 'Support',
|
||||||
'system': 'System',
|
'system': 'System',
|
||||||
'dark': 'Mørk',
|
'dark': 'Mørk',
|
||||||
'light': 'Lys',
|
'light': 'Lys',
|
||||||
'license': 'Licenser',
|
'license': 'Licenser',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Widget baggrund',
|
'widgetBackground': 'Widget baggrund',
|
||||||
'widgetText': 'Widget tekst',
|
'widgetText': 'Widget tekst',
|
||||||
'dewpoint': 'Dugpunktet',
|
'dewpoint': 'Dugpunktet',
|
||||||
'shortwaveRadiation': 'Kortbølgestråling',
|
'shortwaveRadiation': 'Kortbølgestråling',
|
||||||
'W/m2': 'W/m2',
|
'W/m2': 'W/m2',
|
||||||
'roundDegree': 'Afrundede grader',
|
'roundDegree': 'Afrundede grader',
|
||||||
'settings_full': 'Indstillinger',
|
'settings_full': 'Indstillinger',
|
||||||
'cities': 'Byer',
|
'cities': 'Byer',
|
||||||
'searchMethod': 'Brug søgning eller geolokation',
|
'searchMethod': 'Brug søgning eller geolokation',
|
||||||
'done': 'Færdig',
|
'done': 'Færdig',
|
||||||
'groups': 'Vores grupper',
|
'groups': 'Vores grupper',
|
||||||
'openMeteo': 'Data fra Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Data fra Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Timevise vejrfaktorer',
|
'hourlyVariables': 'Timevise vejrfaktorer',
|
||||||
'dailyVariables': 'Daglige vejrfaktorer',
|
'dailyVariables': 'Daglige vejrfaktorer',
|
||||||
'largeElement': 'Stort vejrdisplay',
|
'largeElement': 'Stort vejrdisplay',
|
||||||
'map': 'Kort',
|
'map': 'Kort',
|
||||||
'clearCacheStore': 'Ryd cache',
|
'clearCacheStore': 'Ryd cache',
|
||||||
'deletedCacheStore': 'Rydder cache',
|
'deletedCacheStore': 'Rydder cache',
|
||||||
'deletedCacheStoreQuery': 'Er du sikker på, at du vil rydde cachen?',
|
'deletedCacheStoreQuery': 'Er du sikker på, at du vil rydde cachen?',
|
||||||
'addWidget': 'Tilføj widget',
|
'addWidget': 'Tilføj widget',
|
||||||
'hideMap': 'Skjul kort',
|
'hideMap': 'Skjul kort',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,144 +1,144 @@
|
||||||
class DeDe {
|
class DeDe {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Los gehts',
|
'start': 'Los gehts',
|
||||||
'description':
|
'description':
|
||||||
'Wetteranwendung mit einer aktuellen Prognose für jede Stunde, Tag und Woche für jeden Ort.',
|
'Wetteranwendung mit einer aktuellen Prognose für jede Stunde, Tag und Woche für jeden Ort.',
|
||||||
'name': 'Wetter',
|
'name': 'Wetter',
|
||||||
'name2': 'Bequemes Design',
|
'name2': 'Bequemes Design',
|
||||||
'name3': 'Kontaktiere uns',
|
'name3': 'Kontaktiere uns',
|
||||||
'description2':
|
'description2':
|
||||||
'Die gesamte Navigation ist so gestaltet, dass die Interaktion mit der Anwendung so bequem und schnell wie möglich erfolgt.',
|
'Die gesamte Navigation ist so gestaltet, dass die Interaktion mit der Anwendung so bequem und schnell wie möglich erfolgt.',
|
||||||
'description3':
|
'description3':
|
||||||
'Wenn Sie auf Probleme stoßen, kontaktieren Sie uns bitte per E-Mail oder in den Bewertungen der Anwendung.',
|
'Wenn Sie auf Probleme stoßen, kontaktieren Sie uns bitte per E-Mail oder in den Bewertungen der Anwendung.',
|
||||||
'next': 'Weiter',
|
'next': 'Weiter',
|
||||||
'search': 'Suchen...',
|
'search': 'Suchen...',
|
||||||
'loading': 'Lädt...',
|
'loading': 'Lädt...',
|
||||||
'searchCity': 'Finde deine Stadt',
|
'searchCity': 'Finde deine Stadt',
|
||||||
'humidity': 'Luftfeuchtigkeit',
|
'humidity': 'Luftfeuchtigkeit',
|
||||||
'wind': 'Wind',
|
'wind': 'Wind',
|
||||||
'visibility': 'Sichtweite',
|
'visibility': 'Sichtweite',
|
||||||
'feels': 'Gefühlt',
|
'feels': 'Gefühlt',
|
||||||
'evaporation': 'Verdunstung',
|
'evaporation': 'Verdunstung',
|
||||||
'precipitation': 'Niederschlag',
|
'precipitation': 'Niederschlag',
|
||||||
'direction': 'Richtung',
|
'direction': 'Richtung',
|
||||||
'pressure': 'Druck',
|
'pressure': 'Druck',
|
||||||
'rain': 'Regen',
|
'rain': 'Regen',
|
||||||
'clear_sky': 'Klarer Himmel',
|
'clear_sky': 'Klarer Himmel',
|
||||||
'cloudy': 'Bewölkt',
|
'cloudy': 'Bewölkt',
|
||||||
'overcast': 'Bedeckt',
|
'overcast': 'Bedeckt',
|
||||||
'fog': 'Nebel',
|
'fog': 'Nebel',
|
||||||
'drizzle': 'Nieselregen',
|
'drizzle': 'Nieselregen',
|
||||||
'drizzling_rain': 'Gefrierender Nieselregen',
|
'drizzling_rain': 'Gefrierender Nieselregen',
|
||||||
'freezing_rain': 'Gefrierender Regen',
|
'freezing_rain': 'Gefrierender Regen',
|
||||||
'heavy_rains': 'Regenschauer',
|
'heavy_rains': 'Regenschauer',
|
||||||
'snow': 'Schnee',
|
'snow': 'Schnee',
|
||||||
'thunderstorm': 'Gewitter',
|
'thunderstorm': 'Gewitter',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Einstellungen',
|
'settings': 'Einstellungen',
|
||||||
'no_inter': 'Keine Internetverbindung',
|
'no_inter': 'Keine Internetverbindung',
|
||||||
'on_inter':
|
'on_inter':
|
||||||
'Schalte das Internet ein, um meteorologische Daten zu erhalten.',
|
'Schalte das Internet ein, um meteorologische Daten zu erhalten.',
|
||||||
'location': 'Standort',
|
'location': 'Standort',
|
||||||
'no_location':
|
'no_location':
|
||||||
'Aktiviere den Standortdienst, um Wetterdaten für den aktuellen Standort zu erhalten.',
|
'Aktiviere den Standortdienst, um Wetterdaten für den aktuellen Standort zu erhalten.',
|
||||||
'theme': 'Thema',
|
'theme': 'Thema',
|
||||||
'low': 'Niedrig',
|
'low': 'Niedrig',
|
||||||
'high': 'Hoch',
|
'high': 'Hoch',
|
||||||
'normal': 'Normal',
|
'normal': 'Normal',
|
||||||
'lat': 'Breitengrad',
|
'lat': 'Breitengrad',
|
||||||
'lon': 'Längengrad',
|
'lon': 'Längengrad',
|
||||||
'create': 'Erstellen',
|
'create': 'Erstellen',
|
||||||
'city': 'Stadt',
|
'city': 'Stadt',
|
||||||
'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':
|
'deletedCardWeatherQuery':
|
||||||
'Sind Sie sicher, dass Sie die Stadt löschen möchten?',
|
'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',
|
||||||
'validateName': 'Bitte geben Sie den Namen ein',
|
'validateName': 'Bitte geben Sie den Namen ein',
|
||||||
'measurements': 'Einheitensystem',
|
'measurements': 'Einheitensystem',
|
||||||
'degrees': 'Grade',
|
'degrees': 'Grade',
|
||||||
'celsius': 'Celsius',
|
'celsius': 'Celsius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'Imperial',
|
'imperial': 'Imperial',
|
||||||
'metric': 'Metrisch',
|
'metric': 'Metrisch',
|
||||||
'validateValue': 'Bitte geben Sie einen Wert ein',
|
'validateValue': 'Bitte geben Sie einen Wert ein',
|
||||||
'validateNumber': 'Bitte geben Sie eine Nummer ein',
|
'validateNumber': 'Bitte geben Sie eine Nummer ein',
|
||||||
'validate90': 'Der Wert muss zwischen -90 und 90 liegen',
|
'validate90': 'Der Wert muss zwischen -90 und 90 liegen',
|
||||||
'validate180': 'Der Wert muss zwischen -180 und 180 liegen',
|
'validate180': 'Der Wert muss zwischen -180 und 180 liegen',
|
||||||
'notifications': 'Benachrichtigungen',
|
'notifications': 'Benachrichtigungen',
|
||||||
'sunrise': 'Sonnenaufgang',
|
'sunrise': 'Sonnenaufgang',
|
||||||
'sunset': 'Sonnenuntergang',
|
'sunset': 'Sonnenuntergang',
|
||||||
'timeformat': 'Zeitformat',
|
'timeformat': 'Zeitformat',
|
||||||
'12': '12-stunden',
|
'12': '12-stunden',
|
||||||
'24': '24-stunden',
|
'24': '24-stunden',
|
||||||
'cloudcover': 'Wolkenbedeckung',
|
'cloudcover': 'Wolkenbedeckung',
|
||||||
'uvIndex': 'UV-index',
|
'uvIndex': 'UV-index',
|
||||||
'materialColor': 'Dynamische Farben',
|
'materialColor': 'Dynamische Farben',
|
||||||
'uvLow': 'Niedrig',
|
'uvLow': 'Niedrig',
|
||||||
'uvAverage': 'Mäßig',
|
'uvAverage': 'Mäßig',
|
||||||
'uvHigh': 'Hoch',
|
'uvHigh': 'Hoch',
|
||||||
'uvVeryHigh': 'Sehr hoch',
|
'uvVeryHigh': 'Sehr hoch',
|
||||||
'uvExtreme': 'Extrem',
|
'uvExtreme': 'Extrem',
|
||||||
'weatherMore': '12-Tage-Wettervorhersage',
|
'weatherMore': '12-Tage-Wettervorhersage',
|
||||||
'windgusts': 'Böe',
|
'windgusts': 'Böe',
|
||||||
'north': 'Norden',
|
'north': 'Norden',
|
||||||
'northeast': 'Nordosten',
|
'northeast': 'Nordosten',
|
||||||
'east': 'Osten',
|
'east': 'Osten',
|
||||||
'southeast': 'Südosten',
|
'southeast': 'Südosten',
|
||||||
'south': 'Süden',
|
'south': 'Süden',
|
||||||
'southwest': 'Südwesten',
|
'southwest': 'Südwesten',
|
||||||
'west': 'Westen',
|
'west': 'Westen',
|
||||||
'northwest': 'Nordwesten',
|
'northwest': 'Nordwesten',
|
||||||
'project': 'Projekt auf',
|
'project': 'Projekt auf',
|
||||||
'version': 'Anwendungsversion',
|
'version': 'Anwendungsversion',
|
||||||
'precipitationProbability': 'Niederschlagswahrscheinlichkeit',
|
'precipitationProbability': 'Niederschlagswahrscheinlichkeit',
|
||||||
'apparentTemperatureMin': 'Minimale gefühlte Temperatur',
|
'apparentTemperatureMin': 'Minimale gefühlte Temperatur',
|
||||||
'apparentTemperatureMax': 'Maximale gefühlte Temperatur',
|
'apparentTemperatureMax': 'Maximale gefühlte Temperatur',
|
||||||
'amoledTheme': 'AMOLED-thema',
|
'amoledTheme': 'AMOLED-thema',
|
||||||
'appearance': 'Erscheinungsbild',
|
'appearance': 'Erscheinungsbild',
|
||||||
'functions': 'Funktionen',
|
'functions': 'Funktionen',
|
||||||
'data': 'Daten',
|
'data': 'Daten',
|
||||||
'language': 'Sprache',
|
'language': 'Sprache',
|
||||||
'timeRange': 'Häufigkeit (in Stunden)',
|
'timeRange': 'Häufigkeit (in Stunden)',
|
||||||
'timeStart': 'Startzeit',
|
'timeStart': 'Startzeit',
|
||||||
'timeEnd': 'Endzeit',
|
'timeEnd': 'Endzeit',
|
||||||
'support': 'Unterstützung',
|
'support': 'Unterstützung',
|
||||||
'system': 'System',
|
'system': 'System',
|
||||||
'dark': 'Dunkel',
|
'dark': 'Dunkel',
|
||||||
'light': 'Hell',
|
'light': 'Hell',
|
||||||
'license': 'Lizenzen',
|
'license': 'Lizenzen',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Widget-Hintergrund',
|
'widgetBackground': 'Widget-Hintergrund',
|
||||||
'widgetText': 'Widget-Text',
|
'widgetText': 'Widget-Text',
|
||||||
'dewpoint': 'Taupunkt',
|
'dewpoint': 'Taupunkt',
|
||||||
'shortwaveRadiation': 'Kurzwellenstrahlung',
|
'shortwaveRadiation': 'Kurzwellenstrahlung',
|
||||||
'roundDegree': 'Grad runden',
|
'roundDegree': 'Grad runden',
|
||||||
'settings_full': 'Einstellungen',
|
'settings_full': 'Einstellungen',
|
||||||
'cities': 'Städte',
|
'cities': 'Städte',
|
||||||
'searchMethod': 'Verwenden Sie die Suche oder die Geolokalisierung',
|
'searchMethod': 'Verwenden Sie die Suche oder die Geolokalisierung',
|
||||||
'done': 'Fertig',
|
'done': 'Fertig',
|
||||||
'groups': 'Unsere gruppen',
|
'groups': 'Unsere gruppen',
|
||||||
'openMeteo': 'Daten von Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Daten von Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Stündliche Wettervariablen',
|
'hourlyVariables': 'Stündliche Wettervariablen',
|
||||||
'dailyVariables': 'Tägliche Wettervariablen',
|
'dailyVariables': 'Tägliche Wettervariablen',
|
||||||
'largeElement': 'Große Wetteranzeige',
|
'largeElement': 'Große Wetteranzeige',
|
||||||
'map': 'Karte',
|
'map': 'Karte',
|
||||||
'clearCacheStore': 'Cache leeren',
|
'clearCacheStore': 'Cache leeren',
|
||||||
'deletedCacheStore': 'Cache wird geleert',
|
'deletedCacheStore': 'Cache wird geleert',
|
||||||
'deletedCacheStoreQuery':
|
'deletedCacheStoreQuery':
|
||||||
'Sind Sie sicher, dass Sie den Cache leeren möchten?',
|
'Sind Sie sicher, dass Sie den Cache leeren möchten?',
|
||||||
'addWidget': 'Widget hinzufügen',
|
'addWidget': 'Widget hinzufügen',
|
||||||
'hideMap': 'Karte ausblenden',
|
'hideMap': 'Karte ausblenden',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
class EnUs {
|
class EnUs {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Get Started',
|
'start': 'Get Started',
|
||||||
'description':
|
'description':
|
||||||
'Weather application with an up-to-date forecast for each hour, day, and week for any location.',
|
'Weather application with an up-to-date forecast for each hour, day, and week for any location.',
|
||||||
'name': 'Weather',
|
'name': 'Weather',
|
||||||
'name2': 'Convenient Design',
|
'name2': 'Convenient Design',
|
||||||
'name3': 'Contact Us',
|
'name3': 'Contact Us',
|
||||||
'description2':
|
'description2':
|
||||||
'All navigation is designed to interact with the application as conveniently and quickly as possible.',
|
'All navigation is designed to interact with the application as conveniently and quickly as possible.',
|
||||||
'description3':
|
'description3':
|
||||||
'If you encounter any issues, please contact us via email or in the application reviews.',
|
'If you encounter any issues, please contact us via email or in the application reviews.',
|
||||||
'next': 'Next',
|
'next': 'Next',
|
||||||
'search': 'Search...',
|
'search': 'Search...',
|
||||||
'loading': 'Loading...',
|
'loading': 'Loading...',
|
||||||
'searchCity': 'Find your city',
|
'searchCity': 'Find your city',
|
||||||
'humidity': 'Humidity',
|
'humidity': 'Humidity',
|
||||||
'wind': 'Wind',
|
'wind': 'Wind',
|
||||||
'visibility': 'Visibility',
|
'visibility': 'Visibility',
|
||||||
'feels': 'Feels',
|
'feels': 'Feels',
|
||||||
'evaporation': 'Evapotranspiration',
|
'evaporation': 'Evapotranspiration',
|
||||||
'precipitation': 'Precipitation',
|
'precipitation': 'Precipitation',
|
||||||
'direction': 'Direction',
|
'direction': 'Direction',
|
||||||
'pressure': 'Pressure',
|
'pressure': 'Pressure',
|
||||||
'rain': 'Rain',
|
'rain': 'Rain',
|
||||||
'clear_sky': 'Clear sky',
|
'clear_sky': 'Clear sky',
|
||||||
'cloudy': 'Cloudy',
|
'cloudy': 'Cloudy',
|
||||||
'overcast': 'Overcast',
|
'overcast': 'Overcast',
|
||||||
'fog': 'Fog',
|
'fog': 'Fog',
|
||||||
'drizzle': 'Drizzle',
|
'drizzle': 'Drizzle',
|
||||||
'drizzling_rain': 'Freezing Drizzle',
|
'drizzling_rain': 'Freezing Drizzle',
|
||||||
'freezing_rain': 'Freezing Rain',
|
'freezing_rain': 'Freezing Rain',
|
||||||
'heavy_rains': 'Rain showers',
|
'heavy_rains': 'Rain showers',
|
||||||
'snow': 'Snow',
|
'snow': 'Snow',
|
||||||
'thunderstorm': 'Thunderstorm',
|
'thunderstorm': 'Thunderstorm',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Set.',
|
'settings': 'Set.',
|
||||||
'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':
|
'no_location':
|
||||||
'Enable the location service to get weather data for the current 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',
|
||||||
'normal': 'Normal',
|
'normal': 'Normal',
|
||||||
'lat': 'Latitude',
|
'lat': 'Latitude',
|
||||||
'lon': 'Longitude',
|
'lon': 'Longitude',
|
||||||
'create': 'Create',
|
'create': 'Create',
|
||||||
'city': 'City',
|
'city': 'City',
|
||||||
'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',
|
||||||
'validateName': 'Please enter the name',
|
'validateName': 'Please enter the name',
|
||||||
'measurements': 'System of measures',
|
'measurements': 'System of measures',
|
||||||
'degrees': 'Degrees',
|
'degrees': 'Degrees',
|
||||||
'celsius': 'Celsius',
|
'celsius': 'Celsius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'Imperial',
|
'imperial': 'Imperial',
|
||||||
'metric': 'Metric',
|
'metric': 'Metric',
|
||||||
'validateValue': 'Please enter a value',
|
'validateValue': 'Please enter a value',
|
||||||
'validateNumber': 'Please enter a valid number',
|
'validateNumber': 'Please enter a valid number',
|
||||||
'validate90': 'Value must be between -90 and 90',
|
'validate90': 'Value must be between -90 and 90',
|
||||||
'validate180': 'Value must be between -180 and 180',
|
'validate180': 'Value must be between -180 and 180',
|
||||||
'notifications': 'Notifications',
|
'notifications': 'Notifications',
|
||||||
'sunrise': 'Sunrise',
|
'sunrise': 'Sunrise',
|
||||||
'sunset': 'Sunset',
|
'sunset': 'Sunset',
|
||||||
'timeformat': 'Time format',
|
'timeformat': 'Time format',
|
||||||
'12': '12-hour',
|
'12': '12-hour',
|
||||||
'24': '24-hour',
|
'24': '24-hour',
|
||||||
'cloudcover': 'Cloudcover',
|
'cloudcover': 'Cloudcover',
|
||||||
'uvIndex': 'UV-index',
|
'uvIndex': 'UV-index',
|
||||||
'materialColor': 'Dynamic colors',
|
'materialColor': 'Dynamic colors',
|
||||||
'uvLow': 'Low',
|
'uvLow': 'Low',
|
||||||
'uvAverage': 'Moderate',
|
'uvAverage': 'Moderate',
|
||||||
'uvHigh': 'High',
|
'uvHigh': 'High',
|
||||||
'uvVeryHigh': 'Very high',
|
'uvVeryHigh': 'Very high',
|
||||||
'uvExtreme': 'Extreme',
|
'uvExtreme': 'Extreme',
|
||||||
'weatherMore': '12-day weather forecast',
|
'weatherMore': '12-day weather forecast',
|
||||||
'windgusts': 'Gust',
|
'windgusts': 'Gust',
|
||||||
'north': 'North',
|
'north': 'North',
|
||||||
'northeast': 'Northeast',
|
'northeast': 'Northeast',
|
||||||
'east': 'East',
|
'east': 'East',
|
||||||
'southeast': 'Southeast',
|
'southeast': 'Southeast',
|
||||||
'south': 'South',
|
'south': 'South',
|
||||||
'southwest': 'Southwest',
|
'southwest': 'Southwest',
|
||||||
'west': 'West',
|
'west': 'West',
|
||||||
'northwest': 'Northwest',
|
'northwest': 'Northwest',
|
||||||
'project': 'Project on',
|
'project': 'Project on',
|
||||||
'version': 'Application version',
|
'version': 'Application version',
|
||||||
'precipitationProbability': 'Precipitation probability',
|
'precipitationProbability': 'Precipitation probability',
|
||||||
'apparentTemperatureMin': 'Minimum apparent temperature',
|
'apparentTemperatureMin': 'Minimum apparent temperature',
|
||||||
'apparentTemperatureMax': 'Maximum apparent temperature',
|
'apparentTemperatureMax': 'Maximum apparent temperature',
|
||||||
'amoledTheme': 'AMOLED-theme',
|
'amoledTheme': 'AMOLED-theme',
|
||||||
'appearance': 'Appearance',
|
'appearance': 'Appearance',
|
||||||
'functions': 'Functions',
|
'functions': 'Functions',
|
||||||
'data': 'Data',
|
'data': 'Data',
|
||||||
'language': 'Language',
|
'language': 'Language',
|
||||||
'timeRange': 'Frequency (in hours)',
|
'timeRange': 'Frequency (in hours)',
|
||||||
'timeStart': 'Start time',
|
'timeStart': 'Start time',
|
||||||
'timeEnd': 'End time',
|
'timeEnd': 'End time',
|
||||||
'support': 'Donate',
|
'support': 'Donate',
|
||||||
'system': 'System',
|
'system': 'System',
|
||||||
'dark': 'Dark',
|
'dark': 'Dark',
|
||||||
'light': 'Light',
|
'light': 'Light',
|
||||||
'license': 'Licenses',
|
'license': 'Licenses',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Widget background',
|
'widgetBackground': 'Widget background',
|
||||||
'widgetText': 'Widget text',
|
'widgetText': 'Widget text',
|
||||||
'dewpoint': 'Dewpoint',
|
'dewpoint': 'Dewpoint',
|
||||||
'shortwaveRadiation': 'Shortwave radiation',
|
'shortwaveRadiation': 'Shortwave radiation',
|
||||||
'W/m2': 'W/m2',
|
'W/m2': 'W/m2',
|
||||||
'roundDegree': 'Round degrees',
|
'roundDegree': 'Round degrees',
|
||||||
'settings_full': 'Settings',
|
'settings_full': 'Settings',
|
||||||
'cities': 'Cities',
|
'cities': 'Cities',
|
||||||
'searchMethod': 'Use search or geolocation',
|
'searchMethod': 'Use search or geolocation',
|
||||||
'done': 'Done',
|
'done': 'Done',
|
||||||
'groups': 'Our groups',
|
'groups': 'Our groups',
|
||||||
'openMeteo': 'Data by Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Data by Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Hourly weather variables',
|
'hourlyVariables': 'Hourly weather variables',
|
||||||
'dailyVariables': 'Daily weather variables',
|
'dailyVariables': 'Daily weather variables',
|
||||||
'largeElement': 'Large weather display',
|
'largeElement': 'Large weather display',
|
||||||
'map': 'Map',
|
'map': 'Map',
|
||||||
'clearCacheStore': 'Clear cache',
|
'clearCacheStore': 'Clear cache',
|
||||||
'deletedCacheStore': 'Clearing the cache',
|
'deletedCacheStore': 'Clearing the cache',
|
||||||
'deletedCacheStoreQuery': 'Are you sure you want to clear the cache?',
|
'deletedCacheStoreQuery': 'Are you sure you want to clear the cache?',
|
||||||
'addWidget': 'Add widget',
|
'addWidget': 'Add widget',
|
||||||
'hideMap': 'Hide map',
|
'hideMap': 'Hide map',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,144 +1,142 @@
|
||||||
class EsEs {
|
class EsEs {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Empezar',
|
'start': 'Empezar',
|
||||||
'description':
|
'description':
|
||||||
'Aplicación meteorológica con un pronóstico actualizado para cada hora, día y semana para cualquier lugar.',
|
'Aplicación meteorológica con un pronóstico actualizado para cada hora, día y semana para cualquier lugar.',
|
||||||
'name': 'Tiempo',
|
'name': 'Tiempo',
|
||||||
'name2': 'Diseño Conveniente',
|
'name2': 'Diseño Conveniente',
|
||||||
'name3': 'Contáctenos',
|
'name3': 'Contáctenos',
|
||||||
'description2':
|
'description2':
|
||||||
'Toda la navegación está diseñada para interactuar con la aplicación de la manera más cómoda y rápida posible.',
|
'Toda la navegación está diseñada para interactuar con la aplicación de la manera más cómoda y rápida posible.',
|
||||||
'description3':
|
'description3':
|
||||||
'Si encuentra algún problema, contáctenos por correo electrónico o en las reseñas de la aplicación.',
|
'Si encuentra algún problema, contáctenos por correo electrónico o en las reseñas de la aplicación.',
|
||||||
'next': 'Siguiente',
|
'next': 'Siguiente',
|
||||||
'search': 'Buscar...',
|
'search': 'Buscar...',
|
||||||
'loading': 'Cargando...',
|
'loading': 'Cargando...',
|
||||||
'searchCity': 'Busca tu ciudad',
|
'searchCity': 'Busca tu ciudad',
|
||||||
'humidity': 'Humedad',
|
'humidity': 'Humedad',
|
||||||
'wind': 'Viento',
|
'wind': 'Viento',
|
||||||
'visibility': 'Visibilidad',
|
'visibility': 'Visibilidad',
|
||||||
'feels': 'Sensación térmica',
|
'feels': 'Sensación térmica',
|
||||||
'evaporation': 'Evaporación',
|
'evaporation': 'Evaporación',
|
||||||
'precipitation': 'Precipitación',
|
'precipitation': 'Precipitación',
|
||||||
'direction': 'Dirección',
|
'direction': 'Dirección',
|
||||||
'pressure': 'Presión',
|
'pressure': 'Presión',
|
||||||
'rain': 'Lluvia',
|
'rain': 'Lluvia',
|
||||||
'clear_sky': 'Cielo despejado',
|
'clear_sky': 'Cielo despejado',
|
||||||
'cloudy': 'Nuboso',
|
'cloudy': 'Nuboso',
|
||||||
'overcast': 'Cubierto de nubes',
|
'overcast': 'Cubierto de nubes',
|
||||||
'fog': 'Niebla',
|
'fog': 'Niebla',
|
||||||
'drizzle': 'Llovizna',
|
'drizzle': 'Llovizna',
|
||||||
'drizzling_rain': 'Llovizna helada',
|
'drizzling_rain': 'Llovizna helada',
|
||||||
'freezing_rain': 'Lluvia helada',
|
'freezing_rain': 'Lluvia helada',
|
||||||
'heavy_rains': 'Chubasco intenso',
|
'heavy_rains': 'Chubasco intenso',
|
||||||
'snow': 'Nieve',
|
'snow': 'Nieve',
|
||||||
'thunderstorm': 'Tormenta',
|
'thunderstorm': 'Tormenta',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Ajustes',
|
'settings': 'Ajustes',
|
||||||
'no_inter': 'Sin conexión a Internet',
|
'no_inter': 'Sin conexión a Internet',
|
||||||
'on_inter':
|
'on_inter': 'Conéctate a Internet para obtener información meteorológica.',
|
||||||
'Conéctate a Internet para obtener información meteorológica.',
|
'location': 'Ubicación',
|
||||||
'location': 'Ubicación',
|
'no_location':
|
||||||
'no_location':
|
'Activa la localización para obtener información meteorológica para tu ubicación actual.',
|
||||||
'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',
|
'normal': 'Normal',
|
||||||
'normal': 'Normal',
|
'lat': 'Latitud',
|
||||||
'lat': 'Latitud',
|
'lon': 'Longitud',
|
||||||
'lon': 'Longitud',
|
'create': 'Crear',
|
||||||
'create': 'Crear',
|
'city': 'Ciudad',
|
||||||
'city': 'Ciudad',
|
'district': 'Distrito',
|
||||||
'district': 'Distrito',
|
'noWeatherCard': 'Añadir una ciudad',
|
||||||
'noWeatherCard': 'Añadir una ciudad',
|
'deletedCardWeather': 'Eliminar una ciudad',
|
||||||
'deletedCardWeather': 'Eliminar una ciudad',
|
'deletedCardWeatherQuery':
|
||||||
'deletedCardWeatherQuery':
|
'¿Estás seguro de que quieres eliminar la ciudad?',
|
||||||
'¿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',
|
'validateName': 'Por favor, introduce un nombre',
|
||||||
'validateName': 'Por favor, introduce un nombre',
|
'measurements': 'Sistema de medidas',
|
||||||
'measurements': 'Sistema de medidas',
|
'degrees': 'Grados',
|
||||||
'degrees': 'Grados',
|
'celsius': 'Celsius',
|
||||||
'celsius': 'Celsius',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'imperial': 'Imperial',
|
||||||
'imperial': 'Imperial',
|
'metric': 'Métrico',
|
||||||
'metric': 'Métrico',
|
'validateValue': 'Por favor, introduce un valor',
|
||||||
'validateValue': 'Por favor, introduce un valor',
|
'validateNumber': 'Por favor, introduce un número válido',
|
||||||
'validateNumber': 'Por favor, introduce un número válido',
|
'validate90': 'El valor tiene que estar entre -90 y 90',
|
||||||
'validate90': 'El valor tiene que estar entre -90 y 90',
|
'validate180': 'El valor tiene que estar entre -180 y 180',
|
||||||
'validate180': 'El valor tiene que estar entre -180 y 180',
|
'notifications': 'Notificaciones',
|
||||||
'notifications': 'Notificaciones',
|
'sunrise': 'Amanecer',
|
||||||
'sunrise': 'Amanecer',
|
'sunset': 'Atardecer',
|
||||||
'sunset': 'Atardecer',
|
'timeformat': 'Formato de hora',
|
||||||
'timeformat': 'Formato de hora',
|
'12': '12 horas',
|
||||||
'12': '12 horas',
|
'24': '24 horas',
|
||||||
'24': '24 horas',
|
'cloudcover': 'Cobertura de nubes',
|
||||||
'cloudcover': 'Cobertura de nubes',
|
'uvIndex': 'UV-índice',
|
||||||
'uvIndex': 'UV-índice',
|
'materialColor': 'Colores Dinámicos',
|
||||||
'materialColor': 'Colores Dinámicos',
|
'uvLow': 'Bajo',
|
||||||
'uvLow': 'Bajo',
|
'uvAverage': 'Moderado',
|
||||||
'uvAverage': 'Moderado',
|
'uvHigh': 'Alto',
|
||||||
'uvHigh': 'Alto',
|
'uvVeryHigh': 'Muy alto',
|
||||||
'uvVeryHigh': 'Muy alto',
|
'uvExtreme': 'Extremo',
|
||||||
'uvExtreme': 'Extremo',
|
'weatherMore': 'Pronóstico del tiempo para 12 días',
|
||||||
'weatherMore': 'Pronóstico del tiempo para 12 días',
|
'windgusts': 'Ráfagas',
|
||||||
'windgusts': 'Ráfagas',
|
'north': 'Norte',
|
||||||
'north': 'Norte',
|
'northeast': 'Noreste',
|
||||||
'northeast': 'Noreste',
|
'east': 'Este',
|
||||||
'east': 'Este',
|
'southeast': 'Sureste',
|
||||||
'southeast': 'Sureste',
|
'south': 'Sur',
|
||||||
'south': 'Sur',
|
'southwest': 'Suroeste',
|
||||||
'southwest': 'Suroeste',
|
'west': 'Oeste',
|
||||||
'west': 'Oeste',
|
'northwest': 'Noroeste',
|
||||||
'northwest': 'Noroeste',
|
'project': 'Proyecto en',
|
||||||
'project': 'Proyecto en',
|
'version': 'Versión de la aplicación',
|
||||||
'version': 'Versión de la aplicación',
|
'precipitationProbability': 'Probabilidad de precipitación',
|
||||||
'precipitationProbability': 'Probabilidad de precipitación',
|
'apparentTemperatureMin': 'Temperatura aparente mínima',
|
||||||
'apparentTemperatureMin': 'Temperatura aparente mínima',
|
'apparentTemperatureMax': 'Temperatura aparente máxima',
|
||||||
'apparentTemperatureMax': 'Temperatura aparente máxima',
|
'amoledTheme': 'AMOLED-tema',
|
||||||
'amoledTheme': 'AMOLED-tema',
|
'appearance': 'Apariencia',
|
||||||
'appearance': 'Apariencia',
|
'functions': 'Funciones',
|
||||||
'functions': 'Funciones',
|
'data': 'Datos',
|
||||||
'data': 'Datos',
|
'language': 'Idioma',
|
||||||
'language': 'Idioma',
|
'timeRange': 'Frecuencia (en horas)',
|
||||||
'timeRange': 'Frecuencia (en horas)',
|
'timeStart': 'Hora de inicio',
|
||||||
'timeStart': 'Hora de inicio',
|
'timeEnd': 'Hora de finalización',
|
||||||
'timeEnd': 'Hora de finalización',
|
'support': 'Soporte',
|
||||||
'support': 'Soporte',
|
'system': 'Sistema',
|
||||||
'system': 'Sistema',
|
'dark': 'Oscuro',
|
||||||
'dark': 'Oscuro',
|
'light': 'Claro',
|
||||||
'light': 'Claro',
|
'license': 'Licencias',
|
||||||
'license': 'Licencias',
|
'widget': 'Widget',
|
||||||
'widget': 'Widget',
|
'widgetBackground': 'Fondo del widget',
|
||||||
'widgetBackground': 'Fondo del widget',
|
'widgetText': 'Texto del widget',
|
||||||
'widgetText': 'Texto del widget',
|
'dewpoint': 'Punto de rocío',
|
||||||
'dewpoint': 'Punto de rocío',
|
'shortwaveRadiation': 'Radiación de onda corta',
|
||||||
'shortwaveRadiation': 'Radiación de onda corta',
|
'roundDegree': 'Redondear grados',
|
||||||
'roundDegree': 'Redondear grados',
|
'settings_full': 'Configuración',
|
||||||
'settings_full': 'Configuración',
|
'cities': 'Ciudades',
|
||||||
'cities': 'Ciudades',
|
'searchMethod': 'Usa la búsqueda o la geolocalización',
|
||||||
'searchMethod': 'Usa la búsqueda o la geolocalización',
|
'done': 'Hecho',
|
||||||
'done': 'Hecho',
|
'groups': 'Nuestros grupos',
|
||||||
'groups': 'Nuestros grupos',
|
'openMeteo': 'Datos de Open-Meteo (CC-BY 4.0)',
|
||||||
'openMeteo': 'Datos de Open-Meteo (CC-BY 4.0)',
|
'hourlyVariables': 'Variables meteorológicas horarias',
|
||||||
'hourlyVariables': 'Variables meteorológicas horarias',
|
'dailyVariables': 'Variables meteorológicas diarias',
|
||||||
'dailyVariables': 'Variables meteorológicas diarias',
|
'largeElement': 'Visualización grande del clima',
|
||||||
'largeElement': 'Visualización grande del clima',
|
'map': 'Mapa',
|
||||||
'map': 'Mapa',
|
'clearCacheStore': 'Borrar caché',
|
||||||
'clearCacheStore': 'Borrar caché',
|
'deletedCacheStore': 'Borrando caché',
|
||||||
'deletedCacheStore': 'Borrando caché',
|
'deletedCacheStoreQuery': '¿Estás seguro de que quieres borrar el caché?',
|
||||||
'deletedCacheStoreQuery':
|
'addWidget': 'Agregar widget',
|
||||||
'¿Estás seguro de que quieres borrar el caché?',
|
'hideMap': 'Ocultar mapa',
|
||||||
'addWidget': 'Agregar widget',
|
};
|
||||||
'hideMap': 'Ocultar mapa',
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,143 +1,143 @@
|
||||||
class FaIr {
|
class FaIr {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'شروع کنید',
|
'start': 'شروع کنید',
|
||||||
'description':
|
'description':
|
||||||
'یک برنامه هواشناسی با پیشبینی به روز برای هر ساعت، روز و هفته و هر مکان',
|
'یک برنامه هواشناسی با پیشبینی به روز برای هر ساعت، روز و هفته و هر مکان',
|
||||||
'name': 'آب و هوا',
|
'name': 'آب و هوا',
|
||||||
'name2': 'طراحی راحت',
|
'name2': 'طراحی راحت',
|
||||||
'name3': 'ارتباط باما',
|
'name3': 'ارتباط باما',
|
||||||
'description2':
|
'description2':
|
||||||
'برنامه به گونه ای طراحی شده است تا به راحتی بتوانید با آن ارتباط بگیرید.',
|
'برنامه به گونه ای طراحی شده است تا به راحتی بتوانید با آن ارتباط بگیرید.',
|
||||||
'description3':
|
'description3':
|
||||||
'اگر با مشکلی روبرو شدید، لطفاً با ما از طریق ایمیل و یا نظرات برنامه ارتباط بگیرید.',
|
'اگر با مشکلی روبرو شدید، لطفاً با ما از طریق ایمیل و یا نظرات برنامه ارتباط بگیرید.',
|
||||||
'next': 'بعدی',
|
'next': 'بعدی',
|
||||||
'search': 'جستجو....',
|
'search': 'جستجو....',
|
||||||
'loading': 'درحال بارگذاری...',
|
'loading': 'درحال بارگذاری...',
|
||||||
'searchCity': 'شهر خود را پیدا کنید',
|
'searchCity': 'شهر خود را پیدا کنید',
|
||||||
'humidity': 'رطوبت',
|
'humidity': 'رطوبت',
|
||||||
'wind': 'باد',
|
'wind': 'باد',
|
||||||
'visibility': 'میزان دید',
|
'visibility': 'میزان دید',
|
||||||
'feels': 'دما',
|
'feels': 'دما',
|
||||||
'evaporation': 'تبخیر و تعرق',
|
'evaporation': 'تبخیر و تعرق',
|
||||||
'precipitation': 'تهنشینی',
|
'precipitation': 'تهنشینی',
|
||||||
'direction': 'جهت',
|
'direction': 'جهت',
|
||||||
'pressure': 'فشار',
|
'pressure': 'فشار',
|
||||||
'rain': 'باران',
|
'rain': 'باران',
|
||||||
'clear_sky': 'آسمان صاف',
|
'clear_sky': 'آسمان صاف',
|
||||||
'cloudy': 'ابری',
|
'cloudy': 'ابری',
|
||||||
'overcast': 'ابری',
|
'overcast': 'ابری',
|
||||||
'fog': 'مه',
|
'fog': 'مه',
|
||||||
'drizzle': 'ریز باران',
|
'drizzle': 'ریز باران',
|
||||||
'drizzling_rain': 'تگرگ',
|
'drizzling_rain': 'تگرگ',
|
||||||
'freezing_rain': 'باران یخزن',
|
'freezing_rain': 'باران یخزن',
|
||||||
'heavy_rains': 'باران شدید',
|
'heavy_rains': 'باران شدید',
|
||||||
'snow': 'برف',
|
'snow': 'برف',
|
||||||
'thunderstorm': 'طوفان',
|
'thunderstorm': 'طوفان',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'تنظیمات',
|
'settings': 'تنظیمات',
|
||||||
'no_inter': 'عدم اتصال به اینترنت',
|
'no_inter': 'عدم اتصال به اینترنت',
|
||||||
'on_inter': 'برای دریافت تغییرات جوی اینترنت خود را روشن کنید.',
|
'on_inter': 'برای دریافت تغییرات جوی اینترنت خود را روشن کنید.',
|
||||||
'location': 'مکان',
|
'location': 'مکان',
|
||||||
'no_location':
|
'no_location':
|
||||||
'برای دریافت اطلاعات آب و هوا برای مکان فعلی، سرویس مکان را فعال کنید.',
|
'برای دریافت اطلاعات آب و هوا برای مکان فعلی، سرویس مکان را فعال کنید.',
|
||||||
'theme': 'پوسته',
|
'theme': 'پوسته',
|
||||||
'low': 'کم',
|
'low': 'کم',
|
||||||
'high': 'زیاد',
|
'high': 'زیاد',
|
||||||
'normal': 'عادی',
|
'normal': 'عادی',
|
||||||
'lat': 'عرض جغرافیایی',
|
'lat': 'عرض جغرافیایی',
|
||||||
'lon': 'طول جغرافیایی',
|
'lon': 'طول جغرافیایی',
|
||||||
'create': 'ایجاد',
|
'create': 'ایجاد',
|
||||||
'city': 'شهر',
|
'city': 'شهر',
|
||||||
'district': 'ناحیه',
|
'district': 'ناحیه',
|
||||||
'noWeatherCard': 'یک شهر اضافه کنید',
|
'noWeatherCard': 'یک شهر اضافه کنید',
|
||||||
'deletedCardWeather': 'حذف یک شهر',
|
'deletedCardWeather': 'حذف یک شهر',
|
||||||
'deletedCardWeatherQuery': 'آیا از حذف این شهر اطمینان دارید؟',
|
'deletedCardWeatherQuery': 'آیا از حذف این شهر اطمینان دارید؟',
|
||||||
'delete': 'حذف',
|
'delete': 'حذف',
|
||||||
'cancel': 'صرف نظر',
|
'cancel': 'صرف نظر',
|
||||||
'time': 'زمان در این شهر',
|
'time': 'زمان در این شهر',
|
||||||
'validateName': 'لطفاً نام را وارد کنید.',
|
'validateName': 'لطفاً نام را وارد کنید.',
|
||||||
'measurements': 'سیستم اندازه گیری',
|
'measurements': 'سیستم اندازه گیری',
|
||||||
'degrees': 'درجه',
|
'degrees': 'درجه',
|
||||||
'celsius': 'سلسیوس',
|
'celsius': 'سلسیوس',
|
||||||
'fahrenheit': 'فارنهایت',
|
'fahrenheit': 'فارنهایت',
|
||||||
'imperial': 'بریتانیایی',
|
'imperial': 'بریتانیایی',
|
||||||
'metric': 'متریک',
|
'metric': 'متریک',
|
||||||
'validateValue': 'لطفاً یک مقدار را وارد کنید.',
|
'validateValue': 'لطفاً یک مقدار را وارد کنید.',
|
||||||
'validateNumber': 'لطفاً یک مقدار معتبر وارد کنید.',
|
'validateNumber': 'لطفاً یک مقدار معتبر وارد کنید.',
|
||||||
'validate90': 'مقدار شما باید بین -۹۰ و ۹۰ باشد.',
|
'validate90': 'مقدار شما باید بین -۹۰ و ۹۰ باشد.',
|
||||||
'validate180': 'مقدار شما باید بین -۱۸۰ و ۱۸۰ باشد.',
|
'validate180': 'مقدار شما باید بین -۱۸۰ و ۱۸۰ باشد.',
|
||||||
'notifications': 'اعلانات',
|
'notifications': 'اعلانات',
|
||||||
'sunrise': 'طلوع آفتاب',
|
'sunrise': 'طلوع آفتاب',
|
||||||
'sunset': 'غروب آفتاب',
|
'sunset': 'غروب آفتاب',
|
||||||
'timeformat': 'نوع زمان',
|
'timeformat': 'نوع زمان',
|
||||||
'12': '۱۲ ساعته',
|
'12': '۱۲ ساعته',
|
||||||
'24': '۲۴ ساعته',
|
'24': '۲۴ ساعته',
|
||||||
'cloudcover': 'پوشش ابری',
|
'cloudcover': 'پوشش ابری',
|
||||||
'uvIndex': 'شاخص اشعه ماوراء بنفش',
|
'uvIndex': 'شاخص اشعه ماوراء بنفش',
|
||||||
'materialColor': 'رنگ های پویا',
|
'materialColor': 'رنگ های پویا',
|
||||||
'uvLow': 'کم',
|
'uvLow': 'کم',
|
||||||
'uvAverage': 'متوسط',
|
'uvAverage': 'متوسط',
|
||||||
'uvHigh': 'زیاد',
|
'uvHigh': 'زیاد',
|
||||||
'uvVeryHigh': 'خیلی زیاد',
|
'uvVeryHigh': 'خیلی زیاد',
|
||||||
'uvExtreme': 'شدید',
|
'uvExtreme': 'شدید',
|
||||||
'weatherMore': 'پیش بینی آب و هوا 12 روزه',
|
'weatherMore': 'پیش بینی آب و هوا 12 روزه',
|
||||||
'windgusts': 'وزش باد',
|
'windgusts': 'وزش باد',
|
||||||
'north': 'شمال',
|
'north': 'شمال',
|
||||||
'northeast': 'شمال شرقی',
|
'northeast': 'شمال شرقی',
|
||||||
'east': 'شرق',
|
'east': 'شرق',
|
||||||
'southeast': 'جنوب شرقی',
|
'southeast': 'جنوب شرقی',
|
||||||
'south': 'جنوب',
|
'south': 'جنوب',
|
||||||
'southwest': 'جنوب غربی',
|
'southwest': 'جنوب غربی',
|
||||||
'west': 'غرب',
|
'west': 'غرب',
|
||||||
'northwest': 'شمال غربی',
|
'northwest': 'شمال غربی',
|
||||||
'project': 'Project on',
|
'project': 'Project on',
|
||||||
'version': 'نگارش برنامه',
|
'version': 'نگارش برنامه',
|
||||||
'precipitationProbability': 'احتمال بارش',
|
'precipitationProbability': 'احتمال بارش',
|
||||||
'apparentTemperatureMin': 'حداقل دمای ظاهری',
|
'apparentTemperatureMin': 'حداقل دمای ظاهری',
|
||||||
'apparentTemperatureMax': 'حداکثر دمای ظاهری',
|
'apparentTemperatureMax': 'حداکثر دمای ظاهری',
|
||||||
'amoledTheme': 'پوسته امولد',
|
'amoledTheme': 'پوسته امولد',
|
||||||
'appearance': 'ظاهر',
|
'appearance': 'ظاهر',
|
||||||
'functions': 'کارکرد',
|
'functions': 'کارکرد',
|
||||||
'data': 'داده ها',
|
'data': 'داده ها',
|
||||||
'language': 'زبان',
|
'language': 'زبان',
|
||||||
'timeRange': 'فرکانس (بر حسب ساعت)',
|
'timeRange': 'فرکانس (بر حسب ساعت)',
|
||||||
'timeStart': 'زمان شروع',
|
'timeStart': 'زمان شروع',
|
||||||
'timeEnd': 'زمان پایان',
|
'timeEnd': 'زمان پایان',
|
||||||
'support': 'پشتیبانی',
|
'support': 'پشتیبانی',
|
||||||
'system': 'سیستم',
|
'system': 'سیستم',
|
||||||
'dark': 'تیره',
|
'dark': 'تیره',
|
||||||
'light': 'روشن',
|
'light': 'روشن',
|
||||||
'license': 'مجوز',
|
'license': 'مجوز',
|
||||||
'widget': 'ویجت',
|
'widget': 'ویجت',
|
||||||
'widgetBackground': 'پس زمینه ویجت',
|
'widgetBackground': 'پس زمینه ویجت',
|
||||||
'widgetText': 'متن ویجت',
|
'widgetText': 'متن ویجت',
|
||||||
'dewpoint': 'نقطه شبنم',
|
'dewpoint': 'نقطه شبنم',
|
||||||
'shortwaveRadiation': 'تابش موج کوتاه',
|
'shortwaveRadiation': 'تابش موج کوتاه',
|
||||||
'W/m2': 'W/m2',
|
'W/m2': 'W/m2',
|
||||||
'roundDegree': 'درجه گرد',
|
'roundDegree': 'درجه گرد',
|
||||||
'settings_full': 'تنظیمات',
|
'settings_full': 'تنظیمات',
|
||||||
'cities': 'شهر ها',
|
'cities': 'شهر ها',
|
||||||
'searchMethod': 'از جستجو یا موقعیت جغرافیایی استفاده کنید',
|
'searchMethod': 'از جستجو یا موقعیت جغرافیایی استفاده کنید',
|
||||||
'done': 'پایان',
|
'done': 'پایان',
|
||||||
'groups': 'گروههای ما',
|
'groups': 'گروههای ما',
|
||||||
'openMeteo': 'دادهها از Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'دادهها از Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'متغیرهای ساعتی هواشناسی',
|
'hourlyVariables': 'متغیرهای ساعتی هواشناسی',
|
||||||
'dailyVariables': 'متغیرهای روزانه هواشناسی',
|
'dailyVariables': 'متغیرهای روزانه هواشناسی',
|
||||||
'largeElement': 'نمایش هواشناسی بزرگ',
|
'largeElement': 'نمایش هواشناسی بزرگ',
|
||||||
'map': 'نقشه',
|
'map': 'نقشه',
|
||||||
'clearCacheStore': 'پاک کردن حافظه نهان',
|
'clearCacheStore': 'پاک کردن حافظه نهان',
|
||||||
'deletedCacheStore': 'در حال پاک کردن حافظه نهان',
|
'deletedCacheStore': 'در حال پاک کردن حافظه نهان',
|
||||||
'deletedCacheStoreQuery':
|
'deletedCacheStoreQuery':
|
||||||
'آیا مطمئن هستید که میخواهید حافظه نهان را پاک کنید؟',
|
'آیا مطمئن هستید که میخواهید حافظه نهان را پاک کنید؟',
|
||||||
'addWidget': 'افزودن ویجت',
|
'addWidget': 'افزودن ویجت',
|
||||||
'hideMap': 'پنهان کردن نقشه',
|
'hideMap': 'پنهان کردن نقشه',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,143 +1,142 @@
|
||||||
class FrFr {
|
class FrFr {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Démarrer',
|
'start': 'Démarrer',
|
||||||
'description':
|
'description':
|
||||||
'Application météo avec un pronostic à jour pour chaque heure, jour et semaine pour n\'importe quel endroit.',
|
'Application météo avec un pronostic à jour pour chaque heure, jour et semaine pour n\'importe quel endroit.',
|
||||||
'name': 'Météo',
|
'name': 'Météo',
|
||||||
'name2': 'Design pratique',
|
'name2': 'Design pratique',
|
||||||
'name3': 'Nous contacter',
|
'name3': 'Nous contacter',
|
||||||
'description2':
|
'description2':
|
||||||
'Toute la navigation est conçue pour interagir avec l\'application de la manière la plus pratique et la plus rapide possible.',
|
'Toute la navigation est conçue pour interagir avec l\'application de la manière la plus pratique et la plus rapide possible.',
|
||||||
'description3':
|
'description3':
|
||||||
'Si vous rencontrez des problèmes, veuillez nous contacter par e-mail ou dans les avis de l\'application.',
|
'Si vous rencontrez des problèmes, veuillez nous contacter par e-mail ou dans les avis de l\'application.',
|
||||||
'next': 'Suivant',
|
'next': 'Suivant',
|
||||||
'search': 'Rechercher...',
|
'search': 'Rechercher...',
|
||||||
'loading': 'Chargement...',
|
'loading': 'Chargement...',
|
||||||
'searchCity': 'Trouver votre ville',
|
'searchCity': 'Trouver votre ville',
|
||||||
'humidity': 'Humidité',
|
'humidity': 'Humidité',
|
||||||
'wind': 'Vent',
|
'wind': 'Vent',
|
||||||
'visibility': 'Visibilité',
|
'visibility': 'Visibilité',
|
||||||
'feels': 'Ressenti',
|
'feels': 'Ressenti',
|
||||||
'evaporation': 'Evaporation',
|
'evaporation': 'Evaporation',
|
||||||
'precipitation': 'Précipitation',
|
'precipitation': 'Précipitation',
|
||||||
'direction': 'Direction',
|
'direction': 'Direction',
|
||||||
'pressure': 'Pression',
|
'pressure': 'Pression',
|
||||||
'rain': 'Pluie',
|
'rain': 'Pluie',
|
||||||
'clear_sky': 'Ciel dégagé',
|
'clear_sky': 'Ciel dégagé',
|
||||||
'cloudy': 'Nuageux',
|
'cloudy': 'Nuageux',
|
||||||
'overcast': 'Couvert',
|
'overcast': 'Couvert',
|
||||||
'fog': 'Brouillard',
|
'fog': 'Brouillard',
|
||||||
'drizzle': 'Bruine',
|
'drizzle': 'Bruine',
|
||||||
'drizzling_rain': 'Brouillard givrant',
|
'drizzling_rain': 'Brouillard givrant',
|
||||||
'freezing_rain': 'Pluie verglaçante',
|
'freezing_rain': 'Pluie verglaçante',
|
||||||
'heavy_rains': 'Averses de pluie',
|
'heavy_rains': 'Averses de pluie',
|
||||||
'snow': 'Neige',
|
'snow': 'Neige',
|
||||||
'thunderstorm': 'Orage',
|
'thunderstorm': 'Orage',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Par.',
|
'settings': 'Par.',
|
||||||
'no_inter': 'Pas de réseau',
|
'no_inter': 'Pas de réseau',
|
||||||
'on_inter':
|
'on_inter':
|
||||||
'Connectez-vous à internet pour obtenir des données météorologiques.',
|
'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.',
|
||||||
'theme': 'Thème',
|
'theme': 'Thème',
|
||||||
'low': 'Bas',
|
'low': 'Bas',
|
||||||
'high': 'Haut',
|
'high': 'Haut',
|
||||||
'normal': 'Normal',
|
'normal': 'Normal',
|
||||||
'lat': 'Latitude',
|
'lat': 'Latitude',
|
||||||
'lon': 'Longitude',
|
'lon': 'Longitude',
|
||||||
'create': 'Créer',
|
'create': 'Créer',
|
||||||
'city': 'Ville',
|
'city': 'Ville',
|
||||||
'district': 'District',
|
'district': 'District',
|
||||||
'noWeatherCard': 'Ajouter une ville',
|
'noWeatherCard': 'Ajouter une ville',
|
||||||
'deletedCardWeather': 'Supprimer une ville',
|
'deletedCardWeather': 'Supprimer une ville',
|
||||||
'deletedCardWeatherQuery':
|
'deletedCardWeatherQuery': 'Êtes-vous sûr de vouloir supprimer la ville ?',
|
||||||
'Êtes-vous sûr de vouloir supprimer la ville ?',
|
'delete': 'Supprimer',
|
||||||
'delete': 'Supprimer',
|
'cancel': 'Annuler',
|
||||||
'cancel': 'Annuler',
|
'time': 'Heure locale',
|
||||||
'time': 'Heure locale',
|
'validateName': 'Veuillez saisir le nom',
|
||||||
'validateName': 'Veuillez saisir le nom',
|
'measurements': 'Système de mesures',
|
||||||
'measurements': 'Système de mesures',
|
'degrees': 'Degrés',
|
||||||
'degrees': 'Degrés',
|
'celsius': 'Celsius',
|
||||||
'celsius': 'Celsius',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'imperial': 'Imperial',
|
||||||
'imperial': 'Imperial',
|
'metric': 'Métrique',
|
||||||
'metric': 'Métrique',
|
'validateValue': 'Veuillez saisir une valeur',
|
||||||
'validateValue': 'Veuillez saisir une valeur',
|
'validateNumber': 'Veuillez saisir un numéro valide',
|
||||||
'validateNumber': 'Veuillez saisir un numéro valide',
|
'validate90': 'La valeur doit être comprise entre -90 et 90',
|
||||||
'validate90': 'La valeur doit être comprise entre -90 et 90',
|
'validate180': 'La valeur doit être comprise entre -180 et 180',
|
||||||
'validate180': 'La valeur doit être comprise entre -180 et 180',
|
'notifications': 'Notifications',
|
||||||
'notifications': 'Notifications',
|
'sunrise': 'Lever du soleil',
|
||||||
'sunrise': 'Lever du soleil',
|
'sunset': 'Coucher du soleil',
|
||||||
'sunset': 'Coucher du soleil',
|
'timeformat': 'Format horaire',
|
||||||
'timeformat': 'Format horaire',
|
'12': '12 heures',
|
||||||
'12': '12 heures',
|
'24': '24 heures',
|
||||||
'24': '24 heures',
|
'cloudcover': 'Сouverture nuageuse',
|
||||||
'cloudcover': 'Сouverture nuageuse',
|
'uvIndex': 'UV-indice',
|
||||||
'uvIndex': 'UV-indice',
|
'materialColor': 'Couleurs Dynamiques',
|
||||||
'materialColor': 'Couleurs Dynamiques',
|
'uvLow': 'Faible',
|
||||||
'uvLow': 'Faible',
|
'uvAverage': 'Modéré',
|
||||||
'uvAverage': 'Modéré',
|
'uvHigh': 'Élevé',
|
||||||
'uvHigh': 'Élevé',
|
'uvVeryHigh': 'Très élevé',
|
||||||
'uvVeryHigh': 'Très élevé',
|
'uvExtreme': 'Extrême',
|
||||||
'uvExtreme': 'Extrême',
|
'weatherMore': 'Prévisions météo pour 12 jours',
|
||||||
'weatherMore': 'Prévisions météo pour 12 jours',
|
'windgusts': 'Rafale',
|
||||||
'windgusts': 'Rafale',
|
'north': 'Nord',
|
||||||
'north': 'Nord',
|
'northeast': 'Nord-Est',
|
||||||
'northeast': 'Nord-Est',
|
'east': 'Est',
|
||||||
'east': 'Est',
|
'southeast': 'Sud-Est',
|
||||||
'southeast': 'Sud-Est',
|
'south': 'Sud',
|
||||||
'south': 'Sud',
|
'southwest': 'Sud-Ouest',
|
||||||
'southwest': 'Sud-Ouest',
|
'west': 'Ouest',
|
||||||
'west': 'Ouest',
|
'northwest': 'Nord-Ouest',
|
||||||
'northwest': 'Nord-Ouest',
|
'project': 'Project on',
|
||||||
'project': 'Project on',
|
'version': 'Application version',
|
||||||
'version': 'Application version',
|
'precipitationProbability': 'Probabilité de précipitation',
|
||||||
'precipitationProbability': 'Probabilité de précipitation',
|
'apparentTemperatureMin': 'Température apparente minimale',
|
||||||
'apparentTemperatureMin': 'Température apparente minimale',
|
'apparentTemperatureMax': 'Température apparente maximale',
|
||||||
'apparentTemperatureMax': 'Température apparente maximale',
|
'amoledTheme': 'AMOLED-thème',
|
||||||
'amoledTheme': 'AMOLED-thème',
|
'appearance': 'Apparence',
|
||||||
'appearance': 'Apparence',
|
'functions': 'Fonctions',
|
||||||
'functions': 'Fonctions',
|
'data': 'Données',
|
||||||
'data': 'Données',
|
'language': 'Langue',
|
||||||
'language': 'Langue',
|
'timeRange': 'Fréquence (en heures)',
|
||||||
'timeRange': 'Fréquence (en heures)',
|
'timeStart': 'Heure de début',
|
||||||
'timeStart': 'Heure de début',
|
'timeEnd': 'Heure de fin',
|
||||||
'timeEnd': 'Heure de fin',
|
'support': 'Support',
|
||||||
'support': 'Support',
|
'system': 'Système',
|
||||||
'system': 'Système',
|
'dark': 'Sombre',
|
||||||
'dark': 'Sombre',
|
'light': 'Clair',
|
||||||
'light': 'Clair',
|
'license': 'Licences',
|
||||||
'license': 'Licences',
|
'widget': 'Widget',
|
||||||
'widget': 'Widget',
|
'widgetBackground': 'Fond du widget',
|
||||||
'widgetBackground': 'Fond du widget',
|
'widgetText': 'Texte du widget',
|
||||||
'widgetText': 'Texte du widget',
|
'dewpoint': 'Point de rosée',
|
||||||
'dewpoint': 'Point de rosée',
|
'shortwaveRadiation': 'Rayonnement à ondes courtes',
|
||||||
'shortwaveRadiation': 'Rayonnement à ondes courtes',
|
'roundDegree': 'Arrondir les degrés',
|
||||||
'roundDegree': 'Arrondir les degrés',
|
'settings_full': 'Paramètres',
|
||||||
'settings_full': 'Paramètres',
|
'cities': 'Villes',
|
||||||
'cities': 'Villes',
|
'searchMethod': 'Utilisez la recherche ou la géolocalisation',
|
||||||
'searchMethod': 'Utilisez la recherche ou la géolocalisation',
|
'done': 'Terminé',
|
||||||
'done': 'Terminé',
|
'groups': 'Nos groupes',
|
||||||
'groups': 'Nos groupes',
|
'openMeteo': 'Données de Open-Meteo (CC-BY 4.0)',
|
||||||
'openMeteo': 'Données de Open-Meteo (CC-BY 4.0)',
|
'hourlyVariables': 'Variables météorologiques horaires',
|
||||||
'hourlyVariables': 'Variables météorologiques horaires',
|
'dailyVariables': 'Variables météorologiques quotidiennes',
|
||||||
'dailyVariables': 'Variables météorologiques quotidiennes',
|
'largeElement': 'Affichage météo grand format',
|
||||||
'largeElement': 'Affichage météo grand format',
|
'map': 'Carte',
|
||||||
'map': 'Carte',
|
'clearCacheStore': 'Effacer le cache',
|
||||||
'clearCacheStore': 'Effacer le cache',
|
'deletedCacheStore': 'Effacement du cache',
|
||||||
'deletedCacheStore': 'Effacement du cache',
|
'deletedCacheStoreQuery': 'Êtes-vous sûr de vouloir effacer le cache?',
|
||||||
'deletedCacheStoreQuery': 'Êtes-vous sûr de vouloir effacer le cache?',
|
'addWidget': 'Ajouter un widget',
|
||||||
'addWidget': 'Ajouter un widget',
|
'hideMap': 'Cacher la carte',
|
||||||
'hideMap': 'Cacher la carte',
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,144 +1,144 @@
|
||||||
class GaIe {
|
class GaIe {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Tosaigh',
|
'start': 'Tosaigh',
|
||||||
'description':
|
'description':
|
||||||
'Aip aimsire le réamhaisnéis láithreach do gach uair, lá, agus seachtain do gach áit.',
|
'Aip aimsire le réamhaisnéis láithreach do gach uair, lá, agus seachtain do gach áit.',
|
||||||
'name': 'Aimsir',
|
'name': 'Aimsir',
|
||||||
'name2': 'Dearadh Éasca',
|
'name2': 'Dearadh Éasca',
|
||||||
'name3': 'Déan teagmháil linn',
|
'name3': 'Déan teagmháil linn',
|
||||||
'description2':
|
'description2':
|
||||||
'Tá gach treoir déanta chun éascaíocht agus gniomhachtú a dhéanamh leis an aip chomh héasca agus chomh tapa agus is féidir.',
|
'Tá gach treoir déanta chun éascaíocht agus gniomhachtú a dhéanamh leis an aip chomh héasca agus chomh tapa agus is féidir.',
|
||||||
'description3':
|
'description3':
|
||||||
'Má tá fadhb ar bith agat, déan teagmháil linn trí Ríomhphost nó trí phlé an aip.',
|
'Má tá fadhb ar bith agat, déan teagmháil linn trí Ríomhphost nó trí phlé an aip.',
|
||||||
'next': 'Ar Aghaidh',
|
'next': 'Ar Aghaidh',
|
||||||
'search': 'Cuardaigh...',
|
'search': 'Cuardaigh...',
|
||||||
'loading': 'Ag Lódáil...',
|
'loading': 'Ag Lódáil...',
|
||||||
'searchCity': 'Aimsigh do chathair',
|
'searchCity': 'Aimsigh do chathair',
|
||||||
'humidity': 'Measarthaíocht Géimneachta',
|
'humidity': 'Measarthaíocht Géimneachta',
|
||||||
'wind': 'Gaoth',
|
'wind': 'Gaoth',
|
||||||
'visibility': 'Radharc',
|
'visibility': 'Radharc',
|
||||||
'feels': 'Brath',
|
'feels': 'Brath',
|
||||||
'evaporation': 'Buirtheasaiteacht',
|
'evaporation': 'Buirtheasaiteacht',
|
||||||
'precipitation': 'Tuirlingt',
|
'precipitation': 'Tuirlingt',
|
||||||
'direction': 'Treorach',
|
'direction': 'Treorach',
|
||||||
'pressure': 'Brú',
|
'pressure': 'Brú',
|
||||||
'rain': 'Fearthainn',
|
'rain': 'Fearthainn',
|
||||||
'clear_sky': 'Spéir Ghlán',
|
'clear_sky': 'Spéir Ghlán',
|
||||||
'cloudy': 'Scamallach',
|
'cloudy': 'Scamallach',
|
||||||
'overcast': 'Tromscamallach',
|
'overcast': 'Tromscamallach',
|
||||||
'fog': 'Ceo',
|
'fog': 'Ceo',
|
||||||
'drizzle': 'Táilliú',
|
'drizzle': 'Táilliú',
|
||||||
'drizzling_rain': 'Táilliú Ag Fuarthainn',
|
'drizzling_rain': 'Táilliú Ag Fuarthainn',
|
||||||
'freezing_rain': 'Tuirlingt Fuara',
|
'freezing_rain': 'Tuirlingt Fuara',
|
||||||
'heavy_rains': 'Scáil fearthainne',
|
'heavy_rains': 'Scáil fearthainne',
|
||||||
'snow': 'Sneachta',
|
'snow': 'Sneachta',
|
||||||
'thunderstorm': 'Tornaí',
|
'thunderstorm': 'Tornaí',
|
||||||
'kph': 'km/u',
|
'kph': 'km/u',
|
||||||
'mph': 'mi/u',
|
'mph': 'mi/u',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'míle',
|
'mi': 'míle',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'úinse',
|
'inch': 'úinse',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Socrú',
|
'settings': 'Socrú',
|
||||||
'no_inter': 'Gan Idirlíon',
|
'no_inter': 'Gan Idirlíon',
|
||||||
'on_inter': 'Cuir ar Idirlíon chun sonraí aeráide a fháil.',
|
'on_inter': 'Cuir ar Idirlíon chun sonraí aeráide a fháil.',
|
||||||
'location': 'Áit',
|
'location': 'Áit',
|
||||||
'no_location':
|
'no_location':
|
||||||
'Cumasaigh seirbhís na háite chun sonraí aimsire a fháil don áit reatha.',
|
'Cumasaigh seirbhís na háite chun sonraí aimsire a fháil don áit reatha.',
|
||||||
'theme': 'Téama',
|
'theme': 'Téama',
|
||||||
'low': 'Íseal',
|
'low': 'Íseal',
|
||||||
'high': 'Ard',
|
'high': 'Ard',
|
||||||
'normal': 'Gnáth',
|
'normal': 'Gnáth',
|
||||||
'lat': 'Éilt',
|
'lat': 'Éilt',
|
||||||
'lon': 'Long',
|
'lon': 'Long',
|
||||||
'create': 'Cruthaigh',
|
'create': 'Cruthaigh',
|
||||||
'city': 'Cathair',
|
'city': 'Cathair',
|
||||||
'district': 'Ceantar',
|
'district': 'Ceantar',
|
||||||
'noWeatherCard': 'Cuir cathair leis',
|
'noWeatherCard': 'Cuir cathair leis',
|
||||||
'deletedCardWeather': 'Áireamh cathair á scriosadh',
|
'deletedCardWeather': 'Áireamh cathair á scriosadh',
|
||||||
'deletedCardWeatherQuery':
|
'deletedCardWeatherQuery':
|
||||||
'An bhfuil tú cinnte go bhfuil tú ag iarraidh an chathair a scriosadh?',
|
'An bhfuil tú cinnte go bhfuil tú ag iarraidh an chathair a scriosadh?',
|
||||||
'delete': 'Scrios',
|
'delete': 'Scrios',
|
||||||
'cancel': 'Cealaigh',
|
'cancel': 'Cealaigh',
|
||||||
'time': 'Am sa chathair',
|
'time': 'Am sa chathair',
|
||||||
'validateName': 'Cuir ainm isteach, le do thoil',
|
'validateName': 'Cuir ainm isteach, le do thoil',
|
||||||
'measurements': 'Córas Mheáchain',
|
'measurements': 'Córas Mheáchain',
|
||||||
'degrees': 'Céim',
|
'degrees': 'Céim',
|
||||||
'celsius': 'Céim Celsius',
|
'celsius': 'Céim Celsius',
|
||||||
'fahrenheit': 'Céim Fahrenheit',
|
'fahrenheit': 'Céim Fahrenheit',
|
||||||
'imperial': 'Impireach',
|
'imperial': 'Impireach',
|
||||||
'metric': 'Mheitric',
|
'metric': 'Mheitric',
|
||||||
'validateValue': 'Cuir luach isteach, le do thoil',
|
'validateValue': 'Cuir luach isteach, le do thoil',
|
||||||
'validateNumber': 'Cuir uimhir bailí isteach, le do thoil',
|
'validateNumber': 'Cuir uimhir bailí isteach, le do thoil',
|
||||||
'validate90': 'Caithfidh luach a bheith idir -90 agus 90',
|
'validate90': 'Caithfidh luach a bheith idir -90 agus 90',
|
||||||
'validate180': 'Caithfidh luach a bheith idir -180 agus 180',
|
'validate180': 'Caithfidh luach a bheith idir -180 agus 180',
|
||||||
'notifications': 'Fógraí',
|
'notifications': 'Fógraí',
|
||||||
'sunrise': 'Éirí na Gréine',
|
'sunrise': 'Éirí na Gréine',
|
||||||
'sunset': 'Dul faoi na Gréine',
|
'sunset': 'Dul faoi na Gréine',
|
||||||
'timeformat': 'Formáid Am',
|
'timeformat': 'Formáid Am',
|
||||||
'12': '12-uair',
|
'12': '12-uair',
|
||||||
'24': '24-uair',
|
'24': '24-uair',
|
||||||
'cloudcover': 'Clúdach Scamall',
|
'cloudcover': 'Clúdach Scamall',
|
||||||
'uvIndex': 'Indéacs UV',
|
'uvIndex': 'Indéacs UV',
|
||||||
'materialColor': 'Dathanna Dinimiciúla',
|
'materialColor': 'Dathanna Dinimiciúla',
|
||||||
'uvLow': 'Íseal',
|
'uvLow': 'Íseal',
|
||||||
'uvAverage': 'Meánach',
|
'uvAverage': 'Meánach',
|
||||||
'uvHigh': 'Ard',
|
'uvHigh': 'Ard',
|
||||||
'uvVeryHigh': 'An-Árd',
|
'uvVeryHigh': 'An-Árd',
|
||||||
'uvExtreme': 'Éachtach',
|
'uvExtreme': 'Éachtach',
|
||||||
'weatherMore': 'Réamhaisnéis Aimsire 12 lá',
|
'weatherMore': 'Réamhaisnéis Aimsire 12 lá',
|
||||||
'windgusts': 'Tonna Gaoithe',
|
'windgusts': 'Tonna Gaoithe',
|
||||||
'north': 'Tuaisceart',
|
'north': 'Tuaisceart',
|
||||||
'northeast': 'Tuaisceart-Thoir',
|
'northeast': 'Tuaisceart-Thoir',
|
||||||
'east': 'Thoir',
|
'east': 'Thoir',
|
||||||
'southeast': 'Deisceart-Thoir',
|
'southeast': 'Deisceart-Thoir',
|
||||||
'south': 'Deisceart',
|
'south': 'Deisceart',
|
||||||
'southwest': 'Deisceart-Iarthar',
|
'southwest': 'Deisceart-Iarthar',
|
||||||
'west': 'Iarthar',
|
'west': 'Iarthar',
|
||||||
'northwest': 'Tuaisceart-Iarthar',
|
'northwest': 'Tuaisceart-Iarthar',
|
||||||
'project': 'Tionscadal ar siúl',
|
'project': 'Tionscadal ar siúl',
|
||||||
'version': 'Leagan Feidhmchláir',
|
'version': 'Leagan Feidhmchláir',
|
||||||
'precipitationProbability': 'Ionsaíocht Tuirlingt',
|
'precipitationProbability': 'Ionsaíocht Tuirlingt',
|
||||||
'apparentTemperatureMin': 'Teocht Shamhlaithe Ísle',
|
'apparentTemperatureMin': 'Teocht Shamhlaithe Ísle',
|
||||||
'apparentTemperatureMax': 'Teocht Shamhlaithe Uachtarach',
|
'apparentTemperatureMax': 'Teocht Shamhlaithe Uachtarach',
|
||||||
'amoledTheme': 'Téama AMOLED',
|
'amoledTheme': 'Téama AMOLED',
|
||||||
'appearance': 'Amharc',
|
'appearance': 'Amharc',
|
||||||
'functions': 'Feidhmeanna',
|
'functions': 'Feidhmeanna',
|
||||||
'data': 'Sonraí',
|
'data': 'Sonraí',
|
||||||
'language': 'Teanga',
|
'language': 'Teanga',
|
||||||
'timeRange': 'Raon Am (i n-uaireanta)',
|
'timeRange': 'Raon Am (i n-uaireanta)',
|
||||||
'timeStart': 'Tús Am',
|
'timeStart': 'Tús Am',
|
||||||
'timeEnd': 'Críoch Am',
|
'timeEnd': 'Críoch Am',
|
||||||
'support': 'Tacaíocht',
|
'support': 'Tacaíocht',
|
||||||
'system': 'Córas',
|
'system': 'Córas',
|
||||||
'dark': 'Téama Dorcha',
|
'dark': 'Téama Dorcha',
|
||||||
'light': 'Téama Soiléir',
|
'light': 'Téama Soiléir',
|
||||||
'license': 'Ceadúnas',
|
'license': 'Ceadúnas',
|
||||||
'widget': 'Rón',
|
'widget': 'Rón',
|
||||||
'widgetBackground': 'Cúlra an Rón',
|
'widgetBackground': 'Cúlra an Rón',
|
||||||
'widgetText': 'Téacs an Rón',
|
'widgetText': 'Téacs an Rón',
|
||||||
'dewpoint': 'Poinnte Dé',
|
'dewpoint': 'Poinnte Dé',
|
||||||
'shortwaveRadiation': 'Fuinneamh Ghearrfhad',
|
'shortwaveRadiation': 'Fuinneamh Ghearrfhad',
|
||||||
'W/m2': 'W/m2',
|
'W/m2': 'W/m2',
|
||||||
'roundDegree': 'Timpeall na Gráid',
|
'roundDegree': 'Timpeall na Gráid',
|
||||||
'settings_full': 'Socruithe',
|
'settings_full': 'Socruithe',
|
||||||
'cities': 'Cathracha',
|
'cities': 'Cathracha',
|
||||||
'searchMethod': 'Úsáid ceangal nó geolocáid',
|
'searchMethod': 'Úsáid ceangal nó geolocáid',
|
||||||
'done': 'Críochnaithe',
|
'done': 'Críochnaithe',
|
||||||
'groups': 'Ár ngrúpaí',
|
'groups': 'Ár ngrúpaí',
|
||||||
'openMeteo': 'Sonraí ó Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Sonraí ó Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Athrógacha aimsire uaireanta',
|
'hourlyVariables': 'Athrógacha aimsire uaireanta',
|
||||||
'dailyVariables': 'Athrógacha aimsire laethúla',
|
'dailyVariables': 'Athrógacha aimsire laethúla',
|
||||||
'largeElement': 'Taispeáint mór na haimsire',
|
'largeElement': 'Taispeáint mór na haimsire',
|
||||||
'map': 'Léarscáil',
|
'map': 'Léarscáil',
|
||||||
'clearCacheStore': 'Glan taisce',
|
'clearCacheStore': 'Glan taisce',
|
||||||
'deletedCacheStore': 'Ag glanadh an taisce',
|
'deletedCacheStore': 'Ag glanadh an taisce',
|
||||||
'deletedCacheStoreQuery':
|
'deletedCacheStoreQuery':
|
||||||
'An bhfuil tú cinnte gur mian leat an taisce a ghlanadh?',
|
'An bhfuil tú cinnte gur mian leat an taisce a ghlanadh?',
|
||||||
'addWidget': 'Cuir giuirléid leis',
|
'addWidget': 'Cuir giuirléid leis',
|
||||||
'hideMap': 'Folaigh léarscáil',
|
'hideMap': 'Folaigh léarscáil',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,140 +1,140 @@
|
||||||
class HiIn {
|
class HiIn {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'शुरू करें',
|
'start': 'शुरू करें',
|
||||||
'description':
|
'description':
|
||||||
'प्रति घंटे, दिन और सप्ताह के लिए किसी भी स्थान के लिए आधुनिक पूर्वानुमान के साथ मौसम एप्लिकेशन।',
|
'प्रति घंटे, दिन और सप्ताह के लिए किसी भी स्थान के लिए आधुनिक पूर्वानुमान के साथ मौसम एप्लिकेशन।',
|
||||||
'name': 'मौसम',
|
'name': 'मौसम',
|
||||||
'name2': 'आसान डिजाइन',
|
'name2': 'आसान डिजाइन',
|
||||||
'name3': 'हमे संपर्क करें',
|
'name3': 'हमे संपर्क करें',
|
||||||
'description2':
|
'description2':
|
||||||
'सभी नेविगेशन को इस प्रकार तैयार किया गया है ताकि आप एप्लिकेशन के साथ सर्वोत्तम रूप से और तेजी से संवाद कर सकें।',
|
'सभी नेविगेशन को इस प्रकार तैयार किया गया है ताकि आप एप्लिकेशन के साथ सर्वोत्तम रूप से और तेजी से संवाद कर सकें।',
|
||||||
'description3':
|
'description3':
|
||||||
'यदि आपको कोई समस्या आती है, तो कृपया हमसे ईमेल या एप्लिकेशन समीक्षा के माध्यम से संपर्क करें।',
|
'यदि आपको कोई समस्या आती है, तो कृपया हमसे ईमेल या एप्लिकेशन समीक्षा के माध्यम से संपर्क करें।',
|
||||||
'next': 'आगे',
|
'next': 'आगे',
|
||||||
'search': 'खोजें...',
|
'search': 'खोजें...',
|
||||||
'loading': 'लोड हो रहा है...',
|
'loading': 'लोड हो रहा है...',
|
||||||
'searchCity': 'अपना शहर खोजें',
|
'searchCity': 'अपना शहर खोजें',
|
||||||
'humidity': 'नमी',
|
'humidity': 'नमी',
|
||||||
'wind': 'हवा',
|
'wind': 'हवा',
|
||||||
'visibility': 'दृश्यता',
|
'visibility': 'दृश्यता',
|
||||||
'feels': 'अनुभव',
|
'feels': 'अनुभव',
|
||||||
'evaporation': 'वाष्पीकरण',
|
'evaporation': 'वाष्पीकरण',
|
||||||
'precipitation': 'वर्षा',
|
'precipitation': 'वर्षा',
|
||||||
'direction': 'दिशा',
|
'direction': 'दिशा',
|
||||||
'pressure': 'दबाव',
|
'pressure': 'दबाव',
|
||||||
'rain': 'बारिश',
|
'rain': 'बारिश',
|
||||||
'clear_sky': 'साफ आकाश',
|
'clear_sky': 'साफ आकाश',
|
||||||
'cloudy': 'मेघपाली',
|
'cloudy': 'मेघपाली',
|
||||||
'overcast': 'बादलबस्ती',
|
'overcast': 'बादलबस्ती',
|
||||||
'fog': 'कोहरा',
|
'fog': 'कोहरा',
|
||||||
'drizzle': 'बूंदाबांदी',
|
'drizzle': 'बूंदाबांदी',
|
||||||
'drizzling_rain': 'हिमवृष्टि',
|
'drizzling_rain': 'हिमवृष्टि',
|
||||||
'freezing_rain': 'हिमस्खलन',
|
'freezing_rain': 'हिमस्खलन',
|
||||||
'heavy_rains': 'बारिश की बौछारें',
|
'heavy_rains': 'बारिश की बौछारें',
|
||||||
'snow': 'बर्फबारी',
|
'snow': 'बर्फबारी',
|
||||||
'thunderstorm': 'बिजली चमक',
|
'thunderstorm': 'बिजली चमक',
|
||||||
'kph': 'किमी/घंटा',
|
'kph': 'किमी/घंटा',
|
||||||
'mph': 'मील/घंटा',
|
'mph': 'मील/घंटा',
|
||||||
'm/s': 'मी/से',
|
'm/s': 'मी/से',
|
||||||
'mmHg': 'मिमी एचजी',
|
'mmHg': 'मिमी एचजी',
|
||||||
'mi': 'मील',
|
'mi': 'मील',
|
||||||
'km': 'किमी',
|
'km': 'किमी',
|
||||||
'inch': 'इंच',
|
'inch': 'इंच',
|
||||||
'mm': 'मिलीमीटर',
|
'mm': 'मिलीमीटर',
|
||||||
'hPa': 'हेक्टोपास्कल',
|
'hPa': 'हेक्टोपास्कल',
|
||||||
'settings': 'सेटिंग्स',
|
'settings': 'सेटिंग्स',
|
||||||
'no_inter': 'कोई इंटरनेट नहीं है',
|
'no_inter': 'कोई इंटरनेट नहीं है',
|
||||||
'on_inter': 'मौसमी आंकड़े प्राप्त करने के लिए इंटरनेट को चालू करें।',
|
'on_inter': 'मौसमी आंकड़े प्राप्त करने के लिए इंटरनेट को चालू करें।',
|
||||||
'location': 'स्थान',
|
'location': 'स्थान',
|
||||||
'no_location': 'वर्तमान स्थान के लिए मौसम डेटा प्राप्त करने के',
|
'no_location': 'वर्तमान स्थान के लिए मौसम डेटा प्राप्त करने के',
|
||||||
'theme': 'थीम',
|
'theme': 'थीम',
|
||||||
'low': 'निम्न',
|
'low': 'निम्न',
|
||||||
'high': 'उच्च',
|
'high': 'उच्च',
|
||||||
'normal': 'सामान्य',
|
'normal': 'सामान्य',
|
||||||
'lat': 'अक्षांश',
|
'lat': 'अक्षांश',
|
||||||
'lon': 'देशांतर',
|
'lon': 'देशांतर',
|
||||||
'create': 'बनाएँ',
|
'create': 'बनाएँ',
|
||||||
'city': 'शहर',
|
'city': 'शहर',
|
||||||
'district': 'जिला',
|
'district': 'जिला',
|
||||||
'noWeatherCard': 'शहर जोड़ें',
|
'noWeatherCard': 'शहर जोड़ें',
|
||||||
'deletedCardWeather': 'शहर हटाना',
|
'deletedCardWeather': 'शहर हटाना',
|
||||||
'deletedCardWeatherQuery': 'क्या आप वाकई शहर को हटाना चाहते हैं?',
|
'deletedCardWeatherQuery': 'क्या आप वाकई शहर को हटाना चाहते हैं?',
|
||||||
'delete': 'हटाएँ',
|
'delete': 'हटाएँ',
|
||||||
'cancel': 'रद्द करें',
|
'cancel': 'रद्द करें',
|
||||||
'time': 'शहर में समय',
|
'time': 'शहर में समय',
|
||||||
'validateName': 'कृपया नाम दर्ज करें',
|
'validateName': 'कृपया नाम दर्ज करें',
|
||||||
'measurements': 'मापन प्रणाली',
|
'measurements': 'मापन प्रणाली',
|
||||||
'degrees': 'डिग्री',
|
'degrees': 'डिग्री',
|
||||||
'celsius': 'सेल्सियस',
|
'celsius': 'सेल्सियस',
|
||||||
'fahrenheit': 'फ़ारेनहाइट',
|
'fahrenheit': 'फ़ारेनहाइट',
|
||||||
'imperial': 'इम्पीरियल',
|
'imperial': 'इम्पीरियल',
|
||||||
'metric': 'मीट्रिक',
|
'metric': 'मीट्रिक',
|
||||||
'validateValue': 'कृपया मान दर्ज करें',
|
'validateValue': 'कृपया मान दर्ज करें',
|
||||||
'validateNumber': 'कृपया एक मान्य संख्या दर्ज करें',
|
'validateNumber': 'कृपया एक मान्य संख्या दर्ज करें',
|
||||||
'validate90': 'मान -९० और ९० के बीच होना चाहिए',
|
'validate90': 'मान -९० और ९० के बीच होना चाहिए',
|
||||||
'validate180': 'मान -१८० और १८० के बीच होना चाहिए',
|
'validate180': 'मान -१८० और १८० के बीच होना चाहिए',
|
||||||
'notifications': 'सूचनाएं',
|
'notifications': 'सूचनाएं',
|
||||||
'sunrise': 'सूर्योदय',
|
'sunrise': 'सूर्योदय',
|
||||||
'sunset': 'सूर्यास्त',
|
'sunset': 'सूर्यास्त',
|
||||||
'timeformat': 'समय प्रारूप',
|
'timeformat': 'समय प्रारूप',
|
||||||
'12': '१२ घंटा',
|
'12': '१२ घंटा',
|
||||||
'24': '२४ घंटा',
|
'24': '२४ घंटा',
|
||||||
'cloudcover': 'बादलों का कवर',
|
'cloudcover': 'बादलों का कवर',
|
||||||
'uvIndex': 'यूवी-सूचकांक',
|
'uvIndex': 'यूवी-सूचकांक',
|
||||||
'materialColor': 'गतिशील रंग',
|
'materialColor': 'गतिशील रंग',
|
||||||
'uvLow': 'कम',
|
'uvLow': 'कम',
|
||||||
'uvAverage': 'माध्यम',
|
'uvAverage': 'माध्यम',
|
||||||
'uvHigh': 'उच्च',
|
'uvHigh': 'उच्च',
|
||||||
'uvVeryHigh': 'बहुत उच्च',
|
'uvVeryHigh': 'बहुत उच्च',
|
||||||
'uvExtreme': 'अत्यधिक',
|
'uvExtreme': 'अत्यधिक',
|
||||||
'weatherMore': '१२ - दिवसीय मौसम पूर',
|
'weatherMore': '१२ - दिवसीय मौसम पूर',
|
||||||
'windgusts': 'गुस्त',
|
'windgusts': 'गुस्त',
|
||||||
'north': 'उत्तर',
|
'north': 'उत्तर',
|
||||||
'northeast': 'उत्तर-पूर्व',
|
'northeast': 'उत्तर-पूर्व',
|
||||||
'east': 'पूर्व',
|
'east': 'पूर्व',
|
||||||
'southeast': 'दक्षिण-पूर्व',
|
'southeast': 'दक्षिण-पूर्व',
|
||||||
'south': 'दक्षिण',
|
'south': 'दक्षिण',
|
||||||
'southwest': 'दक्षिण-पश्चिम',
|
'southwest': 'दक्षिण-पश्चिम',
|
||||||
'west': 'पश्चिम',
|
'west': 'पश्चिम',
|
||||||
'northwest': 'उत्तर-पश्चिम',
|
'northwest': 'उत्तर-पश्चिम',
|
||||||
'project': 'परियोजना पर',
|
'project': 'परियोजना पर',
|
||||||
'version': 'एप्लिकेशन संस्करण',
|
'version': 'एप्लिकेशन संस्करण',
|
||||||
'precipitationProbability': 'वर्षा संभावना',
|
'precipitationProbability': 'वर्षा संभावना',
|
||||||
'apparentTemperatureMin': 'न्यूनतम प्रतीत तापमान',
|
'apparentTemperatureMin': 'न्यूनतम प्रतीत तापमान',
|
||||||
'apparentTemperatureMax': 'अधिकतम प्रतीत तापमान',
|
'apparentTemperatureMax': 'अधिकतम प्रतीत तापमान',
|
||||||
'amoledTheme': 'AMOLED थीम',
|
'amoledTheme': 'AMOLED थीम',
|
||||||
'appearance': 'दिखावट',
|
'appearance': 'दिखावट',
|
||||||
'functions': 'कार्य',
|
'functions': 'कार्य',
|
||||||
'data': 'डेटा',
|
'data': 'डेटा',
|
||||||
'language': 'भाषा',
|
'language': 'भाषा',
|
||||||
'timeRange': 'अवधि (घंटों में)',
|
'timeRange': 'अवधि (घंटों में)',
|
||||||
'timeStart': 'प्रारंभ समय',
|
'timeStart': 'प्रारंभ समय',
|
||||||
'timeEnd': 'समाप्ति समय',
|
'timeEnd': 'समाप्ति समय',
|
||||||
'support': 'समर्थन',
|
'support': 'समर्थन',
|
||||||
'system': 'सिस्टम',
|
'system': 'सिस्टम',
|
||||||
'dark': 'डार्क',
|
'dark': 'डार्क',
|
||||||
'light': 'लाइट',
|
'light': 'लाइट',
|
||||||
'license': 'लाइसेंस',
|
'license': 'लाइसेंस',
|
||||||
'widget': 'विजेट',
|
'widget': 'विजेट',
|
||||||
'widgetBackground': 'विजेट कि पृष्ठभूमि',
|
'widgetBackground': 'विजेट कि पृष्ठभूमि',
|
||||||
'widgetText': 'विजेट पाठ',
|
'widgetText': 'विजेट पाठ',
|
||||||
'dewpoint': 'बर्फ़ के बिंदु',
|
'dewpoint': 'बर्फ़ के बिंदु',
|
||||||
'shortwaveRadiation': 'शॉर्टवेव विकिरण',
|
'shortwaveRadiation': 'शॉर्टवेव विकिरण',
|
||||||
'roundDegree': 'डिग्री गोली मारें',
|
'roundDegree': 'डिग्री गोली मारें',
|
||||||
'settings_full': 'सेटिंग्स',
|
'settings_full': 'सेटिंग्स',
|
||||||
'cities': 'शहर',
|
'cities': 'शहर',
|
||||||
'searchMethod': 'खोज या स्थानगति का उपयोग करें',
|
'searchMethod': 'खोज या स्थानगति का उपयोग करें',
|
||||||
'done': 'किया',
|
'done': 'किया',
|
||||||
'groups': 'हमारे समूह',
|
'groups': 'हमारे समूह',
|
||||||
'openMeteo': 'Open-Meteo से डेटा (CC-BY 4.0)',
|
'openMeteo': 'Open-Meteo से डेटा (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'घंटेवार मौसम चर',
|
'hourlyVariables': 'घंटेवार मौसम चर',
|
||||||
'dailyVariables': 'दैनिक मौसम चर',
|
'dailyVariables': 'दैनिक मौसम चर',
|
||||||
'largeElement': 'बड़े मौसम का प्रदर्शन',
|
'largeElement': 'बड़े मौसम का प्रदर्शन',
|
||||||
'map': 'मानचित्र',
|
'map': 'मानचित्र',
|
||||||
'clearCacheStore': 'कैश साफ़ करें',
|
'clearCacheStore': 'कैश साफ़ करें',
|
||||||
'deletedCacheStore': 'कैश साफ़ हो रहा है',
|
'deletedCacheStore': 'कैश साफ़ हो रहा है',
|
||||||
'deletedCacheStoreQuery': 'क्या आप वाकई कैश साफ़ करना चाहते हैं?',
|
'deletedCacheStoreQuery': 'क्या आप वाकई कैश साफ़ करना चाहते हैं?',
|
||||||
'addWidget': 'विजेट जोड़ें',
|
'addWidget': 'विजेट जोड़ें',
|
||||||
'hideMap': 'मानचित्र छिपाएँ',
|
'hideMap': 'मानचित्र छिपाएँ',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,143 +1,142 @@
|
||||||
class HuHu {
|
class HuHu {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Kezdés',
|
'start': 'Kezdés',
|
||||||
'description':
|
'description':
|
||||||
'Időjárás alkalmazás a friss óránkénti, napi és heti előrejelzéssel bármely helyszínre.',
|
'Időjárás alkalmazás a friss óránkénti, napi és heti előrejelzéssel bármely helyszínre.',
|
||||||
'name': 'Időjárás',
|
'name': 'Időjárás',
|
||||||
'name2': 'Kényelmes tervezés',
|
'name2': 'Kényelmes tervezés',
|
||||||
'name3': 'Kapcsolatfelvétel velünk',
|
'name3': 'Kapcsolatfelvétel velünk',
|
||||||
'description2':
|
'description2':
|
||||||
'Az összes navigáció úgy van kialakítva, hogy maximálisan kényelmes és gyors legyen az alkalmazással való interakció.',
|
'Az összes navigáció úgy van kialakítva, hogy maximálisan kényelmes és gyors legyen az alkalmazással való interakció.',
|
||||||
'description3':
|
'description3':
|
||||||
'Ha bármilyen problémája adódik, kérjük, lépjen kapcsolatba velünk e-mailben vagy az alkalmazás értékeléseiben.',
|
'Ha bármilyen problémája adódik, kérjük, lépjen kapcsolatba velünk e-mailben vagy az alkalmazás értékeléseiben.',
|
||||||
'next': 'Tovább',
|
'next': 'Tovább',
|
||||||
'search': 'Keresés...',
|
'search': 'Keresés...',
|
||||||
'loading': 'Betöltés...',
|
'loading': 'Betöltés...',
|
||||||
'searchCity': 'Keresse meg a városát',
|
'searchCity': 'Keresse meg a városát',
|
||||||
'humidity': 'Páratartalom',
|
'humidity': 'Páratartalom',
|
||||||
'wind': 'Szél',
|
'wind': 'Szél',
|
||||||
'visibility': 'Láthatóság',
|
'visibility': 'Láthatóság',
|
||||||
'feels': 'Hőérzet',
|
'feels': 'Hőérzet',
|
||||||
'evaporation': 'Párolgás',
|
'evaporation': 'Párolgás',
|
||||||
'precipitation': 'Csapadék',
|
'precipitation': 'Csapadék',
|
||||||
'direction': 'Irány',
|
'direction': 'Irány',
|
||||||
'pressure': 'Nyomás',
|
'pressure': 'Nyomás',
|
||||||
'rain': 'Eső',
|
'rain': 'Eső',
|
||||||
'clear_sky': 'Tiszta ég',
|
'clear_sky': 'Tiszta ég',
|
||||||
'cloudy': 'Felhős',
|
'cloudy': 'Felhős',
|
||||||
'overcast': 'Borult',
|
'overcast': 'Borult',
|
||||||
'fog': 'Köd',
|
'fog': 'Köd',
|
||||||
'drizzle': 'Szitálás',
|
'drizzle': 'Szitálás',
|
||||||
'drizzling_rain': 'Fagyos szitálás',
|
'drizzling_rain': 'Fagyos szitálás',
|
||||||
'freezing_rain': 'Fagyos eső',
|
'freezing_rain': 'Fagyos eső',
|
||||||
'heavy_rains': 'Zivataros záporok',
|
'heavy_rains': 'Zivataros záporok',
|
||||||
'snow': 'Hó',
|
'snow': 'Hó',
|
||||||
'thunderstorm': 'Zivatar',
|
'thunderstorm': 'Zivatar',
|
||||||
'kph': 'km/óra',
|
'kph': 'km/óra',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mérföld',
|
'mi': 'mérföld',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'hüvelyk',
|
'inch': 'hüvelyk',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Beállítások',
|
'settings': 'Beállítások',
|
||||||
'no_inter': 'Nincs internet',
|
'no_inter': 'Nincs internet',
|
||||||
'on_inter':
|
'on_inter': 'Kapcsolja be az internetet az időjárási adatok lekéréséhez.',
|
||||||
'Kapcsolja be az internetet az időjárási adatok lekéréséhez.',
|
'location': 'Hely',
|
||||||
'location': 'Hely',
|
'no_location':
|
||||||
'no_location':
|
'Engedélyezze a helyszolgáltatást az aktuális hely időjárásadatainak megszerzéséhez.',
|
||||||
'Engedélyezze a helyszolgáltatást az aktuális hely időjárásadatainak megszerzéséhez.',
|
'theme': 'Téma',
|
||||||
'theme': 'Téma',
|
'low': 'Alacsony',
|
||||||
'low': 'Alacsony',
|
'high': 'Magas',
|
||||||
'high': 'Magas',
|
'normal': 'Normál',
|
||||||
'normal': 'Normál',
|
'lat': 'Szélesség',
|
||||||
'lat': 'Szélesség',
|
'lon': 'Hosszúság',
|
||||||
'lon': 'Hosszúság',
|
'create': 'Létrehozás',
|
||||||
'create': 'Létrehozás',
|
'city': 'Város',
|
||||||
'city': 'Város',
|
'district': 'Kerület',
|
||||||
'district': 'Kerület',
|
'noWeatherCard': 'Adjon hozzá egy várost',
|
||||||
'noWeatherCard': 'Adjon hozzá egy várost',
|
'deletedCardWeather': 'Város törlése',
|
||||||
'deletedCardWeather': 'Város törlése',
|
'deletedCardWeatherQuery': 'Biztosan törölni szeretné a várost?',
|
||||||
'deletedCardWeatherQuery': 'Biztosan törölni szeretné a várost?',
|
'delete': 'Törlés',
|
||||||
'delete': 'Törlés',
|
'cancel': 'Mégse',
|
||||||
'cancel': 'Mégse',
|
'time': 'Idő a városban',
|
||||||
'time': 'Idő a városban',
|
'validateName': 'Kérjük, adja meg a nevet',
|
||||||
'validateName': 'Kérjük, adja meg a nevet',
|
'measurements': 'Mérési rendszer',
|
||||||
'measurements': 'Mérési rendszer',
|
'degrees': 'Fok',
|
||||||
'degrees': 'Fok',
|
'celsius': 'Celsius',
|
||||||
'celsius': 'Celsius',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'imperial': 'Angol mértékegység',
|
||||||
'imperial': 'Angol mértékegység',
|
'metric': 'Metrikus mértékegység',
|
||||||
'metric': 'Metrikus mértékegység',
|
'validateValue': 'Kérjük, adjon meg egy értéket',
|
||||||
'validateValue': 'Kérjük, adjon meg egy értéket',
|
'validateNumber': 'Kérjük, adjon meg érvényes számot',
|
||||||
'validateNumber': 'Kérjük, adjon meg érvényes számot',
|
'validate90': 'Az érték -90 és 90 közötti kell legyen',
|
||||||
'validate90': 'Az érték -90 és 90 közötti kell legyen',
|
'validate180': 'Az érték -180 és 180 közötti kell legyen',
|
||||||
'validate180': 'Az érték -180 és 180 közötti kell legyen',
|
'notifications': 'Értesítések',
|
||||||
'notifications': 'Értesítések',
|
'sunrise': 'Napkelte',
|
||||||
'sunrise': 'Napkelte',
|
'sunset': 'Napnyugta',
|
||||||
'sunset': 'Napnyugta',
|
'timeformat': 'Időformátum',
|
||||||
'timeformat': 'Időformátum',
|
'12': '12 órás',
|
||||||
'12': '12 órás',
|
'24': '24 órás',
|
||||||
'24': '24 órás',
|
'cloudcover': 'Felhőzet',
|
||||||
'cloudcover': 'Felhőzet',
|
'uvIndex': 'UV-index',
|
||||||
'uvIndex': 'UV-index',
|
'materialColor': 'Dinamikus színek',
|
||||||
'materialColor': 'Dinamikus színek',
|
'uvLow': 'Alacsony',
|
||||||
'uvLow': 'Alacsony',
|
'uvAverage': 'Mérsékelt',
|
||||||
'uvAverage': 'Mérsékelt',
|
'uvHigh': 'Magas',
|
||||||
'uvHigh': 'Magas',
|
'uvVeryHigh': 'Nagyon magas',
|
||||||
'uvVeryHigh': 'Nagyon magas',
|
'uvExtreme': 'Extrém',
|
||||||
'uvExtreme': 'Extrém',
|
'weatherMore': '12 napos időjárás előrejelzés',
|
||||||
'weatherMore': '12 napos időjárás előrejelzés',
|
'windgusts': 'Szélrohamok',
|
||||||
'windgusts': 'Szélrohamok',
|
'north': 'Észak',
|
||||||
'north': 'Észak',
|
'northeast': 'Északkelet',
|
||||||
'northeast': 'Északkelet',
|
'east': 'Kelet',
|
||||||
'east': 'Kelet',
|
'southeast': 'Délkelet',
|
||||||
'southeast': 'Délkelet',
|
'south': 'Dél',
|
||||||
'south': 'Dél',
|
'southwest': 'Délkelet',
|
||||||
'southwest': 'Délkelet',
|
'west': 'Nyugat',
|
||||||
'west': 'Nyugat',
|
'northwest': 'Északnyugat',
|
||||||
'northwest': 'Északnyugat',
|
'project': 'Projekt',
|
||||||
'project': 'Projekt',
|
'version': 'Alkalmazás verzió',
|
||||||
'version': 'Alkalmazás verzió',
|
'precipitationProbability': 'Csapadék valószínűsége',
|
||||||
'precipitationProbability': 'Csapadék valószínűsége',
|
'apparentTemperatureMin': 'Minimális látszólagos hőmérséklet',
|
||||||
'apparentTemperatureMin': 'Minimális látszólagos hőmérséklet',
|
'apparentTemperatureMax': 'Maximális látszólagos hőmérséklet',
|
||||||
'apparentTemperatureMax': 'Maximális látszólagos hőmérséklet',
|
'amoledTheme': 'AMOLED téma',
|
||||||
'amoledTheme': 'AMOLED téma',
|
'appearance': 'Megjelenés',
|
||||||
'appearance': 'Megjelenés',
|
'functions': 'Funkciók',
|
||||||
'functions': 'Funkciók',
|
'data': 'Adatok',
|
||||||
'data': 'Adatok',
|
'language': 'Nyelv',
|
||||||
'language': 'Nyelv',
|
'timeRange': 'Gyakoriság (órákban)',
|
||||||
'timeRange': 'Gyakoriság (órákban)',
|
'timeStart': 'Kezdési idő',
|
||||||
'timeStart': 'Kezdési idő',
|
'timeEnd': 'Befejezési idő',
|
||||||
'timeEnd': 'Befejezési idő',
|
'support': 'Támogatás',
|
||||||
'support': 'Támogatás',
|
'system': 'Rendszer',
|
||||||
'system': 'Rendszer',
|
'dark': 'Sötét',
|
||||||
'dark': 'Sötét',
|
'light': 'Világos',
|
||||||
'light': 'Világos',
|
'license': 'Licenc',
|
||||||
'license': 'Licenc',
|
'widget': 'Widget',
|
||||||
'widget': 'Widget',
|
'widgetBackground': 'Widget háttér',
|
||||||
'widgetBackground': 'Widget háttér',
|
'widgetText': 'Widget szöveg',
|
||||||
'widgetText': 'Widget szöveg',
|
'dewpoint': 'Harmatpont',
|
||||||
'dewpoint': 'Harmatpont',
|
'shortwaveRadiation': 'Rövidhullámú sugárzás',
|
||||||
'shortwaveRadiation': 'Rövidhullámú sugárzás',
|
'W/m2': 'W/m2',
|
||||||
'W/m2': 'W/m2',
|
'roundDegree': 'Fokok Kerekítése',
|
||||||
'roundDegree': 'Fokok Kerekítése',
|
'settings_full': 'Beállítások',
|
||||||
'settings_full': 'Beállítások',
|
'cities': 'Városok',
|
||||||
'cities': 'Városok',
|
'searchMethod': 'Használja a keresést vagy a földrajzi helyet',
|
||||||
'searchMethod': 'Használja a keresést vagy a földrajzi helyet',
|
'done': 'Kész',
|
||||||
'done': 'Kész',
|
'groups': 'Csoportjaink',
|
||||||
'groups': 'Csoportjaink',
|
'openMeteo': 'Adatok az Open-Meteo-tól (CC-BY 4.0)',
|
||||||
'openMeteo': 'Adatok az Open-Meteo-tól (CC-BY 4.0)',
|
'hourlyVariables': 'Óránkénti időjárási változók',
|
||||||
'hourlyVariables': 'Óránkénti időjárási változók',
|
'dailyVariables': 'Napi időjárási változók',
|
||||||
'dailyVariables': 'Napi időjárási változók',
|
'largeElement': 'Nagy méretű időjárás megjelenítése',
|
||||||
'largeElement': 'Nagy méretű időjárás megjelenítése',
|
'map': 'Térkép',
|
||||||
'map': 'Térkép',
|
'clearCacheStore': 'Gyorsítótár törlése',
|
||||||
'clearCacheStore': 'Gyorsítótár törlése',
|
'deletedCacheStore': 'Gyorsítótár törlése folyamatban',
|
||||||
'deletedCacheStore': 'Gyorsítótár törlése folyamatban',
|
'deletedCacheStoreQuery': 'Biztosan törölni szeretné a gyorsítótárat?',
|
||||||
'deletedCacheStoreQuery': 'Biztosan törölni szeretné a gyorsítótárat?',
|
'addWidget': 'Widget hozzáadása',
|
||||||
'addWidget': 'Widget hozzáadása',
|
'hideMap': 'Térkép elrejtése',
|
||||||
'hideMap': 'Térkép elrejtése',
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,143 +1,141 @@
|
||||||
class ItIt {
|
class ItIt {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Clicca per iniziare',
|
'start': 'Clicca per iniziare',
|
||||||
'description':
|
'description':
|
||||||
'Applicazione meteo con una previsione aggiornata per ogni ora, giorno e settimana per qualsiasi luogo.',
|
'Applicazione meteo con una previsione aggiornata per ogni ora, giorno e settimana per qualsiasi luogo.',
|
||||||
'name': 'Meteo',
|
'name': 'Meteo',
|
||||||
'name2': 'Design comodo',
|
'name2': 'Design comodo',
|
||||||
'name3': 'Contattaci',
|
'name3': 'Contattaci',
|
||||||
'description2':
|
'description2':
|
||||||
'Tutta la navigazione è progettata per interagire con l\'applicazione nel modo più comodo e veloce possibile.',
|
'Tutta la navigazione è progettata per interagire con l\'applicazione nel modo più comodo e veloce possibile.',
|
||||||
'description3':
|
'description3':
|
||||||
'Se incontri problemi, contattaci via email o nelle recensioni dell\'applicazione.',
|
'Se incontri problemi, contattaci via email o nelle recensioni dell\'applicazione.',
|
||||||
'next': 'Avanti',
|
'next': 'Avanti',
|
||||||
'search': 'Cerca...',
|
'search': 'Cerca...',
|
||||||
'loading': 'Caricamento...',
|
'loading': 'Caricamento...',
|
||||||
'searchCity': 'Trova la tua città',
|
'searchCity': 'Trova la tua città',
|
||||||
'humidity': 'Umidità',
|
'humidity': 'Umidità',
|
||||||
'wind': 'Vento',
|
'wind': 'Vento',
|
||||||
'visibility': 'Visibilità',
|
'visibility': 'Visibilità',
|
||||||
'feels': 'Percepiti',
|
'feels': 'Percepiti',
|
||||||
'evaporation': 'Evaporazione',
|
'evaporation': 'Evaporazione',
|
||||||
'precipitation': 'Precipitazione',
|
'precipitation': 'Precipitazione',
|
||||||
'direction': 'Direzione',
|
'direction': 'Direzione',
|
||||||
'pressure': 'Pressione',
|
'pressure': 'Pressione',
|
||||||
'rain': 'Pioggia',
|
'rain': 'Pioggia',
|
||||||
'clear_sky': 'Sereno',
|
'clear_sky': 'Sereno',
|
||||||
'cloudy': 'Nuvoloso',
|
'cloudy': 'Nuvoloso',
|
||||||
'overcast': 'Coperto',
|
'overcast': 'Coperto',
|
||||||
'fog': 'Nebbia',
|
'fog': 'Nebbia',
|
||||||
'drizzle': 'Pioggerella',
|
'drizzle': 'Pioggerella',
|
||||||
'drizzling_rain': 'Pioggerella Gelata',
|
'drizzling_rain': 'Pioggerella Gelata',
|
||||||
'freezing_rain': 'Pioggia Gelata',
|
'freezing_rain': 'Pioggia Gelata',
|
||||||
'heavy_rains': 'Acquazzone',
|
'heavy_rains': 'Acquazzone',
|
||||||
'snow': 'Neve',
|
'snow': 'Neve',
|
||||||
'thunderstorm': 'Temporale',
|
'thunderstorm': 'Temporale',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Imposta.',
|
'settings': 'Imposta.',
|
||||||
'no_inter': 'Non c\'è connessione Internet',
|
'no_inter': 'Non c\'è connessione Internet',
|
||||||
'on_inter':
|
'on_inter': 'Attiva la connessione Internet per avere dati meteorologici.',
|
||||||
'Attiva la connessione Internet per avere dati meteorologici.',
|
'location': 'Posizione',
|
||||||
'location': 'Posizione',
|
'no_location':
|
||||||
'no_location':
|
'Abilita il servizio di localizzazione per ottenere i dati meteo per la posizione corrente.',
|
||||||
'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',
|
'normal': 'Normale',
|
||||||
'normal': 'Normale',
|
'lat': 'Latitudine',
|
||||||
'lat': 'Latitudine',
|
'lon': 'Longitudine',
|
||||||
'lon': 'Longitudine',
|
'create': 'Creare',
|
||||||
'create': 'Creare',
|
'city': 'Città',
|
||||||
'city': 'Città',
|
'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':
|
'delete': 'Elimina',
|
||||||
'Sei sicuro di voler rimuovere questa città?',
|
'cancel': 'Annulla',
|
||||||
'delete': 'Elimina',
|
'time': 'Orario locale',
|
||||||
'cancel': 'Annulla',
|
'validateName': 'Si prega di inserire il nome',
|
||||||
'time': 'Orario locale',
|
'measurements': 'Sistema di misure',
|
||||||
'validateName': 'Si prega di inserire il nome',
|
'degrees': 'Gradi',
|
||||||
'measurements': 'Sistema di misure',
|
'celsius': 'Celsius',
|
||||||
'degrees': 'Gradi',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'celsius': 'Celsius',
|
'imperial': 'Imperiale',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'metric': 'Metrico',
|
||||||
'imperial': 'Imperiale',
|
'validateValue': 'Si prega di inserire il valore',
|
||||||
'metric': 'Metrico',
|
'validateNumber': 'Si prega di inserire il numero',
|
||||||
'validateValue': 'Si prega di inserire il valore',
|
'validate90': 'Il valore deve essere compreso tra -90 e 90',
|
||||||
'validateNumber': 'Si prega di inserire il numero',
|
'validate180': 'Il valore deve essere compreso tra -180 e 180',
|
||||||
'validate90': 'Il valore deve essere compreso tra -90 e 90',
|
'notifications': 'Notifiche',
|
||||||
'validate180': 'Il valore deve essere compreso tra -180 e 180',
|
'sunrise': 'Alba',
|
||||||
'notifications': 'Notifiche',
|
'sunset': 'Tramonto',
|
||||||
'sunrise': 'Alba',
|
'timeformat': 'Formato ora',
|
||||||
'sunset': 'Tramonto',
|
'12': '12 ore',
|
||||||
'timeformat': 'Formato ora',
|
'24': '24 ore',
|
||||||
'12': '12 ore',
|
'cloudcover': 'Copertura nuvolosa',
|
||||||
'24': '24 ore',
|
'uvIndex': 'Indice UV',
|
||||||
'cloudcover': 'Copertura nuvolosa',
|
'materialColor': 'Colori Dinamici',
|
||||||
'uvIndex': 'Indice UV',
|
'uvLow': 'Basso',
|
||||||
'materialColor': 'Colori Dinamici',
|
'uvAverage': 'Moderato',
|
||||||
'uvLow': 'Basso',
|
'uvHigh': 'Alto',
|
||||||
'uvAverage': 'Moderato',
|
'uvVeryHigh': 'Molto alto',
|
||||||
'uvHigh': 'Alto',
|
'uvExtreme': 'Estremo',
|
||||||
'uvVeryHigh': 'Molto alto',
|
'weatherMore': 'Previsioni del tempo per 12 giorni',
|
||||||
'uvExtreme': 'Estremo',
|
'windgusts': 'Raffica',
|
||||||
'weatherMore': 'Previsioni del tempo per 12 giorni',
|
'north': 'Nord',
|
||||||
'windgusts': 'Raffica',
|
'northeast': 'Nord-est',
|
||||||
'north': 'Nord',
|
'east': 'Est',
|
||||||
'northeast': 'Nord-est',
|
'southeast': 'Sud-est',
|
||||||
'east': 'Est',
|
'south': 'Sud',
|
||||||
'southeast': 'Sud-est',
|
'southwest': 'Sud-ovest',
|
||||||
'south': 'Sud',
|
'west': 'Ovest',
|
||||||
'southwest': 'Sud-ovest',
|
'northwest': 'Nord-ovest',
|
||||||
'west': 'Ovest',
|
'project': 'Progetto su',
|
||||||
'northwest': 'Nord-ovest',
|
'version': 'Versione dell\'applicazione',
|
||||||
'project': 'Progetto su',
|
'precipitationProbability': 'Probabilità di precipitazione',
|
||||||
'version': 'Versione dell\'applicazione',
|
'apparentTemperatureMin': 'Temperatura minima percepita',
|
||||||
'precipitationProbability': 'Probabilità di precipitazione',
|
'apparentTemperatureMax': 'Temperatura massima percepita',
|
||||||
'apparentTemperatureMin': 'Temperatura minima percepita',
|
'amoledTheme': 'AMOLED-tema',
|
||||||
'apparentTemperatureMax': 'Temperatura massima percepita',
|
'appearance': 'Aspetto',
|
||||||
'amoledTheme': 'AMOLED-tema',
|
'functions': 'Funzioni',
|
||||||
'appearance': 'Aspetto',
|
'data': 'Dati',
|
||||||
'functions': 'Funzioni',
|
'language': 'Lingua',
|
||||||
'data': 'Dati',
|
'timeRange': 'Frequenza (in ore)',
|
||||||
'language': 'Lingua',
|
'timeStart': 'Ora di inizio',
|
||||||
'timeRange': 'Frequenza (in ore)',
|
'timeEnd': 'Ora di fine',
|
||||||
'timeStart': 'Ora di inizio',
|
'support': 'Supporto',
|
||||||
'timeEnd': 'Ora di fine',
|
'system': 'Sistema',
|
||||||
'support': 'Supporto',
|
'dark': 'Scuro',
|
||||||
'system': 'Sistema',
|
'light': 'Chiaro',
|
||||||
'dark': 'Scuro',
|
'license': 'Licenze',
|
||||||
'light': 'Chiaro',
|
'widget': 'Widget',
|
||||||
'license': 'Licenze',
|
'widgetBackground': 'Sfondo del widget',
|
||||||
'widget': 'Widget',
|
'widgetText': 'Testo del widget',
|
||||||
'widgetBackground': 'Sfondo del widget',
|
'dewpoint': 'Punto di rugiada',
|
||||||
'widgetText': 'Testo del widget',
|
'shortwaveRadiation': 'Radiazione a onde corte',
|
||||||
'dewpoint': 'Punto di rugiada',
|
'roundDegree': 'Arrotonda i gradi',
|
||||||
'shortwaveRadiation': 'Radiazione a onde corte',
|
'settings_full': 'Impostazioni',
|
||||||
'roundDegree': 'Arrotonda i gradi',
|
'cities': 'Città',
|
||||||
'settings_full': 'Impostazioni',
|
'searchMethod': 'Utilizza la ricerca o la geolocalizzazione',
|
||||||
'cities': 'Città',
|
'done': 'Fatto',
|
||||||
'searchMethod': 'Utilizza la ricerca o la geolocalizzazione',
|
'groups': 'I nostri gruppi',
|
||||||
'done': 'Fatto',
|
'openMeteo': 'Dati da Open-Meteo (CC-BY 4.0)',
|
||||||
'groups': 'I nostri gruppi',
|
'hourlyVariables': 'Variabili meteorologiche orarie',
|
||||||
'openMeteo': 'Dati da Open-Meteo (CC-BY 4.0)',
|
'dailyVariables': 'Variabili meteorologiche giornaliere',
|
||||||
'hourlyVariables': 'Variabili meteorologiche orarie',
|
'largeElement': 'Visualizzazione grande elemento meteo',
|
||||||
'dailyVariables': 'Variabili meteorologiche giornaliere',
|
'map': 'Mappa',
|
||||||
'largeElement': 'Visualizzazione grande elemento meteo',
|
'clearCacheStore': 'Cancella cache',
|
||||||
'map': 'Mappa',
|
'deletedCacheStore': 'Cancellazione della cache',
|
||||||
'clearCacheStore': 'Cancella cache',
|
'deletedCacheStoreQuery': 'Sei sicuro di voler cancellare la cache?',
|
||||||
'deletedCacheStore': 'Cancellazione della cache',
|
'addWidget': 'Aggiungi widget',
|
||||||
'deletedCacheStoreQuery': 'Sei sicuro di voler cancellare la cache?',
|
'hideMap': 'Nascondi mappa',
|
||||||
'addWidget': 'Aggiungi widget',
|
};
|
||||||
'hideMap': 'Nascondi mappa',
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,143 +1,141 @@
|
||||||
class KaGe {
|
class KaGe {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'დაიწყე',
|
'start': 'დაიწყე',
|
||||||
'description':
|
'description':
|
||||||
'აპლიკაცია ამჟამად პროგნოზით ყოველ საათზე, დღეზე და კვირაზე ნებისმიერ ადგილისთვის.',
|
'აპლიკაცია ამჟამად პროგნოზით ყოველ საათზე, დღეზე და კვირაზე ნებისმიერ ადგილისთვის.',
|
||||||
'name': 'ამინდი',
|
'name': 'ამინდი',
|
||||||
'name2': 'მართვის კომფორტი',
|
'name2': 'მართვის კომფორტი',
|
||||||
'name3': 'შეგვეხმიანე',
|
'name3': 'შეგვეხმიანე',
|
||||||
'description2':
|
'description2':
|
||||||
'ყველა ნავიგაცია შექმნილია ისე, რომ შეგიძლიათ მაქსიმალურად კომფორტულად და სწრაფად იქონოთ აპლიკაციით.',
|
'ყველა ნავიგაცია შექმნილია ისე, რომ შეგიძლიათ მაქსიმალურად კომფორტულად და სწრაფად იქონოთ აპლიკაციით.',
|
||||||
'description3':
|
'description3':
|
||||||
'თუ გექნებათ ნებისმიერი პრობლემა, გთხოვთ, დაგვეკონტაქტოთ ელ-ფოსტით ან აპლიკაციის მიმოხილვის გვერდზე.',
|
'თუ გექნებათ ნებისმიერი პრობლემა, გთხოვთ, დაგვეკონტაქტოთ ელ-ფოსტით ან აპლიკაციის მიმოხილვის გვერდზე.',
|
||||||
'next': 'შემდეგ',
|
'next': 'შემდეგ',
|
||||||
'search': 'ძიება...',
|
'search': 'ძიება...',
|
||||||
'loading': 'დატვირთვა...',
|
'loading': 'დატვირთვა...',
|
||||||
'searchCity': 'იპოვეთ თქვენი ქალაქი',
|
'searchCity': 'იპოვეთ თქვენი ქალაქი',
|
||||||
'humidity': 'ტენიანობა',
|
'humidity': 'ტენიანობა',
|
||||||
'wind': 'ქარი',
|
'wind': 'ქარი',
|
||||||
'visibility': 'ხილვადობა',
|
'visibility': 'ხილვადობა',
|
||||||
'feels': 'გრძნობს',
|
'feels': 'გრძნობს',
|
||||||
'evaporation': 'აორთქლება',
|
'evaporation': 'აორთქლება',
|
||||||
'precipitation': 'ნალექი',
|
'precipitation': 'ნალექი',
|
||||||
'direction': 'მიმართულება',
|
'direction': 'მიმართულება',
|
||||||
'pressure': 'წნევა',
|
'pressure': 'წნევა',
|
||||||
'rain': 'წვიმა',
|
'rain': 'წვიმა',
|
||||||
'clear_sky': 'წმინდა ცა',
|
'clear_sky': 'წმინდა ცა',
|
||||||
'cloudy': 'მოღრუბლული',
|
'cloudy': 'მოღრუბლული',
|
||||||
'overcast': 'მოსაწყენი',
|
'overcast': 'მოსაწყენი',
|
||||||
'fog': 'ნისლი',
|
'fog': 'ნისლი',
|
||||||
'drizzle': 'წვიმა',
|
'drizzle': 'წვიმა',
|
||||||
'drizzling_rain': 'დრიზლინგი წვიმა',
|
'drizzling_rain': 'დრიზლინგი წვიმა',
|
||||||
'freezing_rain': 'გაყინვის წვიმა',
|
'freezing_rain': 'გაყინვის წვიმა',
|
||||||
'heavy_rains': 'ძლიერი წვიმები',
|
'heavy_rains': 'ძლიერი წვიმები',
|
||||||
'snow': 'თოვლი',
|
'snow': 'თოვლი',
|
||||||
'thunderstorm': 'ჭექა-ქუხილი',
|
'thunderstorm': 'ჭექა-ქუხილი',
|
||||||
'kph': 'კმ/სთ',
|
'kph': 'კმ/სთ',
|
||||||
'mph': 'მილი/სთ',
|
'mph': 'მილი/სთ',
|
||||||
'm/s': 'მ/წმ',
|
'm/s': 'მ/წმ',
|
||||||
'mmHg': 'მმHg',
|
'mmHg': 'მმHg',
|
||||||
'mi': 'მილი',
|
'mi': 'მილი',
|
||||||
'km': 'კმ',
|
'km': 'კმ',
|
||||||
'inch': 'ინჩი',
|
'inch': 'ინჩი',
|
||||||
'mm': 'მმ',
|
'mm': 'მმ',
|
||||||
'hPa': 'ჰპა',
|
'hPa': 'ჰპა',
|
||||||
'settings': 'პარამ.',
|
'settings': 'პარამ.',
|
||||||
'no_inter': 'ინტერნეტი არ არის',
|
'no_inter': 'ინტერნეტი არ არის',
|
||||||
'on_inter': 'ჩართეთ ინტერნეტი მეტეოროლოგიური მონაცემების მისაღებად.',
|
'on_inter': 'ჩართეთ ინტერნეტი მეტეოროლოგიური მონაცემების მისაღებად.',
|
||||||
'location': 'ადგილმდებარეობა',
|
'location': 'ადგილმდებარეობა',
|
||||||
'no_location':
|
'no_location':
|
||||||
'ჩართეთ მდებარეობის სერვისი, რომ მიიღოთ ამინდის მონაცემები მიმდინარე ადგილმდებარეობისთვის.',
|
'ჩართეთ მდებარეობის სერვისი, რომ მიიღოთ ამინდის მონაცემები მიმდინარე ადგილმდებარეობისთვის.',
|
||||||
'theme': 'თემა',
|
'theme': 'თემა',
|
||||||
'low': 'დაბალი',
|
'low': 'დაბალი',
|
||||||
'high': 'მაღალი',
|
'high': 'მაღალი',
|
||||||
'normal': 'ნორმალური',
|
'normal': 'ნორმალური',
|
||||||
'lat': 'სიგანე',
|
'lat': 'სიგანე',
|
||||||
'lon': 'გრძედი',
|
'lon': 'გრძედი',
|
||||||
'create': 'შექმნა',
|
'create': 'შექმნა',
|
||||||
'city': 'ქალაქი',
|
'city': 'ქალაქი',
|
||||||
'district': 'რაიონი',
|
'district': 'რაიონი',
|
||||||
'noWeatherCard': 'დაამატეთ ქალაქი',
|
'noWeatherCard': 'დაამატეთ ქალაქი',
|
||||||
'deletedCardWeather': 'ქალაქის წაშლა',
|
'deletedCardWeather': 'ქალაქის წაშლა',
|
||||||
'deletedCardWeatherQuery':
|
'deletedCardWeatherQuery': 'დარწმუნებული ხართ, რომ გსურთ ქალაქის წაშლა?',
|
||||||
'დარწმუნებული ხართ, რომ გსურთ ქალაქის წაშლა?',
|
'delete': 'ამოღება',
|
||||||
'delete': 'ამოღება',
|
'cancel': 'გაუქმება',
|
||||||
'cancel': 'გაუქმება',
|
'time': 'დრო ქალაქში',
|
||||||
'time': 'დრო ქალაქში',
|
'validateName': 'გთხოვთ შეიყვანოთ სახელი',
|
||||||
'validateName': 'გთხოვთ შეიყვანოთ სახელი',
|
'measurements': 'საზომი სისტემა',
|
||||||
'measurements': 'საზომი სისტემა',
|
'degrees': 'გრადუსი',
|
||||||
'degrees': 'გრადუსი',
|
'celsius': 'ცელსიუსი',
|
||||||
'celsius': 'ცელსიუსი',
|
'fahrenheit': 'ფარენჰაიტი',
|
||||||
'fahrenheit': 'ფარენჰაიტი',
|
'imperial': 'იმპერიული',
|
||||||
'imperial': 'იმპერიული',
|
'metric': 'მეტრული',
|
||||||
'metric': 'მეტრული',
|
'validateValue': 'გთხოვთ შეიყვანოთ მნიშვნელობა',
|
||||||
'validateValue': 'გთხოვთ შეიყვანოთ მნიშვნელობა',
|
'validateNumber': 'გთხოვთ შეიყვანოთ ნომერი',
|
||||||
'validateNumber': 'გთხოვთ შეიყვანოთ ნომერი',
|
'validate90': 'მნიშვნელობა უნდა იყოს -90-დან 90-მდე',
|
||||||
'validate90': 'მნიშვნელობა უნდა იყოს -90-დან 90-მდე',
|
'validate180': 'მნიშვნელობა უნდა იყოს -180-დან 180-მდე',
|
||||||
'validate180': 'მნიშვნელობა უნდა იყოს -180-დან 180-მდე',
|
'notifications': 'შეტყობინებები',
|
||||||
'notifications': 'შეტყობინებები',
|
'sunrise': 'მზის ამოსვლა',
|
||||||
'sunrise': 'მზის ამოსვლა',
|
'sunset': 'მზის ჩასვლა',
|
||||||
'sunset': 'მზის ჩასვლა',
|
'timeformat': 'დროის ფორმატი',
|
||||||
'timeformat': 'დროის ფორმატი',
|
'12': '12-საათი',
|
||||||
'12': '12-საათი',
|
'24': '24-საათი',
|
||||||
'24': '24-საათი',
|
'cloudcover': 'ღრუბლის საფარი',
|
||||||
'cloudcover': 'ღრუბლის საფარი',
|
'uvIndex': 'UV-ინდექსი',
|
||||||
'uvIndex': 'UV-ინდექსი',
|
'materialColor': 'დინამიური ფერები',
|
||||||
'materialColor': 'დინამიური ფერები',
|
'uvLow': 'დაბალი',
|
||||||
'uvLow': 'დაბალი',
|
'uvAverage': 'ზომიერი',
|
||||||
'uvAverage': 'ზომიერი',
|
'uvHigh': 'მაღალი',
|
||||||
'uvHigh': 'მაღალი',
|
'uvVeryHigh': 'ძალიან მაღალი',
|
||||||
'uvVeryHigh': 'ძალიან მაღალი',
|
'uvExtreme': 'ძლევა ზედა',
|
||||||
'uvExtreme': 'ძლევა ზედა',
|
'weatherMore': '12-დღიანი ამინდის პროგნოზი',
|
||||||
'weatherMore': '12-დღიანი ამინდის პროგნოზი',
|
'windgusts': 'ნაკადი',
|
||||||
'windgusts': 'ნაკადი',
|
'north': 'ჩრდილოეთი',
|
||||||
'north': 'ჩრდილოეთი',
|
'northeast': 'ჩრდილო-აღმოსავლეთი',
|
||||||
'northeast': 'ჩრდილო-აღმოსავლეთი',
|
'east': 'აღმოსავლეთი',
|
||||||
'east': 'აღმოსავლეთი',
|
'southeast': 'სამხრეთ-აღმოსავლეთი',
|
||||||
'southeast': 'სამხრეთ-აღმოსავლეთი',
|
'south': 'სამხრეთი',
|
||||||
'south': 'სამხრეთი',
|
'southwest': 'სამხრეთ-დასავლეთი',
|
||||||
'southwest': 'სამხრეთ-დასავლეთი',
|
'west': 'დასავლეთი',
|
||||||
'west': 'დასავლეთი',
|
'northwest': 'ჩრდილო-დასავლეთი',
|
||||||
'northwest': 'ჩრდილო-დასავლეთი',
|
'project': 'პროექტი ჩართულია',
|
||||||
'project': 'პროექტი ჩართულია',
|
'version': 'განაცხადის ვერსია',
|
||||||
'version': 'განაცხადის ვერსია',
|
'precipitationProbability': 'ნალექების ალბათობა',
|
||||||
'precipitationProbability': 'ნალექების ალბათობა',
|
'apparentTemperatureMin': 'მინიმალური აშკარა ტემპერატურა',
|
||||||
'apparentTemperatureMin': 'მინიმალური აშკარა ტემპერატურა',
|
'apparentTemperatureMax': 'მაქსიმალური აშკარა ტემპერატურა',
|
||||||
'apparentTemperatureMax': 'მაქსიმალური აშკარა ტემპერატურა',
|
'amoledTheme': 'AMOLED-თემა',
|
||||||
'amoledTheme': 'AMOLED-თემა',
|
'appearance': 'გარეგნობა',
|
||||||
'appearance': 'გარეგნობა',
|
'functions': 'ფუნქციები',
|
||||||
'functions': 'ფუნქციები',
|
'data': 'მონაცემები',
|
||||||
'data': 'მონაცემები',
|
'language': 'ენა',
|
||||||
'language': 'ენა',
|
'timeRange': 'სიხშირე (საათებში)',
|
||||||
'timeRange': 'სიხშირე (საათებში)',
|
'timeStart': 'დაწყების დრო',
|
||||||
'timeStart': 'დაწყების დრო',
|
'timeEnd': 'დასრულების დრო',
|
||||||
'timeEnd': 'დასრულების დრო',
|
'support': 'მხარდაჭერა',
|
||||||
'support': 'მხარდაჭერა',
|
'system': 'სისტემა',
|
||||||
'system': 'სისტემა',
|
'dark': 'ბნელი',
|
||||||
'dark': 'ბნელი',
|
'light': 'სინათლე',
|
||||||
'light': 'სინათლე',
|
'license': 'ლიცენზიები',
|
||||||
'license': 'ლიცენზიები',
|
'widget': 'ვიჯეტი',
|
||||||
'widget': 'ვიჯეტი',
|
'widgetBackground': 'ვიჯეტის ფონი',
|
||||||
'widgetBackground': 'ვიჯეტის ფონი',
|
'widgetText': 'ვიჯეტის ტექსტი',
|
||||||
'widgetText': 'ვიჯეტის ტექსტი',
|
'dewpoint': 'დევპოინტი',
|
||||||
'dewpoint': 'დევპოინტი',
|
'shortwaveRadiation': 'მოკლე ტალღის გამოსხივება',
|
||||||
'shortwaveRadiation': 'მოკლე ტალღის გამოსხივება',
|
'roundDegree': 'ხარისხი მიჯნურობა',
|
||||||
'roundDegree': 'ხარისხი მიჯნურობა',
|
'settings_full': 'პარამეტრები',
|
||||||
'settings_full': 'პარამეტრები',
|
'cities': 'ქალაქები',
|
||||||
'cities': 'ქალაქები',
|
'searchMethod': 'გამოიყენეთ ძებნა ან გეოლოკაცია',
|
||||||
'searchMethod': 'გამოიყენეთ ძებნა ან გეოლოკაცია',
|
'done': 'დასრულებულია',
|
||||||
'done': 'დასრულებულია',
|
'groups': 'ჩვენი ჯგუფები',
|
||||||
'groups': 'ჩვენი ჯგუფები',
|
'openMeteo': 'მონაცემები Open-Meteo-დან (CC-BY 4.0)',
|
||||||
'openMeteo': 'მონაცემები Open-Meteo-დან (CC-BY 4.0)',
|
'hourlyVariables': 'საათობრივი ამინდის ცვლადები',
|
||||||
'hourlyVariables': 'საათობრივი ამინდის ცვლადები',
|
'dailyVariables': 'ყოველდღიური ამინდის ცვლადები',
|
||||||
'dailyVariables': 'ყოველდღიური ამინდის ცვლადები',
|
'largeElement': 'გადიდი ამინდის გამოჩენა',
|
||||||
'largeElement': 'გადიდი ამინდის გამოჩენა',
|
'map': 'რუკა',
|
||||||
'map': 'რუკა',
|
'clearCacheStore': 'ქეშის გასუფთავება',
|
||||||
'clearCacheStore': 'ქეშის გასუფთავება',
|
'deletedCacheStore': 'ქეშის გასუფთავება მიმდინარეობს',
|
||||||
'deletedCacheStore': 'ქეშის გასუფთავება მიმდინარეობს',
|
'deletedCacheStoreQuery': 'დარწმუნებული ხართ, რომ გსურთ ქეშის გასუფთავება?',
|
||||||
'deletedCacheStoreQuery':
|
'addWidget': 'ვიდჯეტის დამატება',
|
||||||
'დარწმუნებული ხართ, რომ გსურთ ქეშის გასუფთავება?',
|
'hideMap': 'რუკის დამალვა',
|
||||||
'addWidget': 'ვიდჯეტის დამატება',
|
};
|
||||||
'hideMap': 'რუკის დამალვა',
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,138 +1,138 @@
|
||||||
class KoKr {
|
class KoKr {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': '시작하기',
|
'start': '시작하기',
|
||||||
'description': '어떤 곳이든, 어느 순간이든, 날씨를 확인하세요.',
|
'description': '어떤 곳이든, 어느 순간이든, 날씨를 확인하세요.',
|
||||||
'name': '날씨',
|
'name': '날씨',
|
||||||
'name2': '편리한 디자인',
|
'name2': '편리한 디자인',
|
||||||
'name3': '문의하기',
|
'name3': '문의하기',
|
||||||
'description2': '모든 내비게이션은 가능한 한 편리하고 빠르게 애플리케이션과 상호 작용하도록 설계되었습니다.',
|
'description2': '모든 내비게이션은 가능한 한 편리하고 빠르게 애플리케이션과 상호 작용하도록 설계되었습니다.',
|
||||||
'description3': '어떤 오류가 발생했다면, 이메일 또는 앱 리뷰로 문의해주세요.',
|
'description3': '어떤 오류가 발생했다면, 이메일 또는 앱 리뷰로 문의해주세요.',
|
||||||
'next': '다음',
|
'next': '다음',
|
||||||
'search': '검색...',
|
'search': '검색...',
|
||||||
'loading': '로딩 중...',
|
'loading': '로딩 중...',
|
||||||
'searchCity': '도시를 찾아보세요',
|
'searchCity': '도시를 찾아보세요',
|
||||||
'humidity': '습도',
|
'humidity': '습도',
|
||||||
'wind': '풍속',
|
'wind': '풍속',
|
||||||
'visibility': '가시거리',
|
'visibility': '가시거리',
|
||||||
'feels': '체감 온도',
|
'feels': '체감 온도',
|
||||||
'evaporation': '증발량',
|
'evaporation': '증발량',
|
||||||
'precipitation': '강수량',
|
'precipitation': '강수량',
|
||||||
'direction': '풍향',
|
'direction': '풍향',
|
||||||
'pressure': '기압',
|
'pressure': '기압',
|
||||||
'rain': '비',
|
'rain': '비',
|
||||||
'clear_sky': '맑음',
|
'clear_sky': '맑음',
|
||||||
'cloudy': '구름 조금',
|
'cloudy': '구름 조금',
|
||||||
'overcast': '구름 많음',
|
'overcast': '구름 많음',
|
||||||
'fog': '안개',
|
'fog': '안개',
|
||||||
'drizzle': '이슬비',
|
'drizzle': '이슬비',
|
||||||
'drizzling_rain': '얼어붙은 이슬비',
|
'drizzling_rain': '얼어붙은 이슬비',
|
||||||
'freezing_rain': '얼어붙는 비',
|
'freezing_rain': '얼어붙는 비',
|
||||||
'heavy_rains': '폭우',
|
'heavy_rains': '폭우',
|
||||||
'snow': '눈',
|
'snow': '눈',
|
||||||
'thunderstorm': '천둥번개',
|
'thunderstorm': '천둥번개',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': '미터/초',
|
'm/s': '미터/초',
|
||||||
'mmHg': '밀리미터 수은주',
|
'mmHg': '밀리미터 수은주',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': '인치',
|
'inch': '인치',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': '설정',
|
'settings': '설정',
|
||||||
'no_inter': '인터넷 없음',
|
'no_inter': '인터넷 없음',
|
||||||
'on_inter': '현재 위치에 대한 정보를 얻기 위해서는 인터넷이 필요합니다.',
|
'on_inter': '현재 위치에 대한 정보를 얻기 위해서는 인터넷이 필요합니다.',
|
||||||
'location': '위치',
|
'location': '위치',
|
||||||
'no_location': '현재 위치에 대한 정보를 얻기 위해서는 위치 서비스를 활성화해야 합니다.',
|
'no_location': '현재 위치에 대한 정보를 얻기 위해서는 위치 서비스를 활성화해야 합니다.',
|
||||||
'theme': '테마',
|
'theme': '테마',
|
||||||
'low': '낮음',
|
'low': '낮음',
|
||||||
'high': '높음',
|
'high': '높음',
|
||||||
'normal': '보통',
|
'normal': '보통',
|
||||||
'lat': '위도',
|
'lat': '위도',
|
||||||
'lon': '경도',
|
'lon': '경도',
|
||||||
'create': '만들기',
|
'create': '만들기',
|
||||||
'city': '도시',
|
'city': '도시',
|
||||||
'district': '지역',
|
'district': '지역',
|
||||||
'noWeatherCard': '도시를 추가하세요',
|
'noWeatherCard': '도시를 추가하세요',
|
||||||
'deletedCardWeather': '도시 삭제하기',
|
'deletedCardWeather': '도시 삭제하기',
|
||||||
'deletedCardWeatherQuery': '정말로 이 도시를 삭제하시겠나요?',
|
'deletedCardWeatherQuery': '정말로 이 도시를 삭제하시겠나요?',
|
||||||
'delete': '삭제',
|
'delete': '삭제',
|
||||||
'cancel': '취소',
|
'cancel': '취소',
|
||||||
'time': '도시 시간',
|
'time': '도시 시간',
|
||||||
'validateName': '이름을 입력해주세요',
|
'validateName': '이름을 입력해주세요',
|
||||||
'measurements': '표시 방식',
|
'measurements': '표시 방식',
|
||||||
'degrees': '도',
|
'degrees': '도',
|
||||||
'celsius': '섭씨',
|
'celsius': '섭씨',
|
||||||
'fahrenheit': '화씨',
|
'fahrenheit': '화씨',
|
||||||
'imperial': '인치',
|
'imperial': '인치',
|
||||||
'metric': '미터',
|
'metric': '미터',
|
||||||
'validateValue': '값을 입력해주세요',
|
'validateValue': '값을 입력해주세요',
|
||||||
'validateNumber': '올바른 숫자를 입력해주세요',
|
'validateNumber': '올바른 숫자를 입력해주세요',
|
||||||
'validate90': '-90과 90 사이의 값만 가능합니다',
|
'validate90': '-90과 90 사이의 값만 가능합니다',
|
||||||
'validate180': '-180과 180 사이의 값만 가능합니다',
|
'validate180': '-180과 180 사이의 값만 가능합니다',
|
||||||
'notifications': '알림',
|
'notifications': '알림',
|
||||||
'sunrise': '일출',
|
'sunrise': '일출',
|
||||||
'sunset': '일몰',
|
'sunset': '일몰',
|
||||||
'timeformat': '시간 형식',
|
'timeformat': '시간 형식',
|
||||||
'12': '12시간',
|
'12': '12시간',
|
||||||
'24': '24시간',
|
'24': '24시간',
|
||||||
'cloudcover': '구름',
|
'cloudcover': '구름',
|
||||||
'uvIndex': 'UV 정도',
|
'uvIndex': 'UV 정도',
|
||||||
'materialColor': '동적 색상',
|
'materialColor': '동적 색상',
|
||||||
'uvLow': '낮음',
|
'uvLow': '낮음',
|
||||||
'uvAverage': '보통',
|
'uvAverage': '보통',
|
||||||
'uvHigh': '높은',
|
'uvHigh': '높은',
|
||||||
'uvVeryHigh': '매우 높음',
|
'uvVeryHigh': '매우 높음',
|
||||||
'uvExtreme': '엄청남!',
|
'uvExtreme': '엄청남!',
|
||||||
'weatherMore': '12일 일기 예보',
|
'weatherMore': '12일 일기 예보',
|
||||||
'windgusts': '돌풍',
|
'windgusts': '돌풍',
|
||||||
'north': '북',
|
'north': '북',
|
||||||
'northeast': '북동',
|
'northeast': '북동',
|
||||||
'east': '동',
|
'east': '동',
|
||||||
'southeast': '남동',
|
'southeast': '남동',
|
||||||
'south': '남',
|
'south': '남',
|
||||||
'southwest': '남서',
|
'southwest': '남서',
|
||||||
'west': '서',
|
'west': '서',
|
||||||
'northwest': '북서',
|
'northwest': '북서',
|
||||||
'project': '프로젝트 위치:',
|
'project': '프로젝트 위치:',
|
||||||
'version': '버전',
|
'version': '버전',
|
||||||
'precipitationProbability': '깅수 확률',
|
'precipitationProbability': '깅수 확률',
|
||||||
'apparentTemperatureMin': '최저 기온',
|
'apparentTemperatureMin': '최저 기온',
|
||||||
'apparentTemperatureMax': '최고 기온',
|
'apparentTemperatureMax': '최고 기온',
|
||||||
'amoledTheme': 'AMOLED-테마',
|
'amoledTheme': 'AMOLED-테마',
|
||||||
'appearance': '디자인',
|
'appearance': '디자인',
|
||||||
'functions': '기능',
|
'functions': '기능',
|
||||||
'data': '데이터',
|
'data': '데이터',
|
||||||
'language': '언어',
|
'language': '언어',
|
||||||
'timeRange': '빈도 (시간 단위)',
|
'timeRange': '빈도 (시간 단위)',
|
||||||
'timeStart': '시작 시간',
|
'timeStart': '시작 시간',
|
||||||
'timeEnd': '종료 시간',
|
'timeEnd': '종료 시간',
|
||||||
'support': '후원하기',
|
'support': '후원하기',
|
||||||
'system': '시스템',
|
'system': '시스템',
|
||||||
'dark': '어두운',
|
'dark': '어두운',
|
||||||
'light': '밝은',
|
'light': '밝은',
|
||||||
'license': '라이선스',
|
'license': '라이선스',
|
||||||
'widget': '위젯',
|
'widget': '위젯',
|
||||||
'widgetBackground': '위젯 배경',
|
'widgetBackground': '위젯 배경',
|
||||||
'widgetText': '위젯 텍스트',
|
'widgetText': '위젯 텍스트',
|
||||||
'dewpoint': '이슬점',
|
'dewpoint': '이슬점',
|
||||||
'shortwaveRadiation': '단파 복사',
|
'shortwaveRadiation': '단파 복사',
|
||||||
'W/m2': 'W/m2',
|
'W/m2': 'W/m2',
|
||||||
'roundDegree': '온도 반올림',
|
'roundDegree': '온도 반올림',
|
||||||
'settings_full': '설정',
|
'settings_full': '설정',
|
||||||
'cities': '도시',
|
'cities': '도시',
|
||||||
'searchMethod': '검색 또는 지리적 위치를 사용하세요',
|
'searchMethod': '검색 또는 지리적 위치를 사용하세요',
|
||||||
'done': '완료',
|
'done': '완료',
|
||||||
'groups': '우리 그룹',
|
'groups': '우리 그룹',
|
||||||
'openMeteo': 'Open-Meteo의 데이터 (CC-BY 4.0)',
|
'openMeteo': 'Open-Meteo의 데이터 (CC-BY 4.0)',
|
||||||
'hourlyVariables': '시간별 날씨 변수',
|
'hourlyVariables': '시간별 날씨 변수',
|
||||||
'dailyVariables': '일별 날씨 변수',
|
'dailyVariables': '일별 날씨 변수',
|
||||||
'largeElement': '큰 날씨 표시',
|
'largeElement': '큰 날씨 표시',
|
||||||
'map': '지도',
|
'map': '지도',
|
||||||
'clearCacheStore': '캐시 지우기',
|
'clearCacheStore': '캐시 지우기',
|
||||||
'deletedCacheStore': '캐시 삭제 중',
|
'deletedCacheStore': '캐시 삭제 중',
|
||||||
'deletedCacheStoreQuery': '캐시를 정말로 지우시겠습니까?',
|
'deletedCacheStoreQuery': '캐시를 정말로 지우시겠습니까?',
|
||||||
'addWidget': '위젯 추가',
|
'addWidget': '위젯 추가',
|
||||||
'hideMap': '지도를 숨기기',
|
'hideMap': '지도를 숨기기',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,143 +1,141 @@
|
||||||
class NlNl {
|
class NlNl {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Beginnen',
|
'start': 'Beginnen',
|
||||||
'description':
|
'description':
|
||||||
'Weer-applicatie met een actuele prognose voor elk uur, dag en week voor elke locatie.',
|
'Weer-applicatie met een actuele prognose voor elk uur, dag en week voor elke locatie.',
|
||||||
'name': 'Weer',
|
'name': 'Weer',
|
||||||
'name2': 'Handig Ontwerp',
|
'name2': 'Handig Ontwerp',
|
||||||
'name3': 'Neem contact met ons op',
|
'name3': 'Neem contact met ons op',
|
||||||
'description2':
|
'description2':
|
||||||
'Alle navigatie is ontworpen om zo gemakkelijk en snel mogelijk met de applicatie te kunnen communiceren.',
|
'Alle navigatie is ontworpen om zo gemakkelijk en snel mogelijk met de applicatie te kunnen communiceren.',
|
||||||
'description3':
|
'description3':
|
||||||
'Als u problemen ondervindt, neem dan contact met ons op via e-mail of in de recensies van de applicatie.',
|
'Als u problemen ondervindt, neem dan contact met ons op via e-mail of in de recensies van de applicatie.',
|
||||||
'next': 'Volgende',
|
'next': 'Volgende',
|
||||||
'search': 'Zoeken...',
|
'search': 'Zoeken...',
|
||||||
'loading': 'Laden...',
|
'loading': 'Laden...',
|
||||||
'searchCity': 'Vind jouw stad',
|
'searchCity': 'Vind jouw stad',
|
||||||
'humidity': 'Luchtvochtigheid',
|
'humidity': 'Luchtvochtigheid',
|
||||||
'wind': 'Wind',
|
'wind': 'Wind',
|
||||||
'visibility': 'Zichtbaarheid',
|
'visibility': 'Zichtbaarheid',
|
||||||
'feels': 'Voelt',
|
'feels': 'Voelt',
|
||||||
'evaporation': 'Verdamping',
|
'evaporation': 'Verdamping',
|
||||||
'precipitation': 'Neerslag',
|
'precipitation': 'Neerslag',
|
||||||
'direction': 'Richting',
|
'direction': 'Richting',
|
||||||
'pressure': 'Druk',
|
'pressure': 'Druk',
|
||||||
'rain': 'Regen',
|
'rain': 'Regen',
|
||||||
'clear_sky': 'Heldere lucht',
|
'clear_sky': 'Heldere lucht',
|
||||||
'cloudy': 'Bewolkt',
|
'cloudy': 'Bewolkt',
|
||||||
'overcast': 'Betrokken',
|
'overcast': 'Betrokken',
|
||||||
'fog': 'Mist',
|
'fog': 'Mist',
|
||||||
'drizzle': 'Motregen',
|
'drizzle': 'Motregen',
|
||||||
'drizzling_rain': 'Ijskoude motregen',
|
'drizzling_rain': 'Ijskoude motregen',
|
||||||
'freezing_rain': 'Ijskoude regen',
|
'freezing_rain': 'Ijskoude regen',
|
||||||
'heavy_rains': 'Regendouche',
|
'heavy_rains': 'Regendouche',
|
||||||
'snow': 'Sneeuw',
|
'snow': 'Sneeuw',
|
||||||
'thunderstorm': 'Onweersbui',
|
'thunderstorm': 'Onweersbui',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Instellingen.',
|
'settings': 'Instellingen.',
|
||||||
'no_inter': 'Geen Internet',
|
'no_inter': 'Geen Internet',
|
||||||
'on_inter':
|
'on_inter': 'Schakel Internet in om meteorologische gegevens te ontvangen.',
|
||||||
'Schakel Internet in om meteorologische gegevens te ontvangen.',
|
'location': 'Locatie',
|
||||||
'location': 'Locatie',
|
'no_location':
|
||||||
'no_location':
|
'Schakel de locatiedienst in om weer gegevens voor de huidige locatie te ontvangen.',
|
||||||
'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',
|
'normal': 'Normaal',
|
||||||
'normal': 'Normaal',
|
'lat': 'Breedtegraad',
|
||||||
'lat': 'Breedtegraad',
|
'lon': 'Lengtegraad',
|
||||||
'lon': 'Lengtegraad',
|
'create': 'Creëer',
|
||||||
'create': 'Creëer',
|
'city': 'Stad',
|
||||||
'city': 'Stad',
|
'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':
|
'delete': 'Verwijder',
|
||||||
'Weet je zeker dat je de stad wilt verwijderen?',
|
'cancel': 'Annuleer',
|
||||||
'delete': 'Verwijder',
|
'time': 'Tijd in de stad',
|
||||||
'cancel': 'Annuleer',
|
'validateName': 'Vul de naam in',
|
||||||
'time': 'Tijd in de stad',
|
'measurements': 'Meetsysteem',
|
||||||
'validateName': 'Vul de naam in',
|
'degrees': 'Graden',
|
||||||
'measurements': 'Meetsysteem',
|
'celsius': 'Celsius',
|
||||||
'degrees': 'Graden',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'celsius': 'Celsius',
|
'imperial': 'Imperiaal',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'metric': 'Metrisch',
|
||||||
'imperial': 'Imperiaal',
|
'validateValue': 'Vul een waarde in',
|
||||||
'metric': 'Metrisch',
|
'validateNumber': 'Vul een geldig nummer in',
|
||||||
'validateValue': 'Vul een waarde in',
|
'validate90': 'Waarde moet tussen -90 and 90 zijn',
|
||||||
'validateNumber': 'Vul een geldig nummer in',
|
'validate180': 'Waarde moet tussen -180 and 180 zijn',
|
||||||
'validate90': 'Waarde moet tussen -90 and 90 zijn',
|
'notifications': 'Notificaties',
|
||||||
'validate180': 'Waarde moet tussen -180 and 180 zijn',
|
'sunrise': 'Zonsopkomst',
|
||||||
'notifications': 'Notificaties',
|
'sunset': 'Zonsondergang',
|
||||||
'sunrise': 'Zonsopkomst',
|
'timeformat': 'Tijdnotatie',
|
||||||
'sunset': 'Zonsondergang',
|
'12': '12-uur',
|
||||||
'timeformat': 'Tijdnotatie',
|
'24': '24-uur',
|
||||||
'12': '12-uur',
|
'cloudcover': 'Bewolking',
|
||||||
'24': '24-uur',
|
'uvIndex': 'UV-index',
|
||||||
'cloudcover': 'Bewolking',
|
'materialColor': 'Dynamische Kleuren',
|
||||||
'uvIndex': 'UV-index',
|
'uvLow': 'Laag',
|
||||||
'materialColor': 'Dynamische Kleuren',
|
'uvAverage': 'Matig',
|
||||||
'uvLow': 'Laag',
|
'uvHigh': 'Hoog',
|
||||||
'uvAverage': 'Matig',
|
'uvVeryHigh': 'Erg hoog',
|
||||||
'uvHigh': 'Hoog',
|
'uvExtreme': 'Extreem',
|
||||||
'uvVeryHigh': 'Erg hoog',
|
'weatherMore': '12-daagse weersverwachting',
|
||||||
'uvExtreme': 'Extreem',
|
'windgusts': 'Windstoten',
|
||||||
'weatherMore': '12-daagse weersverwachting',
|
'north': 'Noord',
|
||||||
'windgusts': 'Windstoten',
|
'northeast': 'Noordoost',
|
||||||
'north': 'Noord',
|
'east': 'Oost',
|
||||||
'northeast': 'Noordoost',
|
'southeast': 'Zuidoost',
|
||||||
'east': 'Oost',
|
'south': 'Zuid',
|
||||||
'southeast': 'Zuidoost',
|
'southwest': 'Zuidwest',
|
||||||
'south': 'Zuid',
|
'west': 'West',
|
||||||
'southwest': 'Zuidwest',
|
'northwest': 'Noordwest',
|
||||||
'west': 'West',
|
'project': 'Project op',
|
||||||
'northwest': 'Noordwest',
|
'version': 'Applicatieversie',
|
||||||
'project': 'Project op',
|
'precipitationProbability': 'Kans op neerslag',
|
||||||
'version': 'Applicatieversie',
|
'apparentTemperatureMin': 'Minimum schijnbare temperatuur',
|
||||||
'precipitationProbability': 'Kans op neerslag',
|
'apparentTemperatureMax': 'Maximale schijnbare temperatuur',
|
||||||
'apparentTemperatureMin': 'Minimum schijnbare temperatuur',
|
'amoledTheme': 'AMOLED-thema',
|
||||||
'apparentTemperatureMax': 'Maximale schijnbare temperatuur',
|
'appearance': 'Uiterlijk',
|
||||||
'amoledTheme': 'AMOLED-thema',
|
'functions': 'Functies',
|
||||||
'appearance': 'Uiterlijk',
|
'data': 'Gegevens',
|
||||||
'functions': 'Functies',
|
'language': 'Taal',
|
||||||
'data': 'Gegevens',
|
'timeRange': 'Frequentie (in uren)',
|
||||||
'language': 'Taal',
|
'timeStart': 'Begintijd',
|
||||||
'timeRange': 'Frequentie (in uren)',
|
'timeEnd': 'Eindtijd',
|
||||||
'timeStart': 'Begintijd',
|
'support': 'Ondersteuning',
|
||||||
'timeEnd': 'Eindtijd',
|
'system': 'Systeem',
|
||||||
'support': 'Ondersteuning',
|
'dark': 'Donker',
|
||||||
'system': 'Systeem',
|
'light': 'Licht',
|
||||||
'dark': 'Donker',
|
'license': 'Licenties',
|
||||||
'light': 'Licht',
|
'widget': 'Widget',
|
||||||
'license': 'Licenties',
|
'widgetBackground': 'Widget-achtergrond',
|
||||||
'widget': 'Widget',
|
'widgetText': 'Tekst van widget',
|
||||||
'widgetBackground': 'Widget-achtergrond',
|
'dewpoint': 'Dauwpunt',
|
||||||
'widgetText': 'Tekst van widget',
|
'shortwaveRadiation': 'Korte golfstraling',
|
||||||
'dewpoint': 'Dauwpunt',
|
'roundDegree': 'Rond graden af',
|
||||||
'shortwaveRadiation': 'Korte golfstraling',
|
'settings_full': 'Instellingen',
|
||||||
'roundDegree': 'Rond graden af',
|
'cities': 'Steden',
|
||||||
'settings_full': 'Instellingen',
|
'searchMethod': 'Gebruik zoeken of geolocatie',
|
||||||
'cities': 'Steden',
|
'done': 'Klaar',
|
||||||
'searchMethod': 'Gebruik zoeken of geolocatie',
|
'groups': 'Onze groepen',
|
||||||
'done': 'Klaar',
|
'openMeteo': 'Gegevens van Open-Meteo (CC-BY 4.0)',
|
||||||
'groups': 'Onze groepen',
|
'hourlyVariables': 'Uurlijkse weervariabelen',
|
||||||
'openMeteo': 'Gegevens van Open-Meteo (CC-BY 4.0)',
|
'dailyVariables': 'Dagelijkse weervariabelen',
|
||||||
'hourlyVariables': 'Uurlijkse weervariabelen',
|
'largeElement': 'Groot weerbericht weergeven',
|
||||||
'dailyVariables': 'Dagelijkse weervariabelen',
|
'map': 'Kaart',
|
||||||
'largeElement': 'Groot weerbericht weergeven',
|
'clearCacheStore': 'Cache wissen',
|
||||||
'map': 'Kaart',
|
'deletedCacheStore': 'Cache wissen',
|
||||||
'clearCacheStore': 'Cache wissen',
|
'deletedCacheStoreQuery': 'Weet je zeker dat je de cache wilt wissen?',
|
||||||
'deletedCacheStore': 'Cache wissen',
|
'addWidget': 'Widget toevoegen',
|
||||||
'deletedCacheStoreQuery': 'Weet je zeker dat je de cache wilt wissen?',
|
'hideMap': 'Kaart verbergen',
|
||||||
'addWidget': 'Widget toevoegen',
|
};
|
||||||
'hideMap': 'Kaart verbergen',
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,141 @@
|
||||||
class PlPl {
|
class PlPl {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Rozpocznij',
|
'start': 'Rozpocznij',
|
||||||
'description':
|
'description':
|
||||||
'Aplikacja pogodowa z aktualną prognozą na każdą godzinę, dzień i tydzień dla dowolnego miejsca.',
|
'Aplikacja pogodowa z aktualną prognozą na każdą godzinę, dzień i tydzień dla dowolnego miejsca.',
|
||||||
'name': 'Pogoda',
|
'name': 'Pogoda',
|
||||||
'name2': 'Wygodny design',
|
'name2': 'Wygodny design',
|
||||||
'name3': 'Skontaktuj się z nami',
|
'name3': 'Skontaktuj się z nami',
|
||||||
'description2':
|
'description2':
|
||||||
'Cała nawigacja jest zaprojektowana tak, aby można było jak najwygodniej i najszybciej współdziałać z aplikacją.',
|
'Cała nawigacja jest zaprojektowana tak, aby można było jak najwygodniej i najszybciej współdziałać z aplikacją.',
|
||||||
'description3':
|
'description3':
|
||||||
'Jeśli napotkasz jakiekolwiek problemy, skontaktuj się z nami drogą e-mailową lub w recenzjach aplikacji.',
|
'Jeśli napotkasz jakiekolwiek problemy, skontaktuj się z nami drogą e-mailową lub w recenzjach aplikacji.',
|
||||||
'next': 'Dalej',
|
'next': 'Dalej',
|
||||||
'search': 'Szukaj...',
|
'search': 'Szukaj...',
|
||||||
'loading': 'Ładowanie...',
|
'loading': 'Ładowanie...',
|
||||||
'searchCity': 'Znajdź swoje miasto',
|
'searchCity': 'Znajdź swoje miasto',
|
||||||
'humidity': 'Wilgoć',
|
'humidity': 'Wilgoć',
|
||||||
'wind': 'Wiatr',
|
'wind': 'Wiatr',
|
||||||
'visibility': 'Widoczność',
|
'visibility': 'Widoczność',
|
||||||
'feels': 'Odczuwalna',
|
'feels': 'Odczuwalna',
|
||||||
'evaporation': 'Parowanie',
|
'evaporation': 'Parowanie',
|
||||||
'precipitation': 'Opad atmosferyczny',
|
'precipitation': 'Opad atmosferyczny',
|
||||||
'direction': 'Kierunek',
|
'direction': 'Kierunek',
|
||||||
'pressure': 'Ciśnienie',
|
'pressure': 'Ciśnienie',
|
||||||
'rain': 'Deszcz',
|
'rain': 'Deszcz',
|
||||||
'clear_sky': 'Czyste niebo',
|
'clear_sky': 'Czyste niebo',
|
||||||
'cloudy': 'Pochmurno',
|
'cloudy': 'Pochmurno',
|
||||||
'overcast': 'Pochmurnie',
|
'overcast': 'Pochmurnie',
|
||||||
'fog': 'Mgła',
|
'fog': 'Mgła',
|
||||||
'drizzle': 'Mżawka',
|
'drizzle': 'Mżawka',
|
||||||
'drizzling_rain': 'Mroźna Mżawka',
|
'drizzling_rain': 'Mroźna Mżawka',
|
||||||
'freezing_rain': 'Mroźny deszcz',
|
'freezing_rain': 'Mroźny deszcz',
|
||||||
'heavy_rains': 'Przelotne opady deszczu',
|
'heavy_rains': 'Przelotne opady deszczu',
|
||||||
'snow': 'Śnieg',
|
'snow': 'Śnieg',
|
||||||
'thunderstorm': 'Burza z piorunami',
|
'thunderstorm': 'Burza z piorunami',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Ustaw.',
|
'settings': 'Ustaw.',
|
||||||
'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':
|
'no_location':
|
||||||
'Włącz usługę lokalizacyjną, aby uzyskać dane pogodowe dla bieżącej lokalizacji.',
|
'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',
|
||||||
'normal': 'Normalny',
|
'normal': 'Normalny',
|
||||||
'lat': 'Latitude',
|
'lat': 'Latitude',
|
||||||
'lon': 'Longitude',
|
'lon': 'Longitude',
|
||||||
'create': 'Stwórz',
|
'create': 'Stwórz',
|
||||||
'city': 'Miasto',
|
'city': 'Miasto',
|
||||||
'district': 'Dzielnica',
|
'district': 'Dzielnica',
|
||||||
'noWeatherCard': 'Dodaj miasto',
|
'noWeatherCard': 'Dodaj miasto',
|
||||||
'deletedCardWeather': 'Usuwanie miasta',
|
'deletedCardWeather': 'Usuwanie miasta',
|
||||||
'deletedCardWeatherQuery': 'Czy na pewno chcesz usunąć miasto?',
|
'deletedCardWeatherQuery': 'Czy na pewno chcesz usunąć miasto?',
|
||||||
'delete': 'Usuń',
|
'delete': 'Usuń',
|
||||||
'cancel': 'Anuluj',
|
'cancel': 'Anuluj',
|
||||||
'time': 'Czas w mieście',
|
'time': 'Czas w mieście',
|
||||||
'validateName': 'Wprowadź nazwę',
|
'validateName': 'Wprowadź nazwę',
|
||||||
'measurements': 'System środków',
|
'measurements': 'System środków',
|
||||||
'degrees': 'Stopni',
|
'degrees': 'Stopni',
|
||||||
'celsius': 'Celsjusz',
|
'celsius': 'Celsjusz',
|
||||||
'fahrenheit': 'Fahrenheita',
|
'fahrenheit': 'Fahrenheita',
|
||||||
'imperial': 'Imperial',
|
'imperial': 'Imperial',
|
||||||
'metric': 'Metric',
|
'metric': 'Metric',
|
||||||
'validateValue': 'Proszę wprowadzić wartość',
|
'validateValue': 'Proszę wprowadzić wartość',
|
||||||
'validateNumber': 'Proszę wprowadzić poprawny numer',
|
'validateNumber': 'Proszę wprowadzić poprawny numer',
|
||||||
'validate90': 'Wartość musi mieścić się w zakresie od -90 do 90',
|
'validate90': 'Wartość musi mieścić się w zakresie od -90 do 90',
|
||||||
'validate180': 'Wartość musi mieścić się w przedziale od -180 do 180',
|
'validate180': 'Wartość musi mieścić się w przedziale od -180 do 180',
|
||||||
'notifications': 'Powiadomienia',
|
'notifications': 'Powiadomienia',
|
||||||
'sunrise': 'Wschód słońca',
|
'sunrise': 'Wschód słońca',
|
||||||
'sunset': 'Zachód słońca',
|
'sunset': 'Zachód słońca',
|
||||||
'timeformat': 'Format czasu',
|
'timeformat': 'Format czasu',
|
||||||
'12': '12-hour',
|
'12': '12-hour',
|
||||||
'24': '24-hour',
|
'24': '24-hour',
|
||||||
'cloudcover': 'Zachmurzenie',
|
'cloudcover': 'Zachmurzenie',
|
||||||
'uvIndex': 'Indeks UV',
|
'uvIndex': 'Indeks UV',
|
||||||
'materialColor': 'Dynamiczne kolory',
|
'materialColor': 'Dynamiczne kolory',
|
||||||
'uvLow': 'Niski',
|
'uvLow': 'Niski',
|
||||||
'uvAverage': 'Umiarkowany',
|
'uvAverage': 'Umiarkowany',
|
||||||
'uvHigh': 'Wysoki',
|
'uvHigh': 'Wysoki',
|
||||||
'uvVeryHigh': 'Bardzo wysoki',
|
'uvVeryHigh': 'Bardzo wysoki',
|
||||||
'uvExtreme': 'Extremalny',
|
'uvExtreme': 'Extremalny',
|
||||||
'weatherMore': 'Prognoza pogody na 12 dni',
|
'weatherMore': 'Prognoza pogody na 12 dni',
|
||||||
'windgusts': 'Porywy wiatru',
|
'windgusts': 'Porywy wiatru',
|
||||||
'north': 'Północ',
|
'north': 'Północ',
|
||||||
'northeast': 'Północny wschód',
|
'northeast': 'Północny wschód',
|
||||||
'east': 'Wschód',
|
'east': 'Wschód',
|
||||||
'southeast': 'południowy wschód',
|
'southeast': 'południowy wschód',
|
||||||
'south': 'Południe',
|
'south': 'Południe',
|
||||||
'southwest': 'Południowy zachód',
|
'southwest': 'Południowy zachód',
|
||||||
'west': 'Zachód',
|
'west': 'Zachód',
|
||||||
'northwest': 'Północny zachód',
|
'northwest': 'Północny zachód',
|
||||||
'project': 'Project on',
|
'project': 'Project on',
|
||||||
'version': 'Wersja aplikacji',
|
'version': 'Wersja aplikacji',
|
||||||
'precipitationProbability': 'Prawdopodobieństwo opadów',
|
'precipitationProbability': 'Prawdopodobieństwo opadów',
|
||||||
'apparentTemperatureMin': 'Minimalna temperatura pozorna',
|
'apparentTemperatureMin': 'Minimalna temperatura pozorna',
|
||||||
'apparentTemperatureMax': 'Maksymalna pozorna temperatura',
|
'apparentTemperatureMax': 'Maksymalna pozorna temperatura',
|
||||||
'amoledTheme': 'AMOLED-theme',
|
'amoledTheme': 'AMOLED-theme',
|
||||||
'appearance': 'Wygląd',
|
'appearance': 'Wygląd',
|
||||||
'functions': 'Funkcje',
|
'functions': 'Funkcje',
|
||||||
'data': 'Data',
|
'data': 'Data',
|
||||||
'language': 'Język',
|
'language': 'Język',
|
||||||
'timeRange': 'Częstotliwość (w godzinach)',
|
'timeRange': 'Częstotliwość (w godzinach)',
|
||||||
'timeStart': 'Czas rozpoczęcia',
|
'timeStart': 'Czas rozpoczęcia',
|
||||||
'timeEnd': 'Czas zakończenia',
|
'timeEnd': 'Czas zakończenia',
|
||||||
'support': 'Wsparcie',
|
'support': 'Wsparcie',
|
||||||
'system': 'System',
|
'system': 'System',
|
||||||
'dark': 'Ciemny',
|
'dark': 'Ciemny',
|
||||||
'light': 'Jasny',
|
'light': 'Jasny',
|
||||||
'license': 'Licencje',
|
'license': 'Licencje',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Tło widżetu',
|
'widgetBackground': 'Tło widżetu',
|
||||||
'widgetText': 'Tekst widżetu',
|
'widgetText': 'Tekst widżetu',
|
||||||
'dewpoint': 'Punkt rosy',
|
'dewpoint': 'Punkt rosy',
|
||||||
'shortwaveRadiation': 'Promieniowanie krótkofalowe',
|
'shortwaveRadiation': 'Promieniowanie krótkofalowe',
|
||||||
'roundDegree': 'Zaokrąglaj stopnie',
|
'roundDegree': 'Zaokrąglaj stopnie',
|
||||||
'settings_full': 'Ustawienia',
|
'settings_full': 'Ustawienia',
|
||||||
'cities': 'Miasta',
|
'cities': 'Miasta',
|
||||||
'searchMethod': 'Użyj wyszukiwania lub geolokalizacji',
|
'searchMethod': 'Użyj wyszukiwania lub geolokalizacji',
|
||||||
'done': 'Gotowe',
|
'done': 'Gotowe',
|
||||||
'groups': 'Nasze grupy',
|
'groups': 'Nasze grupy',
|
||||||
'openMeteo': 'Dane z Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Dane z Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Godzinowe zmienne pogodowe',
|
'hourlyVariables': 'Godzinowe zmienne pogodowe',
|
||||||
'dailyVariables': 'Dzienne zmienne pogodowe',
|
'dailyVariables': 'Dzienne zmienne pogodowe',
|
||||||
'largeElement': 'Duże wyświetlanie pogody',
|
'largeElement': 'Duże wyświetlanie pogody',
|
||||||
'map': 'Mapa',
|
'map': 'Mapa',
|
||||||
'clearCacheStore': 'Wyczyść pamięć podręczną',
|
'clearCacheStore': 'Wyczyść pamięć podręczną',
|
||||||
'deletedCacheStore': 'Czyszczenie pamięci podręcznej',
|
'deletedCacheStore': 'Czyszczenie pamięci podręcznej',
|
||||||
'deletedCacheStoreQuery':
|
'deletedCacheStoreQuery': 'Czy na pewno chcesz wyczyścić pamięć podręczną?',
|
||||||
'Czy na pewno chcesz wyczyścić pamięć podręczną?',
|
'addWidget': 'Dodaj widget',
|
||||||
'addWidget': 'Dodaj widget',
|
'hideMap': 'Ukryj mapę',
|
||||||
'hideMap': 'Ukryj mapę',
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
class PtBr {
|
class PtBr {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Iniciar',
|
'start': 'Iniciar',
|
||||||
'description':
|
'description':
|
||||||
'Aplicativo de previsão do tempo com previsão atualizada para cada hora, dia e semana para qualquer local.',
|
'Aplicativo de previsão do tempo com previsão atualizada para cada hora, dia e semana para qualquer local.',
|
||||||
'name': 'Clima',
|
'name': 'Clima',
|
||||||
'name2': 'Design Conveniente',
|
'name2': 'Design Conveniente',
|
||||||
'name3': 'Entre em Contato Conosco',
|
'name3': 'Entre em Contato Conosco',
|
||||||
'description2':
|
'description2':
|
||||||
'Toda a navegação é projetada para interagir com o aplicativo da maneira mais conveniente e rápida possível.',
|
'Toda a navegação é projetada para interagir com o aplicativo da maneira mais conveniente e rápida possível.',
|
||||||
'description3':
|
'description3':
|
||||||
'Se você encontrar algum problema, entre em contato conosco por e-mail ou nas avaliações do aplicativo.',
|
'Se você encontrar algum problema, entre em contato conosco por e-mail ou nas avaliações do aplicativo.',
|
||||||
'next': 'Próximo',
|
'next': 'Próximo',
|
||||||
'search': 'Pesquisar...',
|
'search': 'Pesquisar...',
|
||||||
'loading': 'Carregando...',
|
'loading': 'Carregando...',
|
||||||
'searchCity': 'Procure sua cidade',
|
'searchCity': 'Procure sua cidade',
|
||||||
'humidity': 'Umidade',
|
'humidity': 'Umidade',
|
||||||
'wind': 'Vento',
|
'wind': 'Vento',
|
||||||
'visibility': 'Visibilidade',
|
'visibility': 'Visibilidade',
|
||||||
'feels': 'Sensação',
|
'feels': 'Sensação',
|
||||||
'evaporation': 'Evapotranspirações',
|
'evaporation': 'Evapotranspirações',
|
||||||
'precipitation': 'Precipitação',
|
'precipitation': 'Precipitação',
|
||||||
'direction': 'Direção',
|
'direction': 'Direção',
|
||||||
'pressure': 'Pressão',
|
'pressure': 'Pressão',
|
||||||
'rain': 'Chuva',
|
'rain': 'Chuva',
|
||||||
'clear_sky': 'Céu limpo',
|
'clear_sky': 'Céu limpo',
|
||||||
'cloudy': 'Nublado',
|
'cloudy': 'Nublado',
|
||||||
'overcast': 'Encoberto',
|
'overcast': 'Encoberto',
|
||||||
'fog': 'Névoa',
|
'fog': 'Névoa',
|
||||||
'drizzle': 'Garoa',
|
'drizzle': 'Garoa',
|
||||||
'drizzling_rain': 'Chuva fraca',
|
'drizzling_rain': 'Chuva fraca',
|
||||||
'freezing_rain': 'Chuva congelante',
|
'freezing_rain': 'Chuva congelante',
|
||||||
'heavy_rains': 'Chuva pesada',
|
'heavy_rains': 'Chuva pesada',
|
||||||
'snow': 'Neve',
|
'snow': 'Neve',
|
||||||
'thunderstorm': 'Tempestade',
|
'thunderstorm': 'Tempestade',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Configurações.',
|
'settings': 'Configurações.',
|
||||||
'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':
|
'no_location':
|
||||||
'Habilite a localização para obter dados de clima do local atual.',
|
'Habilite a localização para obter dados de clima do local atual.',
|
||||||
'theme': 'Tema',
|
'theme': 'Tema',
|
||||||
'low': 'Baixo',
|
'low': 'Baixo',
|
||||||
'high': 'Alto',
|
'high': 'Alto',
|
||||||
'normal': 'Normal',
|
'normal': 'Normal',
|
||||||
'lat': 'Latitude',
|
'lat': 'Latitude',
|
||||||
'lon': 'Longitude',
|
'lon': 'Longitude',
|
||||||
'create': 'Criar',
|
'create': 'Criar',
|
||||||
'city': 'Cidade',
|
'city': 'Cidade',
|
||||||
'district': 'Distrito',
|
'district': 'Distrito',
|
||||||
'noWeatherCard': 'Adicione uma cidade',
|
'noWeatherCard': 'Adicione uma cidade',
|
||||||
'deletedCardWeather': 'Deletando a cidade',
|
'deletedCardWeather': 'Deletando a cidade',
|
||||||
'deletedCardWeatherQuery':
|
'deletedCardWeatherQuery':
|
||||||
'Você tem certeza que deseja remover esta cidade?',
|
'Você tem certeza que deseja remover esta cidade?',
|
||||||
'delete': 'Deletar',
|
'delete': 'Deletar',
|
||||||
'cancel': 'Cancelar',
|
'cancel': 'Cancelar',
|
||||||
'time': 'Clima na cidade',
|
'time': 'Clima na cidade',
|
||||||
'validateName': 'Por favor escreva um nome',
|
'validateName': 'Por favor escreva um nome',
|
||||||
'measurements': 'Sistema de medidas',
|
'measurements': 'Sistema de medidas',
|
||||||
'degrees': 'Graus',
|
'degrees': 'Graus',
|
||||||
'celsius': 'Celsius',
|
'celsius': 'Celsius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'Imperial',
|
'imperial': 'Imperial',
|
||||||
'metric': 'Métrico',
|
'metric': 'Métrico',
|
||||||
'validateValue': 'Por favor escreva um valor',
|
'validateValue': 'Por favor escreva um valor',
|
||||||
'validateNumber': 'Por favor escreva um número válido',
|
'validateNumber': 'Por favor escreva um número válido',
|
||||||
'validate90': 'Valor deve estar entre -90 and 90',
|
'validate90': 'Valor deve estar entre -90 and 90',
|
||||||
'validate180': 'Valor deve estar entre -180 and 180',
|
'validate180': 'Valor deve estar entre -180 and 180',
|
||||||
'notifications': 'Notificações',
|
'notifications': 'Notificações',
|
||||||
'sunrise': 'Nascer do sol',
|
'sunrise': 'Nascer do sol',
|
||||||
'sunset': 'Pôr do sol',
|
'sunset': 'Pôr do sol',
|
||||||
'timeformat': 'Formato de hora',
|
'timeformat': 'Formato de hora',
|
||||||
'12': '12 horas',
|
'12': '12 horas',
|
||||||
'24': '24 horas',
|
'24': '24 horas',
|
||||||
'cloudcover': 'Сobertura de nuvens',
|
'cloudcover': 'Сobertura de nuvens',
|
||||||
'uvIndex': 'UV-índice',
|
'uvIndex': 'UV-índice',
|
||||||
'materialColor': 'Cores Dinâmicas',
|
'materialColor': 'Cores Dinâmicas',
|
||||||
'uvLow': 'Baixo',
|
'uvLow': 'Baixo',
|
||||||
'uvAverage': 'Moderado',
|
'uvAverage': 'Moderado',
|
||||||
'uvHigh': 'Alto',
|
'uvHigh': 'Alto',
|
||||||
'uvVeryHigh': 'Muito alto',
|
'uvVeryHigh': 'Muito alto',
|
||||||
'uvExtreme': 'Extremo',
|
'uvExtreme': 'Extremo',
|
||||||
'weatherMore': 'Previsão do tempo para 12 dias',
|
'weatherMore': 'Previsão do tempo para 12 dias',
|
||||||
'windgusts': 'Rajadas',
|
'windgusts': 'Rajadas',
|
||||||
'north': 'Norte',
|
'north': 'Norte',
|
||||||
'northeast': 'Nordeste',
|
'northeast': 'Nordeste',
|
||||||
'east': 'Leste',
|
'east': 'Leste',
|
||||||
'southeast': 'Sudeste',
|
'southeast': 'Sudeste',
|
||||||
'south': 'Sul',
|
'south': 'Sul',
|
||||||
'southwest': 'Sudoeste',
|
'southwest': 'Sudoeste',
|
||||||
'west': 'Oeste',
|
'west': 'Oeste',
|
||||||
'northwest': 'Noroeste',
|
'northwest': 'Noroeste',
|
||||||
'project': 'Projeto em',
|
'project': 'Projeto em',
|
||||||
'version': 'Versão do aplicativo',
|
'version': 'Versão do aplicativo',
|
||||||
'precipitationProbability': 'Probabilidade de precipitação',
|
'precipitationProbability': 'Probabilidade de precipitação',
|
||||||
'apparentTemperatureMin': 'Temperatura aparente mínima',
|
'apparentTemperatureMin': 'Temperatura aparente mínima',
|
||||||
'apparentTemperatureMax': 'Temperatura aparente máxima',
|
'apparentTemperatureMax': 'Temperatura aparente máxima',
|
||||||
'amoledTheme': 'AMOLED-tema',
|
'amoledTheme': 'AMOLED-tema',
|
||||||
'appearance': 'Aparência',
|
'appearance': 'Aparência',
|
||||||
'functions': 'Funções',
|
'functions': 'Funções',
|
||||||
'data': 'Dados',
|
'data': 'Dados',
|
||||||
'language': 'Idioma',
|
'language': 'Idioma',
|
||||||
'timeRange': 'Frequência (em horas)',
|
'timeRange': 'Frequência (em horas)',
|
||||||
'timeStart': 'Hora de início',
|
'timeStart': 'Hora de início',
|
||||||
'timeEnd': 'Hora de término',
|
'timeEnd': 'Hora de término',
|
||||||
'support': 'Suporte',
|
'support': 'Suporte',
|
||||||
'system': 'Sistema',
|
'system': 'Sistema',
|
||||||
'dark': 'Escuro',
|
'dark': 'Escuro',
|
||||||
'light': 'Claro',
|
'light': 'Claro',
|
||||||
'license': 'Licenças',
|
'license': 'Licenças',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Fundo do widget',
|
'widgetBackground': 'Fundo do widget',
|
||||||
'widgetText': 'Texto do widget',
|
'widgetText': 'Texto do widget',
|
||||||
'dewpoint': 'Ponto de orvalho',
|
'dewpoint': 'Ponto de orvalho',
|
||||||
'shortwaveRadiation': 'Radiação de ondas curtas',
|
'shortwaveRadiation': 'Radiação de ondas curtas',
|
||||||
'roundDegree': 'Arredondar graus',
|
'roundDegree': 'Arredondar graus',
|
||||||
'settings_full': 'Configurações',
|
'settings_full': 'Configurações',
|
||||||
'cities': 'Cidades',
|
'cities': 'Cidades',
|
||||||
'searchMethod': 'Use a pesquisa ou a geolocalização',
|
'searchMethod': 'Use a pesquisa ou a geolocalização',
|
||||||
'done': 'Concluído',
|
'done': 'Concluído',
|
||||||
'groups': 'Nossos grupos',
|
'groups': 'Nossos grupos',
|
||||||
'openMeteo': 'Dados do Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Dados do Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Variáveis meteorológicas horárias',
|
'hourlyVariables': 'Variáveis meteorológicas horárias',
|
||||||
'dailyVariables': 'Variáveis meteorológicas diárias',
|
'dailyVariables': 'Variáveis meteorológicas diárias',
|
||||||
'largeElement': 'Exibição grande do clima',
|
'largeElement': 'Exibição grande do clima',
|
||||||
'map': 'Mapa',
|
'map': 'Mapa',
|
||||||
'clearCacheStore': 'Limpar cache',
|
'clearCacheStore': 'Limpar cache',
|
||||||
'deletedCacheStore': 'Limpando cache',
|
'deletedCacheStore': 'Limpando cache',
|
||||||
'deletedCacheStoreQuery': 'Tem certeza de que deseja limpar o cache?',
|
'deletedCacheStoreQuery': 'Tem certeza de que deseja limpar o cache?',
|
||||||
'addWidget': 'Adicionar widget',
|
'addWidget': 'Adicionar widget',
|
||||||
'hideMap': 'Ocultar mapa',
|
'hideMap': 'Ocultar mapa',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,141 +1,141 @@
|
||||||
class RoRo {
|
class RoRo {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Începe',
|
'start': 'Începe',
|
||||||
'description':
|
'description':
|
||||||
'Aplicație meteo cu o prognoză actualizată pentru fiecare oră, zi și săptămână pentru orice loc.',
|
'Aplicație meteo cu o prognoză actualizată pentru fiecare oră, zi și săptămână pentru orice loc.',
|
||||||
'name': 'Vremea',
|
'name': 'Vremea',
|
||||||
'name2': 'Design Convenabil',
|
'name2': 'Design Convenabil',
|
||||||
'name3': 'Contactați-ne',
|
'name3': 'Contactați-ne',
|
||||||
'description2':
|
'description2':
|
||||||
'Toată navigarea este concepută pentru a interacționa cu aplicația în cel mai comod și rapid mod posibil.',
|
'Toată navigarea este concepută pentru a interacționa cu aplicația în cel mai comod și rapid mod posibil.',
|
||||||
'description3':
|
'description3':
|
||||||
'Dacă întâmpinați orice probleme, vă rugăm să ne contactați prin e-mail sau în recenziile aplicației.',
|
'Dacă întâmpinați orice probleme, vă rugăm să ne contactați prin e-mail sau în recenziile aplicației.',
|
||||||
'next': 'Următorul',
|
'next': 'Următorul',
|
||||||
'search': 'Caută...',
|
'search': 'Caută...',
|
||||||
'loading': 'Încărcare...',
|
'loading': 'Încărcare...',
|
||||||
'searchCity': 'Caută oraș',
|
'searchCity': 'Caută oraș',
|
||||||
'humidity': 'Umiditate',
|
'humidity': 'Umiditate',
|
||||||
'wind': 'Vânt',
|
'wind': 'Vânt',
|
||||||
'visibility': 'Vizibilitate',
|
'visibility': 'Vizibilitate',
|
||||||
'feels': 'Se simt',
|
'feels': 'Se simt',
|
||||||
'evaporation': 'Evapotranspirație',
|
'evaporation': 'Evapotranspirație',
|
||||||
'precipitation': 'Precipitații',
|
'precipitation': 'Precipitații',
|
||||||
'direction': 'Direcție',
|
'direction': 'Direcție',
|
||||||
'pressure': 'Presiune',
|
'pressure': 'Presiune',
|
||||||
'rain': 'Ploaie',
|
'rain': 'Ploaie',
|
||||||
'clear_sky': 'Senin',
|
'clear_sky': 'Senin',
|
||||||
'cloudy': 'Înnorat',
|
'cloudy': 'Înnorat',
|
||||||
'overcast': 'Cer acoperit de nori',
|
'overcast': 'Cer acoperit de nori',
|
||||||
'fog': 'Ceață',
|
'fog': 'Ceață',
|
||||||
'drizzle': 'Burniță',
|
'drizzle': 'Burniță',
|
||||||
'drizzling_rain': 'Burniță înghețată',
|
'drizzling_rain': 'Burniță înghețată',
|
||||||
'freezing_rain': 'Ploaie înghețată',
|
'freezing_rain': 'Ploaie înghețată',
|
||||||
'heavy_rains': 'Ploaie torențială',
|
'heavy_rains': 'Ploaie torențială',
|
||||||
'snow': 'Ninsoare',
|
'snow': 'Ninsoare',
|
||||||
'thunderstorm': 'Furtună',
|
'thunderstorm': 'Furtună',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Set.',
|
'settings': 'Set.',
|
||||||
'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':
|
'no_location':
|
||||||
'Activează serviciul de localizare pentru a obține date meteorologice pentru locația curentă.',
|
'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',
|
||||||
'normal': 'Normal',
|
'normal': 'Normal',
|
||||||
'lat': 'Latitudine',
|
'lat': 'Latitudine',
|
||||||
'lon': 'Longitudine',
|
'lon': 'Longitudine',
|
||||||
'create': 'Crează',
|
'create': 'Crează',
|
||||||
'city': 'Oraș',
|
'city': 'Oraș',
|
||||||
'district': 'District',
|
'district': 'District',
|
||||||
'noWeatherCard': 'Adaugă un oraș',
|
'noWeatherCard': 'Adaugă un oraș',
|
||||||
'deletedCardWeather': 'Ștergerea orașului',
|
'deletedCardWeather': 'Ștergerea orașului',
|
||||||
'deletedCardWeatherQuery': 'Ești sigur că vrei să ștergi orașul?',
|
'deletedCardWeatherQuery': 'Ești sigur că vrei să ștergi orașul?',
|
||||||
'delete': 'Șterge',
|
'delete': 'Șterge',
|
||||||
'cancel': 'Anulează',
|
'cancel': 'Anulează',
|
||||||
'time': 'Ora în oraș',
|
'time': 'Ora în oraș',
|
||||||
'validateName': 'Introdu numele',
|
'validateName': 'Introdu numele',
|
||||||
'measurements': 'Sistemul de măsuri',
|
'measurements': 'Sistemul de măsuri',
|
||||||
'degrees': 'Grade',
|
'degrees': 'Grade',
|
||||||
'celsius': 'Celsius',
|
'celsius': 'Celsius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'Imperial',
|
'imperial': 'Imperial',
|
||||||
'metric': 'Metric',
|
'metric': 'Metric',
|
||||||
'validateValue': 'Introdu o valoare',
|
'validateValue': 'Introdu o valoare',
|
||||||
'validateNumber': 'Introdu un număr valid',
|
'validateNumber': 'Introdu un număr valid',
|
||||||
'validate90': 'Valoarea trebuie să fie între -90 și 90',
|
'validate90': 'Valoarea trebuie să fie între -90 și 90',
|
||||||
'validate180': 'Valoarea trebuie să fie între -180 și 180',
|
'validate180': 'Valoarea trebuie să fie între -180 și 180',
|
||||||
'notifications': 'Notificări',
|
'notifications': 'Notificări',
|
||||||
'sunrise': 'Răsărit',
|
'sunrise': 'Răsărit',
|
||||||
'sunset': 'Apus',
|
'sunset': 'Apus',
|
||||||
'timeformat': 'Format orar',
|
'timeformat': 'Format orar',
|
||||||
'12': '12 ore',
|
'12': '12 ore',
|
||||||
'24': '24 ore',
|
'24': '24 ore',
|
||||||
'cloudcover': 'Acoperirea norilor',
|
'cloudcover': 'Acoperirea norilor',
|
||||||
'uvIndex': 'Index UV',
|
'uvIndex': 'Index UV',
|
||||||
'materialColor': 'Culori dinamice (Android 12+)',
|
'materialColor': 'Culori dinamice (Android 12+)',
|
||||||
'uvLow': 'Scăzut',
|
'uvLow': 'Scăzut',
|
||||||
'uvAverage': 'Moderat',
|
'uvAverage': 'Moderat',
|
||||||
'uvHigh': 'Ridicat',
|
'uvHigh': 'Ridicat',
|
||||||
'uvVeryHigh': 'Foarte ridicat',
|
'uvVeryHigh': 'Foarte ridicat',
|
||||||
'uvExtreme': 'Extrem',
|
'uvExtreme': 'Extrem',
|
||||||
'weatherMore': 'Prognoza pe 12 zile',
|
'weatherMore': 'Prognoza pe 12 zile',
|
||||||
'windgusts': 'Rafale de vânt',
|
'windgusts': 'Rafale de vânt',
|
||||||
'north': 'Nord',
|
'north': 'Nord',
|
||||||
'northeast': 'Nord-est',
|
'northeast': 'Nord-est',
|
||||||
'east': 'Est',
|
'east': 'Est',
|
||||||
'southeast': 'Sud-est',
|
'southeast': 'Sud-est',
|
||||||
'south': 'Sud',
|
'south': 'Sud',
|
||||||
'southwest': 'Sud-vest',
|
'southwest': 'Sud-vest',
|
||||||
'west': 'Vest',
|
'west': 'Vest',
|
||||||
'northwest': 'Nord-vest',
|
'northwest': 'Nord-vest',
|
||||||
'project': 'Proiectul pe',
|
'project': 'Proiectul pe',
|
||||||
'version': 'Versiunea aplicației',
|
'version': 'Versiunea aplicației',
|
||||||
'precipitationProbability': 'Probabilitatea precipitațiilor',
|
'precipitationProbability': 'Probabilitatea precipitațiilor',
|
||||||
'apparentTemperatureMin': 'Temperatura minimă aparentă',
|
'apparentTemperatureMin': 'Temperatura minimă aparentă',
|
||||||
'apparentTemperatureMax': 'Temperatura maximă aparentă',
|
'apparentTemperatureMax': 'Temperatura maximă aparentă',
|
||||||
'amoledTheme': 'Temă AMOLED',
|
'amoledTheme': 'Temă AMOLED',
|
||||||
'appearance': 'Aspect',
|
'appearance': 'Aspect',
|
||||||
'functions': 'Funcții',
|
'functions': 'Funcții',
|
||||||
'data': 'Data',
|
'data': 'Data',
|
||||||
'language': 'Limba',
|
'language': 'Limba',
|
||||||
'timeRange': 'Frecvența (în ore)',
|
'timeRange': 'Frecvența (în ore)',
|
||||||
'timeStart': 'Ora de început',
|
'timeStart': 'Ora de început',
|
||||||
'timeEnd': 'Ora de sfârșit',
|
'timeEnd': 'Ora de sfârșit',
|
||||||
'support': 'Suport',
|
'support': 'Suport',
|
||||||
'system': 'Sistem',
|
'system': 'Sistem',
|
||||||
'dark': 'Întunecat',
|
'dark': 'Întunecat',
|
||||||
'light': 'Luminos',
|
'light': 'Luminos',
|
||||||
'license': 'Licențe',
|
'license': 'Licențe',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Fundal widget',
|
'widgetBackground': 'Fundal widget',
|
||||||
'widgetText': 'Text widget',
|
'widgetText': 'Text widget',
|
||||||
'dewpoint': 'Punct de rouă',
|
'dewpoint': 'Punct de rouă',
|
||||||
'shortwaveRadiation': 'Radiație cu unde scurte',
|
'shortwaveRadiation': 'Radiație cu unde scurte',
|
||||||
'roundDegree': 'Rotunjire grade',
|
'roundDegree': 'Rotunjire grade',
|
||||||
'settings_full': 'Setări',
|
'settings_full': 'Setări',
|
||||||
'cities': 'Orașe',
|
'cities': 'Orașe',
|
||||||
'searchMethod': 'Folosiți căutarea sau geolocația',
|
'searchMethod': 'Folosiți căutarea sau geolocația',
|
||||||
'done': 'Gata',
|
'done': 'Gata',
|
||||||
'groups': 'Grupurile noastre',
|
'groups': 'Grupurile noastre',
|
||||||
'openMeteo': 'Date de la Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Date de la Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Variabile meteorologice orare',
|
'hourlyVariables': 'Variabile meteorologice orare',
|
||||||
'dailyVariables': 'Variabile meteorologice zilnice',
|
'dailyVariables': 'Variabile meteorologice zilnice',
|
||||||
'largeElement': 'Afișare mare a vremii',
|
'largeElement': 'Afișare mare a vremii',
|
||||||
'map': 'Hartă',
|
'map': 'Hartă',
|
||||||
'clearCacheStore': 'Șterge cache-ul',
|
'clearCacheStore': 'Șterge cache-ul',
|
||||||
'deletedCacheStore': 'Ștergerea cache-ului',
|
'deletedCacheStore': 'Ștergerea cache-ului',
|
||||||
'deletedCacheStoreQuery': 'Ești sigur că vrei să ștergi cache-ul?',
|
'deletedCacheStoreQuery': 'Ești sigur că vrei să ștergi cache-ul?',
|
||||||
'addWidget': 'Adaugă widget',
|
'addWidget': 'Adaugă widget',
|
||||||
'hideMap': 'Ascunde harta',
|
'hideMap': 'Ascunde harta',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
class RuRu {
|
class RuRu {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Начать',
|
'start': 'Начать',
|
||||||
'description':
|
'description':
|
||||||
'Приложение погоды с актуальным прогнозом на каждый час, день и неделю для любого места.',
|
'Приложение погоды с актуальным прогнозом на каждый час, день и неделю для любого места.',
|
||||||
'name': 'Погода',
|
'name': 'Погода',
|
||||||
'name2': 'Удобный дизайн',
|
'name2': 'Удобный дизайн',
|
||||||
'name3': 'Связаться с нами',
|
'name3': 'Связаться с нами',
|
||||||
'description2':
|
'description2':
|
||||||
'Вся навигация сделана таким образом, чтобы можно было взаимодействовать с приложением максимально удобно и быстро.',
|
'Вся навигация сделана таким образом, чтобы можно было взаимодействовать с приложением максимально удобно и быстро.',
|
||||||
'description3':
|
'description3':
|
||||||
'Если у вас возникнут какие-либо проблемы, пожалуйста, свяжитесь с нами по электронной почте или в отзывах приложения.',
|
'Если у вас возникнут какие-либо проблемы, пожалуйста, свяжитесь с нами по электронной почте или в отзывах приложения.',
|
||||||
'next': 'Далее',
|
'next': 'Далее',
|
||||||
'search': 'Поиск...',
|
'search': 'Поиск...',
|
||||||
'loading': 'Загрузка...',
|
'loading': 'Загрузка...',
|
||||||
'searchCity': 'Найдите свой город',
|
'searchCity': 'Найдите свой город',
|
||||||
'humidity': 'Влажность',
|
'humidity': 'Влажность',
|
||||||
'wind': 'Ветер',
|
'wind': 'Ветер',
|
||||||
'visibility': 'Видимость',
|
'visibility': 'Видимость',
|
||||||
'feels': 'Ощущается',
|
'feels': 'Ощущается',
|
||||||
'evaporation': 'Испарения',
|
'evaporation': 'Испарения',
|
||||||
'precipitation': 'Осадки',
|
'precipitation': 'Осадки',
|
||||||
'direction': 'Направление',
|
'direction': 'Направление',
|
||||||
'pressure': 'Давление',
|
'pressure': 'Давление',
|
||||||
'rain': 'Дождь',
|
'rain': 'Дождь',
|
||||||
'clear_sky': 'Чистое небо',
|
'clear_sky': 'Чистое небо',
|
||||||
'cloudy': 'Облачно',
|
'cloudy': 'Облачно',
|
||||||
'overcast': 'Пасмурно',
|
'overcast': 'Пасмурно',
|
||||||
'fog': 'Туман',
|
'fog': 'Туман',
|
||||||
'drizzle': 'Морось',
|
'drizzle': 'Морось',
|
||||||
'drizzling_rain': 'Моросящий дождь',
|
'drizzling_rain': 'Моросящий дождь',
|
||||||
'freezing_rain': 'Ледяной дождь',
|
'freezing_rain': 'Ледяной дождь',
|
||||||
'heavy_rains': 'Ливневые дожди',
|
'heavy_rains': 'Ливневые дожди',
|
||||||
'snow': 'Снег',
|
'snow': 'Снег',
|
||||||
'thunderstorm': 'Гроза',
|
'thunderstorm': 'Гроза',
|
||||||
'kph': 'км/ч',
|
'kph': 'км/ч',
|
||||||
'm/s': 'м/с',
|
'm/s': 'м/с',
|
||||||
'mmHg': 'мм рт. ст.',
|
'mmHg': 'мм рт. ст.',
|
||||||
'mph': 'миль/ч',
|
'mph': 'миль/ч',
|
||||||
'mi': 'миль',
|
'mi': 'миль',
|
||||||
'km': 'км',
|
'km': 'км',
|
||||||
'inch': 'дюйм',
|
'inch': 'дюйм',
|
||||||
'mm': 'мм',
|
'mm': 'мм',
|
||||||
'hPa': 'гПа',
|
'hPa': 'гПа',
|
||||||
'settings': 'Настр.',
|
'settings': 'Настр.',
|
||||||
'no_inter': 'Нет интернета',
|
'no_inter': 'Нет интернета',
|
||||||
'on_inter': 'Включите интернет для получения метеорологических данных.',
|
'on_inter': 'Включите интернет для получения метеорологических данных.',
|
||||||
'location': 'Местоположение',
|
'location': 'Местоположение',
|
||||||
'no_location':
|
'no_location':
|
||||||
'Включите службу определения местоположения для получения метеорологических данных для текущего местоположения.',
|
'Включите службу определения местоположения для получения метеорологических данных для текущего местоположения.',
|
||||||
'theme': 'Тема',
|
'theme': 'Тема',
|
||||||
'low': 'Низкое',
|
'low': 'Низкое',
|
||||||
'high': 'Высокое',
|
'high': 'Высокое',
|
||||||
'normal': 'Нормальное',
|
'normal': 'Нормальное',
|
||||||
'lat': 'Широта',
|
'lat': 'Широта',
|
||||||
'lon': 'Долгота',
|
'lon': 'Долгота',
|
||||||
'create': 'Создание',
|
'create': 'Создание',
|
||||||
'city': 'Город',
|
'city': 'Город',
|
||||||
'district': 'Район',
|
'district': 'Район',
|
||||||
'noWeatherCard': 'Добавьте город',
|
'noWeatherCard': 'Добавьте город',
|
||||||
'deletedCardWeather': 'Удаление города',
|
'deletedCardWeather': 'Удаление города',
|
||||||
'deletedCardWeatherQuery': 'Вы уверены, что хотите удалить город?',
|
'deletedCardWeatherQuery': 'Вы уверены, что хотите удалить город?',
|
||||||
'delete': 'Удалить',
|
'delete': 'Удалить',
|
||||||
'cancel': 'Отмена',
|
'cancel': 'Отмена',
|
||||||
'time': 'Время в городе',
|
'time': 'Время в городе',
|
||||||
'validateName': 'Пожалуйста, введите название',
|
'validateName': 'Пожалуйста, введите название',
|
||||||
'measurements': 'Система мер',
|
'measurements': 'Система мер',
|
||||||
'degrees': 'Градусы',
|
'degrees': 'Градусы',
|
||||||
'celsius': 'Цельсия',
|
'celsius': 'Цельсия',
|
||||||
'fahrenheit': 'Фаренгейта',
|
'fahrenheit': 'Фаренгейта',
|
||||||
'imperial': 'Имперская',
|
'imperial': 'Имперская',
|
||||||
'metric': 'Метрическая',
|
'metric': 'Метрическая',
|
||||||
'validateValue': 'Пожалуйста, введите значение',
|
'validateValue': 'Пожалуйста, введите значение',
|
||||||
'validateNumber': 'Пожалуйста, введите число',
|
'validateNumber': 'Пожалуйста, введите число',
|
||||||
'validate90': 'Значение должно быть в диапазоне от -90 до 90',
|
'validate90': 'Значение должно быть в диапазоне от -90 до 90',
|
||||||
'validate180': 'Значение должно быть в диапазоне от -180 до 180',
|
'validate180': 'Значение должно быть в диапазоне от -180 до 180',
|
||||||
'notifications': 'Уведомления',
|
'notifications': 'Уведомления',
|
||||||
'sunrise': 'Рассвет',
|
'sunrise': 'Рассвет',
|
||||||
'sunset': 'Закат',
|
'sunset': 'Закат',
|
||||||
'timeformat': 'Формат времени',
|
'timeformat': 'Формат времени',
|
||||||
'12': '12-часовой',
|
'12': '12-часовой',
|
||||||
'24': '24-часовой',
|
'24': '24-часовой',
|
||||||
'cloudcover': 'Облачный покров',
|
'cloudcover': 'Облачный покров',
|
||||||
'uvIndex': 'УФ-индекс',
|
'uvIndex': 'УФ-индекс',
|
||||||
'materialColor': 'Динамические цвета',
|
'materialColor': 'Динамические цвета',
|
||||||
'uvLow': 'Низкий',
|
'uvLow': 'Низкий',
|
||||||
'uvAverage': 'Умеренный',
|
'uvAverage': 'Умеренный',
|
||||||
'uvHigh': 'Высокий',
|
'uvHigh': 'Высокий',
|
||||||
'uvVeryHigh': 'Очень высокий',
|
'uvVeryHigh': 'Очень высокий',
|
||||||
'uvExtreme': 'Экстремальный',
|
'uvExtreme': 'Экстремальный',
|
||||||
'weatherMore': 'Прогноз погоды на 12 дней',
|
'weatherMore': 'Прогноз погоды на 12 дней',
|
||||||
'windgusts': 'Шквал',
|
'windgusts': 'Шквал',
|
||||||
'north': 'Север',
|
'north': 'Север',
|
||||||
'northeast': 'Северо-восток',
|
'northeast': 'Северо-восток',
|
||||||
'east': 'Восток',
|
'east': 'Восток',
|
||||||
'southeast': 'Юго-восток',
|
'southeast': 'Юго-восток',
|
||||||
'south': 'Юг',
|
'south': 'Юг',
|
||||||
'southwest': 'Юго-запад',
|
'southwest': 'Юго-запад',
|
||||||
'west': 'Запад',
|
'west': 'Запад',
|
||||||
'northwest': 'Северо-запад',
|
'northwest': 'Северо-запад',
|
||||||
'project': 'Проект на',
|
'project': 'Проект на',
|
||||||
'version': 'Версия приложения',
|
'version': 'Версия приложения',
|
||||||
'precipitationProbability': 'Вероятность выпадения осадков',
|
'precipitationProbability': 'Вероятность выпадения осадков',
|
||||||
'apparentTemperatureMin': 'Минимальная ощущаемая температура',
|
'apparentTemperatureMin': 'Минимальная ощущаемая температура',
|
||||||
'apparentTemperatureMax': 'Максимальная ощущаемая температура',
|
'apparentTemperatureMax': 'Максимальная ощущаемая температура',
|
||||||
'amoledTheme': 'AMOLED-тема',
|
'amoledTheme': 'AMOLED-тема',
|
||||||
'appearance': 'Внешний вид',
|
'appearance': 'Внешний вид',
|
||||||
'functions': 'Функции',
|
'functions': 'Функции',
|
||||||
'data': 'Данные',
|
'data': 'Данные',
|
||||||
'language': 'Язык',
|
'language': 'Язык',
|
||||||
'timeRange': 'Периодичность (в часах)',
|
'timeRange': 'Периодичность (в часах)',
|
||||||
'timeStart': 'Время начала',
|
'timeStart': 'Время начала',
|
||||||
'timeEnd': 'Время окончания',
|
'timeEnd': 'Время окончания',
|
||||||
'support': 'Поддержка',
|
'support': 'Поддержка',
|
||||||
'system': 'Системная',
|
'system': 'Системная',
|
||||||
'dark': 'Тёмная',
|
'dark': 'Тёмная',
|
||||||
'light': 'Светлая',
|
'light': 'Светлая',
|
||||||
'license': 'Лицензии',
|
'license': 'Лицензии',
|
||||||
'widget': 'Виджет',
|
'widget': 'Виджет',
|
||||||
'widgetBackground': 'Фон виджета',
|
'widgetBackground': 'Фон виджета',
|
||||||
'widgetText': 'Текст виджета',
|
'widgetText': 'Текст виджета',
|
||||||
'dewpoint': 'Точка росы',
|
'dewpoint': 'Точка росы',
|
||||||
'shortwaveRadiation': 'Коротковолновое излучение',
|
'shortwaveRadiation': 'Коротковолновое излучение',
|
||||||
'W/m2': 'Вт/м2',
|
'W/m2': 'Вт/м2',
|
||||||
'roundDegree': 'Округлить градусы',
|
'roundDegree': 'Округлить градусы',
|
||||||
'settings_full': 'Настройки',
|
'settings_full': 'Настройки',
|
||||||
'cities': 'Города',
|
'cities': 'Города',
|
||||||
'searchMethod': 'Воспользуйтесь поиском или геолокацией',
|
'searchMethod': 'Воспользуйтесь поиском или геолокацией',
|
||||||
'done': 'Готово',
|
'done': 'Готово',
|
||||||
'groups': 'Наши группы',
|
'groups': 'Наши группы',
|
||||||
'openMeteo': 'Данные от Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Данные от Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Почасовые погодные условия',
|
'hourlyVariables': 'Почасовые погодные условия',
|
||||||
'dailyVariables': 'Ежедневные погодные условия',
|
'dailyVariables': 'Ежедневные погодные условия',
|
||||||
'largeElement': 'Отображение погоды большим элементом',
|
'largeElement': 'Отображение погоды большим элементом',
|
||||||
'map': 'Карта',
|
'map': 'Карта',
|
||||||
'clearCacheStore': 'Очистить кэш',
|
'clearCacheStore': 'Очистить кэш',
|
||||||
'deletedCacheStore': 'Очистка кэша',
|
'deletedCacheStore': 'Очистка кэша',
|
||||||
'deletedCacheStoreQuery': 'Вы уверены, что хотите очистить кэш?',
|
'deletedCacheStoreQuery': 'Вы уверены, что хотите очистить кэш?',
|
||||||
'addWidget': 'Добавить виджет',
|
'addWidget': 'Добавить виджет',
|
||||||
'hideMap': 'Скрыть карту',
|
'hideMap': 'Скрыть карту',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
class SkSk {
|
class SkSk {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Začať',
|
'start': 'Začať',
|
||||||
'description':
|
'description':
|
||||||
'Aplikácia počasia s aktuálnym predpoveďou pre každú hodinu, deň a týždeň pre akékoľvek miesto.',
|
'Aplikácia počasia s aktuálnym predpoveďou pre každú hodinu, deň a týždeň pre akékoľvek miesto.',
|
||||||
'name': 'Počasie',
|
'name': 'Počasie',
|
||||||
'name2': 'Pohodlný dizajn',
|
'name2': 'Pohodlný dizajn',
|
||||||
'name3': 'Kontaktujte nás',
|
'name3': 'Kontaktujte nás',
|
||||||
'description2':
|
'description2':
|
||||||
'Celá navigácia je navrhnutá tak, aby sa s aplikáciou dalo interagovať čo najpohodlnejšie a najrýchlejšie.',
|
'Celá navigácia je navrhnutá tak, aby sa s aplikáciou dalo interagovať čo najpohodlnejšie a najrýchlejšie.',
|
||||||
'description3':
|
'description3':
|
||||||
'Ak sa vyskytnú nejaké problémy, kontaktujte nás prosím e-mailom alebo v recenziách aplikácie.',
|
'Ak sa vyskytnú nejaké problémy, kontaktujte nás prosím e-mailom alebo v recenziách aplikácie.',
|
||||||
'next': 'Ďalej',
|
'next': 'Ďalej',
|
||||||
'search': 'Hľadať...',
|
'search': 'Hľadať...',
|
||||||
'loading': 'Načítava sa...',
|
'loading': 'Načítava sa...',
|
||||||
'searchCity': 'Nájdite svoje miesto',
|
'searchCity': 'Nájdite svoje miesto',
|
||||||
'humidity': 'Vlhkosť',
|
'humidity': 'Vlhkosť',
|
||||||
'wind': 'Vietor',
|
'wind': 'Vietor',
|
||||||
'visibility': 'Viditeľnosť',
|
'visibility': 'Viditeľnosť',
|
||||||
'feels': 'Pocitová teplota',
|
'feels': 'Pocitová teplota',
|
||||||
'evaporation': 'Evapotranspirácia',
|
'evaporation': 'Evapotranspirácia',
|
||||||
'precipitation': 'Zrážky',
|
'precipitation': 'Zrážky',
|
||||||
'direction': 'Smer',
|
'direction': 'Smer',
|
||||||
'pressure': 'Tlak',
|
'pressure': 'Tlak',
|
||||||
'rain': 'Dážď',
|
'rain': 'Dážď',
|
||||||
'clear_sky': 'Jasno',
|
'clear_sky': 'Jasno',
|
||||||
'cloudy': 'Oblačno',
|
'cloudy': 'Oblačno',
|
||||||
'overcast': 'Zamračené',
|
'overcast': 'Zamračené',
|
||||||
'fog': 'Hmla',
|
'fog': 'Hmla',
|
||||||
'drizzle': 'Mrholenie',
|
'drizzle': 'Mrholenie',
|
||||||
'drizzling_rain': 'Mrznúce mrholenie',
|
'drizzling_rain': 'Mrznúce mrholenie',
|
||||||
'freezing_rain': 'Mrazivý dážď',
|
'freezing_rain': 'Mrazivý dážď',
|
||||||
'heavy_rains': 'Prehánky',
|
'heavy_rains': 'Prehánky',
|
||||||
'snow': 'Sneh',
|
'snow': 'Sneh',
|
||||||
'thunderstorm': 'Búrka',
|
'thunderstorm': 'Búrka',
|
||||||
'kph': 'km/h',
|
'kph': 'km/h',
|
||||||
'mph': 'mph',
|
'mph': 'mph',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mi',
|
'mi': 'mi',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inch',
|
'inch': 'inch',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Nast.',
|
'settings': 'Nast.',
|
||||||
'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':
|
'no_location':
|
||||||
'Ak chcete získať údaje o počasí pre aktuálnu polohu, povoľte službu určovania polohy.',
|
'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ý',
|
||||||
'normal': 'Normálny',
|
'normal': 'Normálny',
|
||||||
'lat': 'Zemepisná šírka',
|
'lat': 'Zemepisná šírka',
|
||||||
'lon': 'Zemepisná dĺžka',
|
'lon': 'Zemepisná dĺžka',
|
||||||
'create': 'Vytvoriť',
|
'create': 'Vytvoriť',
|
||||||
'city': 'Miesto',
|
'city': 'Miesto',
|
||||||
'district': 'Okres',
|
'district': 'Okres',
|
||||||
'noWeatherCard': 'Pridať mesto',
|
'noWeatherCard': 'Pridať mesto',
|
||||||
'deletedCardWeather': 'Vymazať mesto',
|
'deletedCardWeather': 'Vymazať mesto',
|
||||||
'deletedCardWeatherQuery': 'Naozaj chcete odstrániť mesto?',
|
'deletedCardWeatherQuery': 'Naozaj chcete odstrániť mesto?',
|
||||||
'delete': 'Odstrániť',
|
'delete': 'Odstrániť',
|
||||||
'cancel': 'Zrušiť',
|
'cancel': 'Zrušiť',
|
||||||
'time': 'Čas v meste',
|
'time': 'Čas v meste',
|
||||||
'validateName': 'Prosím zadajte názov',
|
'validateName': 'Prosím zadajte názov',
|
||||||
'measurements': 'Jednotky merania',
|
'measurements': 'Jednotky merania',
|
||||||
'degrees': 'Stupňe',
|
'degrees': 'Stupňe',
|
||||||
'celsius': 'Celzius',
|
'celsius': 'Celzius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'Imperiálne',
|
'imperial': 'Imperiálne',
|
||||||
'metric': 'Metrické',
|
'metric': 'Metrické',
|
||||||
'validateValue': 'Zadajte hodnotu',
|
'validateValue': 'Zadajte hodnotu',
|
||||||
'validateNumber': 'Zadajte platné číslo',
|
'validateNumber': 'Zadajte platné číslo',
|
||||||
'validate90': 'Hodnota musí byť medzi -90 a 90',
|
'validate90': 'Hodnota musí byť medzi -90 a 90',
|
||||||
'validate180': 'Hodnota musí byť medzi -180 a 180',
|
'validate180': 'Hodnota musí byť medzi -180 a 180',
|
||||||
'notifications': 'Notifikácie',
|
'notifications': 'Notifikácie',
|
||||||
'sunrise': 'Východ slnka',
|
'sunrise': 'Východ slnka',
|
||||||
'sunset': 'Západ slnka',
|
'sunset': 'Západ slnka',
|
||||||
'timeformat': 'Formát času',
|
'timeformat': 'Formát času',
|
||||||
'12': '12-hodinový',
|
'12': '12-hodinový',
|
||||||
'24': '24-hodinový',
|
'24': '24-hodinový',
|
||||||
'cloudcover': 'Oblačnosť',
|
'cloudcover': 'Oblačnosť',
|
||||||
'uvIndex': 'UV-index',
|
'uvIndex': 'UV-index',
|
||||||
'materialColor': 'Dynamické Farby',
|
'materialColor': 'Dynamické Farby',
|
||||||
'uvLow': 'Nízky',
|
'uvLow': 'Nízky',
|
||||||
'uvAverage': 'Mierny',
|
'uvAverage': 'Mierny',
|
||||||
'uvHigh': 'Vysoký',
|
'uvHigh': 'Vysoký',
|
||||||
'uvVeryHigh': 'Veľmi vysoký',
|
'uvVeryHigh': 'Veľmi vysoký',
|
||||||
'uvExtreme': 'Extrémny',
|
'uvExtreme': 'Extrémny',
|
||||||
'weatherMore': 'Predpoveď počasia na 12 dní',
|
'weatherMore': 'Predpoveď počasia na 12 dní',
|
||||||
'windgusts': 'Nárazy vetra',
|
'windgusts': 'Nárazy vetra',
|
||||||
'north': 'Sever',
|
'north': 'Sever',
|
||||||
'northeast': 'Severo-Východ',
|
'northeast': 'Severo-Východ',
|
||||||
'east': 'Východ',
|
'east': 'Východ',
|
||||||
'southeast': 'Juhovýchod',
|
'southeast': 'Juhovýchod',
|
||||||
'south': 'Juž',
|
'south': 'Juž',
|
||||||
'southwest': 'Juhozápad',
|
'southwest': 'Juhozápad',
|
||||||
'west': 'Západ',
|
'west': 'Západ',
|
||||||
'northwest': 'Severo-Západ',
|
'northwest': 'Severo-Západ',
|
||||||
'project': 'Projekt na',
|
'project': 'Projekt na',
|
||||||
'version': 'Verzia aplikácie',
|
'version': 'Verzia aplikácie',
|
||||||
'precipitationProbability': 'Pravdepodobnosť zrážok',
|
'precipitationProbability': 'Pravdepodobnosť zrážok',
|
||||||
'apparentTemperatureMin': 'Minimálna pocitová teplota',
|
'apparentTemperatureMin': 'Minimálna pocitová teplota',
|
||||||
'apparentTemperatureMax': 'Maximálna pocitová teplota',
|
'apparentTemperatureMax': 'Maximálna pocitová teplota',
|
||||||
'amoledTheme': 'AMOLED-téma',
|
'amoledTheme': 'AMOLED-téma',
|
||||||
'appearance': 'Vzhľad',
|
'appearance': 'Vzhľad',
|
||||||
'functions': 'Funkcie',
|
'functions': 'Funkcie',
|
||||||
'data': 'Dáta',
|
'data': 'Dáta',
|
||||||
'language': 'Jazyk',
|
'language': 'Jazyk',
|
||||||
'timeRange': 'Frekvencia (v hodinách)',
|
'timeRange': 'Frekvencia (v hodinách)',
|
||||||
'timeStart': 'Čas začiatku',
|
'timeStart': 'Čas začiatku',
|
||||||
'timeEnd': 'Čas ukončenia',
|
'timeEnd': 'Čas ukončenia',
|
||||||
'support': 'Podpora',
|
'support': 'Podpora',
|
||||||
'system': 'Systém',
|
'system': 'Systém',
|
||||||
'dark': 'Tmavá',
|
'dark': 'Tmavá',
|
||||||
'light': 'Svetlá',
|
'light': 'Svetlá',
|
||||||
'license': 'Licencie',
|
'license': 'Licencie',
|
||||||
'widget': 'Widget',
|
'widget': 'Widget',
|
||||||
'widgetBackground': 'Pozadie widgetu',
|
'widgetBackground': 'Pozadie widgetu',
|
||||||
'widgetText': 'Text widgetu',
|
'widgetText': 'Text widgetu',
|
||||||
'dewpoint': 'Rosný bod',
|
'dewpoint': 'Rosný bod',
|
||||||
'shortwaveRadiation': 'Krátka vlnová radiácia',
|
'shortwaveRadiation': 'Krátka vlnová radiácia',
|
||||||
'roundDegree': 'Zaokrúhliť stupne',
|
'roundDegree': 'Zaokrúhliť stupne',
|
||||||
'settings_full': 'Nastavenia',
|
'settings_full': 'Nastavenia',
|
||||||
'cities': 'Mestá',
|
'cities': 'Mestá',
|
||||||
'searchMethod': 'Použite vyhľadávanie alebo geolokáciu',
|
'searchMethod': 'Použite vyhľadávanie alebo geolokáciu',
|
||||||
'done': 'Hotovo',
|
'done': 'Hotovo',
|
||||||
'groups': 'Naše skupiny',
|
'groups': 'Naše skupiny',
|
||||||
'openMeteo': 'Údaje od Open-Meteo (CC-BY 4.0)',
|
'openMeteo': 'Údaje od Open-Meteo (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Hodinové meteorologické premenné',
|
'hourlyVariables': 'Hodinové meteorologické premenné',
|
||||||
'dailyVariables': 'Denné meteorologické premenné',
|
'dailyVariables': 'Denné meteorologické premenné',
|
||||||
'largeElement': 'Veľké zobrazenie počasia',
|
'largeElement': 'Veľké zobrazenie počasia',
|
||||||
'map': 'Mapa',
|
'map': 'Mapa',
|
||||||
'clearCacheStore': 'Vymazať vyrovnávaciu pamäť',
|
'clearCacheStore': 'Vymazať vyrovnávaciu pamäť',
|
||||||
'deletedCacheStore': 'Vymazávanie vyrovnávacej pamäte',
|
'deletedCacheStore': 'Vymazávanie vyrovnávacej pamäte',
|
||||||
'deletedCacheStoreQuery':
|
'deletedCacheStoreQuery':
|
||||||
'Ste si istí, že chcete vymazať vyrovnávaciu pamäť?',
|
'Ste si istí, že chcete vymazať vyrovnávaciu pamäť?',
|
||||||
'addWidget': 'Pridať widget',
|
'addWidget': 'Pridať widget',
|
||||||
'hideMap': 'Skryť mapu',
|
'hideMap': 'Skryť mapu',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
class TrTr {
|
class TrTr {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'Başlat',
|
'start': 'Başlat',
|
||||||
'description':
|
'description':
|
||||||
'Herhangi bir yer için her saat, gün ve hafta için güncel hava durumu tahmini sunan hava durumu uygulaması.',
|
'Herhangi bir yer için her saat, gün ve hafta için güncel hava durumu tahmini sunan hava durumu uygulaması.',
|
||||||
'name': 'Hava Durumu',
|
'name': 'Hava Durumu',
|
||||||
'name2': 'Pratik Tasarım',
|
'name2': 'Pratik Tasarım',
|
||||||
'name3': 'Bizimle İletişime Geçin',
|
'name3': 'Bizimle İletişime Geçin',
|
||||||
'description2':
|
'description2':
|
||||||
'Tüm gezinme, uygulama ile mümkün olduğunca rahat ve hızlı etkileşim kurmak için tasarlanmıştır.',
|
'Tüm gezinme, uygulama ile mümkün olduğunca rahat ve hızlı etkileşim kurmak için tasarlanmıştır.',
|
||||||
'description3':
|
'description3':
|
||||||
'Herhangi bir sorunla karşılaşırsanız, lütfen bize e-posta veya uygulama yorumları aracılığıyla ulaşın.',
|
'Herhangi bir sorunla karşılaşırsanız, lütfen bize e-posta veya uygulama yorumları aracılığıyla ulaşın.',
|
||||||
'next': 'Devam',
|
'next': 'Devam',
|
||||||
'search': 'Arayış...',
|
'search': 'Arayış...',
|
||||||
'loading': 'Yükleniyor...',
|
'loading': 'Yükleniyor...',
|
||||||
'searchCity': 'Şehrinizi bulun',
|
'searchCity': 'Şehrinizi bulun',
|
||||||
'humidity': 'Nem',
|
'humidity': 'Nem',
|
||||||
'wind': 'Rüzgar',
|
'wind': 'Rüzgar',
|
||||||
'visibility': 'Görüş',
|
'visibility': 'Görüş',
|
||||||
'feels': 'Hissedilen',
|
'feels': 'Hissedilen',
|
||||||
'evaporation': 'Buharlaşma',
|
'evaporation': 'Buharlaşma',
|
||||||
'precipitation': 'Yağış',
|
'precipitation': 'Yağış',
|
||||||
'direction': 'Yön',
|
'direction': 'Yön',
|
||||||
'pressure': 'Basınç',
|
'pressure': 'Basınç',
|
||||||
'rain': 'Yağmur',
|
'rain': 'Yağmur',
|
||||||
'clear_sky': 'Açık gökyüzü',
|
'clear_sky': 'Açık gökyüzü',
|
||||||
'cloudy': 'Bulutlu',
|
'cloudy': 'Bulutlu',
|
||||||
'overcast': 'Kapalı',
|
'overcast': 'Kapalı',
|
||||||
'fog': 'Sis',
|
'fog': 'Sis',
|
||||||
'drizzle': 'Çiseleme',
|
'drizzle': 'Çiseleme',
|
||||||
'drizzling_rain': 'Çiseleyen Yağmur',
|
'drizzling_rain': 'Çiseleyen Yağmur',
|
||||||
'freezing_rain': 'Dondurucu Yağmur',
|
'freezing_rain': 'Dondurucu Yağmur',
|
||||||
'heavy_rains': 'Aşırı Yağmurlar',
|
'heavy_rains': 'Aşırı Yağmurlar',
|
||||||
'snow': 'Kar',
|
'snow': 'Kar',
|
||||||
'thunderstorm': 'Gök Gürültülü Fırtına',
|
'thunderstorm': 'Gök Gürültülü Fırtına',
|
||||||
'kph': 'km/sa',
|
'kph': 'km/sa',
|
||||||
'mph': 'mil/sa',
|
'mph': 'mil/sa',
|
||||||
'm/s': 'm/s',
|
'm/s': 'm/s',
|
||||||
'mmHg': 'mmHg',
|
'mmHg': 'mmHg',
|
||||||
'mi': 'mil',
|
'mi': 'mil',
|
||||||
'km': 'km',
|
'km': 'km',
|
||||||
'inch': 'inç',
|
'inch': 'inç',
|
||||||
'mm': 'mm',
|
'mm': 'mm',
|
||||||
'hPa': 'hPa',
|
'hPa': 'hPa',
|
||||||
'settings': 'Ayarlar',
|
'settings': 'Ayarlar',
|
||||||
'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':
|
'no_location':
|
||||||
'Mevcut konumun hava durumu verilerini almak için konum servisini açın.',
|
'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',
|
||||||
'normal': 'Normal',
|
'normal': 'Normal',
|
||||||
'lat': 'Enlem',
|
'lat': 'Enlem',
|
||||||
'lon': 'Boylam',
|
'lon': 'Boylam',
|
||||||
'create': 'Oluştur',
|
'create': 'Oluştur',
|
||||||
'city': 'Şehir',
|
'city': 'Şehir',
|
||||||
'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',
|
||||||
'validateName': 'Lütfen bir isim girin',
|
'validateName': 'Lütfen bir isim girin',
|
||||||
'measurements': 'Ölçüm sistemi',
|
'measurements': 'Ölçüm sistemi',
|
||||||
'degrees': 'Dereceler',
|
'degrees': 'Dereceler',
|
||||||
'celsius': 'Celsius',
|
'celsius': 'Celsius',
|
||||||
'fahrenheit': 'Fahrenheit',
|
'fahrenheit': 'Fahrenheit',
|
||||||
'imperial': 'İmparatorluk',
|
'imperial': 'İmparatorluk',
|
||||||
'metric': 'Metrik',
|
'metric': 'Metrik',
|
||||||
'validateValue': 'Lütfen bir değer girin',
|
'validateValue': 'Lütfen bir değer girin',
|
||||||
'validateNumber': 'Lütfen bir sayı girin',
|
'validateNumber': 'Lütfen bir sayı girin',
|
||||||
'validate90': 'Değer -90 ile 90 arasında olmalıdır',
|
'validate90': 'Değer -90 ile 90 arasında olmalıdır',
|
||||||
'validate180': 'Değer -180 ile 180 arasında olmalıdır',
|
'validate180': 'Değer -180 ile 180 arasında olmalıdır',
|
||||||
'notifications': 'Bildirme',
|
'notifications': 'Bildirme',
|
||||||
'sunrise': 'Güneş doğuşu',
|
'sunrise': 'Güneş doğuşu',
|
||||||
'sunset': 'Güneş batışı',
|
'sunset': 'Güneş batışı',
|
||||||
'timeformat': 'Saat biçimi',
|
'timeformat': 'Saat biçimi',
|
||||||
'12': '12 saat',
|
'12': '12 saat',
|
||||||
'24': '24 saat',
|
'24': '24 saat',
|
||||||
'cloudcover': 'Bulut örtüsü',
|
'cloudcover': 'Bulut örtüsü',
|
||||||
'uvIndex': 'UV-indeksi',
|
'uvIndex': 'UV-indeksi',
|
||||||
'materialColor': 'Dinamik Renkler',
|
'materialColor': 'Dinamik Renkler',
|
||||||
'uvLow': 'Düşük',
|
'uvLow': 'Düşük',
|
||||||
'uvAverage': 'Orta',
|
'uvAverage': 'Orta',
|
||||||
'uvHigh': 'Yüksek',
|
'uvHigh': 'Yüksek',
|
||||||
'uvVeryHigh': 'Çok yüksek',
|
'uvVeryHigh': 'Çok yüksek',
|
||||||
'uvExtreme': 'Aşırı',
|
'uvExtreme': 'Aşırı',
|
||||||
'weatherMore': '12 günlük hava tahmini',
|
'weatherMore': '12 günlük hava tahmini',
|
||||||
'windgusts': 'Bir telaş',
|
'windgusts': 'Bir telaş',
|
||||||
'north': 'Kuzey',
|
'north': 'Kuzey',
|
||||||
'northeast': 'Kuzeydoğu',
|
'northeast': 'Kuzeydoğu',
|
||||||
'east': 'Doğu',
|
'east': 'Doğu',
|
||||||
'southeast': 'Güneydoğu',
|
'southeast': 'Güneydoğu',
|
||||||
'south': 'Güney',
|
'south': 'Güney',
|
||||||
'southwest': 'Güneybatı',
|
'southwest': 'Güneybatı',
|
||||||
'west': 'Batı',
|
'west': 'Batı',
|
||||||
'northwest': 'Kuzeybatı',
|
'northwest': 'Kuzeybatı',
|
||||||
'project': 'Proje üzerinde',
|
'project': 'Proje üzerinde',
|
||||||
'version': 'Uygulama sürümü',
|
'version': 'Uygulama sürümü',
|
||||||
'precipitationProbability': 'Yağış olasılığı',
|
'precipitationProbability': 'Yağış olasılığı',
|
||||||
'apparentTemperatureMin': 'Minimum hissedilen sıcaklık',
|
'apparentTemperatureMin': 'Minimum hissedilen sıcaklık',
|
||||||
'apparentTemperatureMax': 'Maksimum hissedilen sıcaklık',
|
'apparentTemperatureMax': 'Maksimum hissedilen sıcaklık',
|
||||||
'amoledTheme': 'AMOLED-teması',
|
'amoledTheme': 'AMOLED-teması',
|
||||||
'appearance': 'Görünüm',
|
'appearance': 'Görünüm',
|
||||||
'functions': 'Fonksiyonlar',
|
'functions': 'Fonksiyonlar',
|
||||||
'data': 'Veri',
|
'data': 'Veri',
|
||||||
'language': 'Dil',
|
'language': 'Dil',
|
||||||
'timeRange': 'Sıklık (saat cinsinden)',
|
'timeRange': 'Sıklık (saat cinsinden)',
|
||||||
'timeStart': 'Başlangıç zamanı',
|
'timeStart': 'Başlangıç zamanı',
|
||||||
'timeEnd': 'Bitiş zamanı',
|
'timeEnd': 'Bitiş zamanı',
|
||||||
'support': 'Destek',
|
'support': 'Destek',
|
||||||
'system': 'Sistem',
|
'system': 'Sistem',
|
||||||
'dark': 'Karanlık',
|
'dark': 'Karanlık',
|
||||||
'light': 'Aydınlık',
|
'light': 'Aydınlık',
|
||||||
'license': 'Lisanslar',
|
'license': 'Lisanslar',
|
||||||
'widget': 'Araç',
|
'widget': 'Araç',
|
||||||
'widgetBackground': 'Araç Arka Planı',
|
'widgetBackground': 'Araç Arka Planı',
|
||||||
'widgetText': 'Araç metni',
|
'widgetText': 'Araç metni',
|
||||||
'dewpoint': 'Çiğ noktası',
|
'dewpoint': 'Çiğ noktası',
|
||||||
'shortwaveRadiation': 'Kısa dalga radyasyonu',
|
'shortwaveRadiation': 'Kısa dalga radyasyonu',
|
||||||
'roundDegree': 'Dereceleri yuvarla',
|
'roundDegree': 'Dereceleri yuvarla',
|
||||||
'settings_full': 'Ayarlar',
|
'settings_full': 'Ayarlar',
|
||||||
'cities': 'Şehirler',
|
'cities': 'Şehirler',
|
||||||
'searchMethod': 'Arama veya konum belirleme kullanın',
|
'searchMethod': 'Arama veya konum belirleme kullanın',
|
||||||
'done': 'Tamam',
|
'done': 'Tamam',
|
||||||
'groups': 'Gruplarımız',
|
'groups': 'Gruplarımız',
|
||||||
'openMeteo': 'Open-Meteo\'dan veriler (CC-BY 4.0)',
|
'openMeteo': 'Open-Meteo\'dan veriler (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'Saatlik hava değişkenleri',
|
'hourlyVariables': 'Saatlik hava değişkenleri',
|
||||||
'dailyVariables': 'Günlük hava değişkenleri',
|
'dailyVariables': 'Günlük hava değişkenleri',
|
||||||
'largeElement': 'Büyük hava durumu gösterimi',
|
'largeElement': 'Büyük hava durumu gösterimi',
|
||||||
'map': 'Harita',
|
'map': 'Harita',
|
||||||
'clearCacheStore': 'Önbelleği temizle',
|
'clearCacheStore': 'Önbelleği temizle',
|
||||||
'deletedCacheStore': 'Önbellek temizleniyor',
|
'deletedCacheStore': 'Önbellek temizleniyor',
|
||||||
'deletedCacheStoreQuery':
|
'deletedCacheStoreQuery':
|
||||||
'Önbelleği temizlemek istediğinizden emin misiniz?',
|
'Önbelleği temizlemek istediğinizden emin misiniz?',
|
||||||
'addWidget': 'Widget ekle',
|
'addWidget': 'Widget ekle',
|
||||||
'hideMap': 'Haritayı gizle',
|
'hideMap': 'Haritayı gizle',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,29 +27,29 @@ import 'package:rain/translation/zh_tw.dart';
|
||||||
class Translation extends Translations {
|
class Translation extends Translations {
|
||||||
@override
|
@override
|
||||||
Map<String, Map<String, String>> get keys => {
|
Map<String, Map<String, String>> get keys => {
|
||||||
'ru_RU': RuRu().messages,
|
'ru_RU': RuRu().messages,
|
||||||
'en_US': EnUs().messages,
|
'en_US': EnUs().messages,
|
||||||
'fr_FR': FrFr().messages,
|
'fr_FR': FrFr().messages,
|
||||||
'fa_IR': FaIr().messages,
|
'fa_IR': FaIr().messages,
|
||||||
'it_IT': ItIt().messages,
|
'it_IT': ItIt().messages,
|
||||||
'de_DE': DeDe().messages,
|
'de_DE': DeDe().messages,
|
||||||
'tr_TR': TrTr().messages,
|
'tr_TR': TrTr().messages,
|
||||||
'pt_BR': PtBr().messages,
|
'pt_BR': PtBr().messages,
|
||||||
'es_ES': EsEs().messages,
|
'es_ES': EsEs().messages,
|
||||||
'sk_SK': SkSk().messages,
|
'sk_SK': SkSk().messages,
|
||||||
'nl_NL': NlNl().messages,
|
'nl_NL': NlNl().messages,
|
||||||
'hi_IN': HiIn().messages,
|
'hi_IN': HiIn().messages,
|
||||||
'ro_RO': RoRo().messages,
|
'ro_RO': RoRo().messages,
|
||||||
'zh_CN': ZhCh().messages,
|
'zh_CN': ZhCh().messages,
|
||||||
'zh_TW': ZhTw().messages,
|
'zh_TW': ZhTw().messages,
|
||||||
'pl_PL': PlPl().messages,
|
'pl_PL': PlPl().messages,
|
||||||
'ur_PK': UrPk().messages,
|
'ur_PK': UrPk().messages,
|
||||||
'cs_CZ': CsCz().messages,
|
'cs_CZ': CsCz().messages,
|
||||||
'ka_GE': KaGe().messages,
|
'ka_GE': KaGe().messages,
|
||||||
'bn_IN': BnIn().messages,
|
'bn_IN': BnIn().messages,
|
||||||
'ga_IE': GaIe().messages,
|
'ga_IE': GaIe().messages,
|
||||||
'hu_HU': HuHu().messages,
|
'hu_HU': HuHu().messages,
|
||||||
'da_DK': DaDk().messages,
|
'da_DK': DaDk().messages,
|
||||||
'ko_KR': KoKr().messages,
|
'ko_KR': KoKr().messages,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
class UrPk {
|
class UrPk {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': 'شروع',
|
'start': 'شروع',
|
||||||
'description':
|
'description':
|
||||||
'ہر جگہ کے لیے ہر گھنٹے، ہر دن اور ہر ہفتے کے لیے مواقع پر تازہ پیشگوئیوں کے ساتھ موسم کا ایپلیکیشن۔',
|
'ہر جگہ کے لیے ہر گھنٹے، ہر دن اور ہر ہفتے کے لیے مواقع پر تازہ پیشگوئیوں کے ساتھ موسم کا ایپلیکیشن۔',
|
||||||
'name': 'موسم',
|
'name': 'موسم',
|
||||||
'name2': 'آسان ڈیزائن',
|
'name2': 'آسان ڈیزائن',
|
||||||
'name3': 'ہم سے رابطہ کریں',
|
'name3': 'ہم سے رابطہ کریں',
|
||||||
'description2':
|
'description2':
|
||||||
'تمام نیویگیشن کو ایسا ترتیب دیا گیا ہے کہ آپ ایپلیکیشن کے ساتھ سب سے زیادہ آسان اور تیزی سے تعامل کر سکیں۔',
|
'تمام نیویگیشن کو ایسا ترتیب دیا گیا ہے کہ آپ ایپلیکیشن کے ساتھ سب سے زیادہ آسان اور تیزی سے تعامل کر سکیں۔',
|
||||||
'description3':
|
'description3':
|
||||||
'اگر آپ کسی بھی مسائل کا سامنا کریں، براہ کرم ای میل یا ایپلیکیشن کے جوابات میں ہم سے رابطہ کریں۔',
|
'اگر آپ کسی بھی مسائل کا سامنا کریں، براہ کرم ای میل یا ایپلیکیشن کے جوابات میں ہم سے رابطہ کریں۔',
|
||||||
'next': 'اگلا',
|
'next': 'اگلا',
|
||||||
'search': 'تلاش کریں...',
|
'search': 'تلاش کریں...',
|
||||||
'loading': 'لوڈ ہو رہا ہے...',
|
'loading': 'لوڈ ہو رہا ہے...',
|
||||||
'searchCity': 'اپنا شہر تلاش کریں',
|
'searchCity': 'اپنا شہر تلاش کریں',
|
||||||
'humidity': 'نمائش',
|
'humidity': 'نمائش',
|
||||||
'wind': 'باد',
|
'wind': 'باد',
|
||||||
'visibility': 'دیکھنے کی صلاحیت',
|
'visibility': 'دیکھنے کی صلاحیت',
|
||||||
'feels': 'محسوس ہوتا ہے',
|
'feels': 'محسوس ہوتا ہے',
|
||||||
'evaporation': 'بخاری',
|
'evaporation': 'بخاری',
|
||||||
'precipitation': 'برسات',
|
'precipitation': 'برسات',
|
||||||
'direction': 'سمت',
|
'direction': 'سمت',
|
||||||
'pressure': 'دباؤ',
|
'pressure': 'دباؤ',
|
||||||
'rain': 'بارش',
|
'rain': 'بارش',
|
||||||
'clear_sky': 'صاف آسمان',
|
'clear_sky': 'صاف آسمان',
|
||||||
'cloudy': 'بادلوں سے بھرپور',
|
'cloudy': 'بادلوں سے بھرپور',
|
||||||
'overcast': 'دھندلے',
|
'overcast': 'دھندلے',
|
||||||
'fog': 'کھسک',
|
'fog': 'کھسک',
|
||||||
'drizzle': 'بوند بوند بارش',
|
'drizzle': 'بوند بوند بارش',
|
||||||
'drizzling_rain': 'چھچھوندار بارش',
|
'drizzling_rain': 'چھچھوندار بارش',
|
||||||
'freezing_rain': 'ٹھنڈی بارش',
|
'freezing_rain': 'ٹھنڈی بارش',
|
||||||
'heavy_rains': 'زوردار بارشیں',
|
'heavy_rains': 'زوردار بارشیں',
|
||||||
'snow': 'برف',
|
'snow': 'برف',
|
||||||
'thunderstorm': 'طوفانی بارش',
|
'thunderstorm': 'طوفانی بارش',
|
||||||
'kph': 'کلومیٹر فی گھنٹہ',
|
'kph': 'کلومیٹر فی گھنٹہ',
|
||||||
'mph': 'میل فی گھنٹہ',
|
'mph': 'میل فی گھنٹہ',
|
||||||
'm/s': 'میٹر/سیکنڈ',
|
'm/s': 'میٹر/سیکنڈ',
|
||||||
'mmHg': 'ملی میٹر مرکری',
|
'mmHg': 'ملی میٹر مرکری',
|
||||||
'mi': 'میل',
|
'mi': 'میل',
|
||||||
'km': 'کلومیٹر',
|
'km': 'کلومیٹر',
|
||||||
'inch': 'انچ',
|
'inch': 'انچ',
|
||||||
'mm': 'ملی میٹر',
|
'mm': 'ملی میٹر',
|
||||||
'hPa': 'ہیکٹو پاسکل',
|
'hPa': 'ہیکٹو پاسکل',
|
||||||
'settings': 'ترتیبات',
|
'settings': 'ترتیبات',
|
||||||
'no_inter': 'انٹرنیٹ نہیں ہے',
|
'no_inter': 'انٹرنیٹ نہیں ہے',
|
||||||
'on_inter': 'موسمی معلومات حاصل کرنے کے لئے انٹرنیٹ کو چالنے دیں۔',
|
'on_inter': 'موسمی معلومات حاصل کرنے کے لئے انٹرنیٹ کو چالنے دیں۔',
|
||||||
'location': 'مقام',
|
'location': 'مقام',
|
||||||
'no_location':
|
'no_location':
|
||||||
'موسمی معلومات حاصل کرنے کے لئے مقام کی تشخیص کی خدمات کو چالنے دیں۔',
|
'موسمی معلومات حاصل کرنے کے لئے مقام کی تشخیص کی خدمات کو چالنے دیں۔',
|
||||||
'theme': 'تھیم',
|
'theme': 'تھیم',
|
||||||
'low': 'کم',
|
'low': 'کم',
|
||||||
'high': 'زیادہ',
|
'high': 'زیادہ',
|
||||||
'normal': 'عام',
|
'normal': 'عام',
|
||||||
'lat': 'عرض',
|
'lat': 'عرض',
|
||||||
'lon': 'طول',
|
'lon': 'طول',
|
||||||
'create': 'تخلیق کریں',
|
'create': 'تخلیق کریں',
|
||||||
'city': 'شہر',
|
'city': 'شہر',
|
||||||
'district': 'ضلع',
|
'district': 'ضلع',
|
||||||
'noWeatherCard': 'شہر شامل کریں',
|
'noWeatherCard': 'شہر شامل کریں',
|
||||||
'deletedCardWeather': 'شہر کو حذف کر رہا ہے',
|
'deletedCardWeather': 'شہر کو حذف کر رہا ہے',
|
||||||
'deletedCardWeatherQuery': 'کیا آپ واقعی شہر کو حذف کرنا چاہتے ہیں؟',
|
'deletedCardWeatherQuery': 'کیا آپ واقعی شہر کو حذف کرنا چاہتے ہیں؟',
|
||||||
'delete': 'حذف کریں',
|
'delete': 'حذف کریں',
|
||||||
'cancel': 'منسوخ کریں',
|
'cancel': 'منسوخ کریں',
|
||||||
'time': 'شہر میں وقت',
|
'time': 'شہر میں وقت',
|
||||||
'validateName': 'براہ کرم نام درج کریں',
|
'validateName': 'براہ کرم نام درج کریں',
|
||||||
'measurements': 'پیمائش کی نظام',
|
'measurements': 'پیمائش کی نظام',
|
||||||
'degrees': 'درجہ',
|
'degrees': 'درجہ',
|
||||||
'celsius': 'سینٹی گریڈ',
|
'celsius': 'سینٹی گریڈ',
|
||||||
'fahrenheit': 'فارن ہائٹ',
|
'fahrenheit': 'فارن ہائٹ',
|
||||||
'imperial': 'امپیریل',
|
'imperial': 'امپیریل',
|
||||||
'metric': 'میٹرک',
|
'metric': 'میٹرک',
|
||||||
'validateValue': 'براہ کرم قدر درج کریں',
|
'validateValue': 'براہ کرم قدر درج کریں',
|
||||||
'validateNumber': 'براہ کرم ایک عدد درج کریں',
|
'validateNumber': 'براہ کرم ایک عدد درج کریں',
|
||||||
'validate90': 'قدر -90 سے 90 کے اندر ہونی چاہئے',
|
'validate90': 'قدر -90 سے 90 کے اندر ہونی چاہئے',
|
||||||
'validate180': 'قدر -180 سے 180 کے اندر ہونی چاہئے',
|
'validate180': 'قدر -180 سے 180 کے اندر ہونی چاہئے',
|
||||||
'notifications': 'خبریں',
|
'notifications': 'خبریں',
|
||||||
'sunrise': 'طلوع آفتاب',
|
'sunrise': 'طلوع آفتاب',
|
||||||
'sunset': 'غروب آفتاب',
|
'sunset': 'غروب آفتاب',
|
||||||
'timeformat': 'وقت کی شکل',
|
'timeformat': 'وقت کی شکل',
|
||||||
'12': '12-گھنٹے',
|
'12': '12-گھنٹے',
|
||||||
'24': '24-گھنٹے',
|
'24': '24-گھنٹے',
|
||||||
'cloudcover': 'ابری پردہ',
|
'cloudcover': 'ابری پردہ',
|
||||||
'uvIndex': 'یووی-انڈیکس',
|
'uvIndex': 'یووی-انڈیکس',
|
||||||
'materialColor': 'موادی رنگیں',
|
'materialColor': 'موادی رنگیں',
|
||||||
'uvLow': 'کم',
|
'uvLow': 'کم',
|
||||||
'uvAverage': 'معتدل',
|
'uvAverage': 'معتدل',
|
||||||
'uvHigh': 'زیادہ',
|
'uvHigh': 'زیادہ',
|
||||||
'uvVeryHigh': 'بہت زیادہ',
|
'uvVeryHigh': 'بہت زیادہ',
|
||||||
'uvExtreme': 'بہتی کٹھن',
|
'uvExtreme': 'بہتی کٹھن',
|
||||||
'weatherMore': '12 دنوں کی موسمی توقعات',
|
'weatherMore': '12 دنوں کی موسمی توقعات',
|
||||||
'windgusts': 'گرج',
|
'windgusts': 'گرج',
|
||||||
'north': 'شمال',
|
'north': 'شمال',
|
||||||
'northeast': 'شمال مشرق',
|
'northeast': 'شمال مشرق',
|
||||||
'east': 'مشرق',
|
'east': 'مشرق',
|
||||||
'southeast': 'جنوب مشرق',
|
'southeast': 'جنوب مشرق',
|
||||||
'south': 'جنوب',
|
'south': 'جنوب',
|
||||||
'southwest': 'جنوب مغرب',
|
'southwest': 'جنوب مغرب',
|
||||||
'west': 'مغرب',
|
'west': 'مغرب',
|
||||||
'northwest': 'شمال مغرب',
|
'northwest': 'شمال مغرب',
|
||||||
'project': 'پروجیکٹ',
|
'project': 'پروجیکٹ',
|
||||||
'version': 'ایپ کی ورژن',
|
'version': 'ایپ کی ورژن',
|
||||||
'precipitationProbability': 'برسات کی ممکنیت',
|
'precipitationProbability': 'برسات کی ممکنیت',
|
||||||
'apparentTemperatureMin': 'کم درج حرارت محسوس',
|
'apparentTemperatureMin': 'کم درج حرارت محسوس',
|
||||||
'apparentTemperatureMax': 'زیادہ درج حرارت محسوس',
|
'apparentTemperatureMax': 'زیادہ درج حرارت محسوس',
|
||||||
'amoledTheme': 'AMOLED تھیم',
|
'amoledTheme': 'AMOLED تھیم',
|
||||||
'appearance': 'ظاہریت',
|
'appearance': 'ظاہریت',
|
||||||
'functions': 'فنکشنز',
|
'functions': 'فنکشنز',
|
||||||
'data': 'ڈیٹا',
|
'data': 'ڈیٹا',
|
||||||
'language': 'زبان',
|
'language': 'زبان',
|
||||||
'timeRange': 'وقت کی مدت (گھنٹوں میں)',
|
'timeRange': 'وقت کی مدت (گھنٹوں میں)',
|
||||||
'timeStart': 'شروع کا وقت',
|
'timeStart': 'شروع کا وقت',
|
||||||
'timeEnd': 'مختتم کا وقت',
|
'timeEnd': 'مختتم کا وقت',
|
||||||
'support': 'حمایت',
|
'support': 'حمایت',
|
||||||
'system': 'سسٹم',
|
'system': 'سسٹم',
|
||||||
'dark': 'اندھیری',
|
'dark': 'اندھیری',
|
||||||
'light': 'روشن',
|
'light': 'روشن',
|
||||||
'license': 'لائسنس',
|
'license': 'لائسنس',
|
||||||
'widget': 'ویجٹ',
|
'widget': 'ویجٹ',
|
||||||
'widgetBackground': 'ویجٹ کا پس منظر',
|
'widgetBackground': 'ویجٹ کا پس منظر',
|
||||||
'widgetText': 'ویجٹ کا مواد',
|
'widgetText': 'ویجٹ کا مواد',
|
||||||
'dewpoint': 'دھوا پوائنٹ',
|
'dewpoint': 'دھوا پوائنٹ',
|
||||||
'shortwaveRadiation': 'چھوٹی موجی شعاع',
|
'shortwaveRadiation': 'چھوٹی موجی شعاع',
|
||||||
'W/m2': 'واٹ/میٹر مربع',
|
'W/m2': 'واٹ/میٹر مربع',
|
||||||
'roundDegree': 'ڈگری گھیریں',
|
'roundDegree': 'ڈگری گھیریں',
|
||||||
'settings_full': 'ترتیبات',
|
'settings_full': 'ترتیبات',
|
||||||
'cities': 'شہر',
|
'cities': 'شہر',
|
||||||
'searchMethod': 'تلاش یا جغرافیائی مقام استعمال کریں',
|
'searchMethod': 'تلاش یا جغرافیائی مقام استعمال کریں',
|
||||||
'done': 'ہوگیا',
|
'done': 'ہوگیا',
|
||||||
'groups': 'ہماری گروپس',
|
'groups': 'ہماری گروپس',
|
||||||
'openMeteo': 'Open-Meteo سے ڈیٹا (CC-BY 4.0)',
|
'openMeteo': 'Open-Meteo سے ڈیٹا (CC-BY 4.0)',
|
||||||
'hourlyVariables': 'ہر گھنٹے کے موسمی متغیرات',
|
'hourlyVariables': 'ہر گھنٹے کے موسمی متغیرات',
|
||||||
'dailyVariables': 'روزانہ کے موسمی متغیرات',
|
'dailyVariables': 'روزانہ کے موسمی متغیرات',
|
||||||
'largeElement': 'بڑے موسم کا ڈسپلے',
|
'largeElement': 'بڑے موسم کا ڈسپلے',
|
||||||
'map': 'نقشہ',
|
'map': 'نقشہ',
|
||||||
'clearCacheStore': 'کیچ صاف کریں',
|
'clearCacheStore': 'کیچ صاف کریں',
|
||||||
'deletedCacheStore': 'کیچ صاف کی جارہی ہے',
|
'deletedCacheStore': 'کیچ صاف کی جارہی ہے',
|
||||||
'deletedCacheStoreQuery': 'کیا آپ واقعی کیچ صاف کرنا چاہتے ہیں؟',
|
'deletedCacheStoreQuery': 'کیا آپ واقعی کیچ صاف کرنا چاہتے ہیں؟',
|
||||||
'addWidget': 'ویجٹ شامل کریں',
|
'addWidget': 'ویجٹ شامل کریں',
|
||||||
'hideMap': 'نقشہ چھپائیں',
|
'hideMap': 'نقشہ چھپائیں',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,137 +1,137 @@
|
||||||
class ZhCh {
|
class ZhCh {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': '开始',
|
'start': '开始',
|
||||||
'description': '天气应用,提供每小时、每天和每周的实时预报,适用于任何地点。',
|
'description': '天气应用,提供每小时、每天和每周的实时预报,适用于任何地点。',
|
||||||
'name': '天气',
|
'name': '天气',
|
||||||
'name2': '方便的设计',
|
'name2': '方便的设计',
|
||||||
'name3': '联系我们',
|
'name3': '联系我们',
|
||||||
'description2': '所有导航均设计成能够尽可能方便快捷地与应用程序交互。',
|
'description2': '所有导航均设计成能够尽可能方便快捷地与应用程序交互。',
|
||||||
'description3': '如果您遇到任何问题,请通过电子邮件或应用评论与我们联系。',
|
'description3': '如果您遇到任何问题,请通过电子邮件或应用评论与我们联系。',
|
||||||
'next': '下一步',
|
'next': '下一步',
|
||||||
'search': '搜索...',
|
'search': '搜索...',
|
||||||
'loading': '加载中...',
|
'loading': '加载中...',
|
||||||
'searchCity': '查找城市',
|
'searchCity': '查找城市',
|
||||||
'humidity': '湿度',
|
'humidity': '湿度',
|
||||||
'wind': '风速',
|
'wind': '风速',
|
||||||
'visibility': '能见度',
|
'visibility': '能见度',
|
||||||
'feels': '体感温度',
|
'feels': '体感温度',
|
||||||
'evaporation': '蒸发量',
|
'evaporation': '蒸发量',
|
||||||
'precipitation': '降水量',
|
'precipitation': '降水量',
|
||||||
'direction': '风向',
|
'direction': '风向',
|
||||||
'pressure': '气压',
|
'pressure': '气压',
|
||||||
'rain': '雨',
|
'rain': '雨',
|
||||||
'clear_sky': '晴朗',
|
'clear_sky': '晴朗',
|
||||||
'cloudy': '多云',
|
'cloudy': '多云',
|
||||||
'overcast': '阴天',
|
'overcast': '阴天',
|
||||||
'fog': '雾',
|
'fog': '雾',
|
||||||
'drizzle': '毛毛雨',
|
'drizzle': '毛毛雨',
|
||||||
'drizzling_rain': '冻毛毛雨',
|
'drizzling_rain': '冻毛毛雨',
|
||||||
'freezing_rain': '冻雨',
|
'freezing_rain': '冻雨',
|
||||||
'heavy_rains': '阵雨',
|
'heavy_rains': '阵雨',
|
||||||
'snow': '雪',
|
'snow': '雪',
|
||||||
'thunderstorm': '雷暴',
|
'thunderstorm': '雷暴',
|
||||||
'kph': '千米/小时',
|
'kph': '千米/小时',
|
||||||
'mph': '英里/小时',
|
'mph': '英里/小时',
|
||||||
'm/s': '米/秒',
|
'm/s': '米/秒',
|
||||||
'mmHg': '毫米汞柱',
|
'mmHg': '毫米汞柱',
|
||||||
'mi': '英里',
|
'mi': '英里',
|
||||||
'km': '千米',
|
'km': '千米',
|
||||||
'inch': '英寸',
|
'inch': '英寸',
|
||||||
'mm': '毫米',
|
'mm': '毫米',
|
||||||
'hPa': '百帕',
|
'hPa': '百帕',
|
||||||
'settings': '设置',
|
'settings': '设置',
|
||||||
'no_inter': '无网络连接',
|
'no_inter': '无网络连接',
|
||||||
'on_inter': '打开网络连接以获取气象数据。',
|
'on_inter': '打开网络连接以获取气象数据。',
|
||||||
'location': '位置',
|
'location': '位置',
|
||||||
'no_location': '启用定位服务以获取当前位置的天气数据。',
|
'no_location': '启用定位服务以获取当前位置的天气数据。',
|
||||||
'theme': '主题',
|
'theme': '主题',
|
||||||
'low': '最低',
|
'low': '最低',
|
||||||
'high': '最高',
|
'high': '最高',
|
||||||
'normal': '正常',
|
'normal': '正常',
|
||||||
'lat': '纬度',
|
'lat': '纬度',
|
||||||
'lon': '经度',
|
'lon': '经度',
|
||||||
'create': '创建',
|
'create': '创建',
|
||||||
'city': '城市',
|
'city': '城市',
|
||||||
'district': '区域',
|
'district': '区域',
|
||||||
'noWeatherCard': '添加城市',
|
'noWeatherCard': '添加城市',
|
||||||
'deletedCardWeather': '删除城市',
|
'deletedCardWeather': '删除城市',
|
||||||
'deletedCardWeatherQuery': '确定要删除该城市吗?',
|
'deletedCardWeatherQuery': '确定要删除该城市吗?',
|
||||||
'delete': '删除',
|
'delete': '删除',
|
||||||
'cancel': '取消',
|
'cancel': '取消',
|
||||||
'time': '城市时间',
|
'time': '城市时间',
|
||||||
'validateName': '请输入名称',
|
'validateName': '请输入名称',
|
||||||
'measurements': '度量系统',
|
'measurements': '度量系统',
|
||||||
'degrees': '度',
|
'degrees': '度',
|
||||||
'celsius': '摄氏度',
|
'celsius': '摄氏度',
|
||||||
'fahrenheit': '华氏度',
|
'fahrenheit': '华氏度',
|
||||||
'imperial': '英制',
|
'imperial': '英制',
|
||||||
'metric': '公制',
|
'metric': '公制',
|
||||||
'validateValue': '请输入值',
|
'validateValue': '请输入值',
|
||||||
'validateNumber': '请输入有效数字',
|
'validateNumber': '请输入有效数字',
|
||||||
'validate90': '值必须介于-90和90之间',
|
'validate90': '值必须介于-90和90之间',
|
||||||
'validate180': '值必须介于-180和180之间',
|
'validate180': '值必须介于-180和180之间',
|
||||||
'notifications': '通知',
|
'notifications': '通知',
|
||||||
'sunrise': '日出',
|
'sunrise': '日出',
|
||||||
'sunset': '日落',
|
'sunset': '日落',
|
||||||
'timeformat': '时间格式',
|
'timeformat': '时间格式',
|
||||||
'12': '12小时制',
|
'12': '12小时制',
|
||||||
'24': '24小时制',
|
'24': '24小时制',
|
||||||
'cloudcover': '云量',
|
'cloudcover': '云量',
|
||||||
'uvIndex': '紫外线指数',
|
'uvIndex': '紫外线指数',
|
||||||
'materialColor': '动态颜色',
|
'materialColor': '动态颜色',
|
||||||
'uvLow': '低',
|
'uvLow': '低',
|
||||||
'uvAverage': '中等',
|
'uvAverage': '中等',
|
||||||
'uvHigh': '高',
|
'uvHigh': '高',
|
||||||
'uvVeryHigh': '很高',
|
'uvVeryHigh': '很高',
|
||||||
'uvExtreme': '极高',
|
'uvExtreme': '极高',
|
||||||
'weatherMore': '12天天气预报',
|
'weatherMore': '12天天气预报',
|
||||||
'windgusts': '阵风',
|
'windgusts': '阵风',
|
||||||
'north': '北',
|
'north': '北',
|
||||||
'northeast': '东北',
|
'northeast': '东北',
|
||||||
'east': '东',
|
'east': '东',
|
||||||
'southeast': '东南',
|
'southeast': '东南',
|
||||||
'south': '南',
|
'south': '南',
|
||||||
'southwest': '西南',
|
'southwest': '西南',
|
||||||
'west': '西',
|
'west': '西',
|
||||||
'northwest': '西北',
|
'northwest': '西北',
|
||||||
'project': '项目使用',
|
'project': '项目使用',
|
||||||
'version': '应用程序版本',
|
'version': '应用程序版本',
|
||||||
'precipitationProbability': '降水概率',
|
'precipitationProbability': '降水概率',
|
||||||
'apparentTemperatureMin': '最低体感温度',
|
'apparentTemperatureMin': '最低体感温度',
|
||||||
'apparentTemperatureMax': '最高体感温度',
|
'apparentTemperatureMax': '最高体感温度',
|
||||||
'amoledTheme': 'AMOLED主题',
|
'amoledTheme': 'AMOLED主题',
|
||||||
'appearance': '外观',
|
'appearance': '外观',
|
||||||
'functions': '功能',
|
'functions': '功能',
|
||||||
'data': '数据',
|
'data': '数据',
|
||||||
'language': '语言',
|
'language': '语言',
|
||||||
'timeRange': '频率(小时)',
|
'timeRange': '频率(小时)',
|
||||||
'timeStart': '开始时间',
|
'timeStart': '开始时间',
|
||||||
'timeEnd': '结束时间',
|
'timeEnd': '结束时间',
|
||||||
'support': '支持',
|
'support': '支持',
|
||||||
'system': '系统',
|
'system': '系统',
|
||||||
'dark': '暗',
|
'dark': '暗',
|
||||||
'light': '亮',
|
'light': '亮',
|
||||||
'license': '许可证',
|
'license': '许可证',
|
||||||
'widget': '小部件',
|
'widget': '小部件',
|
||||||
'widgetBackground': '小部件背景',
|
'widgetBackground': '小部件背景',
|
||||||
'widgetText': '小部件文本',
|
'widgetText': '小部件文本',
|
||||||
'dewpoint': '露点',
|
'dewpoint': '露点',
|
||||||
'shortwaveRadiation': '短波辐射',
|
'shortwaveRadiation': '短波辐射',
|
||||||
'roundDegree': '四舍五入度数',
|
'roundDegree': '四舍五入度数',
|
||||||
'settings_full': '设置',
|
'settings_full': '设置',
|
||||||
'cities': '城市',
|
'cities': '城市',
|
||||||
'searchMethod': '使用搜索或地理定位',
|
'searchMethod': '使用搜索或地理定位',
|
||||||
'done': '完成',
|
'done': '完成',
|
||||||
'groups': '我们的组',
|
'groups': '我们的组',
|
||||||
'openMeteo': '来自Open-Meteo的数据 (CC-BY 4.0)',
|
'openMeteo': '来自Open-Meteo的数据 (CC-BY 4.0)',
|
||||||
'hourlyVariables': '每小时天气变量',
|
'hourlyVariables': '每小时天气变量',
|
||||||
'dailyVariables': '每日天气变量',
|
'dailyVariables': '每日天气变量',
|
||||||
'largeElement': '大天气显示',
|
'largeElement': '大天气显示',
|
||||||
'map': '地图',
|
'map': '地图',
|
||||||
'clearCacheStore': '清除缓存',
|
'clearCacheStore': '清除缓存',
|
||||||
'deletedCacheStore': '正在清除缓存',
|
'deletedCacheStore': '正在清除缓存',
|
||||||
'deletedCacheStoreQuery': '您确定要清除缓存吗?',
|
'deletedCacheStoreQuery': '您确定要清除缓存吗?',
|
||||||
'addWidget': '添加小部件',
|
'addWidget': '添加小部件',
|
||||||
'hideMap': '隐藏地图',
|
'hideMap': '隐藏地图',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,138 +1,138 @@
|
||||||
class ZhTw {
|
class ZhTw {
|
||||||
Map<String, String> get messages => {
|
Map<String, String> get messages => {
|
||||||
'start': '開始使用',
|
'start': '開始使用',
|
||||||
'description': '一個提供實時天氣資訊的天氣軟體。',
|
'description': '一個提供實時天氣資訊的天氣軟體。',
|
||||||
'name': '天氣',
|
'name': '天氣',
|
||||||
'name2': '方便優雅的設計',
|
'name2': '方便優雅的設計',
|
||||||
'name3': '聯絡我們',
|
'name3': '聯絡我們',
|
||||||
'description2': '所有導覽均設計得盡可能方便交互',
|
'description2': '所有導覽均設計得盡可能方便交互',
|
||||||
'description3': '如遇到問題請透過電郵或軟體評論與我們聯絡',
|
'description3': '如遇到問題請透過電郵或軟體評論與我們聯絡',
|
||||||
'next': '下一步',
|
'next': '下一步',
|
||||||
'search': '搜尋……',
|
'search': '搜尋……',
|
||||||
'loading': '載入中……',
|
'loading': '載入中……',
|
||||||
'searchCity': '查找你的所在地',
|
'searchCity': '查找你的所在地',
|
||||||
'humidity': '濕度',
|
'humidity': '濕度',
|
||||||
'wind': '風速',
|
'wind': '風速',
|
||||||
'visibility': '可見度',
|
'visibility': '可見度',
|
||||||
'feels': '體感',
|
'feels': '體感',
|
||||||
'evaporation': '蒸發量',
|
'evaporation': '蒸發量',
|
||||||
'precipitation': '降水量',
|
'precipitation': '降水量',
|
||||||
'direction': '風向',
|
'direction': '風向',
|
||||||
'pressure': '氣壓',
|
'pressure': '氣壓',
|
||||||
'rain': '雨',
|
'rain': '雨',
|
||||||
'clear_sky': '晴朗',
|
'clear_sky': '晴朗',
|
||||||
'cloudy': '多雲',
|
'cloudy': '多雲',
|
||||||
'overcast': '陰天',
|
'overcast': '陰天',
|
||||||
'fog': '霧',
|
'fog': '霧',
|
||||||
'drizzle': '毛毛雨',
|
'drizzle': '毛毛雨',
|
||||||
'drizzling_rain': '冻雾雨',
|
'drizzling_rain': '冻雾雨',
|
||||||
'freezing_rain': '凍雨',
|
'freezing_rain': '凍雨',
|
||||||
'heavy_rains': '大雨',
|
'heavy_rains': '大雨',
|
||||||
'snow': '雪',
|
'snow': '雪',
|
||||||
'thunderstorm': '雷暴',
|
'thunderstorm': '雷暴',
|
||||||
'kph': '公里/時',
|
'kph': '公里/時',
|
||||||
'mph': '英里/時',
|
'mph': '英里/時',
|
||||||
'm/s': '米/秒',
|
'm/s': '米/秒',
|
||||||
'mmHg': '毫米汞柱',
|
'mmHg': '毫米汞柱',
|
||||||
'mi': '英里',
|
'mi': '英里',
|
||||||
'km': '公里',
|
'km': '公里',
|
||||||
'inch': '英呎',
|
'inch': '英呎',
|
||||||
'mm': '毫米',
|
'mm': '毫米',
|
||||||
'hPa': '百帕',
|
'hPa': '百帕',
|
||||||
'settings': '設定',
|
'settings': '設定',
|
||||||
'no_inter': '沒有網路連線',
|
'no_inter': '沒有網路連線',
|
||||||
'on_inter': '啟用網路以獲取氣象資料。',
|
'on_inter': '啟用網路以獲取氣象資料。',
|
||||||
'location': '位置',
|
'location': '位置',
|
||||||
'no_location': '啟用位置服務以獲取當前位置的天氣資訊。',
|
'no_location': '啟用位置服務以獲取當前位置的天氣資訊。',
|
||||||
'theme': '主題',
|
'theme': '主題',
|
||||||
'low': '低',
|
'low': '低',
|
||||||
'high': '高',
|
'high': '高',
|
||||||
'normal': '正常',
|
'normal': '正常',
|
||||||
'lat': '維度',
|
'lat': '維度',
|
||||||
'lon': '精度',
|
'lon': '精度',
|
||||||
'create': '建立',
|
'create': '建立',
|
||||||
'city': '城市',
|
'city': '城市',
|
||||||
'district': '區',
|
'district': '區',
|
||||||
'noWeatherCard': '新增城市',
|
'noWeatherCard': '新增城市',
|
||||||
'deletedCardWeather': '刪除城市',
|
'deletedCardWeather': '刪除城市',
|
||||||
'deletedCardWeatherQuery': '你確定要刪除這個城市嗎?',
|
'deletedCardWeatherQuery': '你確定要刪除這個城市嗎?',
|
||||||
'delete': '刪除',
|
'delete': '刪除',
|
||||||
'cancel': '取消',
|
'cancel': '取消',
|
||||||
'time': '城市時間',
|
'time': '城市時間',
|
||||||
'validateName': '請輸入名稱',
|
'validateName': '請輸入名稱',
|
||||||
'measurements': '度量單位',
|
'measurements': '度量單位',
|
||||||
'degrees': '度',
|
'degrees': '度',
|
||||||
'celsius': '攝氏度',
|
'celsius': '攝氏度',
|
||||||
'fahrenheit': '華氏度',
|
'fahrenheit': '華氏度',
|
||||||
'imperial': '英制',
|
'imperial': '英制',
|
||||||
'metric': '公制',
|
'metric': '公制',
|
||||||
'validateValue': '請輸入一個值',
|
'validateValue': '請輸入一個值',
|
||||||
'validateNumber': '請輸入一個有效數字',
|
'validateNumber': '請輸入一個有效數字',
|
||||||
'validate90': '數值必須在-90和90之間',
|
'validate90': '數值必須在-90和90之間',
|
||||||
'validate180': '數值必須在-180和180之間',
|
'validate180': '數值必須在-180和180之間',
|
||||||
'notifications': '通知',
|
'notifications': '通知',
|
||||||
'sunrise': '日出',
|
'sunrise': '日出',
|
||||||
'sunset': '日落',
|
'sunset': '日落',
|
||||||
'timeformat': '時間格式',
|
'timeformat': '時間格式',
|
||||||
'12': '12小時',
|
'12': '12小時',
|
||||||
'24': '24小時',
|
'24': '24小時',
|
||||||
'cloudcover': '雲量',
|
'cloudcover': '雲量',
|
||||||
'uvIndex': 'UV值',
|
'uvIndex': 'UV值',
|
||||||
'materialColor': '動態取色',
|
'materialColor': '動態取色',
|
||||||
'uvLow': '低',
|
'uvLow': '低',
|
||||||
'uvAverage': '中等',
|
'uvAverage': '中等',
|
||||||
'uvHigh': '高',
|
'uvHigh': '高',
|
||||||
'uvVeryHigh': '很高',
|
'uvVeryHigh': '很高',
|
||||||
'uvExtreme': '超高',
|
'uvExtreme': '超高',
|
||||||
'weatherMore': '12天天氣預報',
|
'weatherMore': '12天天氣預報',
|
||||||
'windgusts': '陣風',
|
'windgusts': '陣風',
|
||||||
'north': '北',
|
'north': '北',
|
||||||
'northeast': '東北',
|
'northeast': '東北',
|
||||||
'east': '東',
|
'east': '東',
|
||||||
'southeast': '東南',
|
'southeast': '東南',
|
||||||
'south': '南',
|
'south': '南',
|
||||||
'southwest': '西南',
|
'southwest': '西南',
|
||||||
'west': '西',
|
'west': '西',
|
||||||
'northwest': '西北',
|
'northwest': '西北',
|
||||||
'project': '造訪我們的',
|
'project': '造訪我們的',
|
||||||
'version': '應用版本',
|
'version': '應用版本',
|
||||||
'precipitationProbability': '降水概率',
|
'precipitationProbability': '降水概率',
|
||||||
'apparentTemperatureMin': '最低體感溫度',
|
'apparentTemperatureMin': '最低體感溫度',
|
||||||
'apparentTemperatureMax': '最高體感溫度',
|
'apparentTemperatureMax': '最高體感溫度',
|
||||||
'amoledTheme': 'AMOLED主題',
|
'amoledTheme': 'AMOLED主題',
|
||||||
'appearance': '外觀',
|
'appearance': '外觀',
|
||||||
'functions': '功能',
|
'functions': '功能',
|
||||||
'data': '資料',
|
'data': '資料',
|
||||||
'language': '語言',
|
'language': '語言',
|
||||||
'timeRange': '頻率(小時)',
|
'timeRange': '頻率(小時)',
|
||||||
'timeStart': '起始時間',
|
'timeStart': '起始時間',
|
||||||
'timeEnd': '終止時間',
|
'timeEnd': '終止時間',
|
||||||
'support': '支援',
|
'support': '支援',
|
||||||
'system': '系統',
|
'system': '系統',
|
||||||
'dark': '黑暗',
|
'dark': '黑暗',
|
||||||
'light': '明亮',
|
'light': '明亮',
|
||||||
'license': '許可證',
|
'license': '許可證',
|
||||||
'widget': '小組件',
|
'widget': '小組件',
|
||||||
'widgetBackground': '小組件背景',
|
'widgetBackground': '小組件背景',
|
||||||
'widgetText': '小組件文字',
|
'widgetText': '小組件文字',
|
||||||
'dewpoint': '露點',
|
'dewpoint': '露點',
|
||||||
'shortwaveRadiation': '短波輻射',
|
'shortwaveRadiation': '短波輻射',
|
||||||
'W/m2': '瓦/平方米',
|
'W/m2': '瓦/平方米',
|
||||||
'roundDegree': '四捨五入度數',
|
'roundDegree': '四捨五入度數',
|
||||||
'settings_full': '設定',
|
'settings_full': '設定',
|
||||||
'cities': '城市',
|
'cities': '城市',
|
||||||
'searchMethod': '使用搜尋或地理位置',
|
'searchMethod': '使用搜尋或地理位置',
|
||||||
'done': '完成',
|
'done': '完成',
|
||||||
'groups': '我們的小組',
|
'groups': '我們的小組',
|
||||||
'openMeteo': '來自Open-Meteo的數據 (CC-BY 4.0)',
|
'openMeteo': '來自Open-Meteo的數據 (CC-BY 4.0)',
|
||||||
'hourlyVariables': '每小時天氣變量',
|
'hourlyVariables': '每小時天氣變量',
|
||||||
'dailyVariables': '每日天氣變量',
|
'dailyVariables': '每日天氣變量',
|
||||||
'largeElement': '大型天氣顯示',
|
'largeElement': '大型天氣顯示',
|
||||||
'map': '地圖',
|
'map': '地圖',
|
||||||
'clearCacheStore': '清除快取',
|
'clearCacheStore': '清除快取',
|
||||||
'deletedCacheStore': '正在清除快取',
|
'deletedCacheStore': '正在清除快取',
|
||||||
'deletedCacheStoreQuery': '您確定要清除快取嗎?',
|
'deletedCacheStoreQuery': '您確定要清除快取嗎?',
|
||||||
'addWidget': '新增小工具',
|
'addWidget': '新增小工具',
|
||||||
'hideMap': '隱藏地圖',
|
'hideMap': '隱藏地圖',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1385,5 +1385,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.3"
|
version: "3.1.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.7.0 <4.0.0"
|
dart: ">=3.7.2 <4.0.0"
|
||||||
flutter: ">=3.27.0"
|
flutter: ">=3.27.0"
|
||||||
|
|
|
@ -6,7 +6,7 @@ publish_to: "none"
|
||||||
version: 1.3.8+41
|
version: 1.3.8+41
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=3.7.0 <4.0.0"
|
sdk: ">=3.7.2 <4.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue