Initial commit

This commit is contained in:
2025-11-30 15:42:05 +07:00
commit 99344a82e6
139 changed files with 7801 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
{
"deviceList": "Device List",
"noDevices": "It seems that you have no devices! You can register one with the big plus button.",
"setupNewDevice": "Setup new device",
"addExistingDevice": "Add existing device",
"registerDevice": "Register Device",
"deviceName": "Name",
"networkName": "Network Name (SSID)",
"routerMacAddress": "Router MAC Address (BSSID)",
"networkPassword": "Network Password",
"networkLimitation": "Only 2.4 GHz networks allowed!",
"networkLimitationDesc": "We suspect that your network may be 5 GHz based on the name. Please note that liteauth can only connect to 2.4 GHz networks.",
"networkInitHeadline": "Network Initialization",
"networkInitDetails": "Broadcasting network information to your liteauth device, This will be done in a minute or two. Please also make sure your device is powered on.",
"networkInfoHeadline": "Network Information",
"networkInfoPrompt": "Do you wish to automatically fill in the current network information? The app will ask to access your fine location if you continue.",
"continueText": "Continue",
"cancel": "Cancel",
"deviceInfo": "Device Information",
"delete": "Delete",
"deletion": "Deletion",
"deviceDeleteConfirm": "Are you sure you want to delete this device forever?",
"reconfigureNetwork": "Reconfigure Network",
"status": "Status: ",
"online": "Online",
"offline": "Offline",
"refresh": "Refresh",
"lastKnownIP": "Last Known IP: {ip}",
"@lastKnownIP": {
"placeholders": {
"ip": {
"type": "String",
"example": "192.168.1.10"
}
}
},
"routerSsid": "Router SSID: {ssid}",
"@routerSsid": {
"placeholders": {
"ssid": {
"type": "String",
"example": "ABC_WiFi"
}
}
}
}
+302
View File
@@ -0,0 +1,302 @@
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_th.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 'l10n/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, youll need to edit this
/// file.
///
/// First, open your projects ios/Runner.xcworkspace Xcode workspace file.
/// Then, in the Project Navigator, open the Info.plist file under the Runner
/// projects 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('th'),
];
/// No description provided for @deviceList.
///
/// In en, this message translates to:
/// **'Device List'**
String get deviceList;
/// No description provided for @noDevices.
///
/// In en, this message translates to:
/// **'It seems that you have no devices! You can register one with the big plus button.'**
String get noDevices;
/// No description provided for @setupNewDevice.
///
/// In en, this message translates to:
/// **'Setup new device'**
String get setupNewDevice;
/// No description provided for @addExistingDevice.
///
/// In en, this message translates to:
/// **'Add existing device'**
String get addExistingDevice;
/// No description provided for @registerDevice.
///
/// In en, this message translates to:
/// **'Register Device'**
String get registerDevice;
/// No description provided for @deviceName.
///
/// In en, this message translates to:
/// **'Name'**
String get deviceName;
/// No description provided for @networkName.
///
/// In en, this message translates to:
/// **'Network Name (SSID)'**
String get networkName;
/// No description provided for @routerMacAddress.
///
/// In en, this message translates to:
/// **'Router MAC Address (BSSID)'**
String get routerMacAddress;
/// No description provided for @networkPassword.
///
/// In en, this message translates to:
/// **'Network Password'**
String get networkPassword;
/// No description provided for @networkLimitation.
///
/// In en, this message translates to:
/// **'Only 2.4 GHz networks allowed!'**
String get networkLimitation;
/// No description provided for @networkLimitationDesc.
///
/// In en, this message translates to:
/// **'We suspect that your network may be 5 GHz based on the name. Please note that liteauth can only connect to 2.4 GHz networks.'**
String get networkLimitationDesc;
/// No description provided for @networkInitHeadline.
///
/// In en, this message translates to:
/// **'Network Initialization'**
String get networkInitHeadline;
/// No description provided for @networkInitDetails.
///
/// In en, this message translates to:
/// **'Broadcasting network information to your liteauth device, This will be done in a minute or two. Please also make sure your device is powered on.'**
String get networkInitDetails;
/// No description provided for @networkInfoHeadline.
///
/// In en, this message translates to:
/// **'Network Information'**
String get networkInfoHeadline;
/// No description provided for @networkInfoPrompt.
///
/// In en, this message translates to:
/// **'Do you wish to automatically fill in the current network information? The app will ask to access your fine location if you continue.'**
String get networkInfoPrompt;
/// No description provided for @continueText.
///
/// In en, this message translates to:
/// **'Continue'**
String get continueText;
/// No description provided for @cancel.
///
/// In en, this message translates to:
/// **'Cancel'**
String get cancel;
/// No description provided for @deviceInfo.
///
/// In en, this message translates to:
/// **'Device Information'**
String get deviceInfo;
/// No description provided for @delete.
///
/// In en, this message translates to:
/// **'Delete'**
String get delete;
/// No description provided for @deletion.
///
/// In en, this message translates to:
/// **'Deletion'**
String get deletion;
/// No description provided for @deviceDeleteConfirm.
///
/// In en, this message translates to:
/// **'Are you sure you want to delete this device forever?'**
String get deviceDeleteConfirm;
/// No description provided for @reconfigureNetwork.
///
/// In en, this message translates to:
/// **'Reconfigure Network'**
String get reconfigureNetwork;
/// No description provided for @status.
///
/// In en, this message translates to:
/// **'Status: '**
String get status;
/// No description provided for @online.
///
/// In en, this message translates to:
/// **'Online'**
String get online;
/// No description provided for @offline.
///
/// In en, this message translates to:
/// **'Offline'**
String get offline;
/// No description provided for @refresh.
///
/// In en, this message translates to:
/// **'Refresh'**
String get refresh;
/// No description provided for @lastKnownIP.
///
/// In en, this message translates to:
/// **'Last Known IP: {ip}'**
String lastKnownIP(String ip);
/// No description provided for @routerSsid.
///
/// In en, this message translates to:
/// **'Router SSID: {ssid}'**
String routerSsid(String ssid);
}
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', 'th'].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 'th':
return AppLocalizationsTh();
}
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.',
);
}
+103
View File
@@ -0,0 +1,103 @@
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for English (`en`).
class AppLocalizationsEn extends AppLocalizations {
AppLocalizationsEn([String locale = 'en']) : super(locale);
@override
String get deviceList => 'Device List';
@override
String get noDevices =>
'It seems that you have no devices! You can register one with the big plus button.';
@override
String get setupNewDevice => 'Setup new device';
@override
String get addExistingDevice => 'Add existing device';
@override
String get registerDevice => 'Register Device';
@override
String get deviceName => 'Name';
@override
String get networkName => 'Network Name (SSID)';
@override
String get routerMacAddress => 'Router MAC Address (BSSID)';
@override
String get networkPassword => 'Network Password';
@override
String get networkLimitation => 'Only 2.4 GHz networks allowed!';
@override
String get networkLimitationDesc =>
'We suspect that your network may be 5 GHz based on the name. Please note that liteauth can only connect to 2.4 GHz networks.';
@override
String get networkInitHeadline => 'Network Initialization';
@override
String get networkInitDetails =>
'Broadcasting network information to your liteauth device, This will be done in a minute or two. Please also make sure your device is powered on.';
@override
String get networkInfoHeadline => 'Network Information';
@override
String get networkInfoPrompt =>
'Do you wish to automatically fill in the current network information? The app will ask to access your fine location if you continue.';
@override
String get continueText => 'Continue';
@override
String get cancel => 'Cancel';
@override
String get deviceInfo => 'Device Information';
@override
String get delete => 'Delete';
@override
String get deletion => 'Deletion';
@override
String get deviceDeleteConfirm =>
'Are you sure you want to delete this device forever?';
@override
String get reconfigureNetwork => 'Reconfigure Network';
@override
String get status => 'Status: ';
@override
String get online => 'Online';
@override
String get offline => 'Offline';
@override
String get refresh => 'Refresh';
@override
String lastKnownIP(String ip) {
return 'Last Known IP: $ip';
}
@override
String routerSsid(String ssid) {
return 'Router SSID: $ssid';
}
}
+102
View File
@@ -0,0 +1,102 @@
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Thai (`th`).
class AppLocalizationsTh extends AppLocalizations {
AppLocalizationsTh([String locale = 'th']) : super(locale);
@override
String get deviceList => 'รายการอุปกรณ์';
@override
String get noDevices =>
'ดูเหมือนว่าคุณจะไม่มีอุปกรณ์ที่ลงทะเบียนไว้นะ! คุณสามารถลงทะเบียนอุปกรณ์ใหม่ได้ที่ปุ่มบวกด้านล่าง';
@override
String get setupNewDevice => 'ตั้งค่าอุปกรณ์ใหม่';
@override
String get addExistingDevice => 'เพิ่มอุปกรณ์ที่ตั้งค่าแล้ว';
@override
String get registerDevice => 'ลงทะเบียนอุปกรณ์';
@override
String get deviceName => 'ชื่อ';
@override
String get networkName => 'ชื่อเครือข่าย (SSID)';
@override
String get routerMacAddress => 'MAC Address ของเราเตอร์ (BSSID)';
@override
String get networkPassword => 'รหัสผ่านเครือข่าย';
@override
String get networkLimitation => 'อนุญาตแค่เครือข่าย 2.4 GHz เท่านั้น!';
@override
String get networkLimitationDesc =>
'เราสงสัยว่าเครือข่ายคุณอาจเป็นเครือข่าย 5 GHz จากชื่อ โปรดจำไว้ว่า liteauth สามารถเชื่อมต่อได้กับเครือข่าย 2.4 GHz เท่านั้น';
@override
String get networkInitHeadline => 'การตั้งค่าเครือข่าย';
@override
String get networkInitDetails =>
'กำลังเผยแพร่ข้อมูลเครือข่ายไปยังอุปกรณ์ liteauth ของคุณ กระบวนการนี้อาจใช้เวลาหนึ่งถึงสองนาที และโปรดตรวจสอบให้แน่ใจว่าคุณเปิดอุปกรณ์ของคุณแล้ว';
@override
String get networkInfoHeadline => 'ข้อมูลเครือข่าย';
@override
String get networkInfoPrompt =>
'คุณต้องการที่จะใส่ข้อมูลเครือข่ายปัจจุบันโดยอัตโนมัติหรือไม่ แอพลิเคชั่นจะขอความอนุญาตในการเข้าถึงข้อมูลตำแหน่งแบบละเอียดหากคุณดำเนินการต่อ';
@override
String get continueText => 'ดำเนินการต่อ';
@override
String get cancel => 'ยกเลิก';
@override
String get deviceInfo => 'ข้อมูลอุปกรณ์';
@override
String get delete => 'ลบ';
@override
String get deletion => 'การลบ';
@override
String get deviceDeleteConfirm => 'คุณแน่ใจหรือไม่ที่จะลบอุปกรณ์นี้อย่างถาวร';
@override
String get reconfigureNetwork => 'ตั้งค่าเครือข่ายใหม่';
@override
String get status => 'สถานะ: ';
@override
String get online => 'ออนไลน์';
@override
String get offline => 'ออฟไลน์';
@override
String get refresh => 'รีเฟรช';
@override
String lastKnownIP(String ip) {
return 'ที่อยู่ IP ที่ทราบล่าสุด: $ip';
}
@override
String routerSsid(String ssid) {
return 'SSID เราเตอร์: $ssid';
}
}
+33
View File
@@ -0,0 +1,33 @@
{
"deviceList": "รายการอุปกรณ์",
"noDevices": "ดูเหมือนว่าคุณจะไม่มีอุปกรณ์ที่ลงทะเบียนไว้นะ! คุณสามารถลงทะเบียนอุปกรณ์ใหม่ได้ที่ปุ่มบวกด้านล่าง",
"setupNewDevice": "ตั้งค่าอุปกรณ์ใหม่",
"addExistingDevice": "เพิ่มอุปกรณ์ที่ตั้งค่าแล้ว",
"registerDevice": "ลงทะเบียนอุปกรณ์",
"deviceName": "ชื่อ",
"networkName": "ชื่อเครือข่าย (SSID)",
"routerMacAddress": "MAC Address ของเราเตอร์ (BSSID)",
"networkPassword": "รหัสผ่านเครือข่าย",
"networkLimitation": "อนุญาตแค่เครือข่าย 2.4 GHz เท่านั้น!",
"networkLimitationDesc": "เราสงสัยว่าเครือข่ายคุณอาจเป็นเครือข่าย 5 GHz จากชื่อ โปรดจำไว้ว่า liteauth สามารถเชื่อมต่อได้กับเครือข่าย 2.4 GHz เท่านั้น",
"networkInitHeadline": "การตั้งค่าเครือข่าย",
"networkInitDetails": "กำลังเผยแพร่ข้อมูลเครือข่ายไปยังอุปกรณ์ liteauth ของคุณ กระบวนการนี้อาจใช้เวลาหนึ่งถึงสองนาที และโปรดตรวจสอบให้แน่ใจว่าคุณเปิดอุปกรณ์ของคุณแล้ว",
"networkInfoHeadline": "ข้อมูลเครือข่าย",
"networkInfoPrompt": "คุณต้องการที่จะใส่ข้อมูลเครือข่ายปัจจุบันโดยอัตโนมัติหรือไม่ แอพลิเคชั่นจะขอความอนุญาตในการเข้าถึงข้อมูลตำแหน่งแบบละเอียดหากคุณดำเนินการต่อ",
"continueText": "ดำเนินการต่อ",
"cancel": "ยกเลิก",
"deviceInfo": "ข้อมูลอุปกรณ์",
"delete": "ลบ",
"deletion": "การลบ",
"deviceDeleteConfirm": "คุณแน่ใจหรือไม่ที่จะลบอุปกรณ์นี้อย่างถาวร",
"reconfigureNetwork": "ตั้งค่าเครือข่ายใหม่",
"status": "สถานะ: ",
"online": "ออนไลน์",
"offline": "ออฟไลน์",
"refresh": "รีเฟรช",
"lastKnownIP": "ที่อยู่ IP ที่ทราบล่าสุด: {ip}",
"routerSsid": "SSID เราเตอร์: {ssid}"
}