reworked operation (#12)

Reviewed-on: #12
Co-authored-by: Mark M2 Macbook <marco@catelli.it>
Co-committed-by: Mark M2 Macbook <marco@catelli.it>
This commit is contained in:
2026-05-04 15:36:42 +02:00
committed by brontomark
parent 9f57207a39
commit 94ad524bae
110 changed files with 5831 additions and 5306 deletions

91
lib/l10n/app_it.arb Normal file
View File

@@ -0,0 +1,91 @@
{
"@@locale": "it",
"@authCubitResetPasswordEmailSentTo": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"@authError": {
"placeholders": {
"message": {
"type": "String"
}
}
},
"@commonComingSoon": {},
"@commonError": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"@homeWelcomeBack": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"authCubitCheckEmailToConfirmAccount": "Controlla la tua email per confermare l'account!",
"authCubitResetPasswordEmailSentTo": "Email per reset password inviata a {email}!",
"authError": "Errore di autenticazione: {message}",
"authScreenAlreadyHaveAccount": "Hai già un account?",
"authScreenBusinessEmail": "Email aziendale",
"authScreenCreateAccount": "CREA ACCOUNT",
"authScreenDontHaveAccount": "Non hai un account?",
"authScreenForgotPassword": "Password dimenticata/Invito scaduto?",
"authScreenLogin": "LOGIN",
"authScreenLoginToManageYourBusiness": "Accedi per gestire il tuo business",
"authScreenSignUp": "REGISTRATI",
"authScreenStartTodayToDigitalizeYourStore": "Inizia oggi a digitalizzare il tuo negozio",
"authScreenWelcomeBack": "BENTORNATO",
"commonClose": "Chiudi",
"commonComingSoon": "Coming soon",
"commonDashboard": "Panoramica",
"commonError": "Si è verificato un errore: {error}",
"commonMasterData": "Anagrafiche",
"commonNewPassword": "Nuova Password",
"commonNote": "Nota",
"commonSave": "Salva",
"commonOperation": "Operazione",
"commonSettings": "Impostazioni",
"commonStickyNotes": "Sticky Notes",
"commonTask": "Attività",
"homeExpiringContracts": "Contratti in scadenza",
"homeLatestOperationTickets": "Ultime assistenze",
"homeLatestOperations": "Ultime Operazioni",
"homeMyTasks": "Mie Attività",
"homeNewOperationTicket": "Nuova assistenza",
"homeNoStoreFound": "Nessun negozio trovato",
"homeWelcomeBack": "Bentornato, {name}! 👋",
"imageViewerWidgetErrorOpening": "Errore durante l'apertura dell'immagine",
"pdfViewerAnteprimaPdf": "Anteprima PDF",
"setPasswordInviteAcceptedChoosePassword": "Hai accettato l'invito. Scegli una password sicura per accedere in futuro.",
"setPasswordScreenAtLeast6Chars": "La password deve avere almeno 6 caratteri",
"setPasswordScreenPasswordSetWelcome": "Password impostata! Benvenuto a bordo 🚀",
"setPasswordScreenSaveAndStart": "SALVA E INIZIA",
"setPasswordScreenSetPassword": "Imposta una nuova Password",
"setPasswordScreenWelcomeInFlux": "Benvenuto in FLUX!",
"createCompanyScreenCompanyConfiguration": "Configurazione Azienda",
"commonSavingError": "Errore durante il salvataggio",
"createCompanyScreenFiscalData": "DATI FISCALI",
"createCompanyScreenCompanyName": "Ragione Sociale",
"createCompanyScreenVatId": "Partita IVA",
"createCompanyScreenFiscalCode": "Codice Fiscale",
"createCompanyScreenSdiPec": "Codice Univoco (SDI) / PEC",
"createCompanyScreenCompanyLegalAddress": "SEDE LEGALE",
"commonAddress": "Indirizzo e n. civico",
"commonCity": "Città",
"commonZipCode": "CAP",
"commonProvince": "Prov",
"commonCountry": "Paese",
"createCompanyScreenUploadLogo": "Carica Logo Aziendale",
"createCompanyScreenWillBeUsedForReceipts": "Verrà utilizzato per le tue stampe e ricevute",
"createCompanyScreenSaveCompany": "SALVA AZIENDA",
"createCompanyScreenSetupYourCompany": "Configura la tua Azienda",
"createCompanyScreenFluxNeedsYourFiscalData": "FLUX ha bisogno dei tuoi dati fiscali per gestire correttamente le fatturazioni e le attivazioni dei tuoi negozi.",
"operationFormAttachmentSectionNoCustomer": "Devi prima selezionare un cliente"
}

View File

@@ -0,0 +1,482 @@
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_it.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('it')];
/// No description provided for @authCubitCheckEmailToConfirmAccount.
///
/// In it, this message translates to:
/// **'Controlla la tua email per confermare l\'account!'**
String get authCubitCheckEmailToConfirmAccount;
/// No description provided for @authCubitResetPasswordEmailSentTo.
///
/// In it, this message translates to:
/// **'Email per reset password inviata a {email}!'**
String authCubitResetPasswordEmailSentTo(String email);
/// No description provided for @authError.
///
/// In it, this message translates to:
/// **'Errore di autenticazione: {message}'**
String authError(String message);
/// No description provided for @authScreenAlreadyHaveAccount.
///
/// In it, this message translates to:
/// **'Hai già un account?'**
String get authScreenAlreadyHaveAccount;
/// No description provided for @authScreenBusinessEmail.
///
/// In it, this message translates to:
/// **'Email aziendale'**
String get authScreenBusinessEmail;
/// No description provided for @authScreenCreateAccount.
///
/// In it, this message translates to:
/// **'CREA ACCOUNT'**
String get authScreenCreateAccount;
/// No description provided for @authScreenDontHaveAccount.
///
/// In it, this message translates to:
/// **'Non hai un account?'**
String get authScreenDontHaveAccount;
/// No description provided for @authScreenForgotPassword.
///
/// In it, this message translates to:
/// **'Password dimenticata/Invito scaduto?'**
String get authScreenForgotPassword;
/// No description provided for @authScreenLogin.
///
/// In it, this message translates to:
/// **'LOGIN'**
String get authScreenLogin;
/// No description provided for @authScreenLoginToManageYourBusiness.
///
/// In it, this message translates to:
/// **'Accedi per gestire il tuo business'**
String get authScreenLoginToManageYourBusiness;
/// No description provided for @authScreenSignUp.
///
/// In it, this message translates to:
/// **'REGISTRATI'**
String get authScreenSignUp;
/// No description provided for @authScreenStartTodayToDigitalizeYourStore.
///
/// In it, this message translates to:
/// **'Inizia oggi a digitalizzare il tuo negozio'**
String get authScreenStartTodayToDigitalizeYourStore;
/// No description provided for @authScreenWelcomeBack.
///
/// In it, this message translates to:
/// **'BENTORNATO'**
String get authScreenWelcomeBack;
/// No description provided for @commonClose.
///
/// In it, this message translates to:
/// **'Chiudi'**
String get commonClose;
/// No description provided for @commonComingSoon.
///
/// In it, this message translates to:
/// **'Coming soon'**
String get commonComingSoon;
/// No description provided for @commonDashboard.
///
/// In it, this message translates to:
/// **'Panoramica'**
String get commonDashboard;
/// No description provided for @commonError.
///
/// In it, this message translates to:
/// **'Si è verificato un errore: {error}'**
String commonError(String error);
/// No description provided for @commonMasterData.
///
/// In it, this message translates to:
/// **'Anagrafiche'**
String get commonMasterData;
/// No description provided for @commonNewPassword.
///
/// In it, this message translates to:
/// **'Nuova Password'**
String get commonNewPassword;
/// No description provided for @commonNote.
///
/// In it, this message translates to:
/// **'Nota'**
String get commonNote;
/// No description provided for @commonSave.
///
/// In it, this message translates to:
/// **'Salva'**
String get commonSave;
/// No description provided for @commonOperation.
///
/// In it, this message translates to:
/// **'Operazione'**
String get commonOperation;
/// No description provided for @commonSettings.
///
/// In it, this message translates to:
/// **'Impostazioni'**
String get commonSettings;
/// No description provided for @commonStickyNotes.
///
/// In it, this message translates to:
/// **'Sticky Notes'**
String get commonStickyNotes;
/// No description provided for @commonTask.
///
/// In it, this message translates to:
/// **'Attività'**
String get commonTask;
/// No description provided for @homeExpiringContracts.
///
/// In it, this message translates to:
/// **'Contratti in scadenza'**
String get homeExpiringContracts;
/// No description provided for @homeLatestOperationTickets.
///
/// In it, this message translates to:
/// **'Ultime assistenze'**
String get homeLatestOperationTickets;
/// No description provided for @homeLatestOperations.
///
/// In it, this message translates to:
/// **'Ultime Operazioni'**
String get homeLatestOperations;
/// No description provided for @homeMyTasks.
///
/// In it, this message translates to:
/// **'Mie Attività'**
String get homeMyTasks;
/// No description provided for @homeNewOperationTicket.
///
/// In it, this message translates to:
/// **'Nuova assistenza'**
String get homeNewOperationTicket;
/// No description provided for @homeNoStoreFound.
///
/// In it, this message translates to:
/// **'Nessun negozio trovato'**
String get homeNoStoreFound;
/// No description provided for @homeWelcomeBack.
///
/// In it, this message translates to:
/// **'Bentornato, {name}! 👋'**
String homeWelcomeBack(String name);
/// No description provided for @imageViewerWidgetErrorOpening.
///
/// In it, this message translates to:
/// **'Errore durante l\'apertura dell\'immagine'**
String get imageViewerWidgetErrorOpening;
/// No description provided for @pdfViewerAnteprimaPdf.
///
/// In it, this message translates to:
/// **'Anteprima PDF'**
String get pdfViewerAnteprimaPdf;
/// No description provided for @setPasswordInviteAcceptedChoosePassword.
///
/// In it, this message translates to:
/// **'Hai accettato l\'invito. Scegli una password sicura per accedere in futuro.'**
String get setPasswordInviteAcceptedChoosePassword;
/// No description provided for @setPasswordScreenAtLeast6Chars.
///
/// In it, this message translates to:
/// **'La password deve avere almeno 6 caratteri'**
String get setPasswordScreenAtLeast6Chars;
/// No description provided for @setPasswordScreenPasswordSetWelcome.
///
/// In it, this message translates to:
/// **'Password impostata! Benvenuto a bordo 🚀'**
String get setPasswordScreenPasswordSetWelcome;
/// No description provided for @setPasswordScreenSaveAndStart.
///
/// In it, this message translates to:
/// **'SALVA E INIZIA'**
String get setPasswordScreenSaveAndStart;
/// No description provided for @setPasswordScreenSetPassword.
///
/// In it, this message translates to:
/// **'Imposta una nuova Password'**
String get setPasswordScreenSetPassword;
/// No description provided for @setPasswordScreenWelcomeInFlux.
///
/// In it, this message translates to:
/// **'Benvenuto in FLUX!'**
String get setPasswordScreenWelcomeInFlux;
/// No description provided for @createCompanyScreenCompanyConfiguration.
///
/// In it, this message translates to:
/// **'Configurazione Azienda'**
String get createCompanyScreenCompanyConfiguration;
/// No description provided for @commonSavingError.
///
/// In it, this message translates to:
/// **'Errore durante il salvataggio'**
String get commonSavingError;
/// No description provided for @createCompanyScreenFiscalData.
///
/// In it, this message translates to:
/// **'DATI FISCALI'**
String get createCompanyScreenFiscalData;
/// No description provided for @createCompanyScreenCompanyName.
///
/// In it, this message translates to:
/// **'Ragione Sociale'**
String get createCompanyScreenCompanyName;
/// No description provided for @createCompanyScreenVatId.
///
/// In it, this message translates to:
/// **'Partita IVA'**
String get createCompanyScreenVatId;
/// No description provided for @createCompanyScreenFiscalCode.
///
/// In it, this message translates to:
/// **'Codice Fiscale'**
String get createCompanyScreenFiscalCode;
/// No description provided for @createCompanyScreenSdiPec.
///
/// In it, this message translates to:
/// **'Codice Univoco (SDI) / PEC'**
String get createCompanyScreenSdiPec;
/// No description provided for @createCompanyScreenCompanyLegalAddress.
///
/// In it, this message translates to:
/// **'SEDE LEGALE'**
String get createCompanyScreenCompanyLegalAddress;
/// No description provided for @commonAddress.
///
/// In it, this message translates to:
/// **'Indirizzo e n. civico'**
String get commonAddress;
/// No description provided for @commonCity.
///
/// In it, this message translates to:
/// **'Città'**
String get commonCity;
/// No description provided for @commonZipCode.
///
/// In it, this message translates to:
/// **'CAP'**
String get commonZipCode;
/// No description provided for @commonProvince.
///
/// In it, this message translates to:
/// **'Prov'**
String get commonProvince;
/// No description provided for @commonCountry.
///
/// In it, this message translates to:
/// **'Paese'**
String get commonCountry;
/// No description provided for @createCompanyScreenUploadLogo.
///
/// In it, this message translates to:
/// **'Carica Logo Aziendale'**
String get createCompanyScreenUploadLogo;
/// No description provided for @createCompanyScreenWillBeUsedForReceipts.
///
/// In it, this message translates to:
/// **'Verrà utilizzato per le tue stampe e ricevute'**
String get createCompanyScreenWillBeUsedForReceipts;
/// No description provided for @createCompanyScreenSaveCompany.
///
/// In it, this message translates to:
/// **'SALVA AZIENDA'**
String get createCompanyScreenSaveCompany;
/// No description provided for @createCompanyScreenSetupYourCompany.
///
/// In it, this message translates to:
/// **'Configura la tua Azienda'**
String get createCompanyScreenSetupYourCompany;
/// No description provided for @createCompanyScreenFluxNeedsYourFiscalData.
///
/// In it, this message translates to:
/// **'FLUX ha bisogno dei tuoi dati fiscali per gestire correttamente le fatturazioni e le attivazioni dei tuoi negozi.'**
String get createCompanyScreenFluxNeedsYourFiscalData;
/// No description provided for @operationFormAttachmentSectionNoCustomer.
///
/// In it, this message translates to:
/// **'Devi prima selezionare un cliente'**
String get operationFormAttachmentSectionNoCustomer;
}
class _AppLocalizationsDelegate
extends LocalizationsDelegate<AppLocalizations> {
const _AppLocalizationsDelegate();
@override
Future<AppLocalizations> load(Locale locale) {
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
}
@override
bool isSupported(Locale locale) =>
<String>['it'].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 'it':
return AppLocalizationsIt();
}
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.',
);
}

View File

@@ -0,0 +1,57 @@
// 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 homeExpiringContracts => 'Contratti in scadenza';
@override
String get homeLatestOperationTickets => 'Ultime assistenze';
@override
String get homeLatestOperations => 'Ultimi Servizi';
@override
String get homeMasterData => 'Anagrafiche';
@override
String get homeMyTasks => 'Mie Attività';
@override
String get homeNewOperation => 'Servizio';
@override
String get homeSettings => 'Impostazioni';
@override
String get homeStickyNotes => 'Sticky Notes';
@override
String homeWelcomeBack(String name) {
return 'Bentornato, $name! 👋';
}
@override
String get homeNoStoreFound => 'Nessun negozio trovato';
@override
String get homeNewOperationTicket => 'Nuova assistenza';
@override
String get homeNewNote => 'Nota';
@override
String get homeNewTask => 'Attività';
@override
String get commonComingSoon => 'Coming soon';
@override
String get commonDashboard => 'Panoramica';
}

View File

@@ -0,0 +1,206 @@
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Italian (`it`).
class AppLocalizationsIt extends AppLocalizations {
AppLocalizationsIt([String locale = 'it']) : super(locale);
@override
String get authCubitCheckEmailToConfirmAccount =>
'Controlla la tua email per confermare l\'account!';
@override
String authCubitResetPasswordEmailSentTo(String email) {
return 'Email per reset password inviata a $email!';
}
@override
String authError(String message) {
return 'Errore di autenticazione: $message';
}
@override
String get authScreenAlreadyHaveAccount => 'Hai già un account?';
@override
String get authScreenBusinessEmail => 'Email aziendale';
@override
String get authScreenCreateAccount => 'CREA ACCOUNT';
@override
String get authScreenDontHaveAccount => 'Non hai un account?';
@override
String get authScreenForgotPassword => 'Password dimenticata/Invito scaduto?';
@override
String get authScreenLogin => 'LOGIN';
@override
String get authScreenLoginToManageYourBusiness =>
'Accedi per gestire il tuo business';
@override
String get authScreenSignUp => 'REGISTRATI';
@override
String get authScreenStartTodayToDigitalizeYourStore =>
'Inizia oggi a digitalizzare il tuo negozio';
@override
String get authScreenWelcomeBack => 'BENTORNATO';
@override
String get commonClose => 'Chiudi';
@override
String get commonComingSoon => 'Coming soon';
@override
String get commonDashboard => 'Panoramica';
@override
String commonError(String error) {
return 'Si è verificato un errore: $error';
}
@override
String get commonMasterData => 'Anagrafiche';
@override
String get commonNewPassword => 'Nuova Password';
@override
String get commonNote => 'Nota';
@override
String get commonSave => 'Salva';
@override
String get commonOperation => 'Operazione';
@override
String get commonSettings => 'Impostazioni';
@override
String get commonStickyNotes => 'Sticky Notes';
@override
String get commonTask => 'Attività';
@override
String get homeExpiringContracts => 'Contratti in scadenza';
@override
String get homeLatestOperationTickets => 'Ultime assistenze';
@override
String get homeLatestOperations => 'Ultime Operazioni';
@override
String get homeMyTasks => 'Mie Attività';
@override
String get homeNewOperationTicket => 'Nuova assistenza';
@override
String get homeNoStoreFound => 'Nessun negozio trovato';
@override
String homeWelcomeBack(String name) {
return 'Bentornato, $name! 👋';
}
@override
String get imageViewerWidgetErrorOpening =>
'Errore durante l\'apertura dell\'immagine';
@override
String get pdfViewerAnteprimaPdf => 'Anteprima PDF';
@override
String get setPasswordInviteAcceptedChoosePassword =>
'Hai accettato l\'invito. Scegli una password sicura per accedere in futuro.';
@override
String get setPasswordScreenAtLeast6Chars =>
'La password deve avere almeno 6 caratteri';
@override
String get setPasswordScreenPasswordSetWelcome =>
'Password impostata! Benvenuto a bordo 🚀';
@override
String get setPasswordScreenSaveAndStart => 'SALVA E INIZIA';
@override
String get setPasswordScreenSetPassword => 'Imposta una nuova Password';
@override
String get setPasswordScreenWelcomeInFlux => 'Benvenuto in FLUX!';
@override
String get createCompanyScreenCompanyConfiguration =>
'Configurazione Azienda';
@override
String get commonSavingError => 'Errore durante il salvataggio';
@override
String get createCompanyScreenFiscalData => 'DATI FISCALI';
@override
String get createCompanyScreenCompanyName => 'Ragione Sociale';
@override
String get createCompanyScreenVatId => 'Partita IVA';
@override
String get createCompanyScreenFiscalCode => 'Codice Fiscale';
@override
String get createCompanyScreenSdiPec => 'Codice Univoco (SDI) / PEC';
@override
String get createCompanyScreenCompanyLegalAddress => 'SEDE LEGALE';
@override
String get commonAddress => 'Indirizzo e n. civico';
@override
String get commonCity => 'Città';
@override
String get commonZipCode => 'CAP';
@override
String get commonProvince => 'Prov';
@override
String get commonCountry => 'Paese';
@override
String get createCompanyScreenUploadLogo => 'Carica Logo Aziendale';
@override
String get createCompanyScreenWillBeUsedForReceipts =>
'Verrà utilizzato per le tue stampe e ricevute';
@override
String get createCompanyScreenSaveCompany => 'SALVA AZIENDA';
@override
String get createCompanyScreenSetupYourCompany => 'Configura la tua Azienda';
@override
String get createCompanyScreenFluxNeedsYourFiscalData =>
'FLUX ha bisogno dei tuoi dati fiscali per gestire correttamente le fatturazioni e le attivazioni dei tuoi negozi.';
@override
String get operationFormAttachmentSectionNoCustomer =>
'Devi prima selezionare un cliente';
}