Showing
8 changed files
with
211 additions
and
42 deletions
| @@ -18,6 +18,7 @@ import 'package:doublefeel_flutter/data/models/user/user_models.dart'; | @@ -18,6 +18,7 @@ import 'package:doublefeel_flutter/data/models/user/user_models.dart'; | ||
| 18 | import 'package:doublefeel_flutter/l10n/l10n_extensions.dart'; | 18 | import 'package:doublefeel_flutter/l10n/l10n_extensions.dart'; |
| 19 | import 'package:flutter/material.dart'; | 19 | import 'package:flutter/material.dart'; |
| 20 | import 'package:get/get.dart'; | 20 | import 'package:get/get.dart'; |
| 21 | +import 'package:intl/intl.dart'; | ||
| 21 | 22 | ||
| 22 | import '../../../../../core/theme/app_colors.dart'; | 23 | import '../../../../../core/theme/app_colors.dart'; |
| 23 | 24 | ||
| @@ -536,7 +537,7 @@ class _ProCard extends StatelessWidget { | @@ -536,7 +537,7 @@ class _ProCard extends StatelessWidget { | ||
| 536 | ), | 537 | ), |
| 537 | const SizedBox(height: 2), | 538 | const SizedBox(height: 2), |
| 538 | Text( | 539 | Text( |
| 539 | - _vipSubtitle(vipInfo), | 540 | + _vipSubtitle(vipInfo, context), |
| 540 | maxLines: 1, | 541 | maxLines: 1, |
| 541 | overflow: TextOverflow.ellipsis, | 542 | overflow: TextOverflow.ellipsis, |
| 542 | style: const TextStyle( | 543 | style: const TextStyle( |
| @@ -565,21 +566,25 @@ class _ProCard extends StatelessWidget { | @@ -565,21 +566,25 @@ class _ProCard extends StatelessWidget { | ||
| 565 | ); | 566 | ); |
| 566 | } | 567 | } |
| 567 | 568 | ||
| 568 | - String _vipSubtitle(UserPreferencesVipInfo? vipInfo) { | 569 | + String _vipSubtitle(UserPreferencesVipInfo? vipInfo, BuildContext context) { |
| 569 | final endDate = vipInfo?.vipEndDate ?? 0; | 570 | final endDate = vipInfo?.vipEndDate ?? 0; |
| 570 | if (vipInfo?.isVip != true || endDate <= 0) { | 571 | if (vipInfo?.isVip != true || endDate <= 0) { |
| 571 | - return '立即解锁'; | 572 | + return l10n.unlockNow; |
| 572 | } | 573 | } |
| 573 | 574 | ||
| 574 | if (vipInfo?.isForeverVip ?? false) { | 575 | if (vipInfo?.isForeverVip ?? false) { |
| 575 | - return '终身会员'; | 576 | + return l10n.purchaseLifetimePlan; |
| 576 | } | 577 | } |
| 577 | 578 | ||
| 578 | final milliseconds = endDate > 1000000000000 ? endDate : endDate * 1000; | 579 | final milliseconds = endDate > 1000000000000 ? endDate : endDate * 1000; |
| 579 | final date = DateTime.fromMillisecondsSinceEpoch(milliseconds); | 580 | final date = DateTime.fromMillisecondsSinceEpoch(milliseconds); |
| 580 | - final month = date.month.toString().padLeft(2, '0'); | ||
| 581 | - final day = date.day.toString().padLeft(2, '0'); | ||
| 582 | - return '有效期至 ${date.year}-$month-$day'; | 581 | + // final month = date.month.toString().padLeft(2, '0'); |
| 582 | + // final day = date.day.toString().padLeft(2, '0'); | ||
| 583 | + final locale = Localizations.localeOf(context).languageCode; | ||
| 584 | + | ||
| 585 | + final dateStr = DateFormat.yMMMd(locale).format(date); | ||
| 586 | + | ||
| 587 | + return l10n.membershipValidUntilDate(dateStr); | ||
| 583 | } | 588 | } |
| 584 | } | 589 | } |
| 585 | 590 |
| @@ -7,8 +7,10 @@ import 'package:doublefeel_flutter/core/theme/app_theme.dart'; | @@ -7,8 +7,10 @@ import 'package:doublefeel_flutter/core/theme/app_theme.dart'; | ||
| 7 | import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart'; | 7 | import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart'; |
| 8 | import 'package:doublefeel_flutter/data/models/local/user_preferences.dart'; | 8 | import 'package:doublefeel_flutter/data/models/local/user_preferences.dart'; |
| 9 | import 'package:doublefeel_flutter/l10n/l10n_extensions.dart'; | 9 | import 'package:doublefeel_flutter/l10n/l10n_extensions.dart'; |
| 10 | +import 'package:doublefeel_flutter/l10n/l10n_extensions.dart' as context; | ||
| 10 | import 'package:flutter/material.dart'; | 11 | import 'package:flutter/material.dart'; |
| 11 | import 'package:get/get.dart'; | 12 | import 'package:get/get.dart'; |
| 13 | +import 'package:intl/intl.dart'; | ||
| 12 | 14 | ||
| 13 | class MembershipDetailView extends GetView<MembershipDetailController> { | 15 | class MembershipDetailView extends GetView<MembershipDetailController> { |
| 14 | const MembershipDetailView({super.key}); | 16 | const MembershipDetailView({super.key}); |
| @@ -115,7 +117,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -115,7 +117,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 115 | final preferences = userPrefs.preferences.value; | 117 | final preferences = userPrefs.preferences.value; |
| 116 | final vipInfo = preferences.vipInfo; | 118 | final vipInfo = preferences.vipInfo; |
| 117 | return Text( | 119 | return Text( |
| 118 | - _vipSubtitle(vipInfo), | 120 | + _vipSubtitle(vipInfo, context), |
| 119 | style: TextStyle( | 121 | style: TextStyle( |
| 120 | color: context.colors.textPrimary, | 122 | color: context.colors.textPrimary, |
| 121 | fontSize: 14, | 123 | fontSize: 14, |
| @@ -140,7 +142,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -140,7 +142,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 140 | padding: const EdgeInsets.only( | 142 | padding: const EdgeInsets.only( |
| 141 | top: 28, left: 16, right: 16, bottom: 16), | 143 | top: 28, left: 16, right: 16, bottom: 16), |
| 142 | child: Text( | 144 | child: Text( |
| 143 | - '畅享全部高级权益', | 145 | + context.l10n.enjoyAllPremiumBenefits, |
| 144 | style: TextStyle( | 146 | style: TextStyle( |
| 145 | color: Colors.black, | 147 | color: Colors.black, |
| 146 | fontSize: 18, | 148 | fontSize: 18, |
| @@ -164,7 +166,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -164,7 +166,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 164 | padding: const EdgeInsets.only( | 166 | padding: const EdgeInsets.only( |
| 165 | top: 28, left: 16, right: 16), | 167 | top: 28, left: 16, right: 16), |
| 166 | child: Text( | 168 | child: Text( |
| 167 | - '会员管理', | 169 | + context.l10n.membershipManagement, |
| 168 | style: TextStyle( | 170 | style: TextStyle( |
| 169 | color: Colors.black, | 171 | color: Colors.black, |
| 170 | fontSize: 18, | 172 | fontSize: 18, |
| @@ -189,7 +191,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -189,7 +191,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 189 | child: Row( | 191 | child: Row( |
| 190 | children: [ | 192 | children: [ |
| 191 | Text( | 193 | Text( |
| 192 | - '会员类型', | 194 | + context.l10n.membershipTypes, |
| 193 | textAlign: TextAlign.center, | 195 | textAlign: TextAlign.center, |
| 194 | style: TextStyle( | 196 | style: TextStyle( |
| 195 | color: context.colors.textPrimary, | 197 | color: context.colors.textPrimary, |
| @@ -220,7 +222,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -220,7 +222,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 220 | child: Row( | 222 | child: Row( |
| 221 | children: [ | 223 | children: [ |
| 222 | Text( | 224 | Text( |
| 223 | - '有效期至', | 225 | + context.l10n.validUntil, |
| 224 | textAlign: TextAlign.center, | 226 | textAlign: TextAlign.center, |
| 225 | style: TextStyle( | 227 | style: TextStyle( |
| 226 | color: context.colors.textPrimary, | 228 | color: context.colors.textPrimary, |
| @@ -234,7 +236,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -234,7 +236,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 234 | userPrefs.preferences.value; | 236 | userPrefs.preferences.value; |
| 235 | final vipInfo = preferences.vipInfo; | 237 | final vipInfo = preferences.vipInfo; |
| 236 | return Text( | 238 | return Text( |
| 237 | - _vipExprieDate(vipInfo), | 239 | + _vipExprieDate(vipInfo, context), |
| 238 | textAlign: TextAlign.center, | 240 | textAlign: TextAlign.center, |
| 239 | style: TextStyle( | 241 | style: TextStyle( |
| 240 | color: context.colors.textPrimary, | 242 | color: context.colors.textPrimary, |
| @@ -260,7 +262,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -260,7 +262,7 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 260 | child: Row( | 262 | child: Row( |
| 261 | children: [ | 263 | children: [ |
| 262 | Text( | 264 | Text( |
| 263 | - '管理订阅', | 265 | + context.l10n.manageSubscriptions, |
| 264 | textAlign: TextAlign.center, | 266 | textAlign: TextAlign.center, |
| 265 | style: TextStyle( | 267 | style: TextStyle( |
| 266 | color: context.colors.textPrimary, | 268 | color: context.colors.textPrimary, |
| @@ -294,57 +296,61 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | @@ -294,57 +296,61 @@ class MembershipDetailView extends GetView<MembershipDetailController> { | ||
| 294 | ); | 296 | ); |
| 295 | } | 297 | } |
| 296 | 298 | ||
| 297 | - String _vipSubtitle(UserPreferencesVipInfo? vipInfo) { | 299 | + String _vipSubtitle(UserPreferencesVipInfo? vipInfo, BuildContext context) { |
| 298 | final endDate = vipInfo?.vipEndDate ?? 0; | 300 | final endDate = vipInfo?.vipEndDate ?? 0; |
| 299 | if (vipInfo?.isVip != true || endDate <= 0) { | 301 | if (vipInfo?.isVip != true || endDate <= 0) { |
| 300 | - return '立即解锁'; | 302 | + return l10n.unlockNow; |
| 301 | } | 303 | } |
| 302 | 304 | ||
| 303 | if (vipInfo?.isForeverVip ?? false) { | 305 | if (vipInfo?.isForeverVip ?? false) { |
| 304 | - return '终身使用,免费更新'; | 306 | + return l10n.purchaseLifetimePlan; |
| 305 | } | 307 | } |
| 306 | 308 | ||
| 307 | final milliseconds = endDate > 1000000000000 ? endDate : endDate * 1000; | 309 | final milliseconds = endDate > 1000000000000 ? endDate : endDate * 1000; |
| 308 | final date = DateTime.fromMillisecondsSinceEpoch(milliseconds); | 310 | final date = DateTime.fromMillisecondsSinceEpoch(milliseconds); |
| 309 | - final month = date.month.toString().padLeft(2, '0'); | ||
| 310 | - final day = date.day.toString().padLeft(2, '0'); | ||
| 311 | - return '有效期至 ${date.year}-$month-$day'; | 311 | + final locale = Localizations.localeOf(context).languageCode; |
| 312 | + | ||
| 313 | + final dateStr = DateFormat.yMMMd(locale).format(date); | ||
| 314 | + | ||
| 315 | + return l10n.membershipValidUntilDate(dateStr); | ||
| 312 | } | 316 | } |
| 313 | 317 | ||
| 314 | - String _vipExprieDate(UserPreferencesVipInfo? vipInfo) { | 318 | + String _vipExprieDate(UserPreferencesVipInfo? vipInfo, BuildContext context) { |
| 315 | final endDate = vipInfo?.vipEndDate ?? 0; | 319 | final endDate = vipInfo?.vipEndDate ?? 0; |
| 316 | if (vipInfo?.isVip != true || endDate <= 0) { | 320 | if (vipInfo?.isVip != true || endDate <= 0) { |
| 317 | - return '立即解锁'; | 321 | + return l10n.unlockNow; |
| 318 | } | 322 | } |
| 319 | 323 | ||
| 320 | if (vipInfo?.isForeverVip ?? false) { | 324 | if (vipInfo?.isForeverVip ?? false) { |
| 321 | - return '永不过期'; | 325 | + return l10n.purchaseLifetimePlan; |
| 322 | } | 326 | } |
| 323 | 327 | ||
| 324 | final milliseconds = endDate > 1000000000000 ? endDate : endDate * 1000; | 328 | final milliseconds = endDate > 1000000000000 ? endDate : endDate * 1000; |
| 325 | final date = DateTime.fromMillisecondsSinceEpoch(milliseconds); | 329 | final date = DateTime.fromMillisecondsSinceEpoch(milliseconds); |
| 326 | - final month = date.month.toString().padLeft(2, '0'); | ||
| 327 | - final day = date.day.toString().padLeft(2, '0'); | ||
| 328 | - return '${date.year}-$month-$day'; | 330 | + final locale = Localizations.localeOf(context).languageCode; |
| 331 | + | ||
| 332 | + final dateStr = DateFormat.yMMMd(locale).format(date); | ||
| 333 | + | ||
| 334 | + return l10n.membershipValidUntilDate(dateStr); | ||
| 329 | } | 335 | } |
| 330 | 336 | ||
| 331 | String _vipType(UserPreferencesVipInfo? vipInfo) { | 337 | String _vipType(UserPreferencesVipInfo? vipInfo) { |
| 332 | if (vipInfo == null || vipInfo.isVip != true || vipInfo.vipEndDate <= 0) { | 338 | if (vipInfo == null || vipInfo.isVip != true || vipInfo.vipEndDate <= 0) { |
| 333 | - return '立即解锁'; | 339 | + return l10n.unlockNow; |
| 334 | } | 340 | } |
| 335 | 341 | ||
| 336 | if (vipInfo.isForeverVip) { | 342 | if (vipInfo.isForeverVip) { |
| 337 | - return '终身会员'; | 343 | + return l10n.purchaseLifetimePlan; |
| 338 | } | 344 | } |
| 339 | switch (vipInfo.vipType) { | 345 | switch (vipInfo.vipType) { |
| 340 | case 1: | 346 | case 1: |
| 341 | - return '月度会员'; | 347 | + return context.l10n.monthlyMembership; |
| 342 | case 2: | 348 | case 2: |
| 343 | - return '季度会员'; | 349 | + return context.l10n.quarterlyMembership; |
| 344 | case 3: | 350 | case 3: |
| 345 | - return '年度会员'; | 351 | + return context.l10n.annualMembership; |
| 346 | case 10: | 352 | case 10: |
| 347 | - return '终身会员'; | 353 | + return context.l10n.lifetimeMembership; |
| 348 | default: | 354 | default: |
| 349 | return ''; | 355 | return ''; |
| 350 | } | 356 | } |
| @@ -245,7 +245,7 @@ | @@ -245,7 +245,7 @@ | ||
| 245 | "realTimePressure": "Live Stress", | 245 | "realTimePressure": "Live Stress", |
| 246 | "accountInformation": "Account Information", | 246 | "accountInformation": "Account Information", |
| 247 | "help": "Help", | 247 | "help": "Help", |
| 248 | - "changeNickname": "Change Nickname", | 248 | + "changeNickname": "Edit Name", |
| 249 | "pleaseEnterANickname": "Please enter a nickname", | 249 | "pleaseEnterANickname": "Please enter a nickname", |
| 250 | "feedbackLog": "Feedback Log", | 250 | "feedbackLog": "Feedback Log", |
| 251 | "noFeedbackRecordsYet": "No feedback records yet", | 251 | "noFeedbackRecordsYet": "No feedback records yet", |
| @@ -522,7 +522,7 @@ | @@ -522,7 +522,7 @@ | ||
| 522 | "purchaseBenefitCustomWatchFace": "Exclusive Custom Watch Faces", | 522 | "purchaseBenefitCustomWatchFace": "Exclusive Custom Watch Faces", |
| 523 | "purchaseBenefitSleepAnalysis": "Sleep analysis", | 523 | "purchaseBenefitSleepAnalysis": "Sleep analysis", |
| 524 | "purchaseBenefitFutureFeatures": "More Pro Benefits Coming Soon", | 524 | "purchaseBenefitFutureFeatures": "More Pro Benefits Coming Soon", |
| 525 | - "purchaseNotesTitle": "Notes", | 525 | + "purchaseNotesTitle": "Instructions", |
| 526 | "purchaseNoteSubscription": "After you confirm and pay, the subscription will renew automatically through your iTunes account. Your Apple account will be charged within 24 hours before the current period ends, and the subscription will renew for another period. To cancel, turn off auto-renewal in your iTunes/Apple ID subscription settings at least 24 hours before the current period ends.\n\nDoubleFeel Pro is a virtual product. Purchases are non-refundable except through the App Store refund process. Tap ", | 526 | "purchaseNoteSubscription": "After you confirm and pay, the subscription will renew automatically through your iTunes account. Your Apple account will be charged within 24 hours before the current period ends, and the subscription will renew for another period. To cancel, turn off auto-renewal in your iTunes/Apple ID subscription settings at least 24 hours before the current period ends.\n\nDoubleFeel Pro is a virtual product. Purchases are non-refundable except through the App Store refund process. Tap ", |
| 527 | "purchaseLinkLearnMore": "Learn More", | 527 | "purchaseLinkLearnMore": "Learn More", |
| 528 | "purchaseNoteRestore": "If your purchase does not take effect, tap Restore Purchases.", | 528 | "purchaseNoteRestore": "If your purchase does not take effect, tap Restore Purchases.", |
| @@ -584,8 +584,8 @@ | @@ -584,8 +584,8 @@ | ||
| 584 | "pressure": "Pressure", | 584 | "pressure": "Pressure", |
| 585 | "mostRecent": "Latest Reading", | 585 | "mostRecent": "Latest Reading", |
| 586 | "theDayBeforeYesterday": "The day before yesterday", | 586 | "theDayBeforeYesterday": "The day before yesterday", |
| 587 | - "uploadPhotos": "Upload Photos", | ||
| 588 | - "filming": "Filming", | 587 | + "uploadPhotos": "Choose from Library", |
| 588 | + "filming": "Take Photo", | ||
| 589 | "unlockTheProVersion": "Unlock Pro", | 589 | "unlockTheProVersion": "Unlock Pro", |
| 590 | "embarkOnAJourneyOfStressAwarenessAndWellnessSupport": "Begin Your Stress Alerts & Health Journey", | 590 | "embarkOnAJourneyOfStressAwarenessAndWellnessSupport": "Begin Your Stress Alerts & Health Journey", |
| 591 | "sharePartnerCodeTemplate": "My friend ID: {inviteCode}. Hey❤! Come and use DoubleFeel with me! It helps us care for each other—track stress and sleep, view HRV and body status, and stay updated on each other's health in real-time. Come join me 👉 https://apps.apple.com/cn/app/doublefeel-%E5%8F%8C%E4%BA%BA%E6%83%85%E7%BB%AA%E5%85%B1%E4%BA%ABhrv%E5%8E%8B%E5%8A%9B%E6%B0%B4%E5%B9%B3%E8%87%AA%E6%B5%8B%E7%9D%A1%E7%9C%A0%E8%AE%B0%E5%BD%95/id6747254434", | 591 | "sharePartnerCodeTemplate": "My friend ID: {inviteCode}. Hey❤! Come and use DoubleFeel with me! It helps us care for each other—track stress and sleep, view HRV and body status, and stay updated on each other's health in real-time. Come join me 👉 https://apps.apple.com/cn/app/doublefeel-%E5%8F%8C%E4%BA%BA%E6%83%85%E7%BB%AA%E5%85%B1%E4%BA%ABhrv%E5%8E%8B%E5%8A%9B%E6%B0%B4%E5%B9%B3%E8%87%AA%E6%B5%8B%E7%9D%A1%E7%9C%A0%E8%AE%B0%E5%BD%95/id6747254434", |
| @@ -850,5 +850,22 @@ | @@ -850,5 +850,22 @@ | ||
| 850 | "sendResetEmail": "Send reset email", | 850 | "sendResetEmail": "Send reset email", |
| 851 | "invalidCode": "Invalid code", | 851 | "invalidCode": "Invalid code", |
| 852 | "paswordHasBeenChanged": "Pasword has been changed", | 852 | "paswordHasBeenChanged": "Pasword has been changed", |
| 853 | - "copiedSuccessfully": "Copied successfully" | 853 | + "copiedSuccessfully": "Copied successfully", |
| 854 | + "enjoyAllPremiumBenefits": "Enjoy All Premium Benefits", | ||
| 855 | + "membershipManagement": "Membership", | ||
| 856 | + "membershipTypes": "Plan", | ||
| 857 | + "validUntil": "Valid until", | ||
| 858 | + "manageSubscriptions": "Manage Subscription", | ||
| 859 | + "membershipValidUntilDate": "Membership Valid Until {date}", | ||
| 860 | + "@membershipValidUntilDate": { | ||
| 861 | + "placeholders": { | ||
| 862 | + "date": { | ||
| 863 | + "type": "String" | ||
| 864 | + } | ||
| 865 | + } | ||
| 866 | + }, | ||
| 867 | + "monthlyMembership": "Monthly", | ||
| 868 | + "quarterlyMembership": "Quarterly", | ||
| 869 | + "annualMembership": "Annual", | ||
| 870 | + "lifetimeMembership": "Lifetime" | ||
| 854 | } | 871 | } |
| @@ -1243,5 +1243,22 @@ | @@ -1243,5 +1243,22 @@ | ||
| 1243 | "sendResetEmail": "发送重置邮件", | 1243 | "sendResetEmail": "发送重置邮件", |
| 1244 | "invalidCode": "无效代码", | 1244 | "invalidCode": "无效代码", |
| 1245 | "paswordHasBeenChanged": "密码已更改", | 1245 | "paswordHasBeenChanged": "密码已更改", |
| 1246 | - "copiedSuccessfully": "复制成功" | 1246 | + "copiedSuccessfully": "复制成功", |
| 1247 | + "enjoyAllPremiumBenefits": "畅享全部高级权益", | ||
| 1248 | + "membershipManagement": "会员管理", | ||
| 1249 | + "membershipTypes": "会员类型", | ||
| 1250 | + "validUntil": "有效期至", | ||
| 1251 | + "manageSubscriptions": "管理订阅", | ||
| 1252 | + "membershipValidUntilDate": "有效期至 {date}", | ||
| 1253 | + "@membershipValidUntilDate": { | ||
| 1254 | + "placeholders": { | ||
| 1255 | + "date": { | ||
| 1256 | + "type": "String" | ||
| 1257 | + } | ||
| 1258 | + } | ||
| 1259 | + }, | ||
| 1260 | + "monthlyMembership": "月度会员", | ||
| 1261 | + "quarterlyMembership": "季度会员", | ||
| 1262 | + "annualMembership": "年度会员", | ||
| 1263 | + "lifetimeMembership": "终身会员" | ||
| 1247 | } | 1264 | } |
| @@ -4507,6 +4507,66 @@ abstract class AppLocalizations { | @@ -4507,6 +4507,66 @@ abstract class AppLocalizations { | ||
| 4507 | /// In zh, this message translates to: | 4507 | /// In zh, this message translates to: |
| 4508 | /// **'复制成功'** | 4508 | /// **'复制成功'** |
| 4509 | String get copiedSuccessfully; | 4509 | String get copiedSuccessfully; |
| 4510 | + | ||
| 4511 | + /// No description provided for @enjoyAllPremiumBenefits. | ||
| 4512 | + /// | ||
| 4513 | + /// In zh, this message translates to: | ||
| 4514 | + /// **'畅享全部高级权益'** | ||
| 4515 | + String get enjoyAllPremiumBenefits; | ||
| 4516 | + | ||
| 4517 | + /// No description provided for @membershipManagement. | ||
| 4518 | + /// | ||
| 4519 | + /// In zh, this message translates to: | ||
| 4520 | + /// **'会员管理'** | ||
| 4521 | + String get membershipManagement; | ||
| 4522 | + | ||
| 4523 | + /// No description provided for @membershipTypes. | ||
| 4524 | + /// | ||
| 4525 | + /// In zh, this message translates to: | ||
| 4526 | + /// **'会员类型'** | ||
| 4527 | + String get membershipTypes; | ||
| 4528 | + | ||
| 4529 | + /// No description provided for @validUntil. | ||
| 4530 | + /// | ||
| 4531 | + /// In zh, this message translates to: | ||
| 4532 | + /// **'有效期至'** | ||
| 4533 | + String get validUntil; | ||
| 4534 | + | ||
| 4535 | + /// No description provided for @manageSubscriptions. | ||
| 4536 | + /// | ||
| 4537 | + /// In zh, this message translates to: | ||
| 4538 | + /// **'管理订阅'** | ||
| 4539 | + String get manageSubscriptions; | ||
| 4540 | + | ||
| 4541 | + /// No description provided for @membershipValidUntilDate. | ||
| 4542 | + /// | ||
| 4543 | + /// In zh, this message translates to: | ||
| 4544 | + /// **'有效期至 {date}'** | ||
| 4545 | + String membershipValidUntilDate(String date); | ||
| 4546 | + | ||
| 4547 | + /// No description provided for @monthlyMembership. | ||
| 4548 | + /// | ||
| 4549 | + /// In zh, this message translates to: | ||
| 4550 | + /// **'月度会员'** | ||
| 4551 | + String get monthlyMembership; | ||
| 4552 | + | ||
| 4553 | + /// No description provided for @quarterlyMembership. | ||
| 4554 | + /// | ||
| 4555 | + /// In zh, this message translates to: | ||
| 4556 | + /// **'季度会员'** | ||
| 4557 | + String get quarterlyMembership; | ||
| 4558 | + | ||
| 4559 | + /// No description provided for @annualMembership. | ||
| 4560 | + /// | ||
| 4561 | + /// In zh, this message translates to: | ||
| 4562 | + /// **'年度会员'** | ||
| 4563 | + String get annualMembership; | ||
| 4564 | + | ||
| 4565 | + /// No description provided for @lifetimeMembership. | ||
| 4566 | + /// | ||
| 4567 | + /// In zh, this message translates to: | ||
| 4568 | + /// **'终身会员'** | ||
| 4569 | + String get lifetimeMembership; | ||
| 4510 | } | 4570 | } |
| 4511 | 4571 | ||
| 4512 | class _AppLocalizationsDelegate | 4572 | class _AppLocalizationsDelegate |
| @@ -854,7 +854,7 @@ class AppLocalizationsEn extends AppLocalizations { | @@ -854,7 +854,7 @@ class AppLocalizationsEn extends AppLocalizations { | ||
| 854 | String get help => 'Help'; | 854 | String get help => 'Help'; |
| 855 | 855 | ||
| 856 | @override | 856 | @override |
| 857 | - String get changeNickname => 'Change Nickname'; | 857 | + String get changeNickname => 'Edit Name'; |
| 858 | 858 | ||
| 859 | @override | 859 | @override |
| 860 | String get pleaseEnterANickname => 'Please enter a nickname'; | 860 | String get pleaseEnterANickname => 'Please enter a nickname'; |
| @@ -1758,7 +1758,7 @@ class AppLocalizationsEn extends AppLocalizations { | @@ -1758,7 +1758,7 @@ class AppLocalizationsEn extends AppLocalizations { | ||
| 1758 | String get purchaseBenefitFutureFeatures => 'More Pro Benefits Coming Soon'; | 1758 | String get purchaseBenefitFutureFeatures => 'More Pro Benefits Coming Soon'; |
| 1759 | 1759 | ||
| 1760 | @override | 1760 | @override |
| 1761 | - String get purchaseNotesTitle => 'Notes'; | 1761 | + String get purchaseNotesTitle => 'Instructions'; |
| 1762 | 1762 | ||
| 1763 | @override | 1763 | @override |
| 1764 | String get purchaseNoteSubscription => | 1764 | String get purchaseNoteSubscription => |
| @@ -1973,10 +1973,10 @@ class AppLocalizationsEn extends AppLocalizations { | @@ -1973,10 +1973,10 @@ class AppLocalizationsEn extends AppLocalizations { | ||
| 1973 | String get theDayBeforeYesterday => 'The day before yesterday'; | 1973 | String get theDayBeforeYesterday => 'The day before yesterday'; |
| 1974 | 1974 | ||
| 1975 | @override | 1975 | @override |
| 1976 | - String get uploadPhotos => 'Upload Photos'; | 1976 | + String get uploadPhotos => 'Choose from Library'; |
| 1977 | 1977 | ||
| 1978 | @override | 1978 | @override |
| 1979 | - String get filming => 'Filming'; | 1979 | + String get filming => 'Take Photo'; |
| 1980 | 1980 | ||
| 1981 | @override | 1981 | @override |
| 1982 | String get unlockTheProVersion => 'Unlock Pro'; | 1982 | String get unlockTheProVersion => 'Unlock Pro'; |
| @@ -2527,4 +2527,36 @@ class AppLocalizationsEn extends AppLocalizations { | @@ -2527,4 +2527,36 @@ class AppLocalizationsEn extends AppLocalizations { | ||
| 2527 | 2527 | ||
| 2528 | @override | 2528 | @override |
| 2529 | String get copiedSuccessfully => 'Copied successfully'; | 2529 | String get copiedSuccessfully => 'Copied successfully'; |
| 2530 | + | ||
| 2531 | + @override | ||
| 2532 | + String get enjoyAllPremiumBenefits => 'Enjoy All Premium Benefits'; | ||
| 2533 | + | ||
| 2534 | + @override | ||
| 2535 | + String get membershipManagement => 'Membership'; | ||
| 2536 | + | ||
| 2537 | + @override | ||
| 2538 | + String get membershipTypes => 'Plan'; | ||
| 2539 | + | ||
| 2540 | + @override | ||
| 2541 | + String get validUntil => 'Valid until'; | ||
| 2542 | + | ||
| 2543 | + @override | ||
| 2544 | + String get manageSubscriptions => 'Manage Subscription'; | ||
| 2545 | + | ||
| 2546 | + @override | ||
| 2547 | + String membershipValidUntilDate(String date) { | ||
| 2548 | + return 'Membership Valid Until $date'; | ||
| 2549 | + } | ||
| 2550 | + | ||
| 2551 | + @override | ||
| 2552 | + String get monthlyMembership => 'Monthly'; | ||
| 2553 | + | ||
| 2554 | + @override | ||
| 2555 | + String get quarterlyMembership => 'Quarterly'; | ||
| 2556 | + | ||
| 2557 | + @override | ||
| 2558 | + String get annualMembership => 'Annual'; | ||
| 2559 | + | ||
| 2560 | + @override | ||
| 2561 | + String get lifetimeMembership => 'Lifetime'; | ||
| 2530 | } | 2562 | } |
| @@ -2428,4 +2428,36 @@ class AppLocalizationsZh extends AppLocalizations { | @@ -2428,4 +2428,36 @@ class AppLocalizationsZh extends AppLocalizations { | ||
| 2428 | 2428 | ||
| 2429 | @override | 2429 | @override |
| 2430 | String get copiedSuccessfully => '复制成功'; | 2430 | String get copiedSuccessfully => '复制成功'; |
| 2431 | + | ||
| 2432 | + @override | ||
| 2433 | + String get enjoyAllPremiumBenefits => '畅享全部高级权益'; | ||
| 2434 | + | ||
| 2435 | + @override | ||
| 2436 | + String get membershipManagement => '会员管理'; | ||
| 2437 | + | ||
| 2438 | + @override | ||
| 2439 | + String get membershipTypes => '会员类型'; | ||
| 2440 | + | ||
| 2441 | + @override | ||
| 2442 | + String get validUntil => '有效期至'; | ||
| 2443 | + | ||
| 2444 | + @override | ||
| 2445 | + String get manageSubscriptions => '管理订阅'; | ||
| 2446 | + | ||
| 2447 | + @override | ||
| 2448 | + String membershipValidUntilDate(String date) { | ||
| 2449 | + return '有效期至 $date'; | ||
| 2450 | + } | ||
| 2451 | + | ||
| 2452 | + @override | ||
| 2453 | + String get monthlyMembership => '月度会员'; | ||
| 2454 | + | ||
| 2455 | + @override | ||
| 2456 | + String get quarterlyMembership => '季度会员'; | ||
| 2457 | + | ||
| 2458 | + @override | ||
| 2459 | + String get annualMembership => '年度会员'; | ||
| 2460 | + | ||
| 2461 | + @override | ||
| 2462 | + String get lifetimeMembership => '终身会员'; | ||
| 2431 | } | 2463 | } |
-
Please register or login to post a comment