app_localizations.dart 58.4 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772
import 'dart:async';

import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart' as intl;

import 'app_localizations_en.dart';
import 'app_localizations_zh.dart';

// ignore_for_file: type=lint

/// Callers can lookup localized strings with an instance of AppLocalizations
/// returned by `AppLocalizations.of(context)`.
///
/// Applications need to include `AppLocalizations.delegate()` in their app's
/// `localizationDelegates` list, and the locales they support in the app's
/// `supportedLocales` list. For example:
///
/// ```dart
/// import 'gen/app_localizations.dart';
///
/// return MaterialApp(
///   localizationsDelegates: AppLocalizations.localizationsDelegates,
///   supportedLocales: AppLocalizations.supportedLocales,
///   home: MyApplicationHome(),
/// );
/// ```
///
/// ## Update pubspec.yaml
///
/// Please make sure to update your pubspec.yaml to include the following
/// packages:
///
/// ```yaml
/// dependencies:
///   # Internationalization support.
///   flutter_localizations:
///     sdk: flutter
///   intl: any # Use the pinned version from flutter_localizations
///
///   # Rest of dependencies
/// ```
///
/// ## iOS Applications
///
/// iOS applications define key application metadata, including supported
/// locales, in an Info.plist file that is built into the application bundle.
/// To configure the locales supported by your app, you’ll need to edit this
/// file.
///
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
/// Then, in the Project Navigator, open the Info.plist file under the Runner
/// project’s Runner folder.
///
/// Next, select the Information Property List item, select Add Item from the
/// Editor menu, then select Localizations from the pop-up menu.
///
/// Select and expand the newly-created Localizations item then, for each
/// locale your application supports, add a new item and select the locale
/// you wish to add from the pop-up menu in the Value field. This list should
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
/// property.
abstract class AppLocalizations {
  AppLocalizations(String locale)
      : localeName = intl.Intl.canonicalizedLocale(locale.toString());

  final String localeName;

  static AppLocalizations? of(BuildContext context) {
    return Localizations.of<AppLocalizations>(context, AppLocalizations);
  }

  static const LocalizationsDelegate<AppLocalizations> delegate =
      _AppLocalizationsDelegate();

  /// A list of this localizations delegate along with the default localizations
  /// delegates.
  ///
  /// Returns a list of localizations delegates containing this delegate along with
  /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
  /// and GlobalWidgetsLocalizations.delegate.
  ///
  /// Additional delegates can be added by appending to this list in
  /// MaterialApp. This list does not have to be used at all if a custom list
  /// of delegates is preferred or required.
  static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
      <LocalizationsDelegate<dynamic>>[
    delegate,
    GlobalMaterialLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ];

  /// A list of this localizations delegate's supported locales.
  static const List<Locale> supportedLocales = <Locale>[
    Locale('en'),
    Locale('zh')
  ];

  /// App名称
  ///
  /// In zh, this message translates to:
  /// **'Double Feel'**
  String get appName;

  /// No description provided for @confirm.
  ///
  /// In zh, this message translates to:
  /// **'确认'**
  String get confirm;

  /// No description provided for @cancel.
  ///
  /// In zh, this message translates to:
  /// **'取消'**
  String get cancel;

  /// No description provided for @continueButton.
  ///
  /// In zh, this message translates to:
  /// **'继续'**
  String get continueButton;

  /// No description provided for @loading.
  ///
  /// In zh, this message translates to:
  /// **'加载中...'**
  String get loading;

  /// No description provided for @success.
  ///
  /// In zh, this message translates to:
  /// **'成功'**
  String get success;

  /// No description provided for @error.
  ///
  /// In zh, this message translates to:
  /// **'错误'**
  String get error;

  /// No description provided for @loginTitle.
  ///
  /// In zh, this message translates to:
  /// **'登录'**
  String get loginTitle;

  /// No description provided for @username.
  ///
  /// In zh, this message translates to:
  /// **'用户名'**
  String get username;

  /// No description provided for @password.
  ///
  /// In zh, this message translates to:
  /// **'密码'**
  String get password;

  /// No description provided for @loginBtn.
  ///
  /// In zh, this message translates to:
  /// **'立即登录'**
  String get loginBtn;

  /// No description provided for @usernameEmptyHint.
  ///
  /// In zh, this message translates to:
  /// **'用户名不能为空'**
  String get usernameEmptyHint;

  /// No description provided for @passwordEmptyHint.
  ///
  /// In zh, this message translates to:
  /// **'密码不能为空'**
  String get passwordEmptyHint;

  /// No description provided for @homeTitle.
  ///
  /// In zh, this message translates to:
  /// **'首页'**
  String get homeTitle;

  /// No description provided for @tabToday.
  ///
  /// In zh, this message translates to:
  /// **'今日'**
  String get tabToday;

  /// No description provided for @tabTrend.
  ///
  /// In zh, this message translates to:
  /// **'趋势'**
  String get tabTrend;

  /// No description provided for @tabFriends.
  ///
  /// In zh, this message translates to:
  /// **'好友'**
  String get tabFriends;

  /// No description provided for @tabMy.
  ///
  /// In zh, this message translates to:
  /// **'我的'**
  String get tabMy;

  /// No description provided for @switchLanguage.
  ///
  /// In zh, this message translates to:
  /// **'切换语言'**
  String get switchLanguage;

  /// No description provided for @settings.
  ///
  /// In zh, this message translates to:
  /// **'设置'**
  String get settings;

  /// No description provided for @onboardingIntroTitle.
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel 是专为 Apple Watch 打造的健康陪伴app'**
  String get onboardingIntroTitle;

  /// No description provided for @onboardingIntroBody.
  ///
  /// In zh, this message translates to:
  /// **'我们希望可以帮助你\n<em>关注自己的身心变化,也让爱你的人</em>及时发现你的<em>疲惫与需要</em>'**
  String get onboardingIntroBody;

  /// No description provided for @onboardingStateQuestion.
  ///
  /// In zh, this message translates to:
  /// **'请问以下哪些描述,经常发生在你身上?'**
  String get onboardingStateQuestion;

  /// No description provided for @onboardingStateStressAnxiety.
  ///
  /// In zh, this message translates to:
  /// **'经常压力焦虑'**
  String get onboardingStateStressAnxiety;

  /// No description provided for @onboardingStateTired.
  ///
  /// In zh, this message translates to:
  /// **'容易感到疲惫'**
  String get onboardingStateTired;

  /// No description provided for @onboardingStatePoorRest.
  ///
  /// In zh, this message translates to:
  /// **'睡醒但感觉没休息好'**
  String get onboardingStatePoorRest;

  /// No description provided for @onboardingStateNeedStimulants.
  ///
  /// In zh, this message translates to:
  /// **'需要摄入烟、酒、咖啡等刺激物保持精神'**
  String get onboardingStateNeedStimulants;

  /// No description provided for @onboardingStateNone.
  ///
  /// In zh, this message translates to:
  /// **'以上都没有'**
  String get onboardingStateNone;

  /// No description provided for @onboardingStressGoalQuestion.
  ///
  /// In zh, this message translates to:
  /// **'关于压力,你想通过了解它,获得什么信息?'**
  String get onboardingStressGoalQuestion;

  /// No description provided for @onboardingStressGoalSource.
  ///
  /// In zh, this message translates to:
  /// **'理解压力来源'**
  String get onboardingStressGoalSource;

  /// No description provided for @onboardingStressGoalReminder.
  ///
  /// In zh, this message translates to:
  /// **'有压力及时被提醒'**
  String get onboardingStressGoalReminder;

  /// No description provided for @onboardingStressGoalLovedOnes.
  ///
  /// In zh, this message translates to:
  /// **'让关心自己的人知道压力情况'**
  String get onboardingStressGoalLovedOnes;

  /// No description provided for @onboardingStressGoalRelax.
  ///
  /// In zh, this message translates to:
  /// **'理解压力,让自己变轻松'**
  String get onboardingStressGoalRelax;

  /// No description provided for @onboardingStressGoalBodyTalk.
  ///
  /// In zh, this message translates to:
  /// **'与身体可以更好地对话'**
  String get onboardingStressGoalBodyTalk;

  /// No description provided for @onboardingReliefQuestion.
  ///
  /// In zh, this message translates to:
  /// **'以下哪种方式你认为可以缓解压力?'**
  String get onboardingReliefQuestion;

  /// No description provided for @onboardingReliefSleep.
  ///
  /// In zh, this message translates to:
  /// **'规律的睡眠'**
  String get onboardingReliefSleep;

  /// No description provided for @onboardingReliefCare.
  ///
  /// In zh, this message translates to:
  /// **'亲近的人对自己的关心'**
  String get onboardingReliefCare;

  /// No description provided for @onboardingReliefExercise.
  ///
  /// In zh, this message translates to:
  /// **'多运动'**
  String get onboardingReliefExercise;

  /// No description provided for @onboardingReliefSun.
  ///
  /// In zh, this message translates to:
  /// **'多晒太阳'**
  String get onboardingReliefSun;

  /// No description provided for @onboardingReliefWater.
  ///
  /// In zh, this message translates to:
  /// **'多喝水'**
  String get onboardingReliefWater;

  /// No description provided for @onboardingReliefMeditation.
  ///
  /// In zh, this message translates to:
  /// **'正念冥想'**
  String get onboardingReliefMeditation;

  /// No description provided for @onboardingKeyDataTitle.
  ///
  /// In zh, this message translates to:
  /// **'你知道吗?'**
  String get onboardingKeyDataTitle;

  /// No description provided for @onboardingKeyDataSubtitle.
  ///
  /// In zh, this message translates to:
  /// **'每个人都有一项神奇且关键的身体数据,可以帮助我们:'**
  String get onboardingKeyDataSubtitle;

  /// No description provided for @onboardingKeyDataStress.
  ///
  /// In zh, this message translates to:
  /// **'监测压力'**
  String get onboardingKeyDataStress;

  /// No description provided for @onboardingKeyDataFatigue.
  ///
  /// In zh, this message translates to:
  /// **'避免过劳与身体疲惫'**
  String get onboardingKeyDataFatigue;

  /// No description provided for @onboardingKeyDataRecovery.
  ///
  /// In zh, this message translates to:
  /// **'衡量运动恢复'**
  String get onboardingKeyDataRecovery;

  /// No description provided for @onboardingKeyDataHabits.
  ///
  /// In zh, this message translates to:
  /// **'养成健康生活习惯'**
  String get onboardingKeyDataHabits;

  /// No description provided for @onboardingKeyDataLovedOnes.
  ///
  /// In zh, this message translates to:
  /// **'让重要的人及时关心你的状态'**
  String get onboardingKeyDataLovedOnes;

  /// No description provided for @onboardingTellMeWhatItIs.
  ///
  /// In zh, this message translates to:
  /// **'告诉我Ta是!'**
  String get onboardingTellMeWhatItIs;

  /// No description provided for @onboardingHrvTitle.
  ///
  /// In zh, this message translates to:
  /// **'就是HRV心率变异性'**
  String get onboardingHrvTitle;

  /// No description provided for @onboardingHrvSubtitle.
  ///
  /// In zh, this message translates to:
  /// **'它能帮助我们衡量整体的压力和健康状态'**
  String get onboardingHrvSubtitle;

  /// No description provided for @onboardingHrvDescription.
  ///
  /// In zh, this message translates to:
  /// **'心率变异性(HRV, Heart Rate Variability)即心跳之间间隔时间的微小变化,反映了自主神经系统活动和身体对压力的反应能力'**
  String get onboardingHrvDescription;

  /// No description provided for @onboardingTellMeMore.
  ///
  /// In zh, this message translates to:
  /// **'展开说说'**
  String get onboardingTellMeMore;

  /// No description provided for @onboardingResearchTitle.
  ///
  /// In zh, this message translates to:
  /// **'诸多科学研究表明,HRV变化与我们的身心感受有密切关系'**
  String get onboardingResearchTitle;

  /// No description provided for @onboardingResearchFatigue.
  ///
  /// In zh, this message translates to:
  /// **'身体疲惫'**
  String get onboardingResearchFatigue;

  /// No description provided for @onboardingResearchEnergy.
  ///
  /// In zh, this message translates to:
  /// **'元气满满'**
  String get onboardingResearchEnergy;

  /// No description provided for @onboardingResearchHrvDown.
  ///
  /// In zh, this message translates to:
  /// **'HRV下降'**
  String get onboardingResearchHrvDown;

  /// No description provided for @onboardingResearchHrvUp.
  ///
  /// In zh, this message translates to:
  /// **'HRV上升'**
  String get onboardingResearchHrvUp;

  /// No description provided for @onboardingHealthPermissionTitle.
  ///
  /// In zh, this message translates to:
  /// **'允许访问健康数据'**
  String get onboardingHealthPermissionTitle;

  /// No description provided for @onboardingHealthPermissionBody.
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel需要连接健康穿戴设备数据,以提醒、统计压力时刻、提供建议。'**
  String get onboardingHealthPermissionBody;

  /// No description provided for @onboardingHealthPermissionPrivacy.
  ///
  /// In zh, this message translates to:
  /// **'请放心,你的健康数据只会存储在本地,我们不上传任何相关数据。'**
  String get onboardingHealthPermissionPrivacy;

  /// No description provided for @onboardingNotificationTitle.
  ///
  /// In zh, this message translates to:
  /// **'开启通知'**
  String get onboardingNotificationTitle;

  /// No description provided for @onboardingNotificationSubtitle.
  ///
  /// In zh, this message translates to:
  /// **'及时了解身体每一次异动'**
  String get onboardingNotificationSubtitle;

  /// No description provided for @onboardingNotificationBody.
  ///
  /// In zh, this message translates to:
  /// **'AppleWatch数据更新后会及时提醒你,帮助你及时行动,改善压力状态'**
  String get onboardingNotificationBody;

  /// No description provided for @onboardingMemberTitle.
  ///
  /// In zh, this message translates to:
  /// **'获得年度会员优惠'**
  String get onboardingMemberTitle;

  /// No description provided for @onboardingMemberBody.
  ///
  /// In zh, this message translates to:
  /// **'开启压力预警与健康陪伴之旅,让爱与关心从不缺席'**
  String get onboardingMemberBody;

  /// No description provided for @onboardingMemberOriginalPrice.
  ///
  /// In zh, this message translates to:
  /// **'原价¥72.00/年'**
  String get onboardingMemberOriginalPrice;

  /// No description provided for @onboardingMemberCurrentPrice.
  ///
  /// In zh, this message translates to:
  /// **'现价 ¥60.00/年'**
  String get onboardingMemberCurrentPrice;

  /// No description provided for @onboardingMemberMonthlyPrice.
  ///
  /// In zh, this message translates to:
  /// **'仅相当于¥5.00/月'**
  String get onboardingMemberMonthlyPrice;

  /// No description provided for @onboardingMemberAllOptions.
  ///
  /// In zh, this message translates to:
  /// **'查看所有购买选项'**
  String get onboardingMemberAllOptions;

  /// No description provided for @healthCompanionIsNowAvailable.
  ///
  /// In zh, this message translates to:
  /// **'健康陪伴已开启'**
  String get healthCompanionIsNowAvailable;

  /// No description provided for @youCanNowViewEachOtherSHrvStressLevelsAndSleepPatternsAndReachOutToCheckInWhenTheOtherPersonSeemsTired.
  ///
  /// In zh, this message translates to:
  /// **'你们现在可以查看彼此的 HRV、压力与睡眠变化,并在对方疲惫时及时送上关心。'**
  String
      get youCanNowViewEachOtherSHrvStressLevelsAndSleepPatternsAndReachOutToCheckInWhenTheOtherPersonSeemsTired;

  /// No description provided for @bindPartnerTitle.
  ///
  /// In zh, this message translates to:
  /// **'添加亲密联系人\n多一个人关注你的健康'**
  String get bindPartnerTitle;

  /// No description provided for @bindPartnerMyId.
  ///
  /// In zh, this message translates to:
  /// **'我的ID'**
  String get bindPartnerMyId;

  /// No description provided for @bindPartnerShareMyCode.
  ///
  /// In zh, this message translates to:
  /// **'分享我的码'**
  String get bindPartnerShareMyCode;

  /// No description provided for @bindPartnerOr.
  ///
  /// In zh, this message translates to:
  /// **'或'**
  String get bindPartnerOr;

  /// No description provided for @bindPartnerContactId.
  ///
  /// In zh, this message translates to:
  /// **'亲密联系人的ID'**
  String get bindPartnerContactId;

  /// No description provided for @bindPartnerInputHint.
  ///
  /// In zh, this message translates to:
  /// **'请输入'**
  String get bindPartnerInputHint;

  /// No description provided for @bindPartnerSkip.
  ///
  /// In zh, this message translates to:
  /// **'下次再说'**
  String get bindPartnerSkip;

  /// No description provided for @onboardingResearchStress.
  ///
  /// In zh, this message translates to:
  /// **'压力大'**
  String get onboardingResearchStress;

  /// No description provided for @onboardingResearchRelaxed.
  ///
  /// In zh, this message translates to:
  /// **'状态轻松'**
  String get onboardingResearchRelaxed;

  /// No description provided for @onboardingResearchSick.
  ///
  /// In zh, this message translates to:
  /// **'感冒生病'**
  String get onboardingResearchSick;

  /// No description provided for @onboardingResearchHealthy.
  ///
  /// In zh, this message translates to:
  /// **'身体倍儿棒'**
  String get onboardingResearchHealthy;

  /// No description provided for @onboardingResearchPoorSleep.
  ///
  /// In zh, this message translates to:
  /// **'睡眠不足'**
  String get onboardingResearchPoorSleep;

  /// No description provided for @onboardingResearchGoodSleep.
  ///
  /// In zh, this message translates to:
  /// **'睡眠充足'**
  String get onboardingResearchGoodSleep;

  /// 登录页 slogan
  ///
  /// In zh, this message translates to:
  /// **'开启压力预警与健康陪伴之旅\n让爱与关心从不缺席'**
  String get loginSlogan;

  /// 手机号登录按钮
  ///
  /// In zh, this message translates to:
  /// **'手机号登录/注册'**
  String get loginWithPhone;

  /// Apple登录按钮
  ///
  /// In zh, this message translates to:
  /// **'通过Apple登录'**
  String get loginWithApple;

  /// 上次使用标签
  ///
  /// In zh, this message translates to:
  /// **'上次使用'**
  String get loginLastUsed;

  /// 协议勾选前缀
  ///
  /// In zh, this message translates to:
  /// **'我已阅读并同意'**
  String get loginAgreementPrefix;

  /// 用户协议链接
  ///
  /// In zh, this message translates to:
  /// **'用户协议'**
  String get loginTerms;

  /// 协议连接词
  ///
  /// In zh, this message translates to:
  /// **'与'**
  String get loginAgreementAnd;

  /// 隐私协议链接
  ///
  /// In zh, this message translates to:
  /// **'隐私协议'**
  String get loginPrivacy;

  /// 手机号登录页打招呼
  ///
  /// In zh, this message translates to:
  /// **'Hello~'**
  String get phoneLoginHello;

  /// 手机号登录页欢迎语
  ///
  /// In zh, this message translates to:
  /// **'欢迎来到 Double Feel'**
  String get phoneLoginWelcome;

  /// 手机号输入框占位符
  ///
  /// In zh, this message translates to:
  /// **'请输入手机号'**
  String get phoneLoginPhoneHint;

  /// 发送验证码按钮(首次)
  ///
  /// In zh, this message translates to:
  /// **'发送验证码'**
  String get phoneLoginSendCode;

  /// 发送验证码按钮(请求中)
  ///
  /// In zh, this message translates to:
  /// **'发送中'**
  String get phoneLoginSending;

  /// 倒计时文案
  ///
  /// In zh, this message translates to:
  /// **'已发送 {countdown}s'**
  String phoneLoginSentCountdown(int countdown);

  /// 倒计时结束后重新发送按钮
  ///
  /// In zh, this message translates to:
  /// **'重新发送'**
  String get phoneLoginResend;

  /// 验证码输入框占位符
  ///
  /// In zh, this message translates to:
  /// **'请输入验证码'**
  String get phoneLoginCodeHint;

  /// 自动注册提示
  ///
  /// In zh, this message translates to:
  /// **'未注册的手机号验证通过后将自动注册'**
  String get phoneLoginAutoRegisterHint;

  /// 登录按钮 loading 文案
  ///
  /// In zh, this message translates to:
  /// **'登录中...'**
  String get phoneLoginLoggingIn;

  /// 未勾选协议时的 toast
  ///
  /// In zh, this message translates to:
  /// **'请先阅读并同意《用户协议》与《隐私协议》'**
  String get loginAgreeToTermsToast;

  /// 手机号格式错误 toast
  ///
  /// In zh, this message translates to:
  /// **'手机号格式错误'**
  String get phoneLoginInvalidPhone;

  /// 验证码发送成功 toast
  ///
  /// In zh, this message translates to:
  /// **'发送成功'**
  String get phoneLoginCodeSentSuccess;

  /// 验证码格式错误 toast
  ///
  /// In zh, this message translates to:
  /// **'验证码格式错误'**
  String get phoneLoginInvalidCode;

  /// 今日页健康数据授权卡片标题
  ///
  /// In zh, this message translates to:
  /// **'无法获取心率健康数据'**
  String get todayHealthDataAuthTitle;

  /// 今日页健康数据授权卡片说明
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel 需要授权访问你的健康数据,才能提供压力提醒、实时压力统计和健康建议;否则应用功能可能无法正常使用。请放心,你的健康数据仅存储在本地,不会上传到任何服务器。'**
  String get todayHealthDataAuthDescription;

  /// 今日页健康数据授权卡片按钮文案
  ///
  /// In zh, this message translates to:
  /// **'授权访问健康数据'**
  String get todayHealthDataAuthAction;

  /// No description provided for @measureYourHrvNow.
  ///
  /// In zh, this message translates to:
  /// **'立即测量HRV'**
  String get measureYourHrvNow;

  /// No description provided for @todayBottomSheetGotIt.
  ///
  /// In zh, this message translates to:
  /// **'我知道了'**
  String get todayBottomSheetGotIt;

  /// No description provided for @todayFaqTitle.
  ///
  /// In zh, this message translates to:
  /// **'常见问题'**
  String get todayFaqTitle;

  /// No description provided for @todayFaqSectionTitle.
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel 常见问题'**
  String get todayFaqSectionTitle;

  /// No description provided for @todayFaqLinkNoData.
  ///
  /// In zh, this message translates to:
  /// **'APP或表盘有没有数据怎么办?'**
  String get todayFaqLinkNoData;

  /// No description provided for @todayFaqLinkHrvRealtimeUpdate.
  ///
  /// In zh, this message translates to:
  /// **'HRV数据如何实时更新?'**
  String get todayFaqLinkHrvRealtimeUpdate;

  /// No description provided for @todayFaqLinkWatchNoStatusNotification.
  ///
  /// In zh, this message translates to:
  /// **'手表为什么无法收到状态通知?'**
  String get todayFaqLinkWatchNoStatusNotification;

  /// No description provided for @todayFaqLinkWatchNoStatusAndInteractionNotification.
  ///
  /// In zh, this message translates to:
  /// **'手表为什么无法收到状态和互动通知?'**
  String get todayFaqLinkWatchNoStatusAndInteractionNotification;

  /// No description provided for @todayFaqLinkWatchFaceDataDelay.
  ///
  /// In zh, this message translates to:
  /// **'手表表盘数据不更新或者有延迟?'**
  String get todayFaqLinkWatchFaceDataDelay;

  /// No description provided for @todayFaqLinkWatchFaceBlackScreen.
  ///
  /// In zh, this message translates to:
  /// **'手表表盘为什么会出现黑屏?'**
  String get todayFaqLinkWatchFaceBlackScreen;

  /// No description provided for @todayStressStatusTitle.
  ///
  /// In zh, this message translates to:
  /// **'综合压力状态说明'**
  String get todayStressStatusTitle;

  /// No description provided for @todayHrvPrincipleTitle.
  ///
  /// In zh, this message translates to:
  /// **'HRV测量原理'**
  String get todayHrvPrincipleTitle;

  /// No description provided for @todayRealtimeStressTitle.
  ///
  /// In zh, this message translates to:
  /// **'实时压力原理'**
  String get todayRealtimeStressTitle;

  /// No description provided for @todayStressStatusOverload.
  ///
  /// In zh, this message translates to:
  /// **'压力过载'**
  String get todayStressStatusOverload;

  /// No description provided for @todayStressStatusCaution.
  ///
  /// In zh, this message translates to:
  /// **'注意压力'**
  String get todayStressStatusCaution;

  /// No description provided for @todayStressStatusNormal.
  ///
  /// In zh, this message translates to:
  /// **'状态正常'**
  String get todayStressStatusNormal;

  /// No description provided for @todayStressStatusExcellent.
  ///
  /// In zh, this message translates to:
  /// **'状态优秀'**
  String get todayStressStatusExcellent;

  /// No description provided for @todayStressStatusInsufficientData.
  ///
  /// In zh, this message translates to:
  /// **'数据不足'**
  String get todayStressStatusInsufficientData;

  /// No description provided for @todayStressStatusOverloadDescription.
  ///
  /// In zh, this message translates to:
  /// **'当前 HRV 明显低于你的长期平均水平,可能意味着身体疲劳、压力过高或恢复不足。建议及时休息。'**
  String get todayStressStatusOverloadDescription;

  /// No description provided for @todayStressStatusCautionDescription.
  ///
  /// In zh, this message translates to:
  /// **'当前 HRV 低于正常范围,身体可能正在积累压力,需要注意作息与恢复。'**
  String get todayStressStatusCautionDescription;

  /// No description provided for @todayStressStatusNormalDescription.
  ///
  /// In zh, this message translates to:
  /// **'当前身体状态处于你的正常波动范围内。'**
  String get todayStressStatusNormalDescription;

  /// No description provided for @todayStressStatusExcellentDescription.
  ///
  /// In zh, this message translates to:
  /// **'当前 HRV 高于近期平均水平,代表身体恢复与整体状态较好。'**
  String get todayStressStatusExcellentDescription;

  /// No description provided for @todayStressStatusInsufficientDataDescription.
  ///
  /// In zh, this message translates to:
  /// **'当前可用数据不足,暂时无法准确判断压力状态。'**
  String get todayStressStatusInsufficientDataDescription;

  /// No description provided for @todayHrvMeasurementIntro.
  ///
  /// In zh, this message translates to:
  /// **'AppleWatch默认每2-5小时测量一次HRV,如果你希望立即手动进行测量,可以参考以下方法:'**
  String get todayHrvMeasurementIntro;

  /// No description provided for @todayHrvMeasurementStep1.
  ///
  /// In zh, this message translates to:
  /// **'1、戴紧AppleWatch,坐下来,保持心境平和'**
  String get todayHrvMeasurementStep1;

  /// No description provided for @todayHrvMeasurementStep2.
  ///
  /// In zh, this message translates to:
  /// **'2、打开AppleWatch上的「正念」里的「呼吸」'**
  String get todayHrvMeasurementStep2;

  /// No description provided for @todayHrvMeasurementStep3.
  ///
  /// In zh, this message translates to:
  /// **'3、保持平稳的呼吸,等待1-3分钟'**
  String get todayHrvMeasurementStep3;

  /// No description provided for @todayHrvMeasurementStep4.
  ///
  /// In zh, this message translates to:
  /// **'4、完成呼吸后,锁屏一次再解锁你的iPhone'**
  String get todayHrvMeasurementStep4;

  /// No description provided for @todayHrvMeasurementStep5.
  ///
  /// In zh, this message translates to:
  /// **'5、等待一分钟左右,StressWatch会收到你的数据并展示'**
  String get todayHrvMeasurementStep5;

  /// No description provided for @todayHrvMeasurementHint.
  ///
  /// In zh, this message translates to:
  /// **'提示:数据源来自AppleWatch,在测量之后可能存在延迟或是数据未能同步的情况。如若出现上述情况,请重新测量并等待数据读取。'**
  String get todayHrvMeasurementHint;

  /// No description provided for @todayHrvMeasurementWarning.
  ///
  /// In zh, this message translates to:
  /// **'注意:需打开健康里的权限,同时关闭省电模式。'**
  String get todayHrvMeasurementWarning;

  /// No description provided for @todayStressStatusWhatTitle.
  ///
  /// In zh, this message translates to:
  /// **'什么是综合压力状态?'**
  String get todayStressStatusWhatTitle;

  /// No description provided for @todayStressStatusWhatDescription1.
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel 会结合你过去 30 天的 HRV(心率变异性)、静息心率以及当天的身体状态变化,综合评估你的整体压力水平。'**
  String get todayStressStatusWhatDescription1;

  /// No description provided for @todayStressStatusWhatDescription2.
  ///
  /// In zh, this message translates to:
  /// **'由于 HRV 会随着情绪、运动、睡眠和疲劳不断波动,单次数据参考意义有限,因此我们更建议关注一整天的综合压力状态,让结果更稳定、更有参考价值。综合压力不仅能帮助你了解自己的身体状态,也能让亲密联系人更及时地关注你的变化。'**
  String get todayStressStatusWhatDescription2;

  /// No description provided for @todayStressStatusWhyHrvTitle.
  ///
  /// In zh, this message translates to:
  /// **'为什么要参考 HRV(心率变异性)?'**
  String get todayStressStatusWhyHrvTitle;

  /// No description provided for @todayStressStatusWhyHrvDescription.
  ///
  /// In zh, this message translates to:
  /// **'HRV 是衡量身体压力与恢复能力的重要指标。'**
  String get todayStressStatusWhyHrvDescription;

  /// No description provided for @todayStressStatusUsually.
  ///
  /// In zh, this message translates to:
  /// **'通常来说:'**
  String get todayStressStatusUsually;

  /// No description provided for @todayStressStatusHrvHigher.
  ///
  /// In zh, this message translates to:
  /// **'· HRV 越高,代表身体恢复状态越好'**
  String get todayStressStatusHrvHigher;

  /// No description provided for @todayStressStatusHrvLower.
  ///
  /// In zh, this message translates to:
  /// **'· HRV 越低,可能意味着疲劳、压力或睡眠不足'**
  String get todayStressStatusHrvLower;

  /// No description provided for @todayStressStatusHrvChangesFast.
  ///
  /// In zh, this message translates to:
  /// **'· HRV 变化较快,更适合观察短时间内的身体状态变化。'**
  String get todayStressStatusHrvChangesFast;

  /// No description provided for @todayStressStatusAppWatchDifferenceTitle.
  ///
  /// In zh, this message translates to:
  /// **'手机 App 与 Apple Watch 显示的压力状态有什么区别?'**
  String get todayStressStatusAppWatchDifferenceTitle;

  /// No description provided for @todayStressStatusAppWatchDifferenceApp.
  ///
  /// In zh, this message translates to:
  /// **'手机 App 首页显示的是当天的综合压力状态,会综合分析 HRV、静息心率与整体趋势。'**
  String get todayStressStatusAppWatchDifferenceApp;

  /// No description provided for @todayStressStatusAppWatchDifferenceWatch.
  ///
  /// In zh, this message translates to:
  /// **'Apple Watch 显示的是最近一次的实时压力状态,更适合快速查看当前身体变化。'**
  String get todayStressStatusAppWatchDifferenceWatch;

  /// No description provided for @todayStressStatusWaitingDataTitle.
  ///
  /// In zh, this message translates to:
  /// **'为什么会出现“等待数据”?'**
  String get todayStressStatusWaitingDataTitle;

  /// No description provided for @todayStressStatusWaitingDataDescription1.
  ///
  /// In zh, this message translates to:
  /// **'“等待数据”代表当前采集到的数据量不足,暂时无法生成可靠的压力评估。'**
  String get todayStressStatusWaitingDataDescription1;

  /// No description provided for @todayStressStatusWaitingDataDescription2.
  ///
  /// In zh, this message translates to:
  /// **'请继续佩戴 Apple Watch,等待系统自动采集数据。'**
  String get todayStressStatusWaitingDataDescription2;

  /// No description provided for @todayStressStatusWaitingDataReasonsIntro.
  ///
  /// In zh, this message translates to:
  /// **'可能原因包括:'**
  String get todayStressStatusWaitingDataReasonsIntro;

  /// No description provided for @todayStressStatusWaitingDataReason1.
  ///
  /// In zh, this message translates to:
  /// **'1. HRV 数据采样不足'**
  String get todayStressStatusWaitingDataReason1;

  /// No description provided for @todayStressStatusWaitingDataReason2.
  ///
  /// In zh, this message translates to:
  /// **'2. 缺少静息心率数据'**
  String get todayStressStatusWaitingDataReason2;

  /// No description provided for @todayStressStatusWaitingDataReason3.
  ///
  /// In zh, this message translates to:
  /// **'3. Apple Watch 佩戴时间较短'**
  String get todayStressStatusWaitingDataReason3;

  /// No description provided for @todayStressStatusWaitingDataReason4.
  ///
  /// In zh, this message translates to:
  /// **'4. Apple Health 权限未开启'**
  String get todayStressStatusWaitingDataReason4;

  /// No description provided for @todayHrvPrincipleHowMeasureTitle.
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel 如何测量压力状态?'**
  String get todayHrvPrincipleHowMeasureTitle;

  /// No description provided for @todayHrvPrincipleHowMeasureDescription1.
  ///
  /// In zh, this message translates to:
  /// **'当你正常佩戴 Apple Watch 时,系统会自动采集你的心率数据,并同步至 Apple Health。'**
  String get todayHrvPrincipleHowMeasureDescription1;

  /// No description provided for @todayHrvPrincipleHowMeasureDescription2.
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel 会基于这些数据计算 HRV(心率变异性)相关指标,用于评估你的身体压力与恢复状态。'**
  String get todayHrvPrincipleHowMeasureDescription2;

  /// No description provided for @todayHrvPrincipleHowMeasureDescription3.
  ///
  /// In zh, this message translates to:
  /// **'HRV 对压力、疲劳、睡眠、情绪与身体恢复都非常敏感,因此它能够帮助我们更早发现身体状态变化。'**
  String get todayHrvPrincipleHowMeasureDescription3;

  /// No description provided for @todayHrvPrincipleHowMeasureDescription4.
  ///
  /// In zh, this message translates to:
  /// **'为了让结果更准确,DoubleFeel 会将你当前的 HRV 状态与过去 30 天的个人平均水平进行对比,而不是直接与其他人比较。'**
  String get todayHrvPrincipleHowMeasureDescription4;

  /// No description provided for @todayRealtimeStressWhatTitle.
  ///
  /// In zh, this message translates to:
  /// **'什么是实时压力?'**
  String get todayRealtimeStressWhatTitle;

  /// No description provided for @todayRealtimeStressWhatDescription1.
  ///
  /// In zh, this message translates to:
  /// **'实时压力是 DoubleFeel 根据你当前的 HRV、心率状态与个人历史数据变化,动态生成的身体压力指标。'**
  String get todayRealtimeStressWhatDescription1;

  /// No description provided for @todayRealtimeStressWhatDescription2.
  ///
  /// In zh, this message translates to:
  /// **'压力值越高,代表你的身体状态相比平时偏离越明显,可能正处于疲劳、恢复不足或高压力状态。'**
  String get todayRealtimeStressWhatDescription2;

  /// No description provided for @todayRealtimeStressWhatDescription3.
  ///
  /// In zh, this message translates to:
  /// **'它能够帮助你更快发现身体变化,并及时调整休息、运动与生活节奏。'**
  String get todayRealtimeStressWhatDescription3;

  /// No description provided for @todayRealtimeStressDivisionTitle.
  ///
  /// In zh, this message translates to:
  /// **'实时压力如何划分?'**
  String get todayRealtimeStressDivisionTitle;

  /// No description provided for @todayRealtimeStressDivisionIntro.
  ///
  /// In zh, this message translates to:
  /// **'实时压力以百分比形式展示:'**
  String get todayRealtimeStressDivisionIntro;

  /// No description provided for @todayRealtimeStressExcellentRange.
  ///
  /// In zh, this message translates to:
  /// **'状态优秀:1%~20%'**
  String get todayRealtimeStressExcellentRange;

  /// No description provided for @todayRealtimeStressNormalRange.
  ///
  /// In zh, this message translates to:
  /// **'状态正常:21%~60%'**
  String get todayRealtimeStressNormalRange;

  /// No description provided for @todayRealtimeStressCautionRange.
  ///
  /// In zh, this message translates to:
  /// **'注意压力:61%~80%'**
  String get todayRealtimeStressCautionRange;

  /// No description provided for @todayRealtimeStressOverloadRange.
  ///
  /// In zh, this message translates to:
  /// **'压力过载:81%~100%'**
  String get todayRealtimeStressOverloadRange;

  /// No description provided for @todayRealtimeStressExcellentDescription.
  ///
  /// In zh, this message translates to:
  /// **'身体恢复状态较好,整体较放松。'**
  String get todayRealtimeStressExcellentDescription;

  /// No description provided for @todayRealtimeStressNormalDescription.
  ///
  /// In zh, this message translates to:
  /// **'身体处于正常波动范围。'**
  String get todayRealtimeStressNormalDescription;

  /// No description provided for @todayRealtimeStressCautionDescription.
  ///
  /// In zh, this message translates to:
  /// **'身体可能正在积累压力,需要适当休息与恢复。'**
  String get todayRealtimeStressCautionDescription;

  /// No description provided for @todayRealtimeStressOverloadDescription.
  ///
  /// In zh, this message translates to:
  /// **'身体压力明显偏高,建议减少负荷、注意睡眠与恢复。'**
  String get todayRealtimeStressOverloadDescription;

  /// No description provided for @todayRealtimeStressDivisionBaseline.
  ///
  /// In zh, this message translates to:
  /// **'以上区间会结合你的个人基线动态调整,不同用户之间并不直接比较。'**
  String get todayRealtimeStressDivisionBaseline;

  /// No description provided for @todayRealtimeStressDivisionAwake.
  ///
  /// In zh, this message translates to:
  /// **'此外,实时压力主要反映清醒状态下的身体压力变化。'**
  String get todayRealtimeStressDivisionAwake;

  /// No description provided for @todayRealtimeStressLowBetterTitle.
  ///
  /// In zh, this message translates to:
  /// **'实时压力越低越好吗?'**
  String get todayRealtimeStressLowBetterTitle;

  /// No description provided for @todayRealtimeStressLowBetterNo.
  ///
  /// In zh, this message translates to:
  /// **'并不一定。'**
  String get todayRealtimeStressLowBetterNo;

  /// No description provided for @todayRealtimeStressLowBetterType.
  ///
  /// In zh, this message translates to:
  /// **'身体压力分为“正常压力”与“异常压力”。'**
  String get todayRealtimeStressLowBetterType;

  /// No description provided for @todayRealtimeStressLowBetterExample.
  ///
  /// In zh, this message translates to:
  /// **'例如:运动期间或运动后,实时压力短时间升高属于正常恢复反应;工作专注、情绪兴奋时,压力也可能暂时升高,这些都属于正常的身体调节。'**
  String get todayRealtimeStressLowBetterExample;

  /// No description provided for @todayRealtimeStressLowBetterHighStress.
  ///
  /// In zh, this message translates to:
  /// **'但如果在静息、久坐或睡眠不足的情况下,压力长期偏高,则可能意味着身体疲劳、心理压力较大、睡眠恢复不足、运动恢复不充分、摄入过多咖啡因、酒精或刺激物、身体可能处于不适状态。'**
  String get todayRealtimeStressLowBetterHighStress;

  /// No description provided for @todayRealtimeStressLowBetterTrend.
  ///
  /// In zh, this message translates to:
  /// **'DoubleFeel 更关注的是你的长期变化趋势,而不是单次波动。'**
  String get todayRealtimeStressLowBetterTrend;

  /// No description provided for @todayRealtimeStressScenarioTitle.
  ///
  /// In zh, this message translates to:
  /// **'HRV 与实时压力适用场景?'**
  String get todayRealtimeStressScenarioTitle;

  /// No description provided for @todayRealtimeStressScenarioHrvDefault.
  ///
  /// In zh, this message translates to:
  /// **'在 Apple Watch 的默认设置下,HRV 每 2~5 小时更新一次。'**
  String get todayRealtimeStressScenarioHrvDefault;

  /// No description provided for @todayRealtimeStressScenarioRegionLimit.
  ///
  /// In zh, this message translates to:
  /// **'在部分地区,由于 Apple Watch 的呼吸功能受限,HRV 的更新频率可能会受到影响,并且开启呼吸功能后也会消耗更多电量。'**
  String get todayRealtimeStressScenarioRegionLimit;

  /// No description provided for @todayRealtimeStressScenarioIntro.
  ///
  /// In zh, this message translates to:
  /// **'为了解决 HRV 更新间隔较长的问题,DoubleFeel 设计了实时压力功能:'**
  String get todayRealtimeStressScenarioIntro;

  /// No description provided for @todayRealtimeStressScenarioUpdateEvery6Min.
  ///
  /// In zh, this message translates to:
  /// **'· 实时压力每 6 分钟更新一次'**
  String get todayRealtimeStressScenarioUpdateEvery6Min;

  /// No description provided for @todayRealtimeStressScenarioTimely.
  ///
  /// In zh, this message translates to:
  /// **'· 可以更及时地反映身体状态变化'**
  String get todayRealtimeStressScenarioTimely;

  /// No description provided for @todayRealtimeStressScenarioConsistentTrend.
  ///
  /// In zh, this message translates to:
  /// **'· 在大多数情况下,实时压力趋势与 HRV 趋势是一致的'**
  String get todayRealtimeStressScenarioConsistentTrend;

  /// No description provided for @todayRealtimeStressScenarioSummary.
  ///
  /// In zh, this message translates to:
  /// **'这样用户既能获得 HRV 的长期趋势,也能通过实时压力获得短时身体状态的参考。'**
  String get todayRealtimeStressScenarioSummary;

  /// No description provided for @todayFaqNoDataTitle.
  ///
  /// In zh, this message translates to:
  /// **'APP或表盘有没有数据怎么办?'**
  String get todayFaqNoDataTitle;

  /// No description provided for @todayFaqNoDataDescription1.
  ///
  /// In zh, this message translates to:
  /// **'1. 确认苹果手表系统在10.0以上,手机系统在14以上,系统版本可在「关于本机」内查看。'**
  String get todayFaqNoDataDescription1;

  /// No description provided for @todayFaqNoDataDescription2.
  ///
  /// In zh, this message translates to:
  /// **'2. 确认是否开启所有权限:手机「健康」-「共享」-「app」-「DoubleFeel」-「打开所有权限」。'**
  String get todayFaqNoDataDescription2;

  /// No description provided for @todayFaqNoDataDescription3.
  ///
  /// In zh, this message translates to:
  /// **'3. 确认设备是否处于省电模式、低电量状态或手表佩戴未贴紧,以上情况会影响手表数据采集。'**
  String get todayFaqNoDataDescription3;

  /// No description provided for @todayFaqContactPrefix.
  ///
  /// In zh, this message translates to:
  /// **'如以上均检查无问题,可以'**
  String get todayFaqContactPrefix;

  /// No description provided for @todayFaqContactAction.
  ///
  /// In zh, this message translates to:
  /// **'联系我们'**
  String get todayFaqContactAction;

  /// No description provided for @todayFaqContactSuffix.
  ///
  /// In zh, this message translates to:
  /// **'。'**
  String get todayFaqContactSuffix;

  /// No description provided for @todayFaqWatchNoNotificationTitle.
  ///
  /// In zh, this message translates to:
  /// **'手表无法收到状态通知?'**
  String get todayFaqWatchNoNotificationTitle;

  /// No description provided for @todayFaqWatchNoNotificationDescription1.
  ///
  /// In zh, this message translates to:
  /// **'苹果手表和手机的通知展示有优先级:当手机已解锁并亮屏时,通知只会在手机端展示,不会在手表上出现。'**
  String get todayFaqWatchNoNotificationDescription1;

  /// No description provided for @todayFaqWatchNoNotificationDescription2.
  ///
  /// In zh, this message translates to:
  /// **'若压力数据可正常显示和自动更新,但手表未收到通知,可尝试以下操作:'**
  String get todayFaqWatchNoNotificationDescription2;

  /// No description provided for @todayFaqWatchNoNotificationCheckPhoneNotification.
  ///
  /// In zh, this message translates to:
  /// **'1. 检查手机是否打开通知(设置-DoubleFeel-通知)。'**
  String get todayFaqWatchNoNotificationCheckPhoneNotification;

  /// No description provided for @todayFaqWatchNoNotificationCheckPhoneBackgroundRefresh.
  ///
  /// In zh, this message translates to:
  /// **'2. 检查手机是否打开后台App刷新(设置-DoubleFeel-后台App刷新)。'**
  String get todayFaqWatchNoNotificationCheckPhoneBackgroundRefresh;

  /// No description provided for @todayFaqWatchNoNotificationCheckWatchBackgroundRefresh.
  ///
  /// In zh, this message translates to:
  /// **'3. 检查手表是否打开后台App刷新(设置-通用-后台App刷新,并确保DoubleFeel开启)。'**
  String get todayFaqWatchNoNotificationCheckWatchBackgroundRefresh;

  /// No description provided for @todayFaqWatchNoNotificationCheckModes.
  ///
  /// In zh, this message translates to:
  /// **'4. 确保未处于低电量/专注/勿扰/剧院/睡眠等模式。'**
  String get todayFaqWatchNoNotificationCheckModes;

  /// No description provided for @todayFaqWatchNoNotificationReinstall.
  ///
  /// In zh, this message translates to:
  /// **'5. 重装DoubleFeel 并重启AppleWatch与iPhone。'**
  String get todayFaqWatchNoNotificationReinstall;

  /// No description provided for @todayFaqWatchFaceDelayTitle.
  ///
  /// In zh, this message translates to:
  /// **'手表表盘数据不更新或有延迟?'**
  String get todayFaqWatchFaceDelayTitle;

  /// No description provided for @todayFaqWatchFaceDelayDescription1.
  ///
  /// In zh, this message translates to:
  /// **'由于苹果系统限制,所有手表表盘(第三方或官方)都会存在几分钟至半小时的延迟,开发者无法控制刷新频率。'**
  String get todayFaqWatchFaceDelayDescription1;

  /// No description provided for @todayFaqWatchFaceDelayIfOverOneHour.
  ///
  /// In zh, this message translates to:
  /// **'若手机数据刷新后超过1小时表盘仍未更新:'**
  String get todayFaqWatchFaceDelayIfOverOneHour;

  /// No description provided for @todayFaqWatchFaceDelayOpenWatchApp.
  ///
  /// In zh, this message translates to:
  /// **'请在手表上手动打开DoubleFeel,等待约1分钟。'**
  String get todayFaqWatchFaceDelayOpenWatchApp;

  /// No description provided for @todayFaqWatchFaceDelayIfStill.
  ///
  /// In zh, this message translates to:
  /// **'若仍未更新:'**
  String get todayFaqWatchFaceDelayIfStill;

  /// No description provided for @todayFaqWatchFaceDelayRestartApp.
  ///
  /// In zh, this message translates to:
  /// **'关闭DoubleFeel后台进程并重启。'**
  String get todayFaqWatchFaceDelayRestartApp;

  /// No description provided for @todayFaqWatchFaceDelayCheckIntro.
  ///
  /// In zh, this message translates to:
  /// **'仍无效时,请检查:'**
  String get todayFaqWatchFaceDelayCheckIntro;

  /// No description provided for @todayFaqWatchFaceDelayCheckData.
  ///
  /// In zh, this message translates to:
  /// **'· 手机和手表app是否可正常看到HRV数据。'**
  String get todayFaqWatchFaceDelayCheckData;

  /// No description provided for @todayFaqWatchFaceDelayCheckPhoneHealth.
  ///
  /// In zh, this message translates to:
  /// **'· 确保手机端「iOS设置-隐私与安全性-健康-DoubleFeel」全部授权。'**
  String get todayFaqWatchFaceDelayCheckPhoneHealth;

  /// No description provided for @todayFaqWatchFaceDelayCheckWatchHealth.
  ///
  /// In zh, this message translates to:
  /// **'· 确保手表端「设置-健康-数据来源、App和服务-DoubleFeel」全部授权。'**
  String get todayFaqWatchFaceDelayCheckWatchHealth;

  /// No description provided for @todayFaqWatchFaceDelayCheckBackgroundRefresh.
  ///
  /// In zh, this message translates to:
  /// **'· 确认AppleWatch-设置-通用-后台App刷新中DoubleFeel已开启。'**
  String get todayFaqWatchFaceDelayCheckBackgroundRefresh;

  /// No description provided for @todayFaqWatchFaceDelayRestartWatch.
  ///
  /// In zh, this message translates to:
  /// **'· 若仍未自动刷新,请重启手表。长时间运行或后台占用过高可能导致表盘暂停更新。'**
  String get todayFaqWatchFaceDelayRestartWatch;

  /// No description provided for @todayFaqWatchFaceBlackScreenTitle.
  ///
  /// In zh, this message translates to:
  /// **'手表表盘出现黑屏?'**
  String get todayFaqWatchFaceBlackScreenTitle;

  /// No description provided for @todayFaqWatchFaceBlackScreenDescription.
  ///
  /// In zh, this message translates to:
  /// **'若添加专属互动表盘后出现黑屏(仅显示时间和日期),可长按表盘,点击「编辑」,左滑至「复杂功能」,选择 DoubleFeel,然后按需选择各组件重新添加。'**
  String get todayFaqWatchFaceBlackScreenDescription;

  /// No description provided for @today.
  ///
  /// In zh, this message translates to:
  /// **'今天'**
  String get today;

  /// No description provided for @yesterday.
  ///
  /// In zh, this message translates to:
  /// **'昨天'**
  String get yesterday;

  /// No description provided for @backToToday.
  ///
  /// In zh, this message translates to:
  /// **'回今天'**
  String get backToToday;

  /// No description provided for @redeemOffer.
  ///
  /// In zh, this message translates to:
  /// **'领取优惠'**
  String get redeemOffer;

  /// No description provided for @allPlans.
  ///
  /// In zh, this message translates to:
  /// **'全部方案'**
  String get allPlans;

  /// No description provided for @clickToAddTheHrvThemedWatchFace.
  ///
  /// In zh, this message translates to:
  /// **'点击添加HRV主题表盘'**
  String get clickToAddTheHrvThemedWatchFace;

  /// No description provided for @stayOnTopOfYourHealthFluctuations.
  ///
  /// In zh, this message translates to:
  /// **'时刻掌握自身健康波动'**
  String get stayOnTopOfYourHealthFluctuations;

  /// No description provided for @addACloseContact.
  ///
  /// In zh, this message translates to:
  /// **'添加亲密联系人'**
  String get addACloseContact;

  /// No description provided for @oneMorePersonLookingOutForYourHealth.
  ///
  /// In zh, this message translates to:
  /// **'多一个人关注你的健康'**
  String get oneMorePersonLookingOutForYourHealth;

  /// No description provided for @addAFriend.
  ///
  /// In zh, this message translates to:
  /// **'加好友'**
  String get addAFriend;

  /// No description provided for @averageHrvForTheDay.
  ///
  /// In zh, this message translates to:
  /// **'该日平均HRV'**
  String get averageHrvForTheDay;

  /// No description provided for @restingHeartRate.
  ///
  /// In zh, this message translates to:
  /// **'静息心率'**
  String get restingHeartRate;

  /// No description provided for @todaySHrvTrend.
  ///
  /// In zh, this message translates to:
  /// **'今日HRV趋势'**
  String get todaySHrvTrend;

  /// No description provided for @more.
  ///
  /// In zh, this message translates to:
  /// **'更多'**
  String get more;

  /// No description provided for @noDataAvailableForToday.
  ///
  /// In zh, this message translates to:
  /// **'暂无今日数据'**
  String get noDataAvailableForToday;

  /// No description provided for @realTimePressure.
  ///
  /// In zh, this message translates to:
  /// **'实时压力'**
  String get realTimePressure;

  /// No description provided for @accountInformation.
  ///
  /// In zh, this message translates to:
  /// **'账号信息'**
  String get accountInformation;

  /// No description provided for @help.
  ///
  /// In zh, this message translates to:
  /// **'帮助'**
  String get help;

  /// No description provided for @changeNickname.
  ///
  /// In zh, this message translates to:
  /// **'修改昵称'**
  String get changeNickname;

  /// No description provided for @pleaseEnterANickname.
  ///
  /// In zh, this message translates to:
  /// **'请输入昵称'**
  String get pleaseEnterANickname;

  /// No description provided for @feedbackLog.
  ///
  /// In zh, this message translates to:
  /// **'反馈记录'**
  String get feedbackLog;

  /// No description provided for @noFeedbackRecordsYet.
  ///
  /// In zh, this message translates to:
  /// **'暂无反馈记录'**
  String get noFeedbackRecordsYet;

  /// No description provided for @feedbackDetails.
  ///
  /// In zh, this message translates to:
  /// **'反馈详情'**
  String get feedbackDetails;

  /// No description provided for @reportAnIssue.
  ///
  /// In zh, this message translates to:
  /// **'问题反馈'**
  String get reportAnIssue;

  /// No description provided for @contactInformation.
  ///
  /// In zh, this message translates to:
  /// **'联系方式'**
  String get contactInformation;

  /// No description provided for @submit.
  ///
  /// In zh, this message translates to:
  /// **'提交'**
  String get submit;

  /// No description provided for @questionsAndFeedback.
  ///
  /// In zh, this message translates to:
  /// **'问题和反馈'**
  String get questionsAndFeedback;

  /// No description provided for @ifYouWouldLikeUsToReplyPleaseProvideYourEmailAddress.
  ///
  /// In zh, this message translates to:
  /// **'如果需要我们回复,请填写联系邮箱'**
  String get ifYouWouldLikeUsToReplyPleaseProvideYourEmailAddress;

  /// No description provided for @uploadProof.
  ///
  /// In zh, this message translates to:
  /// **'上传凭证'**
  String get uploadProof;

  /// No description provided for @frequentlyAskedQuestions.
  ///
  /// In zh, this message translates to:
  /// **'常见问题'**
  String get frequentlyAskedQuestions;

  /// No description provided for @areYouSureYouWantToDeleteYourAccount.
  ///
  /// In zh, this message translates to:
  /// **'确认注销账号吗?'**
  String get areYouSureYouWantToDeleteYourAccount;

  /// No description provided for @accountSettings.
  ///
  /// In zh, this message translates to:
  /// **'账号设置'**
  String get accountSettings;

  /// No description provided for @deleteAccount.
  ///
  /// In zh, this message translates to:
  /// **'注销账号'**
  String get deleteAccount;

  /// No description provided for @mobilePhoneNumber.
  ///
  /// In zh, this message translates to:
  /// **'手机号'**
  String get mobilePhoneNumber;

  /// No description provided for @logOut.
  ///
  /// In zh, this message translates to:
  /// **'退出登录'**
  String get logOut;

  /// No description provided for @confirmDeletion.
  ///
  /// In zh, this message translates to:
  /// **'确认注销'**
  String get confirmDeletion;

  /// No description provided for @iLlThinkAboutItSomeMore.
  ///
  /// In zh, this message translates to:
  /// **'我再想想'**
  String get iLlThinkAboutItSomeMore;

  /// No description provided for @sleep.
  ///
  /// In zh, this message translates to:
  /// **'睡眠'**
  String get sleep;

  /// No description provided for @viewSleepReport.
  ///
  /// In zh, this message translates to:
  /// **'查看睡眠报告'**
  String get viewSleepReport;

  /// No description provided for @duration.
  ///
  /// In zh, this message translates to:
  /// **'时长'**
  String get duration;

  /// No description provided for @quality.
  ///
  /// In zh, this message translates to:
  /// **'质量'**
  String get quality;

  /// No description provided for @averageHeartRate.
  ///
  /// In zh, this message translates to:
  /// **'平均心率'**
  String get averageHeartRate;

  /// No description provided for @fitness.
  ///
  /// In zh, this message translates to:
  /// **'健身'**
  String get fitness;

  /// No description provided for @viewFitnessReport.
  ///
  /// In zh, this message translates to:
  /// **'查看健身报告'**
  String get viewFitnessReport;

  /// No description provided for @event.
  ///
  /// In zh, this message translates to:
  /// **'活动'**
  String get event;

  /// No description provided for @exercise.
  ///
  /// In zh, this message translates to:
  /// **'锻炼'**
  String get exercise;

  /// No description provided for @standing.
  ///
  /// In zh, this message translates to:
  /// **'站立'**
  String get standing;

  /// No description provided for @dailyActions.
  ///
  /// In zh, this message translates to:
  /// **'每日行动'**
  String get dailyActions;
}

class _AppLocalizationsDelegate
    extends LocalizationsDelegate<AppLocalizations> {
  const _AppLocalizationsDelegate();

  @override
  Future<AppLocalizations> load(Locale locale) {
    return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
  }

  @override
  bool isSupported(Locale locale) =>
      <String>['en', 'zh'].contains(locale.languageCode);

  @override
  bool shouldReload(_AppLocalizationsDelegate old) => false;
}

AppLocalizations lookupAppLocalizations(Locale locale) {
  // Lookup logic when only language code is specified.
  switch (locale.languageCode) {
    case 'en':
      return AppLocalizationsEn();
    case 'zh':
      return AppLocalizationsZh();
  }

  throw FlutterError(
      'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
      'an issue with the localizations generation tool. Please file an issue '
      'on GitHub with a reproducible sample app and the gen-l10n configuration '
      'that was used.');
}