diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index e36755b..a371671 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -46,6 +46,8 @@
100
LSRequiresIPhoneOS
+ ITSAppUsesNonExemptEncryption
+
NSBluetoothAlwaysUsageDescription
MeshCore SAR needs Bluetooth to communicate with MeshCore devices for Search & Rescue operations
NSBluetoothPeripheralUsageDescription
diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart
index e55d45c..9293777 100644
--- a/lib/l10n/app_localizations.dart
+++ b/lib/l10n/app_localizations.dart
@@ -12,6 +12,7 @@ import 'app_localizations_es.dart';
import 'app_localizations_fr.dart';
import 'app_localizations_hr.dart';
import 'app_localizations_it.dart';
+import 'app_localizations_ru.dart';
import 'app_localizations_sl.dart';
import 'app_localizations_zh.dart';
@@ -108,6 +109,7 @@ abstract class AppLocalizations {
Locale('fr'),
Locale('hr'),
Locale('it'),
+ Locale('ru'),
Locale('sl'),
Locale('zh'),
];
@@ -4226,6 +4228,7 @@ class _AppLocalizationsDelegate
'fr',
'hr',
'it',
+ 'ru',
'sl',
'zh',
].contains(locale.languageCode);
@@ -4251,6 +4254,8 @@ AppLocalizations lookupAppLocalizations(Locale locale) {
return AppLocalizationsHr();
case 'it':
return AppLocalizationsIt();
+ case 'ru':
+ return AppLocalizationsRu();
case 'sl':
return AppLocalizationsSl();
case 'zh':
diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart
index a4380cd..61fdfd6 100644
--- a/lib/l10n/app_localizations_ru.dart
+++ b/lib/l10n/app_localizations_ru.dart
@@ -169,9 +169,6 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get italian => 'Итальянский';
-
- @override
- String get russian => 'Русский';
@override
String get locationBroadcasting => 'Трансляция местоположения';
@@ -588,18 +585,19 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String accuracyMeters(int accuracy) {
- return 'Точность: ±${accuracy}м';
+ return 'Точность: ±$accuracyм';
}
@override
String get notesOptional => 'Заметки (необязательно)';
@override
- String get addAdditionalInformation => 'Добавьте дополнительную информацию...';
+ String get addAdditionalInformation =>
+ 'Добавьте дополнительную информацию...';
@override
String lowAccuracyWarning(int accuracy) {
- return 'Точность геолокации: ±${accuracy}м. Этого может быть недостаточно для операций SAR.\n\nПродолжить всё равно?';
+ return 'Точность геолокации: ±$accuracyм. Этого может быть недостаточно для операций SAR.\n\nПродолжить всё равно?';
}
@override
@@ -1057,7 +1055,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get sarAlert => 'ТРЕВОГА SAR';
@override
- String get messageSentToPublicChannel => 'Сообщение отправлено в публичный канал';
+ String get messageSentToPublicChannel =>
+ 'Сообщение отправлено в публичный канал';
@override
String get pleaseSelectRoomToSendSar =>
@@ -1074,7 +1073,8 @@ class AppLocalizationsRu extends AppLocalizations {
}
@override
- String get notConnectedCannotSync => 'Нет подключения — синхронизация невозможна';
+ String get notConnectedCannotSync =>
+ 'Нет подключения — синхронизация невозможна';
@override
String syncedMessageCount(int count) {
@@ -1160,22 +1160,22 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String minutesAgo(int minutes) {
- return '${minutes}м назад';
+ return '$minutesм назад';
}
@override
String hoursAgo(int hours) {
- return '${hours}ч назад';
+ return '$hoursч назад';
}
@override
String daysAgo(int days) {
- return '${days}д назад';
+ return '$daysд назад';
}
@override
String secondsAgo(int seconds) {
- return '${seconds}с назад';
+ return '$secondsс назад';
}
@override
@@ -1189,7 +1189,7 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String deliveredWithTime(int time) {
- return 'Доставлено (${time}мс)';
+ return 'Доставлено ($timeмс)';
}
@override
@@ -1515,7 +1515,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get nameBroadcastInMesh => 'Имя, транслируемое в mesh-объявлениях';
@override
- String get telemetryAndLocationSharing => 'Телеметрия и передача местоположения';
+ String get telemetryAndLocationSharing =>
+ 'Телеметрия и передача местоположения';
@override
String get lat => 'Ш';
@@ -1796,7 +1797,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get sampleObjectBackpack => ' Найден рюкзак синего цвета';
@override
- String get sampleObjectVehicle => ' Брошенный автомобиль — установить владельца';
+ String get sampleObjectVehicle =>
+ ' Брошенный автомобиль — установить владельца';
@override
String get sampleObjectCamping => ' Обнаружено туристическое снаряжение';
@@ -2200,8 +2202,7 @@ class AppLocalizationsRu extends AppLocalizations {
'Транслируйте сообщения всем участникам канала — идеально для общих объявлений и координации команды.';
@override
- String get wizardChannelFeature1 =>
- 'Публичный канал для общей связи команды';
+ String get wizardChannelFeature1 => 'Публичный канал для общей связи команды';
@override
String get wizardChannelFeature2 =>
@@ -2244,8 +2245,7 @@ class AppLocalizationsRu extends AppLocalizations {
'GPS-отслеживание членов команды в реальном времени';
@override
- String get wizardMapFeature3 =>
- 'Загрузка офлайн-карт для отдалённых районов';
+ String get wizardMapFeature3 => 'Загрузка офлайн-карт для отдалённых районов';
@override
String get wizardMapFeature4 =>
diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb
index 1fbe23c..00f4318 100644
--- a/lib/l10n/app_ru.arb
+++ b/lib/l10n/app_ru.arb
@@ -128,7 +128,7 @@
"clearAllDrawings": "Удалить все рисунки",
"completeLine": "Завершить линию",
"broadcastDrawingsToTeam": "Транслировать {count} рисун{plural} команде",
- "removeAllDrawings": "Удалить все {count} рисун{plural}"
+ "removeAllDrawings": "Удалить все {count} рисун{plural}",
"deleteAllDrawingsConfirm": "Удалить все {count} рисун{plural} с карты?",
"drawing": "Рисунок",
"shareDrawingsCount": "Поделиться {count} рисун{plural}",
@@ -682,4 +682,4 @@
"cannotRetryMissingRecipient": "Повтор невозможен: нет информации о получателе",
"voiceUnavailable": "Голос сейчас недоступен",
"requestingVoice": "Запрос голоса"
-}
\ No newline at end of file
+}
diff --git a/lib/services/locale_preferences.dart b/lib/services/locale_preferences.dart
index cf98b88..273ac0e 100644
--- a/lib/services/locale_preferences.dart
+++ b/lib/services/locale_preferences.dart
@@ -15,6 +15,7 @@ class LocalePreferences {
Locale('fr'), // French
Locale('it'), // Italian
Locale('el'), // Greek
+ Locale('ru'), // Russian
Locale('zh'), // Chinese
];
@@ -65,6 +66,8 @@ class LocalePreferences {
return 'Italiano';
case 'el':
return 'Greek';
+ case 'ru':
+ return 'Русский';
case 'zh':
return '简体中文';
default:
@@ -91,6 +94,8 @@ class LocalePreferences {
return 'Italiano';
case 'el':
return 'Ελληνικά';
+ case 'ru':
+ return 'Русский';
case 'zh':
return '简体中文';
default:
diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist
index 804f8b8..f445a62 100644
--- a/macos/Runner/Info.plist
+++ b/macos/Runner/Info.plist
@@ -20,6 +20,8 @@
$(FLUTTER_BUILD_NAME)
CFBundleVersion
$(FLUTTER_BUILD_NUMBER)
+ ITSAppUsesNonExemptEncryption
+
LSMinimumSystemVersion
$(MACOSX_DEPLOYMENT_TARGET)
NSHumanReadableCopyright