2026-10-02 22:03:21 +05:30
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_hi.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, 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 ( 'hi' )
];
/// Dialog error title
///
/// In en, this message translates to:
/// **'Error'**
String get error ;
/// Dialog OK button
///
/// In en, this message translates to:
/// **'OK'**
String get ok ;
/// List search hint
///
/// In en, this message translates to:
/// **'Search...'**
String get search ;
/// Delete dialog title
///
/// In en, this message translates to:
/// **'Confirm Deletion'**
String get confirmDeletion ;
/// Delete dialog body
///
/// In en, this message translates to:
/// **'Are you sure you want to delete?'**
String get deleteConfirmation ;
/// Cancel button
///
/// In en, this message translates to:
/// **'Cancel'**
String get cancel ;
/// Delete button
///
/// In en, this message translates to:
/// **'Delete'**
String get delete ;
/// Audit fields dialog title
///
/// In en, this message translates to:
/// **'Additional Fields'**
String get additionalFields ;
/// Close button
///
/// In en, this message translates to:
/// **'Close'**
String get close ;
/// Image picker title
///
/// In en, this message translates to:
/// **'Select Image Source'**
String get selectImageSource ;
/// Image gallery option
///
/// In en, this message translates to:
/// **'Gallery'**
String get gallery ;
/// Camera option
///
/// In en, this message translates to:
/// **'Camera'**
String get camera ;
/// Form submit button
///
/// In en, this message translates to:
/// **'Submit'**
String get submit ;
/// Form update button
///
/// In en, this message translates to:
/// **'Update'**
String get update ;
/// Edit action
///
/// In en, this message translates to:
/// **'Edit'**
String get edit ;
2026-10-02 22:52:46 +05:30
/// Logout button
///
/// In en, this message translates to:
/// **'Logout'**
String get logout ;
/// Forgot password title
///
/// In en, this message translates to:
/// **'Forgot Password'**
String get forgotPassword ;
/// Email label
///
/// In en, this message translates to:
/// **'Email'**
String get email ;
/// Email input hint
///
/// In en, this message translates to:
/// **'Enter Email'**
String get enterEmail ;
/// Forgot password submit button
///
/// In en, this message translates to:
/// **'Send me an access link'**
String get sendAccessLink ;
/// Forgot password success message
///
/// In en, this message translates to:
/// **'An email with a reset link has been sent to {email}.'**
String forgotPasswordSentMessage ( String email );
/// Forgot password failure message
///
/// In en, this message translates to:
/// **'Failed to send the reset link. Please try again.'**
String get forgotPasswordFailedMessage ;
/// Return to login link
///
/// In en, this message translates to:
/// **'Click here to return to login'**
String get backToLogin ;
/// Login email validation
///
/// In en, this message translates to:
/// **'You must provide an email or username'**
String get provideEmailOrUsername ;
/// Login username hint
///
/// In en, this message translates to:
/// **'Username or email address'**
String get usernameOrEmailHint ;
/// Login password validation
///
/// In en, this message translates to:
/// **'Password cannot be empty'**
String get passwordEmpty ;
/// Password hint
///
/// In en, this message translates to:
/// **'Password'**
String get password ;
/// Stay logged in checkbox
///
/// In en, this message translates to:
/// **'Stay Logged In'**
String get stayLoggedIn ;
/// Login button
///
/// In en, this message translates to:
/// **'Log in'**
String get logIn ;
/// Login success snackbar
///
/// In en, this message translates to:
/// **'Login Successful'**
String get loginSuccessful ;
/// Missing details snackbar
///
/// In en, this message translates to:
/// **'Please provide all required details'**
String get provideRequiredDetails ;
/// Processing snackbar
///
/// In en, this message translates to:
/// **'Processing...'**
String get processing ;
/// Login help link
///
/// In en, this message translates to:
/// **'Having trouble logging in?'**
String get loginTrouble ;
/// Alternative login divider
///
/// In en, this message translates to:
/// **'Or Continue with'**
String get orContinueWith ;
/// Sign up button
///
/// In en, this message translates to:
/// **'Sign Up'**
String get signUp ;
/// Google sign in button
///
/// In en, this message translates to:
/// **'Sign in with Google'**
String get signInGoogle ;
/// LinkedIn sign in button
///
/// In en, this message translates to:
/// **'Sign in with LinkedIn'**
String get signInLinkedin ;
/// Login help screen name
///
/// In en, this message translates to:
/// **'Login Help'**
String get loginHelp ;
/// Sign in link on signup
///
/// In en, this message translates to:
/// **'Already have an account? Sign in'**
String get alreadyHaveAccount ;
/// Language section label
///
/// In en, this message translates to:
/// **'Language'**
String get language ;
2026-10-03 11:22:48 +05:30
/// Create account title
///
/// In en, this message translates to:
/// **'Create Account'**
String get createAccount ;
/// Company name label
///
/// In en, this message translates to:
/// **'Company Name'**
String get companyName ;
/// Mobile number label
///
/// In en, this message translates to:
/// **'Mobile Number'**
String get mobileNumber ;
/// Workspace label
///
/// In en, this message translates to:
/// **'Workspace'**
String get workspace ;
/// GST number label
///
/// In en, this message translates to:
/// **'Gst Number'**
String get gstNumber ;
/// Pancard label
///
/// In en, this message translates to:
/// **'pancard'**
String get pancard ;
/// Working label
///
/// In en, this message translates to:
/// **'Working'**
String get workingField ;
/// Generic required-field validation
///
/// In en, this message translates to:
/// **'Please enter {label}'**
String pleaseEnterThis ( String label );
/// Generic input hint
///
/// In en, this message translates to:
/// **'Enter {label}'**
String enterThis ( String label );
/// Short email validation
///
/// In en, this message translates to:
/// **'Please enter a valid email'**
String get validEmailShort ;
/// Submit button uppercase
///
/// In en, this message translates to:
/// **'SUBMIT'**
String get submitCaps ;
/// Account creation failure
///
/// In en, this message translates to:
/// **'Account Creation Failed: {error}'**
String accountCreationFailed ( String error );
/// Mobile number short label
///
/// In en, this message translates to:
/// **'Mobile No'**
String get mobileNo ;
/// Signup step 1 header
///
/// In en, this message translates to:
/// **'Step 1: Create Account'**
String get step1CreateAccount ;
/// Previous button
///
/// In en, this message translates to:
/// **'Previous'**
String get previous ;
/// Next button
///
/// In en, this message translates to:
/// **'Next'**
String get next ;
/// Signup wizard title
///
/// In en, this message translates to:
/// **'Sign Up - Step {step}'**
String signUpStep ( String step );
/// Selected account display
///
/// In en, this message translates to:
/// **'Selected Account ID: {accountId}'**
String selectedAccountId ( String accountId );
/// Signup step 2 header
///
/// In en, this message translates to:
/// **'Step 2: Get Email Verification'**
String get step2EmailVerification ;
/// Signup step 3 header
///
/// In en, this message translates to:
/// **'Step 3: Get Registration'**
String get step3GetRegistration ;
/// Account created message
///
/// In en, this message translates to:
/// **'Account created successfully!'**
String get accountCreatedSuccess ;
/// Registration title
///
/// In en, this message translates to:
/// **'Registration'**
String get registration ;
/// First name label
///
/// In en, this message translates to:
/// **'First Name'**
String get firstName ;
/// Last name label
///
/// In en, this message translates to:
/// **'Last Name'**
String get lastName ;
/// New password label
///
/// In en, this message translates to:
/// **'New Password'**
String get newPassword ;
/// Confirm password label
///
/// In en, this message translates to:
/// **'Confirm Password'**
String get confirmPassword ;
/// Add account row
///
/// In en, this message translates to:
/// **'Add Account'**
String get addAccount ;
/// Short password validation
///
/// In en, this message translates to:
/// **'Please enter a valid password'**
String get validPasswordShort ;
/// Terms agreement prefix
///
/// In en, this message translates to:
/// **'By signing up you are agreeing to the '**
String get termsAgreePrefix ;
/// Terms link
///
/// In en, this message translates to:
/// **'Terms & Conditions'**
String get termsConditions ;
/// Terms conjunction
///
/// In en, this message translates to:
/// **' and our '**
String get termsAndOur ;
/// EULA link
///
/// In en, this message translates to:
/// **'End User License Agreement'**
String get eula ;
/// Processing without dots
///
/// In en, this message translates to:
/// **'Processing'**
String get processingPlain ;
/// Create user title
///
/// In en, this message translates to:
/// **'Create User'**
String get createUser ;
/// Your email hint
///
/// In en, this message translates to:
/// **'Enter Your Email'**
String get enterYourEmail ;
/// Send OTP button
///
/// In en, this message translates to:
/// **'Send OTP'**
String get sendOtp ;
/// Send OTP failure
///
/// In en, this message translates to:
/// **'Failed to send OTP: {error}'**
String failedToSendOtp ( String error );
/// Email verification header
///
/// In en, this message translates to:
/// **'Email Verification'**
String get emailVerification ;
/// OTP sent message
///
/// In en, this message translates to:
/// **'A mail with a 6-digit verification code was just sent to {email}'**
String otpSentToEmail ( String email );
/// Email verified message
///
/// In en, this message translates to:
/// **'Email verified successfully'**
String get emailVerifiedSuccess ;
/// OTP verification failure
///
/// In en, this message translates to:
/// **'Failed to verify OTP: {error}'**
String failedToVerifyOtp ( String error );
/// OTP resent message
///
/// In en, this message translates to:
/// **'OTP Resent'**
String get otpResent ;
/// OTP resend failure
///
/// In en, this message translates to:
/// **'Failed to resend OTP: {error}'**
String failedToResendOtp ( String error );
/// Forgot password link
///
/// In en, this message translates to:
/// **'Forgot Password?'**
String get forgotPasswordLink ;
/// Resend prompt
///
/// In en, this message translates to:
/// **'Didn’ t get the code?'**
String get didntGetCode ;
/// Resend button
///
/// In en, this message translates to:
/// **'Resend'**
String get resend ;
/// Go to registration button
///
/// In en, this message translates to:
/// **'Go to Registration Details'**
String get goToRegistrationDetails ;
/// About us title
///
/// In en, this message translates to:
/// **'About Us'**
String get aboutUs ;
/// About us body
///
/// In en, this message translates to:
/// **'Create a new project if you have access, if you don\'t have access, then contact the admin.'**
String get aboutDescription ;
/// Reset password title
///
/// In en, this message translates to:
/// **'Reset Password'**
String get resetPassword ;
/// Signed in as message
///
/// In en, this message translates to:
/// **'You\'re signed in as {email}'**
String signedInAs ( String email );
/// Wrong account link
///
/// In en, this message translates to:
/// **'Wrong account? Log in instead.'**
String get wrongAccount ;
/// Old password label
///
/// In en, this message translates to:
/// **'Enter Old Password'**
String get enterOldPassword ;
/// Old password validation
///
/// In en, this message translates to:
/// **'Please enter your old password'**
String get oldPasswordError ;
/// New password label
///
/// In en, this message translates to:
/// **'Enter New Password'**
String get enterNewPassword ;
/// New password validation
///
/// In en, this message translates to:
/// **'Please enter your new password'**
String get newPasswordError ;
/// Re-enter password label
///
/// In en, this message translates to:
/// **'Re-Enter New Password'**
String get reEnterNewPassword ;
/// Re-enter validation
///
/// In en, this message translates to:
/// **'Please re-enter your new password'**
String get reEnterPasswordError ;
/// Password mismatch
///
/// In en, this message translates to:
/// **'Passwords do not match'**
String get passwordsDontMatch ;
/// Continue button
///
/// In en, this message translates to:
/// **'Continue'**
String get continueBtn ;
/// Password changed message
///
/// In en, this message translates to:
/// **'Password Changed Successfully'**
String get passwordChangedSuccess ;
/// Incorrect password message
///
/// In en, this message translates to:
/// **'Incorrect Password'**
String get incorrectPassword ;
/// Select image prompt
///
/// In en, this message translates to:
/// **'Please select an image.'**
String get selectImage ;
/// Image updated message
///
/// In en, this message translates to:
/// **'Profile image updated'**
String get profileImageUpdated ;
/// Image upload failure
///
/// In en, this message translates to:
/// **'Failed to upload image: {error}'**
String failedUploadImage ( String error );
/// Missing user id message
///
/// In en, this message translates to:
/// **'User id missing, please re-login'**
String get userIdMissing ;
/// Profile updated message
///
/// In en, this message translates to:
/// **'Profile updated'**
String get profileUpdated ;
/// Profile update failure
///
/// In en, this message translates to:
/// **'Failed to update profile: {code}'**
String failedUpdateProfile ( String code );
/// Update failure
///
/// In en, this message translates to:
/// **'Failed to update: {error}'**
String failedUpdate ( String error );
/// Profile settings title
///
/// In en, this message translates to:
/// **'My Profile Settings'**
String get myProfileSettings ;
/// Pick photo button
///
/// In en, this message translates to:
/// **'Pick a Profile Photo'**
String get pickProfilePhoto ;
/// Profile info header
///
/// In en, this message translates to:
/// **'Your Profile Information'**
String get yourProfileInfo ;
/// Full name label
///
/// In en, this message translates to:
/// **'Your Full Name'**
String get yourFullName ;
/// Full name hint
///
/// In en, this message translates to:
/// **'Enter Full Name'**
String get enterFullName ;
/// Full name validation
///
/// In en, this message translates to:
/// **'Please enter your full name'**
String get enterFullNameError ;
/// Pronouns label
///
/// In en, this message translates to:
/// **'Pronouns'**
String get pronouns ;
/// Pronouns hint
///
/// In en, this message translates to:
/// **'Enter Pronouns'**
String get enterPronouns ;
/// Role label
///
/// In en, this message translates to:
/// **'Role'**
String get role ;
/// Role hint
///
/// In en, this message translates to:
/// **'Enter Role'**
String get enterRole ;
/// Department label
///
/// In en, this message translates to:
/// **'Department or Team'**
String get departmentOrTeam ;
/// Department hint
///
/// In en, this message translates to:
/// **'Enter Department or Team'**
String get enterDepartmentOrTeam ;
/// Email validation
///
/// In en, this message translates to:
/// **'Please enter a valid email address'**
String get validEmailError ;
/// About me label
///
/// In en, this message translates to:
/// **'About Me'**
String get aboutMe ;
/// Update profile button
///
/// In en, this message translates to:
/// **'Update Profile'**
String get updateProfile ;
/// Profile password row
///
/// In en, this message translates to:
/// **'Password:Change Password for your account Change password'**
String get profilePasswordRow ;
/// Profile security row
///
/// In en, this message translates to:
/// **'Security:Logout of all sessions except this current browser Logout other sessions'**
String get profileSecurityRow ;
/// Profile deactivation row
///
/// In en, this message translates to:
/// **'Deactivation:Remove access to all organizations and workspace in cloudnsure Deactivate account'**
String get profileDeactivationRow ;
/// Loading indicator
///
/// In en, this message translates to:
/// **'Loading...'**
String get loading ;
/// Home tab
///
/// In en, this message translates to:
/// **'Home'**
String get navHome ;
/// Contacts tab
///
/// In en, this message translates to:
/// **'Contacts'**
String get navContacts ;
/// Wallet tab
///
/// In en, this message translates to:
/// **'Wallet'**
String get navWallet ;
/// Duty summary dialog title
///
/// In en, this message translates to:
/// **'Duty summary'**
String get dutySummary ;
/// Duty summary dialog body
///
/// In en, this message translates to:
/// **'Points recorded: {points}\\nDistance (straight line): {km} km\\nRoad distance: coming in step 4 (free API).'**
String dutySummaryBody ( String points , String km );
/// Duty punch title
///
/// In en, this message translates to:
/// **'Duty Punch'**
String get dutyPunch ;
/// Busy button label
///
/// In en, this message translates to:
/// **'Please wait...'**
String get pleaseWait ;
/// Punch out button
///
/// In en, this message translates to:
/// **'Punch Out'**
String get punchOut ;
/// Punch in button
///
/// In en, this message translates to:
/// **'Punch In'**
String get punchIn ;
/// Punched in confirmation
///
/// In en, this message translates to:
/// **'Punched in - tracking every 5 min'**
String get punchedInTracking ;
/// Punch in failure
///
/// In en, this message translates to:
/// **'Punch in failed: {error}'**
String punchInFailed ( String error );
/// Punch out failure
///
/// In en, this message translates to:
/// **'Punch out failed: {error}'**
String punchOutFailed ( String error );
/// Background tracking note
///
/// In en, this message translates to:
/// **'Keeps recording one location every 5 min, even with the app minimized. For Xiaomi/Oppo/Vivo/Samsung allow Unrestricted battery use or tracking may pause.'**
String get batteryNote ;
/// Recent duties header
///
/// In en, this message translates to:
/// **'Recent duties'**
String get recentDuties ;
/// Punched in status
///
/// In en, this message translates to:
/// **'Punched IN'**
String get punchedIn ;
/// Punched out status
///
/// In en, this message translates to:
/// **'Punched OUT'**
String get punchedOut ;
/// Session row
///
/// In en, this message translates to:
/// **'Session: {session}'**
String sessionRow ( String session );
/// Since row
///
/// In en, this message translates to:
/// **'Since: {time}'**
String sinceRow ( String time );
/// Points row
///
/// In en, this message translates to:
/// **'Points: {points}'**
String pointsRow ( String points );
/// Distance row
///
/// In en, this message translates to:
/// **'Distance: {km} km'**
String distanceRow ( String km );
/// History out row
///
/// In en, this message translates to:
/// **'Out: {out} • {km} km'**
String historyOutRow ( String out , String km );
/// Battery dialog title
///
/// In en, this message translates to:
/// **'Keep tracking running'**
String get keepTracking ;
/// Battery exemption body
///
/// In en, this message translates to:
/// **'Xiaomi, Oppo, Vivo and Samsung phones stop background tracking to save battery. Allow \"Unrestricted\" battery use for this app so duty tracking keeps working when the screen is off?'**
String get batteryExemptBody ;
/// Later button
///
/// In en, this message translates to:
/// **'Later'**
String get laterBtn ;
/// Open settings button
///
/// In en, this message translates to:
/// **'Open settings'**
String get openSettings ;
/// Scan barcode title
///
/// In en, this message translates to:
/// **'Scan Barcode'**
String get scanBarcode ;
/// Bar code title
///
/// In en, this message translates to:
/// **'BAR CODE'**
String get barCode ;
/// Scanned barcode label
///
/// In en, this message translates to:
/// **'Scanned Barcode:'**
String get scannedBarcode ;
/// Scan QR title
///
/// In en, this message translates to:
/// **'Scan QR'**
String get scanQR ;
/// QR code title
///
/// In en, this message translates to:
/// **'QR Code'**
String get qrCode ;
/// Scanned QR label
///
/// In en, this message translates to:
/// **'Scanned QRcode:'**
String get scannedQRCode ;
/// Scan QR button
///
/// In en, this message translates to:
/// **'Scan QRcode'**
String get scanQRCode ;
/// Generated QR title
///
/// In en, this message translates to:
/// **'Generated QR Code'**
String get generatedQrCode ;
/// Generated barcode title
///
/// In en, this message translates to:
/// **'Generated Bar Code'**
String get generatedBarCode ;
/// QR and barcode title
///
/// In en, this message translates to:
/// **'QR AND BAR CODE'**
String get qrAndBarCode ;
/// Generate QR button
///
/// In en, this message translates to:
/// **'Generate Qr'**
String get generateQr ;
/// Generate barcode button
///
/// In en, this message translates to:
/// **'Generate Bar code'**
String get generateBarCode ;
/// QR scanner button
///
/// In en, this message translates to:
/// **'QR Code Scanner'**
String get qrCodeScanner ;
/// Barcode scanner button
///
/// In en, this message translates to:
/// **'Bar Code Scanner'**
String get barCodeScanner ;
/// QR data field label
///
/// In en, this message translates to:
/// **'qr_code_data'**
String get qrCodeData ;
/// Barcode data field label
///
/// In en, this message translates to:
/// **'Bar Code Data'**
String get barCodeData ;
2026-10-02 22:03:21 +05:30
}
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' , 'hi' ]. 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 'hi' :
return AppLocalizationsHi ();
}
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.' );
}