forked from eatvio/eatvio_app
feat: webview
This commit is contained in:
@@ -2,8 +2,6 @@ plugins {
|
|||||||
id "com.android.application"
|
id "com.android.application"
|
||||||
id "kotlin-android"
|
id "kotlin-android"
|
||||||
id "dev.flutter.flutter-gradle-plugin"
|
id "dev.flutter.flutter-gradle-plugin"
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def keystoreProperties = new Properties()
|
def keystoreProperties = new Properties()
|
||||||
@@ -15,7 +13,7 @@ if (keystorePropertiesFile.exists()) {
|
|||||||
android {
|
android {
|
||||||
namespace = "com.eatvioapp.app"
|
namespace = "com.eatvioapp.app"
|
||||||
compileSdk = flutter.compileSdkVersion
|
compileSdk = flutter.compileSdkVersion
|
||||||
ndkVersion = "25.1.8937393"
|
ndkVersion = "27.0.12077973"
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = JavaVersion.VERSION_21
|
sourceCompatibility = JavaVersion.VERSION_21
|
||||||
|
|||||||
0
lib/core/theme/text_styles.dart
Normal file
0
lib/core/theme/text_styles.dart
Normal file
@@ -17,6 +17,7 @@ import 'package:go_router/go_router.dart';
|
|||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
import 'package:validators/validators.dart';
|
import 'package:validators/validators.dart';
|
||||||
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
|
|
||||||
import 'bloc/auth_bloc.dart';
|
import 'bloc/auth_bloc.dart';
|
||||||
import 'models/auth_model.dart';
|
import 'models/auth_model.dart';
|
||||||
@@ -43,11 +44,71 @@ class _AuthScreenState extends State<AuthScreen> {
|
|||||||
bool checkboxState = false;
|
bool checkboxState = false;
|
||||||
bool hidePassword = true;
|
bool hidePassword = true;
|
||||||
final baseUrlController = TextEditingController();
|
final baseUrlController = TextEditingController();
|
||||||
|
late final WebViewController _controller;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
|
||||||
|
_controller = WebViewController()
|
||||||
|
..setJavaScriptMode(JavaScriptMode.unrestricted)
|
||||||
|
..addJavaScriptChannel(
|
||||||
|
'FlutterChannel',
|
||||||
|
onMessageReceived: (JavaScriptMessage message) {
|
||||||
|
// Handle messages from JavaScript
|
||||||
|
final data = jsonDecode(message.message);
|
||||||
|
final email = data['email'];
|
||||||
|
final password = data['password'];
|
||||||
|
print('Email: $email, Password: $password');
|
||||||
|
},
|
||||||
|
)
|
||||||
|
..setNavigationDelegate(
|
||||||
|
NavigationDelegate(
|
||||||
|
onPageFinished: (String url) async {
|
||||||
|
await _controller.runJavaScript('''
|
||||||
|
function initializeListeners() {
|
||||||
|
const emailInput = document.getElementById("inputEmail_main");
|
||||||
|
const passwordInput = document.getElementById("inputPassword_main");
|
||||||
|
|
||||||
|
if (emailInput && passwordInput) {
|
||||||
|
function sendToFlutter() {
|
||||||
|
const email = emailInput.value;
|
||||||
|
const password = passwordInput.value;
|
||||||
|
const data = JSON.stringify({ email: email, password: password });
|
||||||
|
if (window.FlutterChannel) {
|
||||||
|
window.FlutterChannel.postMessage(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
emailInput.addEventListener("input", sendToFlutter);
|
||||||
|
passwordInput.addEventListener("input", sendToFlutter);
|
||||||
|
} else {
|
||||||
|
console.error("Email or Password input not found.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure DOM is loaded before attaching listeners
|
||||||
|
document.addEventListener("DOMContentLoaded", initializeListeners);
|
||||||
|
initializeListeners();
|
||||||
|
''');
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
..loadRequest(Uri.parse(baseUrl));
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
FlutterNativeSplash.remove();
|
FlutterNativeSplash.remove();
|
||||||
final s = S.of(context);
|
final s = S.of(context);
|
||||||
|
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
toolbarHeight: 0,
|
||||||
|
),
|
||||||
|
body: WebViewWidget(controller: _controller),
|
||||||
|
);
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ class ChatBubbleWidget extends StatelessWidget {
|
|||||||
if (text.isNotEmpty)
|
if (text.isNotEmpty)
|
||||||
Text(
|
Text(
|
||||||
text,
|
text,
|
||||||
style: TextStyles.textFS13FW400.copyWith(color: appTheme.black),
|
style: TextStyles.textFS13FW400.copyWith(color: appTheme.black, fontSize: 16),
|
||||||
),
|
),
|
||||||
SizedBox(height: 8),
|
SizedBox(height: 8),
|
||||||
Padding(
|
Padding(
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class _DevToolsScreenContentState extends State<DevToolsScreenContent> {
|
|||||||
final List<TestCases> testCases = [Test850task()];
|
final List<TestCases> testCases = [Test850task()];
|
||||||
final controller = TextEditingController();
|
final controller = TextEditingController();
|
||||||
late final List<TestState> testsStates;
|
late final List<TestState> testsStates;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|||||||
@@ -14,7 +14,11 @@ class DiaryRepository {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Future<DiaryDayModel> getDiaryByDate(String date) async {
|
Future<DiaryDayModel> getDiaryByDate(String date) async {
|
||||||
return (await getDiaryIndexByDate(date)).last;
|
try {
|
||||||
|
return (await getDiaryIndexByDate(date)).last;
|
||||||
|
} catch (e) {
|
||||||
|
rethrow;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<DiaryDayModel>> getDiaryIndexByDate(String date) async {
|
Future<List<DiaryDayModel>> getDiaryIndexByDate(String date) async {
|
||||||
|
|||||||
@@ -120,11 +120,12 @@ class MenuScreen extends StatelessWidget {
|
|||||||
|
|
||||||
_onTapLogout(BuildContext context) {
|
_onTapLogout(BuildContext context) {
|
||||||
return () async {
|
return () async {
|
||||||
final response = await sl<Dio>().post(
|
try {
|
||||||
baseUrl + '/api/profile/logout',
|
await sl<Dio>().post(
|
||||||
);
|
baseUrl + '/api/profile/logout',
|
||||||
|
);
|
||||||
if (response.statusCode == 204) {
|
} catch (e) {
|
||||||
|
} finally {
|
||||||
await TokenStorage.removeTokenInStorage();
|
await TokenStorage.removeTokenInStorage();
|
||||||
GoRouter.of(context).go('/auth-screen');
|
GoRouter.of(context).go('/auth-screen');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
late bool canSub;
|
late bool canSub;
|
||||||
bool isFirstFetch = true;
|
bool isFirstFetch = true;
|
||||||
int _currentBullet = 0;
|
int _currentBullet = 0;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
@@ -337,7 +338,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
GoRouter.of(context).pushNamed('blogPostCreateScreen');
|
GoRouter.of(context).pushNamed('blogPostCreateScreen');
|
||||||
},
|
},
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
child: Ink(
|
child: Ink(
|
||||||
@@ -658,6 +659,8 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
)
|
)
|
||||||
: CachedNetworkImage(
|
: CachedNetworkImage(
|
||||||
imageUrl: baseUrl + '/storage/' + state.profile.badges[i].image,
|
imageUrl: baseUrl + '/storage/' + state.profile.badges[i].image,
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
),
|
),
|
||||||
i < state.profile.badges.length - 1 ? const SizedBox(width: 8) : const SizedBox.shrink(),
|
i < state.profile.badges.length - 1 ? const SizedBox(width: 8) : const SizedBox.shrink(),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class _CircumferenceChartWidgetState extends State<CircumferenceChartWidget> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Stack(
|
Stack(
|
||||||
alignment: Alignment.bottomRight,
|
alignment: Alignment.center,
|
||||||
children: [
|
children: [
|
||||||
SfCartesianChart(
|
SfCartesianChart(
|
||||||
margin: EdgeInsets.symmetric(horizontal: 8),
|
margin: EdgeInsets.symmetric(horizontal: 8),
|
||||||
@@ -172,115 +172,127 @@ class _CircumferenceChartWidgetState extends State<CircumferenceChartWidget> {
|
|||||||
tooltipBehavior: TooltipBehavior(enable: true),
|
tooltipBehavior: TooltipBehavior(enable: true),
|
||||||
),
|
),
|
||||||
if (widget.profileCubit != null)
|
if (widget.profileCubit != null)
|
||||||
FloatingActionButton.small(
|
Positioned(
|
||||||
heroTag: 'addCircumference',
|
right: 16,
|
||||||
onPressed: () {
|
bottom: 16,
|
||||||
if (widget.circumferencePoints.isNotEmpty) {
|
child: FloatingActionButton.small(
|
||||||
chest = widget.circumferencePoints.last.chestCircumference;
|
heroTag: 'addCircumference',
|
||||||
waist = widget.circumferencePoints.last.waistCircumference;
|
onPressed: () {
|
||||||
hip = widget.circumferencePoints.last.hipCircumference;
|
if (widget.circumferencePoints.isNotEmpty) {
|
||||||
chestController = FixedExtentScrollController(initialItem: chest - 20);
|
chest = widget.circumferencePoints.last.chestCircumference;
|
||||||
waistController = FixedExtentScrollController(initialItem: waist - 20);
|
waist = widget.circumferencePoints.last.waistCircumference;
|
||||||
hipController = FixedExtentScrollController(initialItem: hip - 20);
|
hip = widget.circumferencePoints.last.hipCircumference;
|
||||||
} else {
|
chestController = FixedExtentScrollController(initialItem: chest - 20);
|
||||||
chestController = FixedExtentScrollController();
|
waistController = FixedExtentScrollController(initialItem: waist - 20);
|
||||||
waistController = FixedExtentScrollController();
|
hipController = FixedExtentScrollController(initialItem: hip - 20);
|
||||||
hipController = FixedExtentScrollController();
|
} else {
|
||||||
}
|
chestController = FixedExtentScrollController();
|
||||||
showModalBottomSheet(
|
waistController = FixedExtentScrollController();
|
||||||
useRootNavigator: true,
|
hipController = FixedExtentScrollController();
|
||||||
context: context,
|
}
|
||||||
builder: (context) {
|
showModalBottomSheet(
|
||||||
return Column(
|
useRootNavigator: true,
|
||||||
children: [
|
context: context,
|
||||||
Expanded(
|
builder: (context) {
|
||||||
child: Row(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: CupertinoPicker(
|
child: Row(
|
||||||
magnification: 1.22,
|
children: [
|
||||||
squeeze: 1.2,
|
Expanded(
|
||||||
useMagnifier: true,
|
child: CupertinoPicker(
|
||||||
scrollController: chestController,
|
magnification: 1.22,
|
||||||
itemExtent: 24,
|
squeeze: 1.2,
|
||||||
onSelectedItemChanged: (int value) {
|
useMagnifier: true,
|
||||||
chest = value;
|
scrollController: chestController,
|
||||||
},
|
itemExtent: 24,
|
||||||
children: [
|
onSelectedItemChanged: (int value) {
|
||||||
for (int i = 20; i < 200; i++) Text('$i'),
|
chest = value;
|
||||||
],
|
},
|
||||||
|
children: [
|
||||||
|
for (int i = 20; i < 200; i++) Text('$i'),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
Expanded(
|
||||||
Expanded(
|
child: CupertinoPicker(
|
||||||
child: CupertinoPicker(
|
magnification: 1.22,
|
||||||
magnification: 1.22,
|
squeeze: 1.2,
|
||||||
squeeze: 1.2,
|
useMagnifier: true,
|
||||||
useMagnifier: true,
|
scrollController: waistController,
|
||||||
scrollController: waistController,
|
itemExtent: 24,
|
||||||
itemExtent: 24,
|
onSelectedItemChanged: (int value) {
|
||||||
onSelectedItemChanged: (int value) {
|
waist = value;
|
||||||
waist = value;
|
},
|
||||||
},
|
children: [
|
||||||
children: [
|
for (int i = 20; i < 200; i++) Text('$i'),
|
||||||
for (int i = 20; i < 200; i++) Text('$i'),
|
],
|
||||||
],
|
),
|
||||||
),
|
),
|
||||||
),
|
Expanded(
|
||||||
Expanded(
|
child: CupertinoPicker(
|
||||||
child: CupertinoPicker(
|
magnification: 1.22,
|
||||||
magnification: 1.22,
|
squeeze: 1.2,
|
||||||
squeeze: 1.2,
|
useMagnifier: true,
|
||||||
useMagnifier: true,
|
scrollController: hipController,
|
||||||
scrollController: hipController,
|
itemExtent: 24,
|
||||||
itemExtent: 24,
|
onSelectedItemChanged: (int value) {
|
||||||
onSelectedItemChanged: (int value) {
|
hip = value;
|
||||||
hip = value;
|
},
|
||||||
},
|
children: [
|
||||||
children: [
|
for (int i = 20; i < 200; i++) Text('$i'),
|
||||||
for (int i = 20; i < 200; i++) Text('$i'),
|
],
|
||||||
],
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
widget.profileCubit?.addCircumference(
|
|
||||||
chestCircumference: chest + 20,
|
|
||||||
waistCircumference: waist + 20,
|
|
||||||
hipCircumference: hip + 20,
|
|
||||||
);
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
|
||||||
borderRadius: BorderRadius.circular(16),
|
|
||||||
child: Ink(
|
|
||||||
width: MediaQuery.of(context).size.width - 32,
|
|
||||||
padding: EdgeInsets.all(16),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: appTheme.blueA400,
|
|
||||||
borderRadius: BorderRadius.circular(16),
|
|
||||||
),
|
),
|
||||||
child: Center(
|
),
|
||||||
child: Text(
|
InkWell(
|
||||||
'Сохранить',
|
onTap: () {
|
||||||
style: TextStyle(
|
widget.profileCubit?.addCircumference(
|
||||||
color: Colors.white,
|
chestCircumference: chest + 20,
|
||||||
|
waistCircumference: waist + 20,
|
||||||
|
hipCircumference: hip + 20,
|
||||||
|
);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
borderRadius: BorderRadius.circular(16),
|
||||||
|
child: Ink(
|
||||||
|
width: MediaQuery.of(context).size.width - 32,
|
||||||
|
padding: EdgeInsets.all(16),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: appTheme.blueA400,
|
||||||
|
borderRadius: BorderRadius.circular(16),
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
'Сохранить',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
);
|
||||||
);
|
},
|
||||||
},
|
);
|
||||||
);
|
},
|
||||||
},
|
backgroundColor: appTheme.blueA400,
|
||||||
backgroundColor: appTheme.blueA400,
|
shape: CircleBorder(),
|
||||||
shape: CircleBorder(),
|
child: Icon(
|
||||||
child: Icon(
|
Icons.add,
|
||||||
Icons.add,
|
color: Colors.white,
|
||||||
color: Colors.white,
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
if (widget.circumferencePoints.isEmpty)
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 48),
|
||||||
|
child: Text(
|
||||||
|
'Добавьте Ваши замеры',
|
||||||
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -45,38 +45,44 @@ class ImtChartWidget extends StatelessWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SfCartesianChart(
|
Stack(
|
||||||
margin: EdgeInsets.symmetric(horizontal: 8),
|
alignment: Alignment.center,
|
||||||
enableAxisAnimation: true,
|
children: [
|
||||||
plotAreaBorderWidth: 0,
|
SfCartesianChart(
|
||||||
trackballBehavior: TrackballBehavior(
|
margin: EdgeInsets.symmetric(horizontal: 8),
|
||||||
enable: true,
|
enableAxisAnimation: true,
|
||||||
activationMode: ActivationMode.singleTap,
|
plotAreaBorderWidth: 0,
|
||||||
tooltipDisplayMode: TrackballDisplayMode.groupAllPoints,
|
trackballBehavior: TrackballBehavior(
|
||||||
tooltipSettings: InteractiveTooltip(),
|
enable: true,
|
||||||
lineType: TrackballLineType.vertical,
|
activationMode: ActivationMode.singleTap,
|
||||||
),
|
tooltipDisplayMode: TrackballDisplayMode.groupAllPoints,
|
||||||
primaryXAxis: DateTimeCategoryAxis(
|
tooltipSettings: InteractiveTooltip(),
|
||||||
tickPosition: TickPosition.inside,
|
lineType: TrackballLineType.vertical,
|
||||||
majorTickLines: MajorTickLines(
|
),
|
||||||
size: 0,
|
primaryXAxis: DateTimeCategoryAxis(
|
||||||
|
tickPosition: TickPosition.inside,
|
||||||
|
majorTickLines: MajorTickLines(
|
||||||
|
size: 0,
|
||||||
|
),
|
||||||
|
edgeLabelPlacement: EdgeLabelPlacement.shift,
|
||||||
|
dateFormat: DateFormat.MMMd('ru'),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
majorGridLines: MajorGridLines(dashArray: [1], color: Colors.grey.withValues(alpha: 0.3)),
|
||||||
|
axisLine: AxisLine(
|
||||||
|
color: Colors.grey.withValues(alpha: 0.3),
|
||||||
|
width: 0.4,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
primaryYAxis: NumericAxis(
|
||||||
|
isVisible: false,
|
||||||
|
),
|
||||||
|
series: _getSplineSeries(),
|
||||||
|
tooltipBehavior: TooltipBehavior(enable: true),
|
||||||
),
|
),
|
||||||
edgeLabelPlacement: EdgeLabelPlacement.shift,
|
if (weightPoints.isEmpty) Text('Индекс Массы Тела рассчитывается при указанных весе и росте'),
|
||||||
dateFormat: DateFormat.MMMd('ru'),
|
],
|
||||||
labelStyle: TextStyle(
|
|
||||||
color: Colors.grey,
|
|
||||||
),
|
|
||||||
majorGridLines: MajorGridLines(dashArray: [1], color: Colors.grey.withValues(alpha: 0.3)),
|
|
||||||
axisLine: AxisLine(
|
|
||||||
color: Colors.grey.withValues(alpha: 0.3),
|
|
||||||
width: 0.4,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
primaryYAxis: NumericAxis(
|
|
||||||
isVisible: false,
|
|
||||||
),
|
|
||||||
series: _getSplineSeries(),
|
|
||||||
tooltipBehavior: TooltipBehavior(enable: true),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class WeightChartWidget extends StatefulWidget {
|
|||||||
const WeightChartWidget({
|
const WeightChartWidget({
|
||||||
super.key,
|
super.key,
|
||||||
required this.weightPoints,
|
required this.weightPoints,
|
||||||
this.profileCubit,
|
this.profileCubit,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -70,7 +70,7 @@ class _WeightChartWidgetState extends State<WeightChartWidget> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Stack(
|
Stack(
|
||||||
alignment: Alignment.bottomRight,
|
alignment: Alignment.center,
|
||||||
children: [
|
children: [
|
||||||
SfCartesianChart(
|
SfCartesianChart(
|
||||||
margin: EdgeInsets.symmetric(horizontal: 8),
|
margin: EdgeInsets.symmetric(horizontal: 8),
|
||||||
@@ -112,99 +112,104 @@ class _WeightChartWidgetState extends State<WeightChartWidget> {
|
|||||||
tooltipBehavior: TooltipBehavior(enable: true),
|
tooltipBehavior: TooltipBehavior(enable: true),
|
||||||
),
|
),
|
||||||
if (widget.profileCubit != null)
|
if (widget.profileCubit != null)
|
||||||
FloatingActionButton.small(
|
Positioned(
|
||||||
heroTag: 'addWeight',
|
right: 16,
|
||||||
onPressed: () {
|
bottom: 16,
|
||||||
if (widget.weightPoints.isNotEmpty) {
|
child: FloatingActionButton.small(
|
||||||
try {
|
heroTag: 'addWeight',
|
||||||
weightKilo = int.parse(widget.weightPoints.last.weight.toString().split('.')[0]);
|
onPressed: () {
|
||||||
weightGrams = int.parse(widget.weightPoints.last.weight.toString().split('.')[1][0]);
|
if (widget.weightPoints.isNotEmpty) {
|
||||||
} catch (e) {
|
try {
|
||||||
weightGrams = 0;
|
weightKilo = int.parse(widget.weightPoints.last.weight.toString().split('.')[0]);
|
||||||
|
weightGrams = int.parse(widget.weightPoints.last.weight.toString().split('.')[1][0]);
|
||||||
|
} catch (e) {
|
||||||
|
weightGrams = 0;
|
||||||
|
}
|
||||||
|
weightKiloController = FixedExtentScrollController(initialItem: weightKilo - 20);
|
||||||
|
weightGramsController = FixedExtentScrollController(initialItem: weightGrams);
|
||||||
|
} else {
|
||||||
|
weightKiloController = FixedExtentScrollController();
|
||||||
|
weightGramsController = FixedExtentScrollController();
|
||||||
}
|
}
|
||||||
weightKiloController = FixedExtentScrollController(initialItem: weightKilo - 20);
|
showModalBottomSheet(
|
||||||
weightGramsController = FixedExtentScrollController(initialItem: weightGrams);
|
useRootNavigator: true,
|
||||||
} else {
|
context: context,
|
||||||
weightKiloController = FixedExtentScrollController();
|
builder: (context) {
|
||||||
weightGramsController = FixedExtentScrollController();
|
return Column(
|
||||||
}
|
children: [
|
||||||
showModalBottomSheet(
|
Expanded(
|
||||||
useRootNavigator: true,
|
child: Row(
|
||||||
context: context,
|
children: [
|
||||||
builder: (context) {
|
Expanded(
|
||||||
return Column(
|
child: CupertinoPicker(
|
||||||
children: [
|
magnification: 1.22,
|
||||||
Expanded(
|
squeeze: 1.2,
|
||||||
child: Row(
|
useMagnifier: true,
|
||||||
children: [
|
scrollController: weightKiloController,
|
||||||
Expanded(
|
itemExtent: 24,
|
||||||
child: CupertinoPicker(
|
onSelectedItemChanged: (int value) {
|
||||||
magnification: 1.22,
|
weightKilo = value + 20;
|
||||||
squeeze: 1.2,
|
},
|
||||||
useMagnifier: true,
|
children: [
|
||||||
scrollController: weightKiloController,
|
for (int i = 20; i < 300; i++) Text('$i'),
|
||||||
itemExtent: 24,
|
],
|
||||||
onSelectedItemChanged: (int value) {
|
),
|
||||||
weightKilo = value + 20;
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
for (int i = 20; i < 300; i++) Text('$i'),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
Expanded(
|
||||||
Expanded(
|
child: CupertinoPicker(
|
||||||
child: CupertinoPicker(
|
magnification: 1.22,
|
||||||
magnification: 1.22,
|
squeeze: 1.2,
|
||||||
squeeze: 1.2,
|
useMagnifier: true,
|
||||||
useMagnifier: true,
|
scrollController: weightGramsController,
|
||||||
scrollController: weightGramsController,
|
itemExtent: 24,
|
||||||
itemExtent: 24,
|
onSelectedItemChanged: (int value) {
|
||||||
onSelectedItemChanged: (int value) {
|
weightGrams = value;
|
||||||
weightGrams = value;
|
},
|
||||||
},
|
children: [
|
||||||
children: [
|
for (int i = 0; i < 10; i++) Text('$i'),
|
||||||
for (int i = 0; i < 10; i++) Text('$i'),
|
],
|
||||||
],
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
widget.profileCubit?.addWeight(weight: double.parse('$weightKilo.$weightGrams'));
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
|
||||||
borderRadius: BorderRadius.circular(16),
|
|
||||||
child: Ink(
|
|
||||||
width: MediaQuery.of(context).size.width - 32,
|
|
||||||
padding: EdgeInsets.all(16),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: appTheme.blueA400,
|
|
||||||
borderRadius: BorderRadius.circular(16),
|
|
||||||
),
|
),
|
||||||
child: Center(
|
),
|
||||||
child: Text(
|
InkWell(
|
||||||
'Сохранить',
|
onTap: () {
|
||||||
style: TextStyle(
|
widget.profileCubit?.addWeight(weight: double.parse('$weightKilo.$weightGrams'));
|
||||||
color: Colors.white,
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
borderRadius: BorderRadius.circular(16),
|
||||||
|
child: Ink(
|
||||||
|
width: MediaQuery.of(context).size.width - 32,
|
||||||
|
padding: EdgeInsets.all(16),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: appTheme.blueA400,
|
||||||
|
borderRadius: BorderRadius.circular(16),
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
'Сохранить',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
);
|
||||||
);
|
},
|
||||||
},
|
);
|
||||||
);
|
},
|
||||||
},
|
backgroundColor: appTheme.blueA400,
|
||||||
backgroundColor: appTheme.blueA400,
|
shape: CircleBorder(),
|
||||||
shape: CircleBorder(),
|
child: Icon(
|
||||||
child: Icon(
|
Icons.add,
|
||||||
Icons.add,
|
color: Colors.white,
|
||||||
color: Colors.white,
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
if (widget.weightPoints.isEmpty) Text('Добавьте Ваш вес'),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
37
lib/features/recipes/models/recipe_create_model.dart
Normal file
37
lib/features/recipes/models/recipe_create_model.dart
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import 'package:eatvio_app/features/recipes/models/ingredient.dart';
|
||||||
|
import 'package:eatvio_app/features/recipes/models/step.dart';
|
||||||
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||||
|
|
||||||
|
part 'recipe_create_model.freezed.dart';
|
||||||
|
|
||||||
|
part 'recipe_create_model.g.dart';
|
||||||
|
|
||||||
|
enum RecipeType {
|
||||||
|
first_meals,
|
||||||
|
second_meals,
|
||||||
|
salads,
|
||||||
|
snacks,
|
||||||
|
sweets,
|
||||||
|
drinks,
|
||||||
|
other
|
||||||
|
}
|
||||||
|
|
||||||
|
@freezed
|
||||||
|
class RecipeCreateModel with _$RecipeCreateModel {
|
||||||
|
const factory RecipeCreateModel({
|
||||||
|
required String title,
|
||||||
|
required String state,
|
||||||
|
required String description,
|
||||||
|
required RecipeType type,
|
||||||
|
@JsonKey(name: 'video_url') String? videoUrl,
|
||||||
|
@JsonKey(name: 'cooking_time') String? cookingTime,
|
||||||
|
@JsonKey(name: 'active_time') String? activeTime,
|
||||||
|
required String servings,
|
||||||
|
@JsonKey(name: 'energy_per_serving') required String energyPerServing,
|
||||||
|
required List<String> tags,
|
||||||
|
required List<Ingredient> ingredients,
|
||||||
|
required List<Step> steps,
|
||||||
|
}) = _RecipeCreateModel;
|
||||||
|
|
||||||
|
factory RecipeCreateModel.fromJson(Map<String, Object?> json) => _$RecipeCreateModelFromJson(json);
|
||||||
|
}
|
||||||
442
lib/features/recipes/models/recipe_create_model.freezed.dart
Normal file
442
lib/features/recipes/models/recipe_create_model.freezed.dart
Normal file
@@ -0,0 +1,442 @@
|
|||||||
|
// coverage:ignore-file
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint
|
||||||
|
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
||||||
|
|
||||||
|
part of 'recipe_create_model.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// FreezedGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
T _$identity<T>(T value) => value;
|
||||||
|
|
||||||
|
final _privateConstructorUsedError = UnsupportedError(
|
||||||
|
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
|
||||||
|
|
||||||
|
RecipeCreateModel _$RecipeCreateModelFromJson(Map<String, dynamic> json) {
|
||||||
|
return _RecipeCreateModel.fromJson(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
mixin _$RecipeCreateModel {
|
||||||
|
String get title => throw _privateConstructorUsedError;
|
||||||
|
String get state => throw _privateConstructorUsedError;
|
||||||
|
String get description => throw _privateConstructorUsedError;
|
||||||
|
RecipeType get type => throw _privateConstructorUsedError;
|
||||||
|
@JsonKey(name: 'video_url')
|
||||||
|
String? get videoUrl => throw _privateConstructorUsedError;
|
||||||
|
@JsonKey(name: 'cooking_time')
|
||||||
|
String? get cookingTime => throw _privateConstructorUsedError;
|
||||||
|
@JsonKey(name: 'active_time')
|
||||||
|
String? get activeTime => throw _privateConstructorUsedError;
|
||||||
|
String get servings => throw _privateConstructorUsedError;
|
||||||
|
@JsonKey(name: 'energy_per_serving')
|
||||||
|
String get energyPerServing => throw _privateConstructorUsedError;
|
||||||
|
List<String> get tags => throw _privateConstructorUsedError;
|
||||||
|
List<Ingredient> get ingredients => throw _privateConstructorUsedError;
|
||||||
|
List<Step> get steps => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Serializes this RecipeCreateModel to a JSON map.
|
||||||
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Create a copy of RecipeCreateModel
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
$RecipeCreateModelCopyWith<RecipeCreateModel> get copyWith =>
|
||||||
|
throw _privateConstructorUsedError;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
abstract class $RecipeCreateModelCopyWith<$Res> {
|
||||||
|
factory $RecipeCreateModelCopyWith(
|
||||||
|
RecipeCreateModel value, $Res Function(RecipeCreateModel) then) =
|
||||||
|
_$RecipeCreateModelCopyWithImpl<$Res, RecipeCreateModel>;
|
||||||
|
@useResult
|
||||||
|
$Res call(
|
||||||
|
{String title,
|
||||||
|
String state,
|
||||||
|
String description,
|
||||||
|
RecipeType type,
|
||||||
|
@JsonKey(name: 'video_url') String? videoUrl,
|
||||||
|
@JsonKey(name: 'cooking_time') String? cookingTime,
|
||||||
|
@JsonKey(name: 'active_time') String? activeTime,
|
||||||
|
String servings,
|
||||||
|
@JsonKey(name: 'energy_per_serving') String energyPerServing,
|
||||||
|
List<String> tags,
|
||||||
|
List<Ingredient> ingredients,
|
||||||
|
List<Step> steps});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
class _$RecipeCreateModelCopyWithImpl<$Res, $Val extends RecipeCreateModel>
|
||||||
|
implements $RecipeCreateModelCopyWith<$Res> {
|
||||||
|
_$RecipeCreateModelCopyWithImpl(this._value, this._then);
|
||||||
|
|
||||||
|
// ignore: unused_field
|
||||||
|
final $Val _value;
|
||||||
|
// ignore: unused_field
|
||||||
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of RecipeCreateModel
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@pragma('vm:prefer-inline')
|
||||||
|
@override
|
||||||
|
$Res call({
|
||||||
|
Object? title = null,
|
||||||
|
Object? state = null,
|
||||||
|
Object? description = null,
|
||||||
|
Object? type = null,
|
||||||
|
Object? videoUrl = freezed,
|
||||||
|
Object? cookingTime = freezed,
|
||||||
|
Object? activeTime = freezed,
|
||||||
|
Object? servings = null,
|
||||||
|
Object? energyPerServing = null,
|
||||||
|
Object? tags = null,
|
||||||
|
Object? ingredients = null,
|
||||||
|
Object? steps = null,
|
||||||
|
}) {
|
||||||
|
return _then(_value.copyWith(
|
||||||
|
title: null == title
|
||||||
|
? _value.title
|
||||||
|
: title // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
state: null == state
|
||||||
|
? _value.state
|
||||||
|
: state // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
description: null == description
|
||||||
|
? _value.description
|
||||||
|
: description // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
type: null == type
|
||||||
|
? _value.type
|
||||||
|
: type // ignore: cast_nullable_to_non_nullable
|
||||||
|
as RecipeType,
|
||||||
|
videoUrl: freezed == videoUrl
|
||||||
|
? _value.videoUrl
|
||||||
|
: videoUrl // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,
|
||||||
|
cookingTime: freezed == cookingTime
|
||||||
|
? _value.cookingTime
|
||||||
|
: cookingTime // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,
|
||||||
|
activeTime: freezed == activeTime
|
||||||
|
? _value.activeTime
|
||||||
|
: activeTime // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,
|
||||||
|
servings: null == servings
|
||||||
|
? _value.servings
|
||||||
|
: servings // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
energyPerServing: null == energyPerServing
|
||||||
|
? _value.energyPerServing
|
||||||
|
: energyPerServing // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
tags: null == tags
|
||||||
|
? _value.tags
|
||||||
|
: tags // ignore: cast_nullable_to_non_nullable
|
||||||
|
as List<String>,
|
||||||
|
ingredients: null == ingredients
|
||||||
|
? _value.ingredients
|
||||||
|
: ingredients // ignore: cast_nullable_to_non_nullable
|
||||||
|
as List<Ingredient>,
|
||||||
|
steps: null == steps
|
||||||
|
? _value.steps
|
||||||
|
: steps // ignore: cast_nullable_to_non_nullable
|
||||||
|
as List<Step>,
|
||||||
|
) as $Val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
abstract class _$$RecipeCreateModelImplCopyWith<$Res>
|
||||||
|
implements $RecipeCreateModelCopyWith<$Res> {
|
||||||
|
factory _$$RecipeCreateModelImplCopyWith(_$RecipeCreateModelImpl value,
|
||||||
|
$Res Function(_$RecipeCreateModelImpl) then) =
|
||||||
|
__$$RecipeCreateModelImplCopyWithImpl<$Res>;
|
||||||
|
@override
|
||||||
|
@useResult
|
||||||
|
$Res call(
|
||||||
|
{String title,
|
||||||
|
String state,
|
||||||
|
String description,
|
||||||
|
RecipeType type,
|
||||||
|
@JsonKey(name: 'video_url') String? videoUrl,
|
||||||
|
@JsonKey(name: 'cooking_time') String? cookingTime,
|
||||||
|
@JsonKey(name: 'active_time') String? activeTime,
|
||||||
|
String servings,
|
||||||
|
@JsonKey(name: 'energy_per_serving') String energyPerServing,
|
||||||
|
List<String> tags,
|
||||||
|
List<Ingredient> ingredients,
|
||||||
|
List<Step> steps});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
class __$$RecipeCreateModelImplCopyWithImpl<$Res>
|
||||||
|
extends _$RecipeCreateModelCopyWithImpl<$Res, _$RecipeCreateModelImpl>
|
||||||
|
implements _$$RecipeCreateModelImplCopyWith<$Res> {
|
||||||
|
__$$RecipeCreateModelImplCopyWithImpl(_$RecipeCreateModelImpl _value,
|
||||||
|
$Res Function(_$RecipeCreateModelImpl) _then)
|
||||||
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of RecipeCreateModel
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@pragma('vm:prefer-inline')
|
||||||
|
@override
|
||||||
|
$Res call({
|
||||||
|
Object? title = null,
|
||||||
|
Object? state = null,
|
||||||
|
Object? description = null,
|
||||||
|
Object? type = null,
|
||||||
|
Object? videoUrl = freezed,
|
||||||
|
Object? cookingTime = freezed,
|
||||||
|
Object? activeTime = freezed,
|
||||||
|
Object? servings = null,
|
||||||
|
Object? energyPerServing = null,
|
||||||
|
Object? tags = null,
|
||||||
|
Object? ingredients = null,
|
||||||
|
Object? steps = null,
|
||||||
|
}) {
|
||||||
|
return _then(_$RecipeCreateModelImpl(
|
||||||
|
title: null == title
|
||||||
|
? _value.title
|
||||||
|
: title // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
state: null == state
|
||||||
|
? _value.state
|
||||||
|
: state // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
description: null == description
|
||||||
|
? _value.description
|
||||||
|
: description // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
type: null == type
|
||||||
|
? _value.type
|
||||||
|
: type // ignore: cast_nullable_to_non_nullable
|
||||||
|
as RecipeType,
|
||||||
|
videoUrl: freezed == videoUrl
|
||||||
|
? _value.videoUrl
|
||||||
|
: videoUrl // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,
|
||||||
|
cookingTime: freezed == cookingTime
|
||||||
|
? _value.cookingTime
|
||||||
|
: cookingTime // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,
|
||||||
|
activeTime: freezed == activeTime
|
||||||
|
? _value.activeTime
|
||||||
|
: activeTime // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,
|
||||||
|
servings: null == servings
|
||||||
|
? _value.servings
|
||||||
|
: servings // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
energyPerServing: null == energyPerServing
|
||||||
|
? _value.energyPerServing
|
||||||
|
: energyPerServing // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
tags: null == tags
|
||||||
|
? _value._tags
|
||||||
|
: tags // ignore: cast_nullable_to_non_nullable
|
||||||
|
as List<String>,
|
||||||
|
ingredients: null == ingredients
|
||||||
|
? _value._ingredients
|
||||||
|
: ingredients // ignore: cast_nullable_to_non_nullable
|
||||||
|
as List<Ingredient>,
|
||||||
|
steps: null == steps
|
||||||
|
? _value._steps
|
||||||
|
: steps // ignore: cast_nullable_to_non_nullable
|
||||||
|
as List<Step>,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
@JsonSerializable()
|
||||||
|
class _$RecipeCreateModelImpl implements _RecipeCreateModel {
|
||||||
|
const _$RecipeCreateModelImpl(
|
||||||
|
{required this.title,
|
||||||
|
required this.state,
|
||||||
|
required this.description,
|
||||||
|
required this.type,
|
||||||
|
@JsonKey(name: 'video_url') this.videoUrl,
|
||||||
|
@JsonKey(name: 'cooking_time') this.cookingTime,
|
||||||
|
@JsonKey(name: 'active_time') this.activeTime,
|
||||||
|
required this.servings,
|
||||||
|
@JsonKey(name: 'energy_per_serving') required this.energyPerServing,
|
||||||
|
required final List<String> tags,
|
||||||
|
required final List<Ingredient> ingredients,
|
||||||
|
required final List<Step> steps})
|
||||||
|
: _tags = tags,
|
||||||
|
_ingredients = ingredients,
|
||||||
|
_steps = steps;
|
||||||
|
|
||||||
|
factory _$RecipeCreateModelImpl.fromJson(Map<String, dynamic> json) =>
|
||||||
|
_$$RecipeCreateModelImplFromJson(json);
|
||||||
|
|
||||||
|
@override
|
||||||
|
final String title;
|
||||||
|
@override
|
||||||
|
final String state;
|
||||||
|
@override
|
||||||
|
final String description;
|
||||||
|
@override
|
||||||
|
final RecipeType type;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'video_url')
|
||||||
|
final String? videoUrl;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'cooking_time')
|
||||||
|
final String? cookingTime;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'active_time')
|
||||||
|
final String? activeTime;
|
||||||
|
@override
|
||||||
|
final String servings;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'energy_per_serving')
|
||||||
|
final String energyPerServing;
|
||||||
|
final List<String> _tags;
|
||||||
|
@override
|
||||||
|
List<String> get tags {
|
||||||
|
if (_tags is EqualUnmodifiableListView) return _tags;
|
||||||
|
// ignore: implicit_dynamic_type
|
||||||
|
return EqualUnmodifiableListView(_tags);
|
||||||
|
}
|
||||||
|
|
||||||
|
final List<Ingredient> _ingredients;
|
||||||
|
@override
|
||||||
|
List<Ingredient> get ingredients {
|
||||||
|
if (_ingredients is EqualUnmodifiableListView) return _ingredients;
|
||||||
|
// ignore: implicit_dynamic_type
|
||||||
|
return EqualUnmodifiableListView(_ingredients);
|
||||||
|
}
|
||||||
|
|
||||||
|
final List<Step> _steps;
|
||||||
|
@override
|
||||||
|
List<Step> get steps {
|
||||||
|
if (_steps is EqualUnmodifiableListView) return _steps;
|
||||||
|
// ignore: implicit_dynamic_type
|
||||||
|
return EqualUnmodifiableListView(_steps);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'RecipeCreateModel(title: $title, state: $state, description: $description, type: $type, videoUrl: $videoUrl, cookingTime: $cookingTime, activeTime: $activeTime, servings: $servings, energyPerServing: $energyPerServing, tags: $tags, ingredients: $ingredients, steps: $steps)';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) {
|
||||||
|
return identical(this, other) ||
|
||||||
|
(other.runtimeType == runtimeType &&
|
||||||
|
other is _$RecipeCreateModelImpl &&
|
||||||
|
(identical(other.title, title) || other.title == title) &&
|
||||||
|
(identical(other.state, state) || other.state == state) &&
|
||||||
|
(identical(other.description, description) ||
|
||||||
|
other.description == description) &&
|
||||||
|
(identical(other.type, type) || other.type == type) &&
|
||||||
|
(identical(other.videoUrl, videoUrl) ||
|
||||||
|
other.videoUrl == videoUrl) &&
|
||||||
|
(identical(other.cookingTime, cookingTime) ||
|
||||||
|
other.cookingTime == cookingTime) &&
|
||||||
|
(identical(other.activeTime, activeTime) ||
|
||||||
|
other.activeTime == activeTime) &&
|
||||||
|
(identical(other.servings, servings) ||
|
||||||
|
other.servings == servings) &&
|
||||||
|
(identical(other.energyPerServing, energyPerServing) ||
|
||||||
|
other.energyPerServing == energyPerServing) &&
|
||||||
|
const DeepCollectionEquality().equals(other._tags, _tags) &&
|
||||||
|
const DeepCollectionEquality()
|
||||||
|
.equals(other._ingredients, _ingredients) &&
|
||||||
|
const DeepCollectionEquality().equals(other._steps, _steps));
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
@override
|
||||||
|
int get hashCode => Object.hash(
|
||||||
|
runtimeType,
|
||||||
|
title,
|
||||||
|
state,
|
||||||
|
description,
|
||||||
|
type,
|
||||||
|
videoUrl,
|
||||||
|
cookingTime,
|
||||||
|
activeTime,
|
||||||
|
servings,
|
||||||
|
energyPerServing,
|
||||||
|
const DeepCollectionEquality().hash(_tags),
|
||||||
|
const DeepCollectionEquality().hash(_ingredients),
|
||||||
|
const DeepCollectionEquality().hash(_steps));
|
||||||
|
|
||||||
|
/// Create a copy of RecipeCreateModel
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
@override
|
||||||
|
@pragma('vm:prefer-inline')
|
||||||
|
_$$RecipeCreateModelImplCopyWith<_$RecipeCreateModelImpl> get copyWith =>
|
||||||
|
__$$RecipeCreateModelImplCopyWithImpl<_$RecipeCreateModelImpl>(
|
||||||
|
this, _$identity);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
return _$$RecipeCreateModelImplToJson(
|
||||||
|
this,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class _RecipeCreateModel implements RecipeCreateModel {
|
||||||
|
const factory _RecipeCreateModel(
|
||||||
|
{required final String title,
|
||||||
|
required final String state,
|
||||||
|
required final String description,
|
||||||
|
required final RecipeType type,
|
||||||
|
@JsonKey(name: 'video_url') final String? videoUrl,
|
||||||
|
@JsonKey(name: 'cooking_time') final String? cookingTime,
|
||||||
|
@JsonKey(name: 'active_time') final String? activeTime,
|
||||||
|
required final String servings,
|
||||||
|
@JsonKey(name: 'energy_per_serving')
|
||||||
|
required final String energyPerServing,
|
||||||
|
required final List<String> tags,
|
||||||
|
required final List<Ingredient> ingredients,
|
||||||
|
required final List<Step> steps}) = _$RecipeCreateModelImpl;
|
||||||
|
|
||||||
|
factory _RecipeCreateModel.fromJson(Map<String, dynamic> json) =
|
||||||
|
_$RecipeCreateModelImpl.fromJson;
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get title;
|
||||||
|
@override
|
||||||
|
String get state;
|
||||||
|
@override
|
||||||
|
String get description;
|
||||||
|
@override
|
||||||
|
RecipeType get type;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'video_url')
|
||||||
|
String? get videoUrl;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'cooking_time')
|
||||||
|
String? get cookingTime;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'active_time')
|
||||||
|
String? get activeTime;
|
||||||
|
@override
|
||||||
|
String get servings;
|
||||||
|
@override
|
||||||
|
@JsonKey(name: 'energy_per_serving')
|
||||||
|
String get energyPerServing;
|
||||||
|
@override
|
||||||
|
List<String> get tags;
|
||||||
|
@override
|
||||||
|
List<Ingredient> get ingredients;
|
||||||
|
@override
|
||||||
|
List<Step> get steps;
|
||||||
|
|
||||||
|
/// Create a copy of RecipeCreateModel
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@override
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
_$$RecipeCreateModelImplCopyWith<_$RecipeCreateModelImpl> get copyWith =>
|
||||||
|
throw _privateConstructorUsedError;
|
||||||
|
}
|
||||||
55
lib/features/recipes/models/recipe_create_model.g.dart
Normal file
55
lib/features/recipes/models/recipe_create_model.g.dart
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'recipe_create_model.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// JsonSerializableGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
_$RecipeCreateModelImpl _$$RecipeCreateModelImplFromJson(
|
||||||
|
Map<String, dynamic> json) =>
|
||||||
|
_$RecipeCreateModelImpl(
|
||||||
|
title: json['title'] as String,
|
||||||
|
state: json['state'] as String,
|
||||||
|
description: json['description'] as String,
|
||||||
|
type: $enumDecode(_$RecipeTypeEnumMap, json['type']),
|
||||||
|
videoUrl: json['video_url'] as String?,
|
||||||
|
cookingTime: json['cooking_time'] as String?,
|
||||||
|
activeTime: json['active_time'] as String?,
|
||||||
|
servings: json['servings'] as String,
|
||||||
|
energyPerServing: json['energy_per_serving'] as String,
|
||||||
|
tags: (json['tags'] as List<dynamic>).map((e) => e as String).toList(),
|
||||||
|
ingredients: (json['ingredients'] as List<dynamic>)
|
||||||
|
.map((e) => Ingredient.fromJson(e as Map<String, dynamic>))
|
||||||
|
.toList(),
|
||||||
|
steps: (json['steps'] as List<dynamic>)
|
||||||
|
.map((e) => Step.fromJson(e as Map<String, dynamic>))
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<String, dynamic> _$$RecipeCreateModelImplToJson(
|
||||||
|
_$RecipeCreateModelImpl instance) =>
|
||||||
|
<String, dynamic>{
|
||||||
|
'title': instance.title,
|
||||||
|
'state': instance.state,
|
||||||
|
'description': instance.description,
|
||||||
|
'type': _$RecipeTypeEnumMap[instance.type]!,
|
||||||
|
'video_url': instance.videoUrl,
|
||||||
|
'cooking_time': instance.cookingTime,
|
||||||
|
'active_time': instance.activeTime,
|
||||||
|
'servings': instance.servings,
|
||||||
|
'energy_per_serving': instance.energyPerServing,
|
||||||
|
'tags': instance.tags,
|
||||||
|
'ingredients': instance.ingredients,
|
||||||
|
'steps': instance.steps,
|
||||||
|
};
|
||||||
|
|
||||||
|
const _$RecipeTypeEnumMap = {
|
||||||
|
RecipeType.first_meals: 'first_meals',
|
||||||
|
RecipeType.second_meals: 'second_meals',
|
||||||
|
RecipeType.salads: 'salads',
|
||||||
|
RecipeType.snacks: 'snacks',
|
||||||
|
RecipeType.sweets: 'sweets',
|
||||||
|
RecipeType.drinks: 'drinks',
|
||||||
|
RecipeType.other: 'other',
|
||||||
|
};
|
||||||
@@ -41,7 +41,6 @@ class _AdditionalInformationScreenState extends State<AdditionalInformationScree
|
|||||||
SizedBox(height: 4),
|
SizedBox(height: 4),
|
||||||
CustomTextFormField(
|
CustomTextFormField(
|
||||||
controller: editTextController,
|
controller: editTextController,
|
||||||
hintText: "У меня крепкое здоровье, но последнее время часто утомляюсь, однако, это мне не мешает радоваться жизни",
|
|
||||||
textInputAction: TextInputAction.done,
|
textInputAction: TextInputAction.done,
|
||||||
maxLines: 8,
|
maxLines: 8,
|
||||||
inputFormatters: [
|
inputFormatters: [
|
||||||
|
|||||||
@@ -37,8 +37,6 @@ class _FavoriteSportsScreenState extends State<FavoriteSportsScreen> {
|
|||||||
SizedBox(height: 4),
|
SizedBox(height: 4),
|
||||||
CustomTextFormField(
|
CustomTextFormField(
|
||||||
controller: enterInformationController,
|
controller: enterInformationController,
|
||||||
hintText: "Я занимаюсь плаванием , почти каждый вечер прогулки на свежем воздухе, пару раз в месяц играю в волейбол. Стараюсь не сидеть на месте!",
|
|
||||||
textInputAction: TextInputAction.done,
|
|
||||||
focusNode: infoFocusNode,
|
focusNode: infoFocusNode,
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
maxLines: 8,
|
maxLines: 8,
|
||||||
|
|||||||
@@ -15,7 +15,12 @@ class SupportScreen extends StatelessWidget {
|
|||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(16),
|
padding: const EdgeInsets.all(16),
|
||||||
child: Text('Если у вас есть вопросы по работе нашего приложения, вы можете задать их, перейдя по ссылке:'),
|
child: Text(
|
||||||
|
'Если у вас есть вопросы по работе нашего приложения, вы можете задать их, перейдя по ссылке:',
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 16,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -35,7 +40,12 @@ class SupportScreen extends StatelessWidget {
|
|||||||
colorFilter: ColorFilter.mode(Colors.black, BlendMode.srcIn),
|
colorFilter: ColorFilter.mode(Colors.black, BlendMode.srcIn),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
Text('Telegram'),
|
Text(
|
||||||
|
'Telegram',
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 16,
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -56,7 +66,12 @@ class SupportScreen extends StatelessWidget {
|
|||||||
children: [
|
children: [
|
||||||
Icon(Icons.alternate_email_rounded),
|
Icon(Icons.alternate_email_rounded),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
Text('E-mail'),
|
Text(
|
||||||
|
'E-mail',
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 16,
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -39,8 +39,10 @@ MessageLookupByLibrary? _findExact(String localeName) {
|
|||||||
/// User programs should call this before using [localeName] for messages.
|
/// User programs should call this before using [localeName] for messages.
|
||||||
Future<bool> initializeMessages(String localeName) {
|
Future<bool> initializeMessages(String localeName) {
|
||||||
var availableLocale = Intl.verifiedLocale(
|
var availableLocale = Intl.verifiedLocale(
|
||||||
localeName, (locale) => _deferredLibraries[locale] != null,
|
localeName,
|
||||||
onFailure: (_) => null);
|
(locale) => _deferredLibraries[locale] != null,
|
||||||
|
onFailure: (_) => null,
|
||||||
|
);
|
||||||
if (availableLocale == null) {
|
if (availableLocale == null) {
|
||||||
return new SynchronousFuture(false);
|
return new SynchronousFuture(false);
|
||||||
}
|
}
|
||||||
@@ -60,8 +62,11 @@ bool _messagesExistFor(String locale) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MessageLookupByLibrary? _findGeneratedMessagesFor(String locale) {
|
MessageLookupByLibrary? _findGeneratedMessagesFor(String locale) {
|
||||||
var actualLocale =
|
var actualLocale = Intl.verifiedLocale(
|
||||||
Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null);
|
locale,
|
||||||
|
_messagesExistFor,
|
||||||
|
onFailure: (_) => null,
|
||||||
|
);
|
||||||
if (actualLocale == null) return null;
|
if (actualLocale == null) return null;
|
||||||
return _findExact(actualLocale);
|
return _findExact(actualLocale);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,324 +22,375 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||||
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
|
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
|
||||||
"Moscow": MessageLookupByLibrary.simpleMessage("Москва"),
|
"Moscow": MessageLookupByLibrary.simpleMessage("Москва"),
|
||||||
"Russia": MessageLookupByLibrary.simpleMessage("Россия"),
|
"Russia": MessageLookupByLibrary.simpleMessage("Россия"),
|
||||||
"about_diet": MessageLookupByLibrary.simpleMessage("Об этой диете"),
|
"about_diet": MessageLookupByLibrary.simpleMessage("Об этой диете"),
|
||||||
"about_plan": MessageLookupByLibrary.simpleMessage("Об этом плане"),
|
"about_plan": MessageLookupByLibrary.simpleMessage("Об этом плане"),
|
||||||
"active": MessageLookupByLibrary.simpleMessage("Активен"),
|
"active": MessageLookupByLibrary.simpleMessage("Активен"),
|
||||||
"active_diet_state": MessageLookupByLibrary.simpleMessage("Активная"),
|
"active_diet_state": MessageLookupByLibrary.simpleMessage("Активная"),
|
||||||
"add": MessageLookupByLibrary.simpleMessage("Добавить"),
|
"add": MessageLookupByLibrary.simpleMessage("Добавить"),
|
||||||
"add_cover": MessageLookupByLibrary.simpleMessage("Добавьте обложку"),
|
"add_cover": MessageLookupByLibrary.simpleMessage("Добавьте обложку"),
|
||||||
"add_measure": MessageLookupByLibrary.simpleMessage("Добавить замер"),
|
"add_measure": MessageLookupByLibrary.simpleMessage("Добавить замер"),
|
||||||
"adding_plan": MessageLookupByLibrary.simpleMessage("Добавление плана"),
|
"adding_plan": MessageLookupByLibrary.simpleMessage("Добавление плана"),
|
||||||
"additional_information":
|
"additional_information": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Дополнительная информация"),
|
"Дополнительная информация",
|
||||||
"admin": MessageLookupByLibrary.simpleMessage("Админ"),
|
),
|
||||||
"all": MessageLookupByLibrary.simpleMessage("Все"),
|
"admin": MessageLookupByLibrary.simpleMessage("Админ"),
|
||||||
"allergies_presence":
|
"all": MessageLookupByLibrary.simpleMessage("Все"),
|
||||||
MessageLookupByLibrary.simpleMessage("Наличие аллергии"),
|
"allergies_presence": MessageLookupByLibrary.simpleMessage(
|
||||||
"another_form_of_comment":
|
"Наличие аллергии",
|
||||||
MessageLookupByLibrary.simpleMessage("комментария"),
|
),
|
||||||
"another_form_of_day": MessageLookupByLibrary.simpleMessage("дня"),
|
"another_form_of_comment": MessageLookupByLibrary.simpleMessage(
|
||||||
"answer": MessageLookupByLibrary.simpleMessage("Ответить"),
|
"комментария",
|
||||||
"archived": MessageLookupByLibrary.simpleMessage("В архиве"),
|
),
|
||||||
"authentificate": MessageLookupByLibrary.simpleMessage("Войти"),
|
"another_form_of_day": MessageLookupByLibrary.simpleMessage("дня"),
|
||||||
"average_pressure": MessageLookupByLibrary.simpleMessage(
|
"answer": MessageLookupByLibrary.simpleMessage("Ответить"),
|
||||||
"Средние показатели давления:"),
|
"archived": MessageLookupByLibrary.simpleMessage("В архиве"),
|
||||||
"bodymass_chart": MessageLookupByLibrary.simpleMessage("График ИМТ"),
|
"authentificate": MessageLookupByLibrary.simpleMessage("Войти"),
|
||||||
"by_default": MessageLookupByLibrary.simpleMessage("По умолчянию"),
|
"average_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
"calories": MessageLookupByLibrary.simpleMessage("Калории"),
|
"Средние показатели давления:",
|
||||||
"carb_type": MessageLookupByLibrary.simpleMessage("Мучное"),
|
),
|
||||||
"carb_type_desc": MessageLookupByLibrary.simpleMessage(
|
"bodymass_chart": MessageLookupByLibrary.simpleMessage("График ИМТ"),
|
||||||
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы."),
|
"by_default": MessageLookupByLibrary.simpleMessage("По умолчянию"),
|
||||||
"carbohydrates": MessageLookupByLibrary.simpleMessage("Углеводы"),
|
"calories": MessageLookupByLibrary.simpleMessage("Калории"),
|
||||||
"chat": MessageLookupByLibrary.simpleMessage("Чат"),
|
"carb_type": MessageLookupByLibrary.simpleMessage("Мучное"),
|
||||||
"chest": MessageLookupByLibrary.simpleMessage("Грудь"),
|
"carb_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"chest_circumference":
|
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы.",
|
||||||
MessageLookupByLibrary.simpleMessage("Обхват груди"),
|
),
|
||||||
"choose_diet_duration":
|
"carbohydrates": MessageLookupByLibrary.simpleMessage("Углеводы"),
|
||||||
MessageLookupByLibrary.simpleMessage("Выберите срок диеты"),
|
"chat": MessageLookupByLibrary.simpleMessage("Чат"),
|
||||||
"choose_plan_duration":
|
"chest": MessageLookupByLibrary.simpleMessage("Грудь"),
|
||||||
MessageLookupByLibrary.simpleMessage("Выберите срок плана"),
|
"chest_circumference": MessageLookupByLibrary.simpleMessage("Обхват груди"),
|
||||||
"choose_start_diet_date": MessageLookupByLibrary.simpleMessage(
|
"choose_diet_duration": MessageLookupByLibrary.simpleMessage(
|
||||||
"Выберите дату старты диеты. Она отобразиться у Вас в дневнике"),
|
"Выберите срок диеты",
|
||||||
"circumference_empty": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Все замеры обязательны к заполнению"),
|
"choose_plan_duration": MessageLookupByLibrary.simpleMessage(
|
||||||
"circumference_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
"Выберите срок плана",
|
||||||
"Все замеры должны быть числами"),
|
),
|
||||||
"circumferences_chart":
|
"choose_start_diet_date": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("График обхватов"),
|
"Выберите дату старты диеты. Она отобразиться у Вас в дневнике",
|
||||||
"city": MessageLookupByLibrary.simpleMessage("Город"),
|
),
|
||||||
"city_of_living":
|
"circumference_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Город проживания"),
|
"Все замеры обязательны к заполнению",
|
||||||
"comfort": MessageLookupByLibrary.simpleMessage("Комфорт"),
|
),
|
||||||
"comment": MessageLookupByLibrary.simpleMessage("комментарий"),
|
"circumference_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
||||||
"comments": MessageLookupByLibrary.simpleMessage("Комментарии"),
|
"Все замеры должны быть числами",
|
||||||
"comments_plural": MessageLookupByLibrary.simpleMessage("комментариев"),
|
),
|
||||||
"complain": MessageLookupByLibrary.simpleMessage("Пожаловаться"),
|
"circumferences_chart": MessageLookupByLibrary.simpleMessage(
|
||||||
"continueButton": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
"График обхватов",
|
||||||
"continue_": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
),
|
||||||
"copied": MessageLookupByLibrary.simpleMessage("cкопирован"),
|
"city": MessageLookupByLibrary.simpleMessage("Город"),
|
||||||
"copy_link": MessageLookupByLibrary.simpleMessage("Скопировать ссылку"),
|
"city_of_living": MessageLookupByLibrary.simpleMessage("Город проживания"),
|
||||||
"country": MessageLookupByLibrary.simpleMessage("Страна"),
|
"comfort": MessageLookupByLibrary.simpleMessage("Комфорт"),
|
||||||
"create_diet": MessageLookupByLibrary.simpleMessage("Создание диеты"),
|
"comment": MessageLookupByLibrary.simpleMessage("комментарий"),
|
||||||
"customer_price":
|
"comments": MessageLookupByLibrary.simpleMessage("Комментарии"),
|
||||||
MessageLookupByLibrary.simpleMessage("Цена для покупателя"),
|
"comments_plural": MessageLookupByLibrary.simpleMessage("комментариев"),
|
||||||
"date_of_birth": MessageLookupByLibrary.simpleMessage("Дата рождения"),
|
"complain": MessageLookupByLibrary.simpleMessage("Пожаловаться"),
|
||||||
"day": MessageLookupByLibrary.simpleMessage("День"),
|
"continueButton": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
||||||
"days": MessageLookupByLibrary.simpleMessage("дней"),
|
"continue_": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
||||||
"deleted": MessageLookupByLibrary.simpleMessage("Удалена"),
|
"copied": MessageLookupByLibrary.simpleMessage("cкопирован"),
|
||||||
"diary": MessageLookupByLibrary.simpleMessage("Дневник"),
|
"copy_link": MessageLookupByLibrary.simpleMessage("Скопировать ссылку"),
|
||||||
"diet": MessageLookupByLibrary.simpleMessage("Диета"),
|
"country": MessageLookupByLibrary.simpleMessage("Страна"),
|
||||||
"diet_author": MessageLookupByLibrary.simpleMessage("Автор диеты"),
|
"create_diet": MessageLookupByLibrary.simpleMessage("Создание диеты"),
|
||||||
"diet_plan": MessageLookupByLibrary.simpleMessage("План диеты"),
|
"customer_price": MessageLookupByLibrary.simpleMessage(
|
||||||
"diet_state": MessageLookupByLibrary.simpleMessage("Статус диеты"),
|
"Цена для покупателя",
|
||||||
"diet_type": MessageLookupByLibrary.simpleMessage("Тип диеты"),
|
),
|
||||||
"do_you_have_hypertension_tendency":
|
"date_of_birth": MessageLookupByLibrary.simpleMessage("Дата рождения"),
|
||||||
MessageLookupByLibrary.simpleMessage("Есть ли у вас гипертония?"),
|
"day": MessageLookupByLibrary.simpleMessage("День"),
|
||||||
"do_you_have_hypotension_tendency":
|
"days": MessageLookupByLibrary.simpleMessage("дней"),
|
||||||
MessageLookupByLibrary.simpleMessage("Есть ли у вас гипотония?"),
|
"deleted": MessageLookupByLibrary.simpleMessage("Удалена"),
|
||||||
"do_you_take_pills": MessageLookupByLibrary.simpleMessage(
|
"diary": MessageLookupByLibrary.simpleMessage("Дневник"),
|
||||||
"Принимаете ли вы лекарства или бады?"),
|
"diet": MessageLookupByLibrary.simpleMessage("Диета"),
|
||||||
"down_pressure":
|
"diet_author": MessageLookupByLibrary.simpleMessage("Автор диеты"),
|
||||||
MessageLookupByLibrary.simpleMessage("Нижние показатели давления:"),
|
"diet_plan": MessageLookupByLibrary.simpleMessage("План диеты"),
|
||||||
"draft": MessageLookupByLibrary.simpleMessage("Черновик"),
|
"diet_state": MessageLookupByLibrary.simpleMessage("Статус диеты"),
|
||||||
"drafted": MessageLookupByLibrary.simpleMessage("Черновики"),
|
"diet_type": MessageLookupByLibrary.simpleMessage("Тип диеты"),
|
||||||
"eating_behavior":
|
"do_you_have_hypertension_tendency": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Пищевое поведение"),
|
"Есть ли у вас гипертония?",
|
||||||
"eating_behavior_type": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Формирование пищевого поведения"),
|
"do_you_have_hypotension_tendency": MessageLookupByLibrary.simpleMessage(
|
||||||
"eating_behavior_type_desc": MessageLookupByLibrary.simpleMessage(
|
"Есть ли у вас гипотония?",
|
||||||
"Формирование здорового пищевого поведения — это процесс, который включает в себя изменение привычек и отношения к еде. Он направлен на то, чтобы помочь людям научиться правильно питаться и поддерживать здоровый образ жизни.Основные принципы формирования здорового пищевого поведения: \n● Разнообразие продуктов; \n● Сбалансированный рацион; \n● Питьевой режим; \n● Ограничение вредных продуктов; \n● Регулярные приёмы пищи; \n● Умеренность;Осознанное питание; \n● Физическая активность;"),
|
),
|
||||||
"economy": MessageLookupByLibrary.simpleMessage("Эконом"),
|
"do_you_take_pills": MessageLookupByLibrary.simpleMessage(
|
||||||
"edit": MessageLookupByLibrary.simpleMessage("Редактировать"),
|
"Принимаете ли вы лекарства или бады?",
|
||||||
"email": MessageLookupByLibrary.simpleMessage("Элетронная почта"),
|
),
|
||||||
"email_empty": MessageLookupByLibrary.simpleMessage(
|
"down_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
"Необходимо ввести адрес электронной почты"),
|
"Нижние показатели давления:",
|
||||||
"email_invalid": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Некорректный адрес электронной почты"),
|
"draft": MessageLookupByLibrary.simpleMessage("Черновик"),
|
||||||
"enter_additional_information": MessageLookupByLibrary.simpleMessage(
|
"drafted": MessageLookupByLibrary.simpleMessage("Черновики"),
|
||||||
"Введите любую дополнительную информацию на своё усмотрение:"),
|
"eating_behavior": MessageLookupByLibrary.simpleMessage(
|
||||||
"enter_diet_description":
|
"Пищевое поведение",
|
||||||
MessageLookupByLibrary.simpleMessage("Введите описание диеты"),
|
),
|
||||||
"enter_diet_name":
|
"eating_behavior_type": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Выведите название диеты"),
|
"Формирование пищевого поведения",
|
||||||
"enter_information":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Введите информацию..."),
|
"eating_behavior_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"exit": MessageLookupByLibrary.simpleMessage("Выйти"),
|
"Формирование здорового пищевого поведения — это процесс, который включает в себя изменение привычек и отношения к еде. Он направлен на то, чтобы помочь людям научиться правильно питаться и поддерживать здоровый образ жизни.Основные принципы формирования здорового пищевого поведения: \n● Разнообразие продуктов; \n● Сбалансированный рацион; \n● Питьевой режим; \n● Ограничение вредных продуктов; \n● Регулярные приёмы пищи; \n● Умеренность;Осознанное питание; \n● Физическая активность;",
|
||||||
"expand": MessageLookupByLibrary.simpleMessage("Показать полностью"),
|
),
|
||||||
"fats": MessageLookupByLibrary.simpleMessage("Жиры"),
|
"economy": MessageLookupByLibrary.simpleMessage("Эконом"),
|
||||||
"favorite_foods":
|
"edit": MessageLookupByLibrary.simpleMessage("Редактировать"),
|
||||||
MessageLookupByLibrary.simpleMessage("Любимые продукты"),
|
"email": MessageLookupByLibrary.simpleMessage("Электронная почта"),
|
||||||
"favorite_unfavorite_foods": MessageLookupByLibrary.simpleMessage(
|
"email_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"Ваши любимые/нелюбимые продукты питания?"),
|
"Необходимо ввести адрес электронной почты",
|
||||||
"female": MessageLookupByLibrary.simpleMessage("Женский"),
|
),
|
||||||
"fill_in_information":
|
"email_invalid": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Заполните информацию:"),
|
"Некорректный адрес электронной почты",
|
||||||
"finish": MessageLookupByLibrary.simpleMessage("Завершить"),
|
),
|
||||||
"first_name": MessageLookupByLibrary.simpleMessage("Имя"),
|
"enter_additional_information": MessageLookupByLibrary.simpleMessage(
|
||||||
"first_name_empty": MessageLookupByLibrary.simpleMessage(
|
"Введите любую дополнительную информацию на своё усмотрение:",
|
||||||
"Имя обязательно для заполнения"),
|
),
|
||||||
"first_name_short": MessageLookupByLibrary.simpleMessage(
|
"enter_diet_description": MessageLookupByLibrary.simpleMessage(
|
||||||
"В имени должен быть минимум 1 символ"),
|
"Введите описание диеты",
|
||||||
"fit_type": MessageLookupByLibrary.simpleMessage("Поддержание формы"),
|
),
|
||||||
"fit_type_desc": MessageLookupByLibrary.simpleMessage(
|
"enter_diet_name": MessageLookupByLibrary.simpleMessage(
|
||||||
"План питания для поддержания формы сбалансированный и разнообразный, чтобы обеспечить организм всеми необходимыми питательными веществами. Общие принципы: \n● Дробное питание; \n● Разнообразие продуктов; \n● Контроль порций; \n● Питьевой режим; \n● Ограничение вредных продуктов;"),
|
"Выведите название диеты",
|
||||||
"fitness": MessageLookupByLibrary.simpleMessage("Поддержка формы"),
|
),
|
||||||
"from": MessageLookupByLibrary.simpleMessage("от"),
|
"enter_information": MessageLookupByLibrary.simpleMessage(
|
||||||
"from_a_to_z": MessageLookupByLibrary.simpleMessage("Название: А-Я"),
|
"Введите информацию...",
|
||||||
"from_z_to_a": MessageLookupByLibrary.simpleMessage("Название: Я-А"),
|
),
|
||||||
"gallery": MessageLookupByLibrary.simpleMessage("Галерея"),
|
"exit": MessageLookupByLibrary.simpleMessage("Выйти"),
|
||||||
"general_info":
|
"expand": MessageLookupByLibrary.simpleMessage("Показать полностью"),
|
||||||
MessageLookupByLibrary.simpleMessage("Общая информация"),
|
"fats": MessageLookupByLibrary.simpleMessage("Жиры"),
|
||||||
"gr": MessageLookupByLibrary.simpleMessage("гр"),
|
"favorite_foods": MessageLookupByLibrary.simpleMessage("Любимые продукты"),
|
||||||
"grams": MessageLookupByLibrary.simpleMessage("гр"),
|
"favorite_unfavorite_foods": MessageLookupByLibrary.simpleMessage(
|
||||||
"has_alergy": MessageLookupByLibrary.simpleMessage("Наличие аллергии"),
|
"Ваши любимые/нелюбимые продукты питания?",
|
||||||
"has_hyper":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Склонность к гипертонии"),
|
"female": MessageLookupByLibrary.simpleMessage("Женский"),
|
||||||
"has_hypo":
|
"fill_in_information": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Склонность к гипотонии"),
|
"Заполните информацию:",
|
||||||
"height": MessageLookupByLibrary.simpleMessage("Рост"),
|
),
|
||||||
"height_measurements":
|
"finish": MessageLookupByLibrary.simpleMessage("Завершить"),
|
||||||
MessageLookupByLibrary.simpleMessage("Замер роста"),
|
"first_name": MessageLookupByLibrary.simpleMessage("Имя"),
|
||||||
"hide": MessageLookupByLibrary.simpleMessage("Свернуть"),
|
"first_name_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"hip_circumference":
|
"Имя обязательно для заполнения",
|
||||||
MessageLookupByLibrary.simpleMessage("Обхват бедер"),
|
),
|
||||||
"hips": MessageLookupByLibrary.simpleMessage("Бедра"),
|
"first_name_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"in_progress": MessageLookupByLibrary.simpleMessage("В процессе"),
|
"В имени должен быть минимум 1 символ",
|
||||||
"inactive_diet_state": MessageLookupByLibrary.simpleMessage("Черновик"),
|
),
|
||||||
"initial_measurements":
|
"fit_type": MessageLookupByLibrary.simpleMessage("Поддержание формы"),
|
||||||
MessageLookupByLibrary.simpleMessage("Первичные замеры"),
|
"fit_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"label": MessageLookupByLibrary.simpleMessage("Название"),
|
"План питания для поддержания формы сбалансированный и разнообразный, чтобы обеспечить организм всеми необходимыми питательными веществами. Общие принципы: \n● Дробное питание; \n● Разнообразие продуктов; \n● Контроль порций; \n● Питьевой режим; \n● Ограничение вредных продуктов;",
|
||||||
"language": MessageLookupByLibrary.simpleMessage("Язык"),
|
),
|
||||||
"last_name": MessageLookupByLibrary.simpleMessage("Фамилия"),
|
"fitness": MessageLookupByLibrary.simpleMessage("Поддержка формы"),
|
||||||
"last_name_empty": MessageLookupByLibrary.simpleMessage(
|
"from": MessageLookupByLibrary.simpleMessage("от"),
|
||||||
"Фамилия обязательна для заполнения"),
|
"from_a_to_z": MessageLookupByLibrary.simpleMessage("Название: А-Я"),
|
||||||
"last_name_short": MessageLookupByLibrary.simpleMessage(
|
"from_z_to_a": MessageLookupByLibrary.simpleMessage("Название: Я-А"),
|
||||||
"В фамилии должен быть минимум 6 символов"),
|
"gallery": MessageLookupByLibrary.simpleMessage("Галерея"),
|
||||||
"lbl_english": MessageLookupByLibrary.simpleMessage("English"),
|
"general_info": MessageLookupByLibrary.simpleMessage("Общая информация"),
|
||||||
"light_type": MessageLookupByLibrary.simpleMessage("Легкая"),
|
"gr": MessageLookupByLibrary.simpleMessage("гр"),
|
||||||
"light_type_desc": MessageLookupByLibrary.simpleMessage(
|
"grams": MessageLookupByLibrary.simpleMessage("гр"),
|
||||||
"С некоторыми видами диет можно употреблять алкоголь в умеренных количествах. Рекомендуется совмещать вместе с низкокалорийными закусками."),
|
"has_alergy": MessageLookupByLibrary.simpleMessage("Наличие аллергии"),
|
||||||
"liked_groceries":
|
"has_hyper": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Любимые продукты"),
|
"Склонность к гипертонии",
|
||||||
"link_was_copied":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Ссылка успешно скопирована"),
|
"has_hypo": MessageLookupByLibrary.simpleMessage("Склонность к гипотонии"),
|
||||||
"loading": MessageLookupByLibrary.simpleMessage("Загрузка..."),
|
"height": MessageLookupByLibrary.simpleMessage("Рост"),
|
||||||
"lower": MessageLookupByLibrary.simpleMessage("Нижнее"),
|
"height_measurements": MessageLookupByLibrary.simpleMessage("Замер роста"),
|
||||||
"male": MessageLookupByLibrary.simpleMessage("Мужской"),
|
"hide": MessageLookupByLibrary.simpleMessage("Свернуть"),
|
||||||
"meal": MessageLookupByLibrary.simpleMessage("Приём пищи"),
|
"hip_circumference": MessageLookupByLibrary.simpleMessage("Обхват бедер"),
|
||||||
"meat": MessageLookupByLibrary.simpleMessage("Мясо"),
|
"hips": MessageLookupByLibrary.simpleMessage("Бедра"),
|
||||||
"meat_type": MessageLookupByLibrary.simpleMessage("С мясом"),
|
"in_progress": MessageLookupByLibrary.simpleMessage("В процессе"),
|
||||||
"meat_type_desc": MessageLookupByLibrary.simpleMessage(
|
"inactive_diet_state": MessageLookupByLibrary.simpleMessage("Черновик"),
|
||||||
"Диета с мясом полезная и сбалансированная. Включает в себя нежирное мясо: курицу, индейку, кролика или говядину. В сочетании с овощами получаете все необходимые витамины и минералы. Не забывайте о порциях и старайтесь есть медленно, прислушиваясь к своему организму."),
|
"initial_measurements": MessageLookupByLibrary.simpleMessage(
|
||||||
"milliliter": MessageLookupByLibrary.simpleMessage("мл"),
|
"Первичные замеры",
|
||||||
"minimal_customer_price": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Минимальная цена для покупателя: 1200₽"),
|
"label": MessageLookupByLibrary.simpleMessage("Название"),
|
||||||
"most_new": MessageLookupByLibrary.simpleMessage("Самые новые"),
|
"language": MessageLookupByLibrary.simpleMessage("Язык"),
|
||||||
"most_old": MessageLookupByLibrary.simpleMessage("Самые старые"),
|
"last_name": MessageLookupByLibrary.simpleMessage("Фамилия"),
|
||||||
"msg_network_err":
|
"last_name_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Сетевая ошибка!"),
|
"Фамилия обязательна для заполнения",
|
||||||
"msg_something_went_wrong":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Что то пошло не так!"),
|
"last_name_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"my_blog": MessageLookupByLibrary.simpleMessage("Мой блог"),
|
"В фамилии должен быть минимум 6 символов",
|
||||||
"my_diets": MessageLookupByLibrary.simpleMessage("Мои диеты"),
|
),
|
||||||
"my_plans": MessageLookupByLibrary.simpleMessage("Мои планы"),
|
"lbl_english": MessageLookupByLibrary.simpleMessage("English"),
|
||||||
"my_settings": MessageLookupByLibrary.simpleMessage("Мои настройки"),
|
"light_type": MessageLookupByLibrary.simpleMessage("Легкая"),
|
||||||
"name_empty": MessageLookupByLibrary.simpleMessage(
|
"light_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"Имя пользователя обязательно для заполнения"),
|
"С некоторыми видами диет можно употреблять алкоголь в умеренных количествах. Рекомендуется совмещать вместе с низкокалорийными закусками.",
|
||||||
"name_short": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"В имени пользователя должно быть минимум 6 символов"),
|
"liked_groceries": MessageLookupByLibrary.simpleMessage("Любимые продукты"),
|
||||||
"no": MessageLookupByLibrary.simpleMessage("Нет"),
|
"link_was_copied": MessageLookupByLibrary.simpleMessage(
|
||||||
"no_account":
|
"Ссылка успешно скопирована",
|
||||||
MessageLookupByLibrary.simpleMessage("У меня нет аккаунта"),
|
),
|
||||||
"not_liked_groceries":
|
"loading": MessageLookupByLibrary.simpleMessage("Загрузка..."),
|
||||||
MessageLookupByLibrary.simpleMessage("Не любимые продукты"),
|
"lower": MessageLookupByLibrary.simpleMessage("Нижнее"),
|
||||||
"one_option": MessageLookupByLibrary.simpleMessage("1 опция"),
|
"male": MessageLookupByLibrary.simpleMessage("Мужской"),
|
||||||
"option": MessageLookupByLibrary.simpleMessage("Опция"),
|
"meal": MessageLookupByLibrary.simpleMessage("Приём пищи"),
|
||||||
"option_content":
|
"meat": MessageLookupByLibrary.simpleMessage("Мясо"),
|
||||||
MessageLookupByLibrary.simpleMessage("Содержание опции"),
|
"meat_type": MessageLookupByLibrary.simpleMessage("С мясом"),
|
||||||
"option_content_hint_text":
|
"meat_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("На связи 7 дней в неделю"),
|
"Диета с мясом полезная и сбалансированная. Включает в себя нежирное мясо: курицу, индейку, кролика или говядину. В сочетании с овощами получаете все необходимые витамины и минералы. Не забывайте о порциях и старайтесь есть медленно, прислушиваясь к своему организму.",
|
||||||
"option_desc": MessageLookupByLibrary.simpleMessage("Описание опции"),
|
),
|
||||||
"option_desc_hint_text": MessageLookupByLibrary.simpleMessage(
|
"milliliter": MessageLookupByLibrary.simpleMessage("мл"),
|
||||||
"Этот план питания для похудения на 7 дней сбалансированный и разнообразный"),
|
"minimal_customer_price": MessageLookupByLibrary.simpleMessage(
|
||||||
"option_duration":
|
"Минимальная цена для покупателя: 1200₽",
|
||||||
MessageLookupByLibrary.simpleMessage("Продолжительность опции"),
|
),
|
||||||
"option_personal_diet_desc": MessageLookupByLibrary.simpleMessage(
|
"most_new": MessageLookupByLibrary.simpleMessage("Самые новые"),
|
||||||
"Опция подразумевает создание индивидуальной диеты"),
|
"most_old": MessageLookupByLibrary.simpleMessage("Самые старые"),
|
||||||
"option_title": MessageLookupByLibrary.simpleMessage("Заголовок опции"),
|
"msg_network_err": MessageLookupByLibrary.simpleMessage("Сетевая ошибка!"),
|
||||||
"order": MessageLookupByLibrary.simpleMessage("Порядок"),
|
"msg_something_went_wrong": MessageLookupByLibrary.simpleMessage(
|
||||||
"other_info": MessageLookupByLibrary.simpleMessage("Прочая информация"),
|
"Что то пошло не так!",
|
||||||
"password": MessageLookupByLibrary.simpleMessage("Пароль"),
|
),
|
||||||
"password_confirmation":
|
"my_blog": MessageLookupByLibrary.simpleMessage("Мой блог"),
|
||||||
MessageLookupByLibrary.simpleMessage("Подтвердите пароль"),
|
"my_diets": MessageLookupByLibrary.simpleMessage("Мои диеты"),
|
||||||
"password_confirmation_mismatch":
|
"my_plans": MessageLookupByLibrary.simpleMessage("Мои планы"),
|
||||||
MessageLookupByLibrary.simpleMessage("Пароли не совпадают"),
|
"my_settings": MessageLookupByLibrary.simpleMessage("Мои настройки"),
|
||||||
"password_empty": MessageLookupByLibrary.simpleMessage(
|
"name_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"Пароль обязателен для заполнения"),
|
"Имя пользователя обязательно для заполнения",
|
||||||
"password_short": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"В пароле должно быть минимум 6 символов"),
|
"name_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"pcs": MessageLookupByLibrary.simpleMessage("шт"),
|
"В имени пользователя должно быть минимум 6 символов",
|
||||||
"personal": MessageLookupByLibrary.simpleMessage("Персональные"),
|
),
|
||||||
"personal_diet_state":
|
"no": MessageLookupByLibrary.simpleMessage("Нет"),
|
||||||
MessageLookupByLibrary.simpleMessage("Персональная"),
|
"no_account": MessageLookupByLibrary.simpleMessage("У меня нет аккаунта"),
|
||||||
"photo": MessageLookupByLibrary.simpleMessage("Фото"),
|
"not_liked_groceries": MessageLookupByLibrary.simpleMessage(
|
||||||
"physical_fitness":
|
"Не любимые продукты",
|
||||||
MessageLookupByLibrary.simpleMessage("Физическая форма"),
|
),
|
||||||
"place_of_living":
|
"one_option": MessageLookupByLibrary.simpleMessage("1 опция"),
|
||||||
MessageLookupByLibrary.simpleMessage("Место проживания"),
|
"option": MessageLookupByLibrary.simpleMessage("Опция"),
|
||||||
"plan_author": MessageLookupByLibrary.simpleMessage("Автор плана"),
|
"option_content": MessageLookupByLibrary.simpleMessage("Содержание опции"),
|
||||||
"plan_desc": MessageLookupByLibrary.simpleMessage("Описание плана"),
|
"option_content_hint_text": MessageLookupByLibrary.simpleMessage(
|
||||||
"plan_desc_example": MessageLookupByLibrary.simpleMessage(
|
"На связи 7 дней в неделю",
|
||||||
"Большое подробное, привлекательное описание плана"),
|
),
|
||||||
"plan_duration": MessageLookupByLibrary.simpleMessage("Срок плана"),
|
"option_desc": MessageLookupByLibrary.simpleMessage("Описание опции"),
|
||||||
"plan_label_desc":
|
"option_desc_hint_text": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("План для поддержания формы"),
|
"Этот план питания для похудения на 7 дней сбалансированный и разнообразный",
|
||||||
"plan_type": MessageLookupByLibrary.simpleMessage("Тип плана"),
|
),
|
||||||
"plans_complete":
|
"option_duration": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Пройденные планы"),
|
"Продолжительность опции",
|
||||||
"popular": MessageLookupByLibrary.simpleMessage("Популярные"),
|
),
|
||||||
"preferred_language":
|
"option_personal_diet_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Предпочитаемый язык общения"),
|
"Опция подразумевает создание индивидуальной диеты",
|
||||||
"pressure": MessageLookupByLibrary.simpleMessage("Давление"),
|
),
|
||||||
"pressure_empty": MessageLookupByLibrary.simpleMessage(
|
"option_title": MessageLookupByLibrary.simpleMessage("Заголовок опции"),
|
||||||
"Все показатели давления обязательны к заполнению"),
|
"order": MessageLookupByLibrary.simpleMessage("Порядок"),
|
||||||
"pressure_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
"other_info": MessageLookupByLibrary.simpleMessage("Прочая информация"),
|
||||||
"Все показатели давления должны быть числами"),
|
"password": MessageLookupByLibrary.simpleMessage("Пароль"),
|
||||||
"preview": MessageLookupByLibrary.simpleMessage("Превью"),
|
"password_confirmation": MessageLookupByLibrary.simpleMessage(
|
||||||
"price": MessageLookupByLibrary.simpleMessage("Цена"),
|
"Подтвердите пароль",
|
||||||
"price_explanation": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Разница в ценах, это комиссия Итвио"),
|
"password_confirmation_mismatch": MessageLookupByLibrary.simpleMessage(
|
||||||
"profile": MessageLookupByLibrary.simpleMessage("Профиль"),
|
"Пароли не совпадают",
|
||||||
"proteins": MessageLookupByLibrary.simpleMessage("Белки"),
|
),
|
||||||
"publish": MessageLookupByLibrary.simpleMessage("Опубликовать"),
|
"password_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"published": MessageLookupByLibrary.simpleMessage("Опубликованные"),
|
"Пароль обязателен для заполнения",
|
||||||
"removeFromActive":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Снять с публикации"),
|
"password_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"save": MessageLookupByLibrary.simpleMessage("Сохранить"),
|
"В пароле должно быть минимум 6 символов",
|
||||||
"services": MessageLookupByLibrary.simpleMessage("Оказание услуг"),
|
),
|
||||||
"settings": MessageLookupByLibrary.simpleMessage("Настройки"),
|
"pcs": MessageLookupByLibrary.simpleMessage("шт"),
|
||||||
"sex": MessageLookupByLibrary.simpleMessage("Пол"),
|
"personal": MessageLookupByLibrary.simpleMessage("Персональные"),
|
||||||
"share": MessageLookupByLibrary.simpleMessage("Поделиться"),
|
"personal_diet_state": MessageLookupByLibrary.simpleMessage("Персональная"),
|
||||||
"skip": MessageLookupByLibrary.simpleMessage("Пропустить"),
|
"photo": MessageLookupByLibrary.simpleMessage("Фото"),
|
||||||
"slim": MessageLookupByLibrary.simpleMessage("Похудение"),
|
"physical_fitness": MessageLookupByLibrary.simpleMessage(
|
||||||
"slim_type": MessageLookupByLibrary.simpleMessage("Похудение"),
|
"Физическая форма",
|
||||||
"slim_type_desc": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"План питания для похудения должен быть разработан с учётом индивидуальных особенностей организма, возраста, пола, уровня физической активности и состояния здоровья. Общие принципы: \n● Снижение калорийности; \n● Сбалансированный рацион; \n● Разнообразие продуктов; \n● Питьевой режим; \n● Ограничение вредных продуктов;"),
|
"place_of_living": MessageLookupByLibrary.simpleMessage("Место проживания"),
|
||||||
"sport_hobbies":
|
"plan_author": MessageLookupByLibrary.simpleMessage("Автор плана"),
|
||||||
MessageLookupByLibrary.simpleMessage("Спортивные увлечения"),
|
"plan_desc": MessageLookupByLibrary.simpleMessage("Описание плана"),
|
||||||
"standard": MessageLookupByLibrary.simpleMessage("Стандарт"),
|
"plan_desc_example": MessageLookupByLibrary.simpleMessage(
|
||||||
"startDiet": MessageLookupByLibrary.simpleMessage("Начать диету"),
|
"Большое подробное, привлекательное описание плана",
|
||||||
"takes_pills":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Принимает лекарства"),
|
"plan_duration": MessageLookupByLibrary.simpleMessage("Срок плана"),
|
||||||
"tell_your_schedule": MessageLookupByLibrary.simpleMessage(
|
"plan_label_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"Расскажите в свободной форме о том как просыпаетесь, когда едите, когда ложитесь спать:"),
|
"План для поддержания формы",
|
||||||
"three_options": MessageLookupByLibrary.simpleMessage("3 опции"),
|
),
|
||||||
"time": MessageLookupByLibrary.simpleMessage("Время прохождения"),
|
"plan_type": MessageLookupByLibrary.simpleMessage("Тип плана"),
|
||||||
"toOffer": MessageLookupByLibrary.simpleMessage("Предложить"),
|
"plans_complete": MessageLookupByLibrary.simpleMessage("Пройденные планы"),
|
||||||
"to_draft": MessageLookupByLibrary.simpleMessage("В черновик"),
|
"popular": MessageLookupByLibrary.simpleMessage("Популярные"),
|
||||||
"unfavorite_foods":
|
"preferred_language": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Нелюбимые продукты"),
|
"Предпочитаемый язык общения",
|
||||||
"up_pressure": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Верхние показатели давления:"),
|
"pressure": MessageLookupByLibrary.simpleMessage("Давление"),
|
||||||
"upper": MessageLookupByLibrary.simpleMessage("Верхнее"),
|
"pressure_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"user_authorization":
|
"Все показатели давления обязательны к заполнению",
|
||||||
MessageLookupByLibrary.simpleMessage("Аутентификация"),
|
),
|
||||||
"user_data":
|
"pressure_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Данные пользователя"),
|
"Все показатели давления должны быть числами",
|
||||||
"user_registration":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Регистрация пользователя"),
|
"preview": MessageLookupByLibrary.simpleMessage("Превью"),
|
||||||
"username": MessageLookupByLibrary.simpleMessage("Имя пользователя"),
|
"price": MessageLookupByLibrary.simpleMessage("Цена"),
|
||||||
"vegan": MessageLookupByLibrary.simpleMessage("Веган."),
|
"price_explanation": MessageLookupByLibrary.simpleMessage(
|
||||||
"vegan_type": MessageLookupByLibrary.simpleMessage("Вегетарианская"),
|
"Разница в ценах, это комиссия Итвио",
|
||||||
"vegan_type_desc": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Диета основана на потреблении растительной пищи и отказе от продуктов животного происхождения. Такой тип питания может быть разнообразным и вкусным, а также полезным для здоровья."),
|
"profile": MessageLookupByLibrary.simpleMessage("Профиль"),
|
||||||
"waist": MessageLookupByLibrary.simpleMessage("Талия"),
|
"proteins": MessageLookupByLibrary.simpleMessage("Белки"),
|
||||||
"waist_circumference":
|
"publish": MessageLookupByLibrary.simpleMessage("Опубликовать"),
|
||||||
MessageLookupByLibrary.simpleMessage("Обхват талии"),
|
"published": MessageLookupByLibrary.simpleMessage("Опубликованные"),
|
||||||
"weight": MessageLookupByLibrary.simpleMessage("Вес"),
|
"removeFromActive": MessageLookupByLibrary.simpleMessage(
|
||||||
"weight_chart": MessageLookupByLibrary.simpleMessage("График веса"),
|
"Снять с публикации",
|
||||||
"weight_measurements":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Замер веса"),
|
"save": MessageLookupByLibrary.simpleMessage("Сохранить"),
|
||||||
"wellness":
|
"services": MessageLookupByLibrary.simpleMessage("Оказание услуг"),
|
||||||
MessageLookupByLibrary.simpleMessage("Улучшение самочувствия"),
|
"settings": MessageLookupByLibrary.simpleMessage("Настройки"),
|
||||||
"wellness_type":
|
"sex": MessageLookupByLibrary.simpleMessage("Пол"),
|
||||||
MessageLookupByLibrary.simpleMessage("Улучшение самочувствия"),
|
"share": MessageLookupByLibrary.simpleMessage("Поделиться"),
|
||||||
"wellness_type_desc": MessageLookupByLibrary.simpleMessage(
|
"skip": MessageLookupByLibrary.simpleMessage("Пропустить"),
|
||||||
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы."),
|
"slim": MessageLookupByLibrary.simpleMessage("Похудение"),
|
||||||
"what_is_your_name":
|
"slim_type": MessageLookupByLibrary.simpleMessage("Похудение"),
|
||||||
MessageLookupByLibrary.simpleMessage("Как вас зовут?"),
|
"slim_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"wrong_credentials": MessageLookupByLibrary.simpleMessage(
|
"План питания для похудения должен быть разработан с учётом индивидуальных особенностей организма, возраста, пола, уровня физической активности и состояния здоровья. Общие принципы: \n● Снижение калорийности; \n● Сбалансированный рацион; \n● Разнообразие продуктов; \n● Питьевой режим; \n● Ограничение вредных продуктов;",
|
||||||
"Неверные данные пользователя"),
|
),
|
||||||
"you_will_get": MessageLookupByLibrary.simpleMessage("Вы получите"),
|
"sport_hobbies": MessageLookupByLibrary.simpleMessage(
|
||||||
"your_blood_pressure":
|
"Спортивные увлечения",
|
||||||
MessageLookupByLibrary.simpleMessage("Ваше артериальное давление?"),
|
),
|
||||||
"your_favorite_sports":
|
"standard": MessageLookupByLibrary.simpleMessage("Стандарт"),
|
||||||
MessageLookupByLibrary.simpleMessage("Ваши спортивные увлечения?"),
|
"startDiet": MessageLookupByLibrary.simpleMessage("Начать диету"),
|
||||||
"your_gender": MessageLookupByLibrary.simpleMessage("Ваш пол?"),
|
"takes_pills": MessageLookupByLibrary.simpleMessage("Принимает лекарства"),
|
||||||
"your_height": MessageLookupByLibrary.simpleMessage("Ваш рост:"),
|
"tell_your_schedule": MessageLookupByLibrary.simpleMessage(
|
||||||
"your_schedule": MessageLookupByLibrary.simpleMessage("Ваш режим дня?"),
|
"Расскажите в свободной форме о том как просыпаетесь, когда едите, когда ложитесь спать:",
|
||||||
"your_weight": MessageLookupByLibrary.simpleMessage("Ваш вес:")
|
),
|
||||||
};
|
"three_options": MessageLookupByLibrary.simpleMessage("3 опции"),
|
||||||
|
"time": MessageLookupByLibrary.simpleMessage("Время прохождения"),
|
||||||
|
"toOffer": MessageLookupByLibrary.simpleMessage("Предложить"),
|
||||||
|
"to_draft": MessageLookupByLibrary.simpleMessage("В черновик"),
|
||||||
|
"unfavorite_foods": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Нелюбимые продукты",
|
||||||
|
),
|
||||||
|
"up_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Верхние показатели давления:",
|
||||||
|
),
|
||||||
|
"upper": MessageLookupByLibrary.simpleMessage("Верхнее"),
|
||||||
|
"user_authorization": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Аутентификация",
|
||||||
|
),
|
||||||
|
"user_data": MessageLookupByLibrary.simpleMessage("Данные пользователя"),
|
||||||
|
"user_registration": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Регистрация пользователя",
|
||||||
|
),
|
||||||
|
"username": MessageLookupByLibrary.simpleMessage("Имя пользователя"),
|
||||||
|
"vegan": MessageLookupByLibrary.simpleMessage("Веган."),
|
||||||
|
"vegan_type": MessageLookupByLibrary.simpleMessage("Вегетарианская"),
|
||||||
|
"vegan_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Диета основана на потреблении растительной пищи и отказе от продуктов животного происхождения. Такой тип питания может быть разнообразным и вкусным, а также полезным для здоровья.",
|
||||||
|
),
|
||||||
|
"waist": MessageLookupByLibrary.simpleMessage("Талия"),
|
||||||
|
"waist_circumference": MessageLookupByLibrary.simpleMessage("Обхват талии"),
|
||||||
|
"weight": MessageLookupByLibrary.simpleMessage("Вес"),
|
||||||
|
"weight_chart": MessageLookupByLibrary.simpleMessage("График веса"),
|
||||||
|
"weight_measurements": MessageLookupByLibrary.simpleMessage("Замер веса"),
|
||||||
|
"wellness": MessageLookupByLibrary.simpleMessage("Улучшение самочувствия"),
|
||||||
|
"wellness_type": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Улучшение самочувствия",
|
||||||
|
),
|
||||||
|
"wellness_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы.",
|
||||||
|
),
|
||||||
|
"what_is_your_name": MessageLookupByLibrary.simpleMessage("Как вас зовут?"),
|
||||||
|
"wrong_credentials": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Неверные данные пользователя",
|
||||||
|
),
|
||||||
|
"you_will_get": MessageLookupByLibrary.simpleMessage("Вы получите"),
|
||||||
|
"your_blood_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Ваше артериальное давление?",
|
||||||
|
),
|
||||||
|
"your_favorite_sports": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Ваши спортивные увлечения?",
|
||||||
|
),
|
||||||
|
"your_gender": MessageLookupByLibrary.simpleMessage("Ваш пол?"),
|
||||||
|
"your_height": MessageLookupByLibrary.simpleMessage("Ваш рост:"),
|
||||||
|
"your_schedule": MessageLookupByLibrary.simpleMessage("Ваш режим дня?"),
|
||||||
|
"your_weight": MessageLookupByLibrary.simpleMessage("Ваш вес:"),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,299 +22,350 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||||
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
|
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
|
||||||
"Moscow": MessageLookupByLibrary.simpleMessage("Москва"),
|
"Moscow": MessageLookupByLibrary.simpleMessage("Москва"),
|
||||||
"Russia": MessageLookupByLibrary.simpleMessage("Россия"),
|
"Russia": MessageLookupByLibrary.simpleMessage("Россия"),
|
||||||
"about_diet": MessageLookupByLibrary.simpleMessage("Об этой диете"),
|
"about_diet": MessageLookupByLibrary.simpleMessage("Об этой диете"),
|
||||||
"about_plan": MessageLookupByLibrary.simpleMessage("Об этом плане"),
|
"about_plan": MessageLookupByLibrary.simpleMessage("Об этом плане"),
|
||||||
"active": MessageLookupByLibrary.simpleMessage("Активен"),
|
"active": MessageLookupByLibrary.simpleMessage("Активен"),
|
||||||
"active_diet_state": MessageLookupByLibrary.simpleMessage("Активная"),
|
"active_diet_state": MessageLookupByLibrary.simpleMessage("Активная"),
|
||||||
"add": MessageLookupByLibrary.simpleMessage("Добавить"),
|
"add": MessageLookupByLibrary.simpleMessage("Добавить"),
|
||||||
"add_cover": MessageLookupByLibrary.simpleMessage("Добавьте обложку"),
|
"add_cover": MessageLookupByLibrary.simpleMessage("Добавьте обложку"),
|
||||||
"add_measure": MessageLookupByLibrary.simpleMessage("Добавить замер"),
|
"add_measure": MessageLookupByLibrary.simpleMessage("Добавить замер"),
|
||||||
"adding_plan": MessageLookupByLibrary.simpleMessage("Добавление плана"),
|
"adding_plan": MessageLookupByLibrary.simpleMessage("Добавление плана"),
|
||||||
"additional_information":
|
"additional_information": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Дополнительная информация"),
|
"Дополнительная информация",
|
||||||
"admin": MessageLookupByLibrary.simpleMessage("Админ"),
|
),
|
||||||
"all": MessageLookupByLibrary.simpleMessage("Все"),
|
"admin": MessageLookupByLibrary.simpleMessage("Админ"),
|
||||||
"allergies_presence":
|
"all": MessageLookupByLibrary.simpleMessage("Все"),
|
||||||
MessageLookupByLibrary.simpleMessage("Наличие аллергии"),
|
"allergies_presence": MessageLookupByLibrary.simpleMessage(
|
||||||
"another_form_of_comment":
|
"Наличие аллергии",
|
||||||
MessageLookupByLibrary.simpleMessage("комментария"),
|
),
|
||||||
"another_form_of_day": MessageLookupByLibrary.simpleMessage("дня"),
|
"another_form_of_comment": MessageLookupByLibrary.simpleMessage(
|
||||||
"answer": MessageLookupByLibrary.simpleMessage("Ответить"),
|
"комментария",
|
||||||
"archived": MessageLookupByLibrary.simpleMessage("В архиве"),
|
),
|
||||||
"authentificate": MessageLookupByLibrary.simpleMessage("Войти"),
|
"another_form_of_day": MessageLookupByLibrary.simpleMessage("дня"),
|
||||||
"average_pressure": MessageLookupByLibrary.simpleMessage(
|
"answer": MessageLookupByLibrary.simpleMessage("Ответить"),
|
||||||
"Средние показатели давления:"),
|
"archived": MessageLookupByLibrary.simpleMessage("В архиве"),
|
||||||
"bodymass_chart": MessageLookupByLibrary.simpleMessage("График ИМТ"),
|
"authentificate": MessageLookupByLibrary.simpleMessage("Войти"),
|
||||||
"by_default": MessageLookupByLibrary.simpleMessage("По умолчянию"),
|
"average_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
"calories": MessageLookupByLibrary.simpleMessage("Калории"),
|
"Средние показатели давления:",
|
||||||
"carb_type": MessageLookupByLibrary.simpleMessage("Мучное"),
|
),
|
||||||
"carb_type_desc": MessageLookupByLibrary.simpleMessage(
|
"bodymass_chart": MessageLookupByLibrary.simpleMessage("График ИМТ"),
|
||||||
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы."),
|
"by_default": MessageLookupByLibrary.simpleMessage("По умолчянию"),
|
||||||
"carbohydrates": MessageLookupByLibrary.simpleMessage("Углеводы"),
|
"calories": MessageLookupByLibrary.simpleMessage("Калории"),
|
||||||
"chat": MessageLookupByLibrary.simpleMessage("Чат"),
|
"carb_type": MessageLookupByLibrary.simpleMessage("Мучное"),
|
||||||
"chest": MessageLookupByLibrary.simpleMessage("Грудь"),
|
"carb_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"chest_circumference":
|
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы.",
|
||||||
MessageLookupByLibrary.simpleMessage("Обхват груди"),
|
),
|
||||||
"choose_diet_duration":
|
"carbohydrates": MessageLookupByLibrary.simpleMessage("Углеводы"),
|
||||||
MessageLookupByLibrary.simpleMessage("Выберите срок диеты"),
|
"chat": MessageLookupByLibrary.simpleMessage("Чат"),
|
||||||
"choose_plan_duration":
|
"chest": MessageLookupByLibrary.simpleMessage("Грудь"),
|
||||||
MessageLookupByLibrary.simpleMessage("Выберите срок плана"),
|
"chest_circumference": MessageLookupByLibrary.simpleMessage("Обхват груди"),
|
||||||
"choose_start_diet_date": MessageLookupByLibrary.simpleMessage(
|
"choose_diet_duration": MessageLookupByLibrary.simpleMessage(
|
||||||
"Выберите дату старты диеты. Она отобразиться у Вас в дневнике"),
|
"Выберите срок диеты",
|
||||||
"circumference_empty": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Все замеры обязательны к заполнению"),
|
"choose_plan_duration": MessageLookupByLibrary.simpleMessage(
|
||||||
"circumference_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
"Выберите срок плана",
|
||||||
"Все замеры должны быть числами"),
|
),
|
||||||
"circumferences_chart":
|
"choose_start_diet_date": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("График обхватов"),
|
"Выберите дату старты диеты. Она отобразиться у Вас в дневнике",
|
||||||
"city": MessageLookupByLibrary.simpleMessage("Город"),
|
),
|
||||||
"city_of_living":
|
"circumference_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Город проживания"),
|
"Все замеры обязательны к заполнению",
|
||||||
"comfort": MessageLookupByLibrary.simpleMessage("Комфорт"),
|
),
|
||||||
"comment": MessageLookupByLibrary.simpleMessage("комментарий"),
|
"circumference_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
||||||
"comments": MessageLookupByLibrary.simpleMessage("Комментарии"),
|
"Все замеры должны быть числами",
|
||||||
"comments_plural": MessageLookupByLibrary.simpleMessage("комментариев"),
|
),
|
||||||
"complain": MessageLookupByLibrary.simpleMessage("Пожаловаться"),
|
"circumferences_chart": MessageLookupByLibrary.simpleMessage(
|
||||||
"continueButton": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
"График обхватов",
|
||||||
"continue_": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
),
|
||||||
"copied": MessageLookupByLibrary.simpleMessage("cкопирован"),
|
"city": MessageLookupByLibrary.simpleMessage("Город"),
|
||||||
"copy_link": MessageLookupByLibrary.simpleMessage("Скопировать ссылку"),
|
"city_of_living": MessageLookupByLibrary.simpleMessage("Город проживания"),
|
||||||
"country": MessageLookupByLibrary.simpleMessage("Страна"),
|
"comfort": MessageLookupByLibrary.simpleMessage("Комфорт"),
|
||||||
"create_diet": MessageLookupByLibrary.simpleMessage("Создание диеты"),
|
"comment": MessageLookupByLibrary.simpleMessage("комментарий"),
|
||||||
"customer_price":
|
"comments": MessageLookupByLibrary.simpleMessage("Комментарии"),
|
||||||
MessageLookupByLibrary.simpleMessage("Цена для покупателя"),
|
"comments_plural": MessageLookupByLibrary.simpleMessage("комментариев"),
|
||||||
"date_of_birth": MessageLookupByLibrary.simpleMessage("Дата рождения"),
|
"complain": MessageLookupByLibrary.simpleMessage("Пожаловаться"),
|
||||||
"day": MessageLookupByLibrary.simpleMessage("День"),
|
"continueButton": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
||||||
"days": MessageLookupByLibrary.simpleMessage("дней"),
|
"continue_": MessageLookupByLibrary.simpleMessage("Продолжить"),
|
||||||
"deleted": MessageLookupByLibrary.simpleMessage("Удалена"),
|
"copied": MessageLookupByLibrary.simpleMessage("cкопирован"),
|
||||||
"diary": MessageLookupByLibrary.simpleMessage("Дневник"),
|
"copy_link": MessageLookupByLibrary.simpleMessage("Скопировать ссылку"),
|
||||||
"diet": MessageLookupByLibrary.simpleMessage("Диета"),
|
"country": MessageLookupByLibrary.simpleMessage("Страна"),
|
||||||
"diet_author": MessageLookupByLibrary.simpleMessage("Автор диеты"),
|
"create_diet": MessageLookupByLibrary.simpleMessage("Создание диеты"),
|
||||||
"diet_plan": MessageLookupByLibrary.simpleMessage("План диеты"),
|
"customer_price": MessageLookupByLibrary.simpleMessage(
|
||||||
"diet_state": MessageLookupByLibrary.simpleMessage("Статус диеты"),
|
"Цена для покупателя",
|
||||||
"diet_type": MessageLookupByLibrary.simpleMessage("Тип диеты"),
|
),
|
||||||
"do_you_have_hypertension_tendency":
|
"date_of_birth": MessageLookupByLibrary.simpleMessage("Дата рождения"),
|
||||||
MessageLookupByLibrary.simpleMessage("Есть ли у вас гипертония?"),
|
"day": MessageLookupByLibrary.simpleMessage("День"),
|
||||||
"do_you_have_hypotension_tendency":
|
"days": MessageLookupByLibrary.simpleMessage("дней"),
|
||||||
MessageLookupByLibrary.simpleMessage("Есть ли у вас гипотония?"),
|
"deleted": MessageLookupByLibrary.simpleMessage("Удалена"),
|
||||||
"do_you_take_pills": MessageLookupByLibrary.simpleMessage(
|
"diary": MessageLookupByLibrary.simpleMessage("Дневник"),
|
||||||
"Принимаете ли вы лекарства или бады?"),
|
"diet": MessageLookupByLibrary.simpleMessage("Диета"),
|
||||||
"down_pressure":
|
"diet_author": MessageLookupByLibrary.simpleMessage("Автор диеты"),
|
||||||
MessageLookupByLibrary.simpleMessage("Нижние показатели давления:"),
|
"diet_plan": MessageLookupByLibrary.simpleMessage("План диеты"),
|
||||||
"draft": MessageLookupByLibrary.simpleMessage("Черновик"),
|
"diet_state": MessageLookupByLibrary.simpleMessage("Статус диеты"),
|
||||||
"drafted": MessageLookupByLibrary.simpleMessage("Черновики"),
|
"diet_type": MessageLookupByLibrary.simpleMessage("Тип диеты"),
|
||||||
"eating_behavior":
|
"do_you_have_hypertension_tendency": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Пищевое поведение"),
|
"Есть ли у вас гипертония?",
|
||||||
"eating_behavior_type": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Формирование пищевого поведения"),
|
"do_you_have_hypotension_tendency": MessageLookupByLibrary.simpleMessage(
|
||||||
"eating_behavior_type_desc": MessageLookupByLibrary.simpleMessage(
|
"Есть ли у вас гипотония?",
|
||||||
"Формирование здорового пищевого поведения — это процесс, который включает в себя изменение привычек и отношения к еде. Он направлен на то, чтобы помочь людям научиться правильно питаться и поддерживать здоровый образ жизни.Основные принципы формирования здорового пищевого поведения: \n● Разнообразие продуктов; \n● Сбалансированный рацион; \n● Питьевой режим; \n● Ограничение вредных продуктов; \n● Регулярные приёмы пищи; \n● Умеренность;Осознанное питание; \n● Физическая активность;"),
|
),
|
||||||
"economy": MessageLookupByLibrary.simpleMessage("Эконом"),
|
"do_you_take_pills": MessageLookupByLibrary.simpleMessage(
|
||||||
"edit": MessageLookupByLibrary.simpleMessage("Редактировать"),
|
"Принимаете ли вы лекарства или бады?",
|
||||||
"email": MessageLookupByLibrary.simpleMessage("Элетронная почта"),
|
),
|
||||||
"email_empty": MessageLookupByLibrary.simpleMessage(
|
"down_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
"Необходимо ввести адрес электронной почты"),
|
"Нижние показатели давления:",
|
||||||
"email_invalid": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Некорректный адрес электронной почты"),
|
"draft": MessageLookupByLibrary.simpleMessage("Черновик"),
|
||||||
"enter_additional_information": MessageLookupByLibrary.simpleMessage(
|
"drafted": MessageLookupByLibrary.simpleMessage("Черновики"),
|
||||||
"Введите любую дополнительную информацию на своё усмотрение:"),
|
"eating_behavior": MessageLookupByLibrary.simpleMessage(
|
||||||
"enter_diet_description":
|
"Пищевое поведение",
|
||||||
MessageLookupByLibrary.simpleMessage("Введите описание диеты"),
|
),
|
||||||
"enter_diet_name":
|
"eating_behavior_type": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Выведите название диеты"),
|
"Формирование пищевого поведения",
|
||||||
"enter_information":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Введите информацию..."),
|
"eating_behavior_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"exit": MessageLookupByLibrary.simpleMessage("Выйти"),
|
"Формирование здорового пищевого поведения — это процесс, который включает в себя изменение привычек и отношения к еде. Он направлен на то, чтобы помочь людям научиться правильно питаться и поддерживать здоровый образ жизни.Основные принципы формирования здорового пищевого поведения: \n● Разнообразие продуктов; \n● Сбалансированный рацион; \n● Питьевой режим; \n● Ограничение вредных продуктов; \n● Регулярные приёмы пищи; \n● Умеренность;Осознанное питание; \n● Физическая активность;",
|
||||||
"expand": MessageLookupByLibrary.simpleMessage("Показать полностью"),
|
),
|
||||||
"fats": MessageLookupByLibrary.simpleMessage("Жиры"),
|
"economy": MessageLookupByLibrary.simpleMessage("Эконом"),
|
||||||
"favorite_foods":
|
"edit": MessageLookupByLibrary.simpleMessage("Редактировать"),
|
||||||
MessageLookupByLibrary.simpleMessage("Любимые продукты"),
|
"email": MessageLookupByLibrary.simpleMessage("Электронная почта"),
|
||||||
"favorite_unfavorite_foods": MessageLookupByLibrary.simpleMessage(
|
"email_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"Ваши любимые/нелюбимые продукты питания?"),
|
"Необходимо ввести адрес электронной почты",
|
||||||
"female": MessageLookupByLibrary.simpleMessage("Женский"),
|
),
|
||||||
"fill_in_information":
|
"email_invalid": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Заполните информацию:"),
|
"Некорректный адрес электронной почты",
|
||||||
"finish": MessageLookupByLibrary.simpleMessage("Завершить"),
|
),
|
||||||
"first_name": MessageLookupByLibrary.simpleMessage("Имя"),
|
"enter_additional_information": MessageLookupByLibrary.simpleMessage(
|
||||||
"first_name_empty": MessageLookupByLibrary.simpleMessage(
|
"Введите любую дополнительную информацию на своё усмотрение:",
|
||||||
"Имя обязательно для заполнения"),
|
),
|
||||||
"first_name_short": MessageLookupByLibrary.simpleMessage(
|
"enter_diet_description": MessageLookupByLibrary.simpleMessage(
|
||||||
"В имени должен быть минимум 1 символ"),
|
"Введите описание диеты",
|
||||||
"fit_type": MessageLookupByLibrary.simpleMessage("Поддержание формы"),
|
),
|
||||||
"fit_type_desc": MessageLookupByLibrary.simpleMessage(
|
"enter_diet_name": MessageLookupByLibrary.simpleMessage(
|
||||||
"План питания для поддержания формы сбалансированный и разнообразный, чтобы обеспечить организм всеми необходимыми питательными веществами. Общие принципы: \n● Дробное питание; \n● Разнообразие продуктов; \n● Контроль порций; \n● Питьевой режим; \n● Ограничение вредных продуктов;"),
|
"Выведите название диеты",
|
||||||
"fitness": MessageLookupByLibrary.simpleMessage("Поддержка формы"),
|
),
|
||||||
"from": MessageLookupByLibrary.simpleMessage("от"),
|
"enter_information": MessageLookupByLibrary.simpleMessage(
|
||||||
"from_a_to_z": MessageLookupByLibrary.simpleMessage("Название: А-Я"),
|
"Введите информацию...",
|
||||||
"from_z_to_a": MessageLookupByLibrary.simpleMessage("Название: Я-А"),
|
),
|
||||||
"gallery": MessageLookupByLibrary.simpleMessage("Галерея"),
|
"exit": MessageLookupByLibrary.simpleMessage("Выйти"),
|
||||||
"gr": MessageLookupByLibrary.simpleMessage("гр"),
|
"expand": MessageLookupByLibrary.simpleMessage("Показать полностью"),
|
||||||
"grams": MessageLookupByLibrary.simpleMessage("гр"),
|
"fats": MessageLookupByLibrary.simpleMessage("Жиры"),
|
||||||
"height_measurements":
|
"favorite_foods": MessageLookupByLibrary.simpleMessage("Любимые продукты"),
|
||||||
MessageLookupByLibrary.simpleMessage("Замер роста"),
|
"favorite_unfavorite_foods": MessageLookupByLibrary.simpleMessage(
|
||||||
"hide": MessageLookupByLibrary.simpleMessage("Свернуть"),
|
"Ваши любимые/нелюбимые продукты питания?",
|
||||||
"hip_circumference":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Обхват бедер"),
|
"female": MessageLookupByLibrary.simpleMessage("Женский"),
|
||||||
"hips": MessageLookupByLibrary.simpleMessage("Бедра"),
|
"fill_in_information": MessageLookupByLibrary.simpleMessage(
|
||||||
"in_progress": MessageLookupByLibrary.simpleMessage("В процессе"),
|
"Заполните информацию:",
|
||||||
"inactive_diet_state": MessageLookupByLibrary.simpleMessage("Черновик"),
|
),
|
||||||
"initial_measurements":
|
"finish": MessageLookupByLibrary.simpleMessage("Завершить"),
|
||||||
MessageLookupByLibrary.simpleMessage("Первичные замеры"),
|
"first_name": MessageLookupByLibrary.simpleMessage("Имя"),
|
||||||
"label": MessageLookupByLibrary.simpleMessage("Название"),
|
"first_name_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"language": MessageLookupByLibrary.simpleMessage("Язык"),
|
"Имя обязательно для заполнения",
|
||||||
"last_name": MessageLookupByLibrary.simpleMessage("Фамилия"),
|
),
|
||||||
"last_name_empty": MessageLookupByLibrary.simpleMessage(
|
"first_name_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"Фамилия обязательна для заполнения"),
|
"В имени должен быть минимум 1 символ",
|
||||||
"last_name_short": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"В фамилии должен быть минимум 6 символов"),
|
"fit_type": MessageLookupByLibrary.simpleMessage("Поддержание формы"),
|
||||||
"lbl_english": MessageLookupByLibrary.simpleMessage("English"),
|
"fit_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"light_type": MessageLookupByLibrary.simpleMessage("Легкая"),
|
"План питания для поддержания формы сбалансированный и разнообразный, чтобы обеспечить организм всеми необходимыми питательными веществами. Общие принципы: \n● Дробное питание; \n● Разнообразие продуктов; \n● Контроль порций; \n● Питьевой режим; \n● Ограничение вредных продуктов;",
|
||||||
"light_type_desc": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"С некоторыми видами диет можно употреблять алкоголь в умеренных количествах. Рекомендуется совмещать вместе с низкокалорийными закусками."),
|
"fitness": MessageLookupByLibrary.simpleMessage("Поддержка формы"),
|
||||||
"link_was_copied":
|
"from": MessageLookupByLibrary.simpleMessage("от"),
|
||||||
MessageLookupByLibrary.simpleMessage("Ссылка успешно скопирована"),
|
"from_a_to_z": MessageLookupByLibrary.simpleMessage("Название: А-Я"),
|
||||||
"loading": MessageLookupByLibrary.simpleMessage("Загрузка..."),
|
"from_z_to_a": MessageLookupByLibrary.simpleMessage("Название: Я-А"),
|
||||||
"male": MessageLookupByLibrary.simpleMessage("Мужской"),
|
"gallery": MessageLookupByLibrary.simpleMessage("Галерея"),
|
||||||
"meal": MessageLookupByLibrary.simpleMessage("Приём пищи"),
|
"gr": MessageLookupByLibrary.simpleMessage("гр"),
|
||||||
"meat": MessageLookupByLibrary.simpleMessage("Мясо"),
|
"grams": MessageLookupByLibrary.simpleMessage("гр"),
|
||||||
"meat_type": MessageLookupByLibrary.simpleMessage("С мясом"),
|
"height_measurements": MessageLookupByLibrary.simpleMessage("Замер роста"),
|
||||||
"meat_type_desc": MessageLookupByLibrary.simpleMessage(
|
"hide": MessageLookupByLibrary.simpleMessage("Свернуть"),
|
||||||
"Диета с мясом полезная и сбалансированная. Включает в себя нежирное мясо: курицу, индейку, кролика или говядину. В сочетании с овощами получаете все необходимые витамины и минералы. Не забывайте о порциях и старайтесь есть медленно, прислушиваясь к своему организму."),
|
"hip_circumference": MessageLookupByLibrary.simpleMessage("Обхват бедер"),
|
||||||
"milliliter": MessageLookupByLibrary.simpleMessage("мл"),
|
"hips": MessageLookupByLibrary.simpleMessage("Бедра"),
|
||||||
"minimal_customer_price": MessageLookupByLibrary.simpleMessage(
|
"in_progress": MessageLookupByLibrary.simpleMessage("В процессе"),
|
||||||
"Минимальная цена для покупателя: 1200₽"),
|
"inactive_diet_state": MessageLookupByLibrary.simpleMessage("Черновик"),
|
||||||
"most_new": MessageLookupByLibrary.simpleMessage("Самые новые"),
|
"initial_measurements": MessageLookupByLibrary.simpleMessage(
|
||||||
"most_old": MessageLookupByLibrary.simpleMessage("Самые старые"),
|
"Первичные замеры",
|
||||||
"msg_network_err":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Сетевая ошибка!"),
|
"label": MessageLookupByLibrary.simpleMessage("Название"),
|
||||||
"msg_something_went_wrong":
|
"language": MessageLookupByLibrary.simpleMessage("Язык"),
|
||||||
MessageLookupByLibrary.simpleMessage("Что то пошло не так!"),
|
"last_name": MessageLookupByLibrary.simpleMessage("Фамилия"),
|
||||||
"my_blog": MessageLookupByLibrary.simpleMessage("Мой блог"),
|
"last_name_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"my_diets": MessageLookupByLibrary.simpleMessage("Мои диеты"),
|
"Фамилия обязательна для заполнения",
|
||||||
"my_plans": MessageLookupByLibrary.simpleMessage("Мои планы"),
|
),
|
||||||
"my_settings": MessageLookupByLibrary.simpleMessage("Мои настройки"),
|
"last_name_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"name_empty": MessageLookupByLibrary.simpleMessage(
|
"В фамилии должен быть минимум 6 символов",
|
||||||
"Имя пользователя обязательно для заполнения"),
|
),
|
||||||
"name_short": MessageLookupByLibrary.simpleMessage(
|
"lbl_english": MessageLookupByLibrary.simpleMessage("English"),
|
||||||
"В имени пользователя должно быть минимум 6 символов"),
|
"light_type": MessageLookupByLibrary.simpleMessage("Легкая"),
|
||||||
"no": MessageLookupByLibrary.simpleMessage("Нет"),
|
"light_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"no_account":
|
"С некоторыми видами диет можно употреблять алкоголь в умеренных количествах. Рекомендуется совмещать вместе с низкокалорийными закусками.",
|
||||||
MessageLookupByLibrary.simpleMessage("У меня нет аккаунта"),
|
),
|
||||||
"one_option": MessageLookupByLibrary.simpleMessage("1 опция"),
|
"link_was_copied": MessageLookupByLibrary.simpleMessage(
|
||||||
"option": MessageLookupByLibrary.simpleMessage("Опция"),
|
"Ссылка успешно скопирована",
|
||||||
"option_content":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Содержание опции"),
|
"loading": MessageLookupByLibrary.simpleMessage("Загрузка..."),
|
||||||
"option_content_hint_text":
|
"male": MessageLookupByLibrary.simpleMessage("Мужской"),
|
||||||
MessageLookupByLibrary.simpleMessage("На связи 7 дней в неделю"),
|
"meal": MessageLookupByLibrary.simpleMessage("Приём пищи"),
|
||||||
"option_desc": MessageLookupByLibrary.simpleMessage("Описание опции"),
|
"meat": MessageLookupByLibrary.simpleMessage("Мясо"),
|
||||||
"option_desc_hint_text": MessageLookupByLibrary.simpleMessage(
|
"meat_type": MessageLookupByLibrary.simpleMessage("С мясом"),
|
||||||
"Этот план питания для похудения на 7 дней сбалансированный и разнообразный"),
|
"meat_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"option_duration":
|
"Диета с мясом полезная и сбалансированная. Включает в себя нежирное мясо: курицу, индейку, кролика или говядину. В сочетании с овощами получаете все необходимые витамины и минералы. Не забывайте о порциях и старайтесь есть медленно, прислушиваясь к своему организму.",
|
||||||
MessageLookupByLibrary.simpleMessage("Продолжительность опции"),
|
),
|
||||||
"option_personal_diet_desc": MessageLookupByLibrary.simpleMessage(
|
"milliliter": MessageLookupByLibrary.simpleMessage("мл"),
|
||||||
"Опция подразумевает создание индивидуальной диеты"),
|
"minimal_customer_price": MessageLookupByLibrary.simpleMessage(
|
||||||
"option_title": MessageLookupByLibrary.simpleMessage("Заголовок опции"),
|
"Минимальная цена для покупателя: 1200₽",
|
||||||
"order": MessageLookupByLibrary.simpleMessage("Порядок"),
|
),
|
||||||
"password": MessageLookupByLibrary.simpleMessage("Пароль"),
|
"most_new": MessageLookupByLibrary.simpleMessage("Самые новые"),
|
||||||
"password_confirmation":
|
"most_old": MessageLookupByLibrary.simpleMessage("Самые старые"),
|
||||||
MessageLookupByLibrary.simpleMessage("Подтвердите пароль"),
|
"msg_network_err": MessageLookupByLibrary.simpleMessage("Сетевая ошибка!"),
|
||||||
"password_confirmation_mismatch":
|
"msg_something_went_wrong": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Пароли не совпадают"),
|
"Что то пошло не так!",
|
||||||
"password_empty": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Пароль обязателен для заполнения"),
|
"my_blog": MessageLookupByLibrary.simpleMessage("Мой блог"),
|
||||||
"password_short": MessageLookupByLibrary.simpleMessage(
|
"my_diets": MessageLookupByLibrary.simpleMessage("Мои диеты"),
|
||||||
"В пароле должно быть минимум 6 символов"),
|
"my_plans": MessageLookupByLibrary.simpleMessage("Мои планы"),
|
||||||
"pcs": MessageLookupByLibrary.simpleMessage("шт"),
|
"my_settings": MessageLookupByLibrary.simpleMessage("Мои настройки"),
|
||||||
"personal": MessageLookupByLibrary.simpleMessage("Персональные"),
|
"name_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"personal_diet_state":
|
"Имя пользователя обязательно для заполнения",
|
||||||
MessageLookupByLibrary.simpleMessage("Персональная"),
|
),
|
||||||
"photo": MessageLookupByLibrary.simpleMessage("Фото"),
|
"name_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"place_of_living":
|
"В имени пользователя должно быть минимум 6 символов",
|
||||||
MessageLookupByLibrary.simpleMessage("Место проживания"),
|
),
|
||||||
"plan_author": MessageLookupByLibrary.simpleMessage("Автор плана"),
|
"no": MessageLookupByLibrary.simpleMessage("Нет"),
|
||||||
"plan_desc": MessageLookupByLibrary.simpleMessage("Описание плана"),
|
"no_account": MessageLookupByLibrary.simpleMessage("У меня нет аккаунта"),
|
||||||
"plan_desc_example": MessageLookupByLibrary.simpleMessage(
|
"one_option": MessageLookupByLibrary.simpleMessage("1 опция"),
|
||||||
"Большое подробное, привлекательное описание плана"),
|
"option": MessageLookupByLibrary.simpleMessage("Опция"),
|
||||||
"plan_duration": MessageLookupByLibrary.simpleMessage("Срок плана"),
|
"option_content": MessageLookupByLibrary.simpleMessage("Содержание опции"),
|
||||||
"plan_label_desc":
|
"option_content_hint_text": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("План для поддержания формы"),
|
"На связи 7 дней в неделю",
|
||||||
"plans_complete":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Пройденные планы"),
|
"option_desc": MessageLookupByLibrary.simpleMessage("Описание опции"),
|
||||||
"popular": MessageLookupByLibrary.simpleMessage("Популярные"),
|
"option_desc_hint_text": MessageLookupByLibrary.simpleMessage(
|
||||||
"preferred_language":
|
"Этот план питания для похудения на 7 дней сбалансированный и разнообразный",
|
||||||
MessageLookupByLibrary.simpleMessage("Предпочитаемый язык общения"),
|
),
|
||||||
"pressure_empty": MessageLookupByLibrary.simpleMessage(
|
"option_duration": MessageLookupByLibrary.simpleMessage(
|
||||||
"Все показатели давления обязательны к заполнению"),
|
"Продолжительность опции",
|
||||||
"pressure_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
),
|
||||||
"Все показатели давления должны быть числами"),
|
"option_personal_diet_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"preview": MessageLookupByLibrary.simpleMessage("Превью"),
|
"Опция подразумевает создание индивидуальной диеты",
|
||||||
"price": MessageLookupByLibrary.simpleMessage("Цена"),
|
),
|
||||||
"price_explanation": MessageLookupByLibrary.simpleMessage(
|
"option_title": MessageLookupByLibrary.simpleMessage("Заголовок опции"),
|
||||||
"Разница в ценах, это комиссия Итвио"),
|
"order": MessageLookupByLibrary.simpleMessage("Порядок"),
|
||||||
"profile": MessageLookupByLibrary.simpleMessage("Профиль"),
|
"password": MessageLookupByLibrary.simpleMessage("Пароль"),
|
||||||
"proteins": MessageLookupByLibrary.simpleMessage("Белки"),
|
"password_confirmation": MessageLookupByLibrary.simpleMessage(
|
||||||
"publish": MessageLookupByLibrary.simpleMessage("Опубликовать"),
|
"Подтвердите пароль",
|
||||||
"published": MessageLookupByLibrary.simpleMessage("Опубликованные"),
|
),
|
||||||
"removeFromActive":
|
"password_confirmation_mismatch": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Снять с публикации"),
|
"Пароли не совпадают",
|
||||||
"save": MessageLookupByLibrary.simpleMessage("Сохранить"),
|
),
|
||||||
"services": MessageLookupByLibrary.simpleMessage("Оказание услуг"),
|
"password_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"settings": MessageLookupByLibrary.simpleMessage("Настройки"),
|
"Пароль обязателен для заполнения",
|
||||||
"share": MessageLookupByLibrary.simpleMessage("Поделиться"),
|
),
|
||||||
"skip": MessageLookupByLibrary.simpleMessage("Пропустить"),
|
"password_short": MessageLookupByLibrary.simpleMessage(
|
||||||
"slim": MessageLookupByLibrary.simpleMessage("Похудение"),
|
"В пароле должно быть минимум 6 символов",
|
||||||
"slim_type": MessageLookupByLibrary.simpleMessage("Похудение"),
|
),
|
||||||
"slim_type_desc": MessageLookupByLibrary.simpleMessage(
|
"pcs": MessageLookupByLibrary.simpleMessage("шт"),
|
||||||
"План питания для похудения должен быть разработан с учётом индивидуальных особенностей организма, возраста, пола, уровня физической активности и состояния здоровья. Общие принципы: \n● Снижение калорийности; \n● Сбалансированный рацион; \n● Разнообразие продуктов; \n● Питьевой режим; \n● Ограничение вредных продуктов;"),
|
"personal": MessageLookupByLibrary.simpleMessage("Персональные"),
|
||||||
"standard": MessageLookupByLibrary.simpleMessage("Стандарт"),
|
"personal_diet_state": MessageLookupByLibrary.simpleMessage("Персональная"),
|
||||||
"startDiet": MessageLookupByLibrary.simpleMessage("Начать диету"),
|
"photo": MessageLookupByLibrary.simpleMessage("Фото"),
|
||||||
"tell_your_schedule": MessageLookupByLibrary.simpleMessage(
|
"place_of_living": MessageLookupByLibrary.simpleMessage("Место проживания"),
|
||||||
"Расскажите в свободной форме о том как просыпаетесь, когда едите, когда ложитесь спать:"),
|
"plan_author": MessageLookupByLibrary.simpleMessage("Автор плана"),
|
||||||
"three_options": MessageLookupByLibrary.simpleMessage("3 опции"),
|
"plan_desc": MessageLookupByLibrary.simpleMessage("Описание плана"),
|
||||||
"toOffer": MessageLookupByLibrary.simpleMessage("Предложить"),
|
"plan_desc_example": MessageLookupByLibrary.simpleMessage(
|
||||||
"to_draft": MessageLookupByLibrary.simpleMessage("В черновик"),
|
"Большое подробное, привлекательное описание плана",
|
||||||
"unfavorite_foods":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Нелюбимые продукты"),
|
"plan_duration": MessageLookupByLibrary.simpleMessage("Срок плана"),
|
||||||
"up_pressure": MessageLookupByLibrary.simpleMessage(
|
"plan_label_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
"Верхние показатели давления:"),
|
"План для поддержания формы",
|
||||||
"user_authorization":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Аутентификация"),
|
"plans_complete": MessageLookupByLibrary.simpleMessage("Пройденные планы"),
|
||||||
"user_data":
|
"popular": MessageLookupByLibrary.simpleMessage("Популярные"),
|
||||||
MessageLookupByLibrary.simpleMessage("Данные пользователя"),
|
"preferred_language": MessageLookupByLibrary.simpleMessage(
|
||||||
"user_registration":
|
"Предпочитаемый язык общения",
|
||||||
MessageLookupByLibrary.simpleMessage("Регистрация пользователя"),
|
),
|
||||||
"username": MessageLookupByLibrary.simpleMessage("Имя пользователя"),
|
"pressure_empty": MessageLookupByLibrary.simpleMessage(
|
||||||
"vegan": MessageLookupByLibrary.simpleMessage("Веган."),
|
"Все показатели давления обязательны к заполнению",
|
||||||
"vegan_type": MessageLookupByLibrary.simpleMessage("Вегетарианская"),
|
),
|
||||||
"vegan_type_desc": MessageLookupByLibrary.simpleMessage(
|
"pressure_is_not_a_number": MessageLookupByLibrary.simpleMessage(
|
||||||
"Диета основана на потреблении растительной пищи и отказе от продуктов животного происхождения. Такой тип питания может быть разнообразным и вкусным, а также полезным для здоровья."),
|
"Все показатели давления должны быть числами",
|
||||||
"waist": MessageLookupByLibrary.simpleMessage("Талия"),
|
),
|
||||||
"waist_circumference":
|
"preview": MessageLookupByLibrary.simpleMessage("Превью"),
|
||||||
MessageLookupByLibrary.simpleMessage("Обхват талии"),
|
"price": MessageLookupByLibrary.simpleMessage("Цена"),
|
||||||
"weight": MessageLookupByLibrary.simpleMessage("Вес"),
|
"price_explanation": MessageLookupByLibrary.simpleMessage(
|
||||||
"weight_chart": MessageLookupByLibrary.simpleMessage("График веса"),
|
"Разница в ценах, это комиссия Итвио",
|
||||||
"weight_measurements":
|
),
|
||||||
MessageLookupByLibrary.simpleMessage("Замер веса"),
|
"profile": MessageLookupByLibrary.simpleMessage("Профиль"),
|
||||||
"wellness":
|
"proteins": MessageLookupByLibrary.simpleMessage("Белки"),
|
||||||
MessageLookupByLibrary.simpleMessage("Улучшение самочувствия"),
|
"publish": MessageLookupByLibrary.simpleMessage("Опубликовать"),
|
||||||
"wellness_type":
|
"published": MessageLookupByLibrary.simpleMessage("Опубликованные"),
|
||||||
MessageLookupByLibrary.simpleMessage("Улучшение самочувствия"),
|
"removeFromActive": MessageLookupByLibrary.simpleMessage(
|
||||||
"wellness_type_desc": MessageLookupByLibrary.simpleMessage(
|
"Снять с публикации",
|
||||||
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы."),
|
),
|
||||||
"what_is_your_name":
|
"save": MessageLookupByLibrary.simpleMessage("Сохранить"),
|
||||||
MessageLookupByLibrary.simpleMessage("Как вас зовут?"),
|
"services": MessageLookupByLibrary.simpleMessage("Оказание услуг"),
|
||||||
"wrong_credentials": MessageLookupByLibrary.simpleMessage(
|
"settings": MessageLookupByLibrary.simpleMessage("Настройки"),
|
||||||
"Неверные данные пользователя"),
|
"share": MessageLookupByLibrary.simpleMessage("Поделиться"),
|
||||||
"you_will_get": MessageLookupByLibrary.simpleMessage("Вы получите"),
|
"skip": MessageLookupByLibrary.simpleMessage("Пропустить"),
|
||||||
"your_blood_pressure":
|
"slim": MessageLookupByLibrary.simpleMessage("Похудение"),
|
||||||
MessageLookupByLibrary.simpleMessage("Ваше артериальное давление?"),
|
"slim_type": MessageLookupByLibrary.simpleMessage("Похудение"),
|
||||||
"your_favorite_sports":
|
"slim_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Ваши спортивные увлечения?"),
|
"План питания для похудения должен быть разработан с учётом индивидуальных особенностей организма, возраста, пола, уровня физической активности и состояния здоровья. Общие принципы: \n● Снижение калорийности; \n● Сбалансированный рацион; \n● Разнообразие продуктов; \n● Питьевой режим; \n● Ограничение вредных продуктов;",
|
||||||
"your_gender": MessageLookupByLibrary.simpleMessage("Ваш пол?"),
|
),
|
||||||
"your_height": MessageLookupByLibrary.simpleMessage("Ваш рост:"),
|
"standard": MessageLookupByLibrary.simpleMessage("Стандарт"),
|
||||||
"your_schedule": MessageLookupByLibrary.simpleMessage("Ваш режим дня?"),
|
"startDiet": MessageLookupByLibrary.simpleMessage("Начать диету"),
|
||||||
"your_weight": MessageLookupByLibrary.simpleMessage("Ваш вес:")
|
"tell_your_schedule": MessageLookupByLibrary.simpleMessage(
|
||||||
};
|
"Расскажите в свободной форме о том как просыпаетесь, когда едите, когда ложитесь спать:",
|
||||||
|
),
|
||||||
|
"three_options": MessageLookupByLibrary.simpleMessage("3 опции"),
|
||||||
|
"toOffer": MessageLookupByLibrary.simpleMessage("Предложить"),
|
||||||
|
"to_draft": MessageLookupByLibrary.simpleMessage("В черновик"),
|
||||||
|
"unfavorite_foods": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Нелюбимые продукты",
|
||||||
|
),
|
||||||
|
"up_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Верхние показатели давления:",
|
||||||
|
),
|
||||||
|
"user_authorization": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Аутентификация",
|
||||||
|
),
|
||||||
|
"user_data": MessageLookupByLibrary.simpleMessage("Данные пользователя"),
|
||||||
|
"user_registration": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Регистрация пользователя",
|
||||||
|
),
|
||||||
|
"username": MessageLookupByLibrary.simpleMessage("Имя пользователя"),
|
||||||
|
"vegan": MessageLookupByLibrary.simpleMessage("Веган."),
|
||||||
|
"vegan_type": MessageLookupByLibrary.simpleMessage("Вегетарианская"),
|
||||||
|
"vegan_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Диета основана на потреблении растительной пищи и отказе от продуктов животного происхождения. Такой тип питания может быть разнообразным и вкусным, а также полезным для здоровья.",
|
||||||
|
),
|
||||||
|
"waist": MessageLookupByLibrary.simpleMessage("Талия"),
|
||||||
|
"waist_circumference": MessageLookupByLibrary.simpleMessage("Обхват талии"),
|
||||||
|
"weight": MessageLookupByLibrary.simpleMessage("Вес"),
|
||||||
|
"weight_chart": MessageLookupByLibrary.simpleMessage("График веса"),
|
||||||
|
"weight_measurements": MessageLookupByLibrary.simpleMessage("Замер веса"),
|
||||||
|
"wellness": MessageLookupByLibrary.simpleMessage("Улучшение самочувствия"),
|
||||||
|
"wellness_type": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Улучшение самочувствия",
|
||||||
|
),
|
||||||
|
"wellness_type_desc": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Если вы любите мучные продукты, но хотите придерживаться диеты, вам подходит диета с добавленим мучных блюд на основе цельнозерновых вариантов. В них больше сложных углеводов и клетчатки, что способствует длительному чувству сытости и поддерживает здоровье пищеварительной системы.",
|
||||||
|
),
|
||||||
|
"what_is_your_name": MessageLookupByLibrary.simpleMessage("Как вас зовут?"),
|
||||||
|
"wrong_credentials": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Неверные данные пользователя",
|
||||||
|
),
|
||||||
|
"you_will_get": MessageLookupByLibrary.simpleMessage("Вы получите"),
|
||||||
|
"your_blood_pressure": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Ваше артериальное давление?",
|
||||||
|
),
|
||||||
|
"your_favorite_sports": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Ваши спортивные увлечения?",
|
||||||
|
),
|
||||||
|
"your_gender": MessageLookupByLibrary.simpleMessage("Ваш пол?"),
|
||||||
|
"your_height": MessageLookupByLibrary.simpleMessage("Ваш рост:"),
|
||||||
|
"your_schedule": MessageLookupByLibrary.simpleMessage("Ваш режим дня?"),
|
||||||
|
"your_weight": MessageLookupByLibrary.simpleMessage("Ваш вес:"),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"user_registration": "Регистрация пользователя",
|
"user_registration": "Регистрация пользователя",
|
||||||
"email": "Элетронная почта",
|
"email": "Электронная почта",
|
||||||
"username": "Имя пользователя",
|
"username": "Имя пользователя",
|
||||||
"password": "Пароль",
|
"password": "Пароль",
|
||||||
"password_confirmation": "Подтвердите пароль",
|
"password_confirmation": "Подтвердите пароль",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
"average_pressure": "Средние показатели давления:",
|
"average_pressure": "Средние показатели давления:",
|
||||||
"up_pressure": "Верхние показатели давления:",
|
"up_pressure": "Верхние показатели давления:",
|
||||||
"down_pressure": "Нижние показатели давления:",
|
"down_pressure": "Нижние показатели давления:",
|
||||||
"do_you_have_hypotension_tendency": "Есть ли у вас гипотония?",
|
"do_you_have_hypotension_tendency": "Есть ли у вас гипотония?",
|
||||||
"your_favorite_sports": "Ваши спортивные увлечения?",
|
"your_favorite_sports": "Ваши спортивные увлечения?",
|
||||||
"favorite_foods": "Любимые продукты",
|
"favorite_foods": "Любимые продукты",
|
||||||
"favorite_unfavorite_foods": "Ваши любимые/нелюбимые продукты питания?",
|
"favorite_unfavorite_foods": "Ваши любимые/нелюбимые продукты питания?",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"user_registration": "Регистрация пользователя",
|
"user_registration": "Регистрация пользователя",
|
||||||
"email": "Элетронная почта",
|
"email": "Электронная почта",
|
||||||
"username": "Имя пользователя",
|
"username": "Имя пользователя",
|
||||||
"password": "Пароль",
|
"password": "Пароль",
|
||||||
"password_confirmation": "Подтвердите пароль",
|
"password_confirmation": "Подтвердите пароль",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
"average_pressure": "Средние показатели давления:",
|
"average_pressure": "Средние показатели давления:",
|
||||||
"up_pressure": "Верхние показатели давления:",
|
"up_pressure": "Верхние показатели давления:",
|
||||||
"down_pressure": "Нижние показатели давления:",
|
"down_pressure": "Нижние показатели давления:",
|
||||||
"do_you_have_hypotension_tendency": "Есть ли у вас гипотония?",
|
"do_you_have_hypotension_tendency": "Есть ли у вас гипотония?",
|
||||||
"your_favorite_sports": "Ваши спортивные увлечения?",
|
"your_favorite_sports": "Ваши спортивные увлечения?",
|
||||||
"favorite_foods": "Любимые продукты",
|
"favorite_foods": "Любимые продукты",
|
||||||
"favorite_unfavorite_foods": "Ваши любимые/нелюбимые продукты питания?",
|
"favorite_unfavorite_foods": "Ваши любимые/нелюбимые продукты питания?",
|
||||||
|
|||||||
30
pubspec.yaml
30
pubspec.yaml
@@ -13,8 +13,8 @@ dependencies:
|
|||||||
flutter_localizations:
|
flutter_localizations:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
flutter_secure_storage: ^9.2.3
|
flutter_secure_storage: ^9.2.4
|
||||||
flutter_bloc: ^8.1.6
|
flutter_bloc: ^9.0.0
|
||||||
cached_network_image: ^3.4.1
|
cached_network_image: ^3.4.1
|
||||||
flutter_svg: ^2.0.17
|
flutter_svg: ^2.0.17
|
||||||
equatable: ^2.0.7
|
equatable: ^2.0.7
|
||||||
@@ -23,10 +23,10 @@ dependencies:
|
|||||||
validators: ^3.0.0
|
validators: ^3.0.0
|
||||||
path_provider: ^2.1.5
|
path_provider: ^2.1.5
|
||||||
carousel_slider_plus: ^7.1.0
|
carousel_slider_plus: ^7.1.0
|
||||||
flutter_form_builder: ^10.0.0-dev.1
|
flutter_form_builder: ^7.0.0-alpha.3
|
||||||
image_picker: ^1.1.2
|
image_picker: ^1.1.2
|
||||||
flutter_typeahead: ^5.2.0
|
flutter_typeahead: ^5.2.0
|
||||||
go_router: ^14.6.3
|
go_router: ^14.7.1
|
||||||
keyboard_dismisser: ^3.0.0
|
keyboard_dismisser: ^3.0.0
|
||||||
retrofit: ^4.4.2
|
retrofit: ^4.4.2
|
||||||
get_it: ^8.0.3
|
get_it: ^8.0.3
|
||||||
@@ -40,35 +40,39 @@ dependencies:
|
|||||||
google_fonts: ^6.2.1
|
google_fonts: ^6.2.1
|
||||||
syncfusion_flutter_charts: ^28.1.38
|
syncfusion_flutter_charts: ^28.1.38
|
||||||
syncfusion_flutter_gauges: ^28.1.38
|
syncfusion_flutter_gauges: ^28.1.38
|
||||||
table_calendar: ^3.1.3
|
table_calendar: ^3.2.0
|
||||||
flutter_keyboard_visibility: ^6.0.0
|
flutter_keyboard_visibility: ^6.0.0
|
||||||
share_plus: ^10.1.4
|
share_plus: ^10.1.4
|
||||||
flutter_html: ^3.0.0-beta.2
|
flutter_html: ^3.0.0-beta.2
|
||||||
file_picker: ^8.1.7
|
file_picker: ^8.1.7
|
||||||
audioplayers: ^6.1.0
|
audioplayers: ^6.1.0
|
||||||
intl: ^0.19.0
|
intl: ^0.20.2
|
||||||
rive: ^0.13.20
|
rive: ^0.13.20
|
||||||
mask_text_input_formatter: ^2.9.0
|
mask_text_input_formatter: ^2.9.0
|
||||||
lottie: ^3.3.0
|
lottie: ^3.3.1
|
||||||
flutter_portal: ^1.1.4
|
flutter_portal: ^1.1.4
|
||||||
fluttertoast: ^8.2.10
|
fluttertoast: ^8.2.10
|
||||||
flutter_rating_bar: ^4.0.1
|
flutter_rating_bar: ^4.0.1
|
||||||
flutter_image_compress: ^2.4.0
|
flutter_image_compress: ^2.4.0
|
||||||
image: ^4.3.0
|
image: ^4.5.2
|
||||||
dotted_border: ^2.1.0
|
dotted_border: ^2.1.0
|
||||||
http: ^1.2.2
|
http: ^1.3.0
|
||||||
flutter_native_splash: ^2.4.4
|
flutter_native_splash: ^2.4.4
|
||||||
|
webview_flutter: ^4.10.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: ^2.4.14
|
build_runner: ^2.4.14
|
||||||
freezed: ^2.5.7
|
freezed: ^2.5.8
|
||||||
json_serializable: ^6.9.0
|
json_serializable: ^6.9.3
|
||||||
retrofit_generator: ^9.1.5
|
retrofit_generator: ^9.1.7
|
||||||
mockito: ^5.4.4
|
mockito: ^5.4.5
|
||||||
|
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
|
dependency_overrides:
|
||||||
|
intl: 0.19.0
|
||||||
|
|
||||||
flutter:
|
flutter:
|
||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
assets:
|
assets:
|
||||||
|
|||||||
Reference in New Issue
Block a user