diff --git a/lib/RegisterPage.dart b/lib/RegisterPage.dart index 089bfa9..51dff05 100644 --- a/lib/RegisterPage.dart +++ b/lib/RegisterPage.dart @@ -6,6 +6,8 @@ import 'package:mailer/mailer.dart'; import 'package:mailer/smtp_server.dart'; import 'package:validators/validators.dart' as validator; +import 'generated/l10n.dart'; + void main() { runApp(MaterialApp( home: RegisterPage(), @@ -105,12 +107,12 @@ class _RegisterPageState extends State { final email = _emailController.text; if (email.isEmpty) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('請輸入電子信箱地址')), + SnackBar(content: Text(S.of(context).register_error_email_empty)), ); return; } else if (!validator.isEmail(email)) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('請輸入正確的電子信箱')), + SnackBar(content: Text(S.of(context).register_error_email_invalid)), ); _emailFocusNode.requestFocus(); return; @@ -129,7 +131,7 @@ class _RegisterPageState extends State { if (name == '') { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('用戶姓名不可為空')), + SnackBar(content: Text(S.of(context).register_error_username_empty)), ); _nameFocusNode.requestFocus(); return false; @@ -137,7 +139,7 @@ class _RegisterPageState extends State { if (email == '') { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('電子信箱不可為空')), + SnackBar(content: Text(S.of(context).register_error_email_empty)), ); _emailFocusNode.requestFocus(); return false; @@ -145,7 +147,7 @@ class _RegisterPageState extends State { if (password == '') { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('密碼不可為空')), + SnackBar(content: Text(S.of(context).register_error_password_empty)), ); _passwordFocusNode.requestFocus(); return false; @@ -153,14 +155,14 @@ class _RegisterPageState extends State { if (_generatedCode == ''){ ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('請先發送驗證碼')), + SnackBar(content: Text(S.of(context).register_error_verificationCode_not_send)), ); return false; } if (code == '' || code != _generatedCode) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('驗證碼錯誤')), + SnackBar(content: Text(S.of(context).register_error_verificationCode_not_match)), ); _codeFocusNode.requestFocus(); return false; @@ -189,7 +191,7 @@ class _RegisterPageState extends State { if (result.rows.isNotEmpty) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('註冊失敗:電子信箱或帳號名稱已被使用,請嘗試更換或登入')), + SnackBar(content: Text(S.of(context).register_error_usernameOrEmail_exist)), ); } else { await conn.execute( @@ -197,7 +199,7 @@ class _RegisterPageState extends State { {'name': name, 'email': email, 'password': password}, ); ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('註冊成功!')), + SnackBar(content: Text(S.of(context).register_success)), ); Navigator.pushReplacement( @@ -214,7 +216,7 @@ class _RegisterPageState extends State { } catch (e) { print('資料庫錯誤: $e'); ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('註冊失敗:系統錯誤')), + SnackBar(content: Text(S.of(context).register_error_server_error)), ); } finally { await conn.close(); @@ -375,7 +377,7 @@ class VerifyPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('註冊成功'), + title: Text(S.of(context).register_success), ), body: Center( child: Column( @@ -388,7 +390,7 @@ class VerifyPage extends StatelessWidget { // 返回登入頁面 Navigator.pop(context); }, - child: Text('返回登入頁面'), + child: Text(S.of(context).register_turn_back), style: ElevatedButton.styleFrom( backgroundColor: Color(0xFF4FC3F7), padding: EdgeInsets.symmetric(horizontal: 30, vertical: 15), diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart index 4c783b0..8cdc3d8 100644 --- a/lib/generated/intl/messages_en.dart +++ b/lib/generated/intl/messages_en.dart @@ -75,6 +75,29 @@ class MessageLookup extends MessageLookupByLibrary { "phone": MessageLookupByLibrary.simpleMessage("Phone Number"), "realtime_video": MessageLookupByLibrary.simpleMessage("Live View"), "register_button": MessageLookupByLibrary.simpleMessage("Register"), + "register_error_email_empty": + MessageLookupByLibrary.simpleMessage("Please enter your email"), + "register_error_email_invalid": + MessageLookupByLibrary.simpleMessage("Please enter a valid email"), + "register_error_password_empty": + MessageLookupByLibrary.simpleMessage("Please enter your password"), + "register_error_server_error": MessageLookupByLibrary.simpleMessage( + "Register Failed: Server error, please try again later"), + "register_error_usernameOrEmail_exist": + MessageLookupByLibrary.simpleMessage( + "Username or email already exists, please try again"), + "register_error_username_empty": + MessageLookupByLibrary.simpleMessage("Please enter your username"), + "register_error_verificationCode_not_match": + MessageLookupByLibrary.simpleMessage( + "Verification code does not match"), + "register_error_verificationCode_not_send": + MessageLookupByLibrary.simpleMessage( + "Please send the verification code first"), + "register_success": + MessageLookupByLibrary.simpleMessage("Register Success"), + "register_turn_back": + MessageLookupByLibrary.simpleMessage("Return to Login Page"), "save": MessageLookupByLibrary.simpleMessage("Save"), "switch_camera": MessageLookupByLibrary.simpleMessage("Switch View") }; diff --git a/lib/generated/intl/messages_zh_Hant.dart b/lib/generated/intl/messages_zh_Hant.dart index 0b41f6c..13f2675 100644 --- a/lib/generated/intl/messages_zh_Hant.dart +++ b/lib/generated/intl/messages_zh_Hant.dart @@ -70,6 +70,24 @@ class MessageLookup extends MessageLookupByLibrary { "phone": MessageLookupByLibrary.simpleMessage("電話"), "realtime_video": MessageLookupByLibrary.simpleMessage("即時畫面"), "register_button": MessageLookupByLibrary.simpleMessage("立即註冊"), + "register_error_email_empty": + MessageLookupByLibrary.simpleMessage("電子信箱不可為空"), + "register_error_email_invalid": + MessageLookupByLibrary.simpleMessage("請輸入有效的電子信箱地址"), + "register_error_password_empty": + MessageLookupByLibrary.simpleMessage("密碼不可為空"), + "register_error_server_error": + MessageLookupByLibrary.simpleMessage("註冊失敗:系統錯誤"), + "register_error_usernameOrEmail_exist": + MessageLookupByLibrary.simpleMessage("註冊失敗:電子信箱或帳號名稱已被使用,請嘗試更換或登入"), + "register_error_username_empty": + MessageLookupByLibrary.simpleMessage("用戶姓名不可為空"), + "register_error_verificationCode_not_match": + MessageLookupByLibrary.simpleMessage("驗證碼錯誤"), + "register_error_verificationCode_not_send": + MessageLookupByLibrary.simpleMessage("請先發送驗證碼"), + "register_success": MessageLookupByLibrary.simpleMessage("註冊成功"), + "register_turn_back": MessageLookupByLibrary.simpleMessage("返回登入頁面"), "save": MessageLookupByLibrary.simpleMessage("儲存變更"), "switch_camera": MessageLookupByLibrary.simpleMessage("切換畫面") }; diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index a2d4adb..22d9902 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -110,6 +110,106 @@ class S { ); } + /// `Please enter your email` + String get register_error_email_empty { + return Intl.message( + 'Please enter your email', + name: 'register_error_email_empty', + desc: '', + args: [], + ); + } + + /// `Please enter a valid email` + String get register_error_email_invalid { + return Intl.message( + 'Please enter a valid email', + name: 'register_error_email_invalid', + desc: '', + args: [], + ); + } + + /// `Please enter your username` + String get register_error_username_empty { + return Intl.message( + 'Please enter your username', + name: 'register_error_username_empty', + desc: '', + args: [], + ); + } + + /// `Please enter your password` + String get register_error_password_empty { + return Intl.message( + 'Please enter your password', + name: 'register_error_password_empty', + desc: '', + args: [], + ); + } + + /// `Please send the verification code first` + String get register_error_verificationCode_not_send { + return Intl.message( + 'Please send the verification code first', + name: 'register_error_verificationCode_not_send', + desc: '', + args: [], + ); + } + + /// `Verification code does not match` + String get register_error_verificationCode_not_match { + return Intl.message( + 'Verification code does not match', + name: 'register_error_verificationCode_not_match', + desc: '', + args: [], + ); + } + + /// `Username or email already exists, please try again` + String get register_error_usernameOrEmail_exist { + return Intl.message( + 'Username or email already exists, please try again', + name: 'register_error_usernameOrEmail_exist', + desc: '', + args: [], + ); + } + + /// `Register Failed: Server error, please try again later` + String get register_error_server_error { + return Intl.message( + 'Register Failed: Server error, please try again later', + name: 'register_error_server_error', + desc: '', + args: [], + ); + } + + /// `Register Success` + String get register_success { + return Intl.message( + 'Register Success', + name: 'register_success', + desc: '', + args: [], + ); + } + + /// `Return to Login Page` + String get register_turn_back { + return Intl.message( + 'Return to Login Page', + name: 'register_turn_back', + desc: '', + args: [], + ); + } + /// `Live View` String get realtime_video { return Intl.message( diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 24f4590..b0003ef 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -5,6 +5,18 @@ "logout_button": "Logout", "register_button": "Register", "forgot_password": "Forgot password", + + "register_error_email_empty": "Please enter your email", + "register_error_email_invalid": "Please enter a valid email", + "register_error_username_empty": "Please enter your username", + "register_error_password_empty": "Please enter your password", + "register_error_verificationCode_not_send": "Please send the verification code first", + "register_error_verificationCode_not_match": "Verification code does not match", + "register_error_usernameOrEmail_exist": "Username or email already exists, please try again", + "register_error_server_error": "Register Failed: Server error, please try again later", + "register_success": "Register Success", + "register_turn_back": "Return to Login Page", + "realtime_video": "Live View", "fall_record": "Fall Record", "switch_camera": "Switch View", diff --git a/lib/l10n/intl_zh_Hant.arb b/lib/l10n/intl_zh_Hant.arb index 7483c2e..5cc63d6 100644 --- a/lib/l10n/intl_zh_Hant.arb +++ b/lib/l10n/intl_zh_Hant.arb @@ -6,6 +6,17 @@ "register_button": "立即註冊", "forgot_password": "忘記密碼", + "register_error_email_empty": "電子信箱不可為空", + "register_error_email_invalid": "請輸入有效的電子信箱地址", + "register_error_username_empty": "用戶姓名不可為空", + "register_error_password_empty": "密碼不可為空", + "register_error_verificationCode_not_send": "請先發送驗證碼", + "register_error_verificationCode_not_match": "驗證碼錯誤", + "register_error_usernameOrEmail_exist": "註冊失敗:電子信箱或帳號名稱已被使用,請嘗試更換或登入", + "register_error_server_error": "註冊失敗:系統錯誤", + "register_success": "註冊成功", + "register_turn_back": "返回登入頁面", + "realtime_video": "即時畫面", "fall_record": "跌倒紀錄", "switch_camera": "切換畫面",