initalizing the mobile apps
This commit is contained in:
10
apps/packages/core_localization/lib/core_localization.dart
Normal file
10
apps/packages/core_localization/lib/core_localization.dart
Normal file
@@ -0,0 +1,10 @@
|
||||
export 'src/bloc/locale_bloc.dart';
|
||||
export 'src/bloc/locale_event.dart';
|
||||
export 'src/bloc/locale_state.dart';
|
||||
export 'src/l10n/strings.g.dart';
|
||||
export 'src/domain/repositories/locale_repository_interface.dart';
|
||||
export 'src/domain/usecases/get_locale_use_case.dart';
|
||||
export 'src/domain/usecases/set_locale_use_case.dart';
|
||||
export 'src/data/repositories_impl/locale_repository_impl.dart';
|
||||
export 'src/data/datasources/locale_local_data_source.dart';
|
||||
export 'src/localization_module.dart';
|
||||
@@ -0,0 +1,56 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import '../domain/usecases/get_locale_use_case.dart';
|
||||
import '../domain/usecases/set_locale_use_case.dart';
|
||||
import '../l10n/strings.g.dart';
|
||||
import 'locale_event.dart';
|
||||
import 'locale_state.dart';
|
||||
|
||||
/// A [Bloc] that manages the application's locale state.
|
||||
///
|
||||
/// It coordinates the flow between user language requests and persistent storage
|
||||
/// using [SetLocaleUseCase] and [GetLocaleUseCase].
|
||||
class LocaleBloc extends Bloc<LocaleEvent, LocaleState> {
|
||||
final GetLocaleUseCase getLocaleUseCase;
|
||||
final SetLocaleUseCase setLocaleUseCase;
|
||||
|
||||
/// Creates a [LocaleBloc] with the required use cases.
|
||||
LocaleBloc({required this.getLocaleUseCase, required this.setLocaleUseCase})
|
||||
: super(LocaleState.initial()) {
|
||||
on<ChangeLocale>(_onChangeLocale);
|
||||
on<LoadLocale>(_onLoadLocale);
|
||||
}
|
||||
|
||||
/// Handles the [ChangeLocale] event by saving it via the use case and emitting new state.
|
||||
Future<void> _onChangeLocale(
|
||||
ChangeLocale event,
|
||||
Emitter<LocaleState> emit,
|
||||
) async {
|
||||
// 1. Update slang settings
|
||||
LocaleSettings.setLocaleRaw(event.locale.languageCode);
|
||||
|
||||
// 2. Persist using Use Case
|
||||
await setLocaleUseCase(event.locale);
|
||||
|
||||
// 3. Emit new state
|
||||
emit(
|
||||
LocaleState(
|
||||
locale: event.locale,
|
||||
supportedLocales: state.supportedLocales,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/// Handles the [LoadLocale] event by retrieving it via the use case and updating settings.
|
||||
Future<void> _onLoadLocale(
|
||||
LoadLocale event,
|
||||
Emitter<LocaleState> emit,
|
||||
) async {
|
||||
final savedLocale = await getLocaleUseCase();
|
||||
final locale = const Locale('es');
|
||||
|
||||
LocaleSettings.setLocaleRaw(locale.languageCode);
|
||||
|
||||
emit(LocaleState(locale: locale, supportedLocales: state.supportedLocales));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
/// Base class for all locale-related events.
|
||||
sealed class LocaleEvent {
|
||||
/// Creates a [LocaleEvent].
|
||||
const LocaleEvent();
|
||||
}
|
||||
|
||||
/// Event triggered when the user wants to change the application locale.
|
||||
class ChangeLocale extends LocaleEvent {
|
||||
/// The new locale to apply.
|
||||
final Locale locale;
|
||||
|
||||
/// Creates a [ChangeLocale] event.
|
||||
const ChangeLocale(this.locale);
|
||||
}
|
||||
|
||||
/// Event triggered to load the saved locale from persistent storage.
|
||||
class LoadLocale extends LocaleEvent {
|
||||
/// Creates a [LoadLocale] event.
|
||||
const LoadLocale();
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import '../l10n/strings.g.dart';
|
||||
|
||||
/// Represents the current state of the application's localization.
|
||||
class LocaleState {
|
||||
/// The current active locale.
|
||||
final Locale locale;
|
||||
|
||||
/// The list of supported locales for the application.
|
||||
final List<Locale> supportedLocales;
|
||||
|
||||
/// Creates a [LocaleState] with the specified [locale].
|
||||
const LocaleState({required this.locale, required this.supportedLocales});
|
||||
|
||||
/// The initial state of the application, defaulting to English.
|
||||
factory LocaleState.initial() => LocaleState(
|
||||
locale: const Locale('es'),
|
||||
supportedLocales: AppLocaleUtils.supportedLocales,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
/// Interface for the local data source that manages locale persistence.
|
||||
abstract interface class LocaleLocalDataSource {
|
||||
/// Saves the language code to local storage.
|
||||
Future<void> saveLanguageCode(String languageCode);
|
||||
|
||||
/// Retrieves the saved language code from local storage.
|
||||
Future<String?> getLanguageCode();
|
||||
}
|
||||
|
||||
/// Implementation of [LocaleLocalDataSource] using [SharedPreferencesAsync].
|
||||
class LocaleLocalDataSourceImpl implements LocaleLocalDataSource {
|
||||
static const String _localeKey = 'app_locale';
|
||||
final SharedPreferencesAsync _sharedPreferences;
|
||||
|
||||
/// Creates a [LocaleLocalDataSourceImpl] with the required [SharedPreferencesAsync] instance.
|
||||
LocaleLocalDataSourceImpl(this._sharedPreferences);
|
||||
|
||||
@override
|
||||
Future<void> saveLanguageCode(String languageCode) async {
|
||||
await _sharedPreferences.setString(_localeKey, languageCode);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String?> getLanguageCode() async {
|
||||
return _sharedPreferences.getString(_localeKey);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import 'dart:ui';
|
||||
import '../../domain/repositories/locale_repository_interface.dart';
|
||||
import '../datasources/locale_local_data_source.dart';
|
||||
|
||||
/// Implementation of [LocaleRepositoryInterface] that coordinates with a local data source.
|
||||
///
|
||||
/// This class handles the mapping between domain [Locale] objects and the raw
|
||||
/// strings handled by the [LocaleLocalDataSource].
|
||||
class LocaleRepositoryImpl implements LocaleRepositoryInterface {
|
||||
final LocaleLocalDataSource _localDataSource;
|
||||
|
||||
/// Creates a [LocaleRepositoryImpl] with the provided [_localDataSource].
|
||||
LocaleRepositoryImpl(this._localDataSource);
|
||||
|
||||
@override
|
||||
Future<void> saveLocale(Locale locale) {
|
||||
return _localDataSource.saveLanguageCode(locale.languageCode);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Locale?> getSavedLocale() async {
|
||||
final languageCode = await _localDataSource.getLanguageCode();
|
||||
if (languageCode != null) {
|
||||
return Locale(languageCode);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import 'dart:ui';
|
||||
|
||||
/// Interface for the locale repository.
|
||||
///
|
||||
/// This defines the contracts for persisting and retrieving the application's locale.
|
||||
/// Implementations of this interface should handle the details of the storage mechanism.
|
||||
abstract interface class LocaleRepositoryInterface {
|
||||
/// Saves the specified [locale] to persistent storage.
|
||||
///
|
||||
/// Throws a [RepositoryException] if the operation fails.
|
||||
Future<void> saveLocale(Locale locale);
|
||||
|
||||
/// Retrieves the saved [locale] from persistent storage.
|
||||
///
|
||||
/// Returns `null` if no locale has been previously saved.
|
||||
Future<Locale?> getSavedLocale();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'dart:ui';
|
||||
import 'package:krow_core/core.dart';
|
||||
import '../repositories/locale_repository_interface.dart';
|
||||
|
||||
/// Use case to retrieve the persisted application locale.
|
||||
///
|
||||
/// This class extends [NoInputUseCase] and interacts with [LocaleRepositoryInterface]
|
||||
/// to fetch the saved locale.
|
||||
class GetLocaleUseCase extends NoInputUseCase<Locale?> {
|
||||
final LocaleRepositoryInterface _repository;
|
||||
|
||||
/// Creates a [GetLocaleUseCase] with the required [LocaleRepositoryInterface].
|
||||
GetLocaleUseCase(this._repository);
|
||||
|
||||
@override
|
||||
Future<Locale?> call() {
|
||||
return _repository.getSavedLocale();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'dart:ui';
|
||||
import 'package:krow_core/core.dart';
|
||||
import '../repositories/locale_repository_interface.dart';
|
||||
|
||||
/// Use case to save the application locale to persistent storage.
|
||||
///
|
||||
/// This class extends [UseCase] and interacts with [LocaleRepositoryInterface]
|
||||
/// to save a given locale.
|
||||
class SetLocaleUseCase extends UseCase<Locale, void> {
|
||||
final LocaleRepositoryInterface _repository;
|
||||
|
||||
/// Creates a [SetLocaleUseCase] with the required [LocaleRepositoryInterface].
|
||||
SetLocaleUseCase(this._repository);
|
||||
|
||||
@override
|
||||
Future<void> call(Locale input) {
|
||||
return _repository.saveLocale(input);
|
||||
}
|
||||
}
|
||||
190
apps/packages/core_localization/lib/src/l10n/en.i18n.json
Normal file
190
apps/packages/core_localization/lib/src/l10n/en.i18n.json
Normal file
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"common": {
|
||||
"ok": "OK",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"delete": "Delete",
|
||||
"continue_text": "Continue"
|
||||
},
|
||||
"settings": {
|
||||
"language": "Language",
|
||||
"change_language": "Change Language"
|
||||
},
|
||||
"staff_authentication": {
|
||||
"get_started_page": {
|
||||
"title_part1": "Work, Grow, ",
|
||||
"title_part2": "Elevate",
|
||||
"subtitle": "Build your career in hospitality with \nflexibility and freedom.",
|
||||
"sign_up_button": "Sign Up",
|
||||
"log_in_button": "Log In"
|
||||
},
|
||||
"phone_verification_page": {
|
||||
"validation_error": "Please enter a valid 10-digit phone number",
|
||||
"send_code_button": "Send Code",
|
||||
"enter_code_title": "Enter verification code",
|
||||
"code_sent_message": "We sent a 6-digit code to ",
|
||||
"code_sent_instruction": ". Enter it below to verify your account."
|
||||
},
|
||||
"phone_input": {
|
||||
"title": "Verify your phone number",
|
||||
"subtitle": "We'll send you a verification code to get started.",
|
||||
"label": "Phone Number",
|
||||
"hint": "Enter your number"
|
||||
},
|
||||
"otp_verification": {
|
||||
"did_not_get_code": "Didn't get the code ?",
|
||||
"resend_in": "Resend in $seconds s",
|
||||
"resend_code": "Resend code"
|
||||
},
|
||||
"profile_setup_page": {
|
||||
"step_indicator": "Step $current of $total",
|
||||
"error_occurred": "An error occurred",
|
||||
"complete_setup_button": "Complete Setup",
|
||||
"steps": {
|
||||
"basic": "Basic Info",
|
||||
"location": "Location",
|
||||
"experience": "Experience"
|
||||
},
|
||||
"basic_info": {
|
||||
"title": "Let's get to know you",
|
||||
"subtitle": "Tell us a bit about yourself",
|
||||
"full_name_label": "Full Name *",
|
||||
"full_name_hint": "John Smith",
|
||||
"bio_label": "Short Bio",
|
||||
"bio_hint": "Experienced hospitality professional..."
|
||||
},
|
||||
"location": {
|
||||
"title": "Where do you want to work?",
|
||||
"subtitle": "Add your preferred work locations",
|
||||
"add_location_label": "Add Location *",
|
||||
"add_location_hint": "City or ZIP code",
|
||||
"add_button": "Add",
|
||||
"max_distance": "Max Distance: $distance miles",
|
||||
"min_dist_label": "5 mi",
|
||||
"max_dist_label": "50 mi"
|
||||
},
|
||||
"experience": {
|
||||
"title": "What are your skills?",
|
||||
"subtitle": "Select all that apply",
|
||||
"skills_label": "Skills *",
|
||||
"industries_label": "Preferred Industries",
|
||||
"skills": {
|
||||
"food_service": "Food Service",
|
||||
"bartending": "Bartending",
|
||||
"warehouse": "Warehouse",
|
||||
"retail": "Retail",
|
||||
"events": "Events",
|
||||
"customer_service": "Customer Service",
|
||||
"cleaning": "Cleaning",
|
||||
"security": "Security",
|
||||
"driving": "Driving",
|
||||
"cooking": "Cooking"
|
||||
},
|
||||
"industries": {
|
||||
"hospitality": "Hospitality",
|
||||
"food_service": "Food Service",
|
||||
"warehouse": "Warehouse",
|
||||
"events": "Events",
|
||||
"retail": "Retail",
|
||||
"healthcare": "Healthcare"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"trouble_question": "Having trouble? ",
|
||||
"contact_support": "Contact Support"
|
||||
}
|
||||
},
|
||||
"client_authentication": {
|
||||
"get_started_page": {
|
||||
"title": "Take Control of Your\nShifts and Events",
|
||||
"subtitle": "Streamline your operations with powerful tools to manage schedules, track performance, and keep your team on the same page—all in one place",
|
||||
"sign_in_button": "Sign In",
|
||||
"create_account_button": "Create Account"
|
||||
},
|
||||
"sign_in_page": {
|
||||
"title": "Welcome Back",
|
||||
"subtitle": "Sign in to manage your shifts and workers",
|
||||
"email_label": "Email",
|
||||
"email_hint": "Enter your email",
|
||||
"password_label": "Password",
|
||||
"password_hint": "Enter your password",
|
||||
"forgot_password": "Forgot Password?",
|
||||
"sign_in_button": "Sign In",
|
||||
"or_divider": "or",
|
||||
"social_apple": "Sign In with Apple",
|
||||
"social_google": "Sign In with Google",
|
||||
"no_account": "Don't have an account? ",
|
||||
"sign_up_link": "Sign Up"
|
||||
},
|
||||
"sign_up_page": {
|
||||
"title": "Create Account",
|
||||
"subtitle": "Get started with Krow for your business",
|
||||
"company_label": "Company Name",
|
||||
"company_hint": "Enter company name",
|
||||
"email_label": "Email",
|
||||
"email_hint": "Enter your email",
|
||||
"password_label": "Password",
|
||||
"password_hint": "Create a password",
|
||||
"confirm_password_label": "Confirm Password",
|
||||
"confirm_password_hint": "Confirm your password",
|
||||
"create_account_button": "Create Account",
|
||||
"or_divider": "or",
|
||||
"social_apple": "Sign Up with Apple",
|
||||
"social_google": "Sign Up with Google",
|
||||
"has_account": "Already have an account? ",
|
||||
"sign_in_link": "Sign In"
|
||||
}
|
||||
},
|
||||
"client_home": {
|
||||
"dashboard": {
|
||||
"welcome_back": "Welcome back",
|
||||
"edit_mode_active": "Edit Mode Active",
|
||||
"drag_instruction": "Drag to reorder, toggle visibility",
|
||||
"reset": "Reset",
|
||||
"metric_needed": "Needed",
|
||||
"metric_filled": "Filled",
|
||||
"metric_open": "Open",
|
||||
"view_all": "View all",
|
||||
"insight_lightbulb": "Save $amount/month",
|
||||
"insight_tip": "Book 48hrs ahead for better rates"
|
||||
},
|
||||
"widgets": {
|
||||
"actions": "Quick Actions",
|
||||
"reorder": "Reorder",
|
||||
"coverage": "Today's Coverage",
|
||||
"spending": "Spending Insights",
|
||||
"live_activity": "Live Activity"
|
||||
},
|
||||
"actions": {
|
||||
"rapid": "RAPID",
|
||||
"rapid_subtitle": "Urgent same-day",
|
||||
"create_order": "Create Order",
|
||||
"create_order_subtitle": "Schedule shifts"
|
||||
},
|
||||
"reorder": {
|
||||
"title": "REORDER",
|
||||
"reorder_button": "Reorder",
|
||||
"per_hr": "$amount/hr"
|
||||
},
|
||||
"form": {
|
||||
"edit_reorder": "Edit & Reorder",
|
||||
"post_new": "Post a New Shift",
|
||||
"review_subtitle": "Review and edit the details before posting",
|
||||
"date_label": "Date *",
|
||||
"date_hint": "mm/dd/yyyy",
|
||||
"location_label": "Location *",
|
||||
"location_hint": "Business address",
|
||||
"positions_title": "Positions",
|
||||
"add_position": "Add Position",
|
||||
"role_label": "Role *",
|
||||
"role_hint": "Select role",
|
||||
"start_time": "Start Time *",
|
||||
"end_time": "End Time *",
|
||||
"workers_needed": "Workers Needed *",
|
||||
"hourly_rate": "Hourly Rate (\\$) *",
|
||||
"post_shift": "Post Shift"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
189
apps/packages/core_localization/lib/src/l10n/es.i18n.json
Normal file
189
apps/packages/core_localization/lib/src/l10n/es.i18n.json
Normal file
@@ -0,0 +1,189 @@
|
||||
{
|
||||
"common": {
|
||||
"ok": "Aceptar",
|
||||
"cancel": "Cancelar",
|
||||
"save": "Guardar",
|
||||
"delete": "Eliminar",
|
||||
"continue_text": "Continuar"
|
||||
},
|
||||
"settings": {
|
||||
"language": "Idioma",
|
||||
"change_language": "Cambiar Idioma"
|
||||
},
|
||||
"staff_authentication": {
|
||||
"get_started_page": {
|
||||
"title_part1": "Trabaja, Crece, ",
|
||||
"title_part2": "Elévate",
|
||||
"subtitle": "Construye tu carrera en hostelería con \nflexibilidad y libertad.",
|
||||
"sign_up_button": "Registrarse",
|
||||
"log_in_button": "Iniciar sesión"
|
||||
},
|
||||
"phone_verification_page": {
|
||||
"validation_error": "Por favor, ingresa un número de teléfono válido de 10 dígitos",
|
||||
"send_code_button": "Enviar código",
|
||||
"enter_code_title": "Ingresa el código de verificación",
|
||||
"code_sent_message": "Enviamos un código de 6 dígitos a ",
|
||||
"code_sent_instruction": ". Ingrésalo a continuación para verificar tu cuenta."
|
||||
},
|
||||
"phone_input": {
|
||||
"title": "Verifica tu número de teléfono",
|
||||
"subtitle": "Te enviaremos un código de verificación para comenzar.",
|
||||
"label": "Número de teléfono",
|
||||
"hint": "Ingresa tu número"
|
||||
},
|
||||
"otp_verification": {
|
||||
"did_not_get_code": "¿No recibiste el código?",
|
||||
"resend_in": "Reenviar en $seconds s",
|
||||
"resend_code": "Reenviar código"
|
||||
},
|
||||
"profile_setup_page": {
|
||||
"step_indicator": "Paso $current de $total",
|
||||
"error_occurred": "Ocurrió un error",
|
||||
"complete_setup_button": "Completar configuración",
|
||||
"steps": {
|
||||
"basic": "Información básica",
|
||||
"location": "Ubicación",
|
||||
"experience": "Experiencia"
|
||||
},
|
||||
"basic_info": {
|
||||
"title": "Conozcámonos",
|
||||
"subtitle": "Cuéntanos un poco sobre ti",
|
||||
"full_name_label": "Nombre completo *",
|
||||
"full_name_hint": "Juan Pérez",
|
||||
"bio_label": "Biografía corta",
|
||||
"bio_hint": "Profesional experimentado en hostelería..."
|
||||
},
|
||||
"location": {
|
||||
"title": "¿Dónde quieres trabajar?",
|
||||
"subtitle": "Agrega tus ubicaciones de trabajo preferidas",
|
||||
"add_location_label": "Agregar ubicación *",
|
||||
"add_location_hint": "Ciudad o código postal",
|
||||
"add_button": "Agregar",
|
||||
"max_distance": "Distancia máxima: $distance millas",
|
||||
"min_dist_label": "5 mi",
|
||||
"max_dist_label": "50 mi"
|
||||
},
|
||||
"experience": {
|
||||
"title": "¿Cuáles son tus habilidades?",
|
||||
"subtitle": "Selecciona todas las que correspondan",
|
||||
"skills_label": "Habilidades *",
|
||||
"industries_label": "Industrias preferidas",
|
||||
"skills": {
|
||||
"food_service": "Servicio de comida",
|
||||
"bartending": "Preparación de bebidas",
|
||||
"warehouse": "Almacén",
|
||||
"retail": "Venta minorista",
|
||||
"events": "Eventos",
|
||||
"customer_service": "Servicio al cliente",
|
||||
"cleaning": "Limpieza",
|
||||
"security": "Seguridad",
|
||||
"driving": "Conducción",
|
||||
"cooking": "Cocina"
|
||||
},
|
||||
"industries": {
|
||||
"hospitality": "Hostelería",
|
||||
"food_service": "Servicio de comida",
|
||||
"warehouse": "Almacén",
|
||||
"events": "Eventos",
|
||||
"retail": "Venta minorista",
|
||||
"healthcare": "Atención médica"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"trouble_question": "¿Tienes problemas? ",
|
||||
"contact_support": "Contactar a soporte"
|
||||
}
|
||||
},
|
||||
"client_authentication": {
|
||||
"get_started_page": {
|
||||
"title": "Toma el control de tus\nturnos y eventos",
|
||||
"subtitle": "Optimiza tus operaciones con potentes herramientas para gestionar horarios, realizar un seguimiento del rendimiento y mantener a tu equipo en la misma página, todo en un solo lugar",
|
||||
"sign_in_button": "Iniciar sesión",
|
||||
"create_account_button": "Crear cuenta"
|
||||
},
|
||||
"sign_in_page": {
|
||||
"title": "Bienvenido de nuevo",
|
||||
"subtitle": "Inicia sesión para gestionar tus turnos y trabajadores",
|
||||
"email_label": "Correo electrónico",
|
||||
"email_hint": "Ingresa tu correo electrónico",
|
||||
"password_label": "Contraseña",
|
||||
"password_hint": "Ingresa tu contraseña",
|
||||
"forgot_password": "¿Olvidaste tu contraseña?",
|
||||
"sign_in_button": "Iniciar sesión",
|
||||
"or_divider": "o",
|
||||
"social_apple": "Iniciar sesión con Apple",
|
||||
"social_google": "Iniciar sesión con Google",
|
||||
"no_account": "¿No tienes una cuenta? ",
|
||||
"sign_up_link": "Regístrate"
|
||||
},
|
||||
"sign_up_page": {
|
||||
"title": "Crear cuenta",
|
||||
"subtitle": "Comienza con Krow para tu negocio",
|
||||
"company_label": "Nombre de la empresa",
|
||||
"company_hint": "Ingresa el nombre de la empresa",
|
||||
"email_label": "Correo electrónico",
|
||||
"email_hint": "Ingresa tu correo electrónico",
|
||||
"password_label": "Contraseña",
|
||||
"password_hint": "Crea una contraseña",
|
||||
"confirm_password_label": "Confirmar contraseña",
|
||||
"confirm_password_hint": "Confirma tu contraseña",
|
||||
"create_account_button": "Crear cuenta",
|
||||
"or_divider": "o",
|
||||
"social_apple": "Regístrate con Apple",
|
||||
"social_google": "Regístrate con Google",
|
||||
"has_account": "¿Ya tienes una cuenta? ",
|
||||
"sign_in_link": "Iniciar sesión"
|
||||
}
|
||||
},
|
||||
"client_home": {
|
||||
"dashboard": {
|
||||
"welcome_back": "Bienvenido de nuevo",
|
||||
"edit_mode_active": "Modo Edición Activo",
|
||||
"drag_instruction": "Arrastra para reordenar, cambia la visibilidad",
|
||||
"reset": "Restablecer",
|
||||
"metric_needed": "Necesario",
|
||||
"metric_filled": "Lleno",
|
||||
"metric_open": "Abierto",
|
||||
"view_all": "Ver todo",
|
||||
"insight_lightbulb": "Ahorra $amount/mes",
|
||||
"insight_tip": "Reserva con 48h de antelación para mejores tarifas"
|
||||
},
|
||||
"widgets": {
|
||||
"actions": "Acciones Rápidas",
|
||||
"reorder": "Reordenar",
|
||||
"coverage": "Cobertura de Hoy",
|
||||
"spending": "Información de Gastos",
|
||||
"live_activity": "Actividad en Vivo"
|
||||
},
|
||||
"actions": {
|
||||
"rapid": "RÁPIDO",
|
||||
"rapid_subtitle": "Urgente mismo día",
|
||||
"create_order": "Crear Orden",
|
||||
"create_order_subtitle": "Programar turnos"
|
||||
},
|
||||
"reorder": {
|
||||
"title": "REORDENAR",
|
||||
"reorder_button": "Reordenar",
|
||||
"per_hr": "$amount/hr"
|
||||
},
|
||||
"form": {
|
||||
"edit_reorder": "Editar y Reordenar",
|
||||
"post_new": "Publicar un Nuevo Turno",
|
||||
"review_subtitle": "Revisa y edita los detalles antes de publicar",
|
||||
"date_label": "Fecha *",
|
||||
"date_hint": "mm/dd/aaaa",
|
||||
"location_label": "Ubicación *",
|
||||
"location_hint": "Dirección del negocio",
|
||||
"positions_title": "Posiciones",
|
||||
"add_position": "Añadir Posición",
|
||||
"role_label": "Rol *",
|
||||
"role_hint": "Seleccionar rol",
|
||||
"start_time": "Hora de Inicio *",
|
||||
"end_time": "Hora de Fin *",
|
||||
"workers_needed": "Trabajadores Necesarios *",
|
||||
"hourly_rate": "Tarifa por hora (\\$) *",
|
||||
"post_shift": "Publicar Turno"
|
||||
}
|
||||
}
|
||||
}
|
||||
183
apps/packages/core_localization/lib/src/l10n/strings.g.dart
Normal file
183
apps/packages/core_localization/lib/src/l10n/strings.g.dart
Normal file
@@ -0,0 +1,183 @@
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
/// Source: lib/src/l10n
|
||||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 2
|
||||
/// Strings: 276 (138 per locale)
|
||||
///
|
||||
/// Built on 2026-01-21 at 18:21 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
// dart format off
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'package:slang_flutter/slang_flutter.dart';
|
||||
export 'package:slang_flutter/slang_flutter.dart';
|
||||
|
||||
import 'strings_es.g.dart' deferred as l_es;
|
||||
part 'strings_en.g.dart';
|
||||
|
||||
/// Supported locales.
|
||||
///
|
||||
/// Usage:
|
||||
/// - LocaleSettings.setLocale(AppLocale.en) // set locale
|
||||
/// - Locale locale = AppLocale.en.flutterLocale // get flutter locale from enum
|
||||
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
|
||||
enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
||||
en(languageCode: 'en'),
|
||||
es(languageCode: 'es');
|
||||
|
||||
const AppLocale({
|
||||
required this.languageCode,
|
||||
this.scriptCode, // ignore: unused_element, unused_element_parameter
|
||||
this.countryCode, // ignore: unused_element, unused_element_parameter
|
||||
});
|
||||
|
||||
@override final String languageCode;
|
||||
@override final String? scriptCode;
|
||||
@override final String? countryCode;
|
||||
|
||||
@override
|
||||
Future<Translations> build({
|
||||
Map<String, Node>? overrides,
|
||||
PluralResolver? cardinalResolver,
|
||||
PluralResolver? ordinalResolver,
|
||||
}) async {
|
||||
switch (this) {
|
||||
case AppLocale.en:
|
||||
return TranslationsEn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.es:
|
||||
await l_es.loadLibrary();
|
||||
return l_es.TranslationsEs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Translations buildSync({
|
||||
Map<String, Node>? overrides,
|
||||
PluralResolver? cardinalResolver,
|
||||
PluralResolver? ordinalResolver,
|
||||
}) {
|
||||
switch (this) {
|
||||
case AppLocale.en:
|
||||
return TranslationsEn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.es:
|
||||
return l_es.TranslationsEs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets current instance managed by [LocaleSettings].
|
||||
Translations get translations => LocaleSettings.instance.getTranslations(this);
|
||||
}
|
||||
|
||||
/// Method A: Simple
|
||||
///
|
||||
/// No rebuild after locale change.
|
||||
/// Translation happens during initialization of the widget (call of t).
|
||||
/// Configurable via 'translate_var'.
|
||||
///
|
||||
/// Usage:
|
||||
/// String a = t.someKey.anotherKey;
|
||||
/// String b = t['someKey.anotherKey']; // Only for edge cases!
|
||||
Translations get t => LocaleSettings.instance.currentTranslations;
|
||||
|
||||
/// Method B: Advanced
|
||||
///
|
||||
/// All widgets using this method will trigger a rebuild when locale changes.
|
||||
/// Use this if you have e.g. a settings page where the user can select the locale during runtime.
|
||||
///
|
||||
/// Step 1:
|
||||
/// wrap your App with
|
||||
/// TranslationProvider(
|
||||
/// child: MyApp()
|
||||
/// );
|
||||
///
|
||||
/// Step 2:
|
||||
/// final t = Translations.of(context); // Get t variable.
|
||||
/// String a = t.someKey.anotherKey; // Use t variable.
|
||||
/// String b = t['someKey.anotherKey']; // Only for edge cases!
|
||||
class TranslationProvider extends BaseTranslationProvider<AppLocale, Translations> {
|
||||
TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance);
|
||||
|
||||
static InheritedLocaleData<AppLocale, Translations> of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context);
|
||||
}
|
||||
|
||||
/// Method B shorthand via [BuildContext] extension method.
|
||||
/// Configurable via 'translate_var'.
|
||||
///
|
||||
/// Usage (e.g. in a widget's build method):
|
||||
/// context.t.someKey.anotherKey
|
||||
extension BuildContextTranslationsExtension on BuildContext {
|
||||
Translations get t => TranslationProvider.of(this).translations;
|
||||
}
|
||||
|
||||
/// Manages all translation instances and the current locale
|
||||
class LocaleSettings extends BaseFlutterLocaleSettings<AppLocale, Translations> {
|
||||
LocaleSettings._() : super(
|
||||
utils: AppLocaleUtils.instance,
|
||||
lazy: true,
|
||||
);
|
||||
|
||||
static final instance = LocaleSettings._();
|
||||
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale get currentLocale => instance.currentLocale;
|
||||
static Stream<AppLocale> getLocaleStream() => instance.getLocaleStream();
|
||||
static Future<AppLocale> setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static Future<AppLocale> setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static Future<AppLocale> useDeviceLocale() => instance.useDeviceLocale();
|
||||
static Future<void> setPluralResolver({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolver(
|
||||
language: language,
|
||||
locale: locale,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
|
||||
// synchronous versions
|
||||
static AppLocale setLocaleSync(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocaleSync(locale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale setLocaleRawSync(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRawSync(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale useDeviceLocaleSync() => instance.useDeviceLocaleSync();
|
||||
static void setPluralResolverSync({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolverSync(
|
||||
language: language,
|
||||
locale: locale,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
|
||||
/// Provides utility functions without any side effects.
|
||||
class AppLocaleUtils extends BaseAppLocaleUtils<AppLocale, Translations> {
|
||||
AppLocaleUtils._() : super(
|
||||
baseLocale: AppLocale.en,
|
||||
locales: AppLocale.values,
|
||||
);
|
||||
|
||||
static final instance = AppLocaleUtils._();
|
||||
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
|
||||
static AppLocale parseLocaleParts({required String languageCode, String? scriptCode, String? countryCode}) => instance.parseLocaleParts(languageCode: languageCode, scriptCode: scriptCode, countryCode: countryCode);
|
||||
static AppLocale findDeviceLocale() => instance.findDeviceLocale();
|
||||
static List<Locale> get supportedLocales => instance.supportedLocales;
|
||||
static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
|
||||
}
|
||||
861
apps/packages/core_localization/lib/src/l10n/strings_en.g.dart
Normal file
861
apps/packages/core_localization/lib/src/l10n/strings_en.g.dart
Normal file
@@ -0,0 +1,861 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
// dart format off
|
||||
|
||||
part of 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
typedef TranslationsEn = Translations; // ignore: unused_element
|
||||
class Translations with BaseTranslations<AppLocale, Translations> {
|
||||
/// Returns the current translations of the given [context].
|
||||
///
|
||||
/// Usage:
|
||||
/// final t = Translations.of(context);
|
||||
static Translations of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context).translations;
|
||||
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
Translations({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||
: assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
|
||||
$meta = meta ?? TranslationMetadata(
|
||||
locale: AppLocale.en,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
) {
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <en>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
dynamic operator[](String key) => $meta.getTranslation(key);
|
||||
|
||||
late final Translations _root = this; // ignore: unused_field
|
||||
|
||||
Translations $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => Translations(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
late final TranslationsCommonEn common = TranslationsCommonEn._(_root);
|
||||
late final TranslationsSettingsEn settings = TranslationsSettingsEn._(_root);
|
||||
late final TranslationsStaffAuthenticationEn staff_authentication = TranslationsStaffAuthenticationEn._(_root);
|
||||
late final TranslationsClientAuthenticationEn client_authentication = TranslationsClientAuthenticationEn._(_root);
|
||||
late final TranslationsClientHomeEn client_home = TranslationsClientHomeEn._(_root);
|
||||
}
|
||||
|
||||
// Path: common
|
||||
class TranslationsCommonEn {
|
||||
TranslationsCommonEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'OK'
|
||||
String get ok => 'OK';
|
||||
|
||||
/// en: 'Cancel'
|
||||
String get cancel => 'Cancel';
|
||||
|
||||
/// en: 'Save'
|
||||
String get save => 'Save';
|
||||
|
||||
/// en: 'Delete'
|
||||
String get delete => 'Delete';
|
||||
|
||||
/// en: 'Continue'
|
||||
String get continue_text => 'Continue';
|
||||
}
|
||||
|
||||
// Path: settings
|
||||
class TranslationsSettingsEn {
|
||||
TranslationsSettingsEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Language'
|
||||
String get language => 'Language';
|
||||
|
||||
/// en: 'Change Language'
|
||||
String get change_language => 'Change Language';
|
||||
}
|
||||
|
||||
// Path: staff_authentication
|
||||
class TranslationsStaffAuthenticationEn {
|
||||
TranslationsStaffAuthenticationEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
late final TranslationsStaffAuthenticationGetStartedPageEn get_started_page = TranslationsStaffAuthenticationGetStartedPageEn._(_root);
|
||||
late final TranslationsStaffAuthenticationPhoneVerificationPageEn phone_verification_page = TranslationsStaffAuthenticationPhoneVerificationPageEn._(_root);
|
||||
late final TranslationsStaffAuthenticationPhoneInputEn phone_input = TranslationsStaffAuthenticationPhoneInputEn._(_root);
|
||||
late final TranslationsStaffAuthenticationOtpVerificationEn otp_verification = TranslationsStaffAuthenticationOtpVerificationEn._(_root);
|
||||
late final TranslationsStaffAuthenticationProfileSetupPageEn profile_setup_page = TranslationsStaffAuthenticationProfileSetupPageEn._(_root);
|
||||
late final TranslationsStaffAuthenticationCommonEn common = TranslationsStaffAuthenticationCommonEn._(_root);
|
||||
}
|
||||
|
||||
// Path: client_authentication
|
||||
class TranslationsClientAuthenticationEn {
|
||||
TranslationsClientAuthenticationEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
late final TranslationsClientAuthenticationGetStartedPageEn get_started_page = TranslationsClientAuthenticationGetStartedPageEn._(_root);
|
||||
late final TranslationsClientAuthenticationSignInPageEn sign_in_page = TranslationsClientAuthenticationSignInPageEn._(_root);
|
||||
late final TranslationsClientAuthenticationSignUpPageEn sign_up_page = TranslationsClientAuthenticationSignUpPageEn._(_root);
|
||||
}
|
||||
|
||||
// Path: client_home
|
||||
class TranslationsClientHomeEn {
|
||||
TranslationsClientHomeEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Shift order submitted successfully'
|
||||
String get shift_created_success => 'Shift order submitted successfully';
|
||||
|
||||
late final TranslationsClientHomeDashboardEn dashboard = TranslationsClientHomeDashboardEn._(_root);
|
||||
late final TranslationsClientHomeWidgetsEn widgets = TranslationsClientHomeWidgetsEn._(_root);
|
||||
late final TranslationsClientHomeActionsEn actions = TranslationsClientHomeActionsEn._(_root);
|
||||
late final TranslationsClientHomeReorderEn reorder = TranslationsClientHomeReorderEn._(_root);
|
||||
late final TranslationsClientHomeFormEn form = TranslationsClientHomeFormEn._(_root);
|
||||
}
|
||||
|
||||
// Path: staff_authentication.get_started_page
|
||||
class TranslationsStaffAuthenticationGetStartedPageEn {
|
||||
TranslationsStaffAuthenticationGetStartedPageEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Work, Grow, '
|
||||
String get title_part1 => 'Work, Grow, ';
|
||||
|
||||
/// en: 'Elevate'
|
||||
String get title_part2 => 'Elevate';
|
||||
|
||||
/// en: 'Build your career in hospitality with flexibility and freedom.'
|
||||
String get subtitle => 'Build your career in hospitality with \nflexibility and freedom.';
|
||||
|
||||
/// en: 'Sign Up'
|
||||
String get sign_up_button => 'Sign Up';
|
||||
|
||||
/// en: 'Log In'
|
||||
String get log_in_button => 'Log In';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.phone_verification_page
|
||||
class TranslationsStaffAuthenticationPhoneVerificationPageEn {
|
||||
TranslationsStaffAuthenticationPhoneVerificationPageEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Please enter a valid 10-digit phone number'
|
||||
String get validation_error => 'Please enter a valid 10-digit phone number';
|
||||
|
||||
/// en: 'Send Code'
|
||||
String get send_code_button => 'Send Code';
|
||||
|
||||
/// en: 'Enter verification code'
|
||||
String get enter_code_title => 'Enter verification code';
|
||||
|
||||
/// en: 'We sent a 6-digit code to '
|
||||
String get code_sent_message => 'We sent a 6-digit code to ';
|
||||
|
||||
/// en: '. Enter it below to verify your account.'
|
||||
String get code_sent_instruction => '. Enter it below to verify your account.';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.phone_input
|
||||
class TranslationsStaffAuthenticationPhoneInputEn {
|
||||
TranslationsStaffAuthenticationPhoneInputEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Verify your phone number'
|
||||
String get title => 'Verify your phone number';
|
||||
|
||||
/// en: 'We'll send you a verification code to get started.'
|
||||
String get subtitle => 'We\'ll send you a verification code to get started.';
|
||||
|
||||
/// en: 'Phone Number'
|
||||
String get label => 'Phone Number';
|
||||
|
||||
/// en: 'Enter your number'
|
||||
String get hint => 'Enter your number';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.otp_verification
|
||||
class TranslationsStaffAuthenticationOtpVerificationEn {
|
||||
TranslationsStaffAuthenticationOtpVerificationEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Didn't get the code ?'
|
||||
String get did_not_get_code => 'Didn\'t get the code ?';
|
||||
|
||||
/// en: 'Resend in $seconds s'
|
||||
String resend_in({required Object seconds}) => 'Resend in ${seconds} s';
|
||||
|
||||
/// en: 'Resend code'
|
||||
String get resend_code => 'Resend code';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page
|
||||
class TranslationsStaffAuthenticationProfileSetupPageEn {
|
||||
TranslationsStaffAuthenticationProfileSetupPageEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Step $current of $total'
|
||||
String step_indicator({required Object current, required Object total}) => 'Step ${current} of ${total}';
|
||||
|
||||
/// en: 'An error occurred'
|
||||
String get error_occurred => 'An error occurred';
|
||||
|
||||
/// en: 'Complete Setup'
|
||||
String get complete_setup_button => 'Complete Setup';
|
||||
|
||||
late final TranslationsStaffAuthenticationProfileSetupPageStepsEn steps = TranslationsStaffAuthenticationProfileSetupPageStepsEn._(_root);
|
||||
late final TranslationsStaffAuthenticationProfileSetupPageBasicInfoEn basic_info = TranslationsStaffAuthenticationProfileSetupPageBasicInfoEn._(_root);
|
||||
late final TranslationsStaffAuthenticationProfileSetupPageLocationEn location = TranslationsStaffAuthenticationProfileSetupPageLocationEn._(_root);
|
||||
late final TranslationsStaffAuthenticationProfileSetupPageExperienceEn experience = TranslationsStaffAuthenticationProfileSetupPageExperienceEn._(_root);
|
||||
}
|
||||
|
||||
// Path: staff_authentication.common
|
||||
class TranslationsStaffAuthenticationCommonEn {
|
||||
TranslationsStaffAuthenticationCommonEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Having trouble? '
|
||||
String get trouble_question => 'Having trouble? ';
|
||||
|
||||
/// en: 'Contact Support'
|
||||
String get contact_support => 'Contact Support';
|
||||
}
|
||||
|
||||
// Path: client_authentication.get_started_page
|
||||
class TranslationsClientAuthenticationGetStartedPageEn {
|
||||
TranslationsClientAuthenticationGetStartedPageEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Take Control of Your Shifts and Events'
|
||||
String get title => 'Take Control of Your\nShifts and Events';
|
||||
|
||||
/// en: 'Streamline your operations with powerful tools to manage schedules, track performance, and keep your team on the same page—all in one place'
|
||||
String get subtitle => 'Streamline your operations with powerful tools to manage schedules, track performance, and keep your team on the same page—all in one place';
|
||||
|
||||
/// en: 'Sign In'
|
||||
String get sign_in_button => 'Sign In';
|
||||
|
||||
/// en: 'Create Account'
|
||||
String get create_account_button => 'Create Account';
|
||||
}
|
||||
|
||||
// Path: client_authentication.sign_in_page
|
||||
class TranslationsClientAuthenticationSignInPageEn {
|
||||
TranslationsClientAuthenticationSignInPageEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Welcome Back'
|
||||
String get title => 'Welcome Back';
|
||||
|
||||
/// en: 'Sign in to manage your shifts and workers'
|
||||
String get subtitle => 'Sign in to manage your shifts and workers';
|
||||
|
||||
/// en: 'Email'
|
||||
String get email_label => 'Email';
|
||||
|
||||
/// en: 'Enter your email'
|
||||
String get email_hint => 'Enter your email';
|
||||
|
||||
/// en: 'Password'
|
||||
String get password_label => 'Password';
|
||||
|
||||
/// en: 'Enter your password'
|
||||
String get password_hint => 'Enter your password';
|
||||
|
||||
/// en: 'Forgot Password?'
|
||||
String get forgot_password => 'Forgot Password?';
|
||||
|
||||
/// en: 'Sign In'
|
||||
String get sign_in_button => 'Sign In';
|
||||
|
||||
/// en: 'or'
|
||||
String get or_divider => 'or';
|
||||
|
||||
/// en: 'Sign In with Apple'
|
||||
String get social_apple => 'Sign In with Apple';
|
||||
|
||||
/// en: 'Sign In with Google'
|
||||
String get social_google => 'Sign In with Google';
|
||||
|
||||
/// en: 'Don't have an account? '
|
||||
String get no_account => 'Don\'t have an account? ';
|
||||
|
||||
/// en: 'Sign Up'
|
||||
String get sign_up_link => 'Sign Up';
|
||||
}
|
||||
|
||||
// Path: client_authentication.sign_up_page
|
||||
class TranslationsClientAuthenticationSignUpPageEn {
|
||||
TranslationsClientAuthenticationSignUpPageEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Create Account'
|
||||
String get title => 'Create Account';
|
||||
|
||||
/// en: 'Get started with Krow for your business'
|
||||
String get subtitle => 'Get started with Krow for your business';
|
||||
|
||||
/// en: 'Company Name'
|
||||
String get company_label => 'Company Name';
|
||||
|
||||
/// en: 'Enter company name'
|
||||
String get company_hint => 'Enter company name';
|
||||
|
||||
/// en: 'Email'
|
||||
String get email_label => 'Email';
|
||||
|
||||
/// en: 'Enter your email'
|
||||
String get email_hint => 'Enter your email';
|
||||
|
||||
/// en: 'Password'
|
||||
String get password_label => 'Password';
|
||||
|
||||
/// en: 'Create a password'
|
||||
String get password_hint => 'Create a password';
|
||||
|
||||
/// en: 'Confirm Password'
|
||||
String get confirm_password_label => 'Confirm Password';
|
||||
|
||||
/// en: 'Confirm your password'
|
||||
String get confirm_password_hint => 'Confirm your password';
|
||||
|
||||
/// en: 'Create Account'
|
||||
String get create_account_button => 'Create Account';
|
||||
|
||||
/// en: 'or'
|
||||
String get or_divider => 'or';
|
||||
|
||||
/// en: 'Sign Up with Apple'
|
||||
String get social_apple => 'Sign Up with Apple';
|
||||
|
||||
/// en: 'Sign Up with Google'
|
||||
String get social_google => 'Sign Up with Google';
|
||||
|
||||
/// en: 'Already have an account? '
|
||||
String get has_account => 'Already have an account? ';
|
||||
|
||||
/// en: 'Sign In'
|
||||
String get sign_in_link => 'Sign In';
|
||||
}
|
||||
|
||||
// Path: client_home.dashboard
|
||||
class TranslationsClientHomeDashboardEn {
|
||||
TranslationsClientHomeDashboardEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Welcome back'
|
||||
String get welcome_back => 'Welcome back';
|
||||
|
||||
/// en: 'Edit Mode Active'
|
||||
String get edit_mode_active => 'Edit Mode Active';
|
||||
|
||||
/// en: 'Drag to reorder, toggle visibility'
|
||||
String get drag_instruction => 'Drag to reorder, toggle visibility';
|
||||
|
||||
/// en: 'Reset'
|
||||
String get reset => 'Reset';
|
||||
|
||||
/// en: 'Needed'
|
||||
String get metric_needed => 'Needed';
|
||||
|
||||
/// en: 'Filled'
|
||||
String get metric_filled => 'Filled';
|
||||
|
||||
/// en: 'Open'
|
||||
String get metric_open => 'Open';
|
||||
|
||||
/// en: 'View all'
|
||||
String get view_all => 'View all';
|
||||
|
||||
/// en: 'Save $amount/month'
|
||||
String insight_lightbulb({required Object amount}) => 'Save ${amount}/month';
|
||||
|
||||
/// en: 'Book 48hrs ahead for better rates'
|
||||
String get insight_tip => 'Book 48hrs ahead for better rates';
|
||||
}
|
||||
|
||||
// Path: client_home.widgets
|
||||
class TranslationsClientHomeWidgetsEn {
|
||||
TranslationsClientHomeWidgetsEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Quick Actions'
|
||||
String get actions => 'Quick Actions';
|
||||
|
||||
/// en: 'Reorder'
|
||||
String get reorder => 'Reorder';
|
||||
|
||||
/// en: 'Today's Coverage'
|
||||
String get coverage => 'Today\'s Coverage';
|
||||
|
||||
/// en: 'Spending Insights'
|
||||
String get spending => 'Spending Insights';
|
||||
|
||||
/// en: 'Live Activity'
|
||||
String get live_activity => 'Live Activity';
|
||||
}
|
||||
|
||||
// Path: client_home.actions
|
||||
class TranslationsClientHomeActionsEn {
|
||||
TranslationsClientHomeActionsEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'RAPID'
|
||||
String get rapid => 'RAPID';
|
||||
|
||||
/// en: 'Urgent same-day'
|
||||
String get rapid_subtitle => 'Urgent same-day';
|
||||
|
||||
/// en: 'Create Order'
|
||||
String get create_order => 'Create Order';
|
||||
|
||||
/// en: 'Schedule shifts'
|
||||
String get create_order_subtitle => 'Schedule shifts';
|
||||
}
|
||||
|
||||
// Path: client_home.reorder
|
||||
class TranslationsClientHomeReorderEn {
|
||||
TranslationsClientHomeReorderEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'REORDER'
|
||||
String get title => 'REORDER';
|
||||
|
||||
/// en: 'Reorder'
|
||||
String get reorder_button => 'Reorder';
|
||||
|
||||
/// en: '$amount/hr'
|
||||
String per_hr({required Object amount}) => '${amount}/hr';
|
||||
}
|
||||
|
||||
// Path: client_home.form
|
||||
class TranslationsClientHomeFormEn {
|
||||
TranslationsClientHomeFormEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Edit & Reorder'
|
||||
String get edit_reorder => 'Edit & Reorder';
|
||||
|
||||
/// en: 'Post a New Shift'
|
||||
String get post_new => 'Post a New Shift';
|
||||
|
||||
/// en: 'Review and edit the details before posting'
|
||||
String get review_subtitle => 'Review and edit the details before posting';
|
||||
|
||||
/// en: 'Date *'
|
||||
String get date_label => 'Date *';
|
||||
|
||||
/// en: 'mm/dd/yyyy'
|
||||
String get date_hint => 'mm/dd/yyyy';
|
||||
|
||||
/// en: 'Location *'
|
||||
String get location_label => 'Location *';
|
||||
|
||||
/// en: 'Business address'
|
||||
String get location_hint => 'Business address';
|
||||
|
||||
/// en: 'Positions'
|
||||
String get positions_title => 'Positions';
|
||||
|
||||
/// en: 'Add Position'
|
||||
String get add_position => 'Add Position';
|
||||
|
||||
/// en: 'Role *'
|
||||
String get role_label => 'Role *';
|
||||
|
||||
/// en: 'Select role'
|
||||
String get role_hint => 'Select role';
|
||||
|
||||
/// en: 'Start Time *'
|
||||
String get start_time => 'Start Time *';
|
||||
|
||||
/// en: 'End Time *'
|
||||
String get end_time => 'End Time *';
|
||||
|
||||
/// en: 'Workers Needed *'
|
||||
String get workers_needed => 'Workers Needed *';
|
||||
|
||||
/// en: 'Hourly Rate (\$) *'
|
||||
String get hourly_rate => 'Hourly Rate (\$) *';
|
||||
|
||||
/// en: 'Post Shift'
|
||||
String get post_shift => 'Post Shift';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.steps
|
||||
class TranslationsStaffAuthenticationProfileSetupPageStepsEn {
|
||||
TranslationsStaffAuthenticationProfileSetupPageStepsEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Basic Info'
|
||||
String get basic => 'Basic Info';
|
||||
|
||||
/// en: 'Location'
|
||||
String get location => 'Location';
|
||||
|
||||
/// en: 'Experience'
|
||||
String get experience => 'Experience';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.basic_info
|
||||
class TranslationsStaffAuthenticationProfileSetupPageBasicInfoEn {
|
||||
TranslationsStaffAuthenticationProfileSetupPageBasicInfoEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Let's get to know you'
|
||||
String get title => 'Let\'s get to know you';
|
||||
|
||||
/// en: 'Tell us a bit about yourself'
|
||||
String get subtitle => 'Tell us a bit about yourself';
|
||||
|
||||
/// en: 'Full Name *'
|
||||
String get full_name_label => 'Full Name *';
|
||||
|
||||
/// en: 'John Smith'
|
||||
String get full_name_hint => 'John Smith';
|
||||
|
||||
/// en: 'Short Bio'
|
||||
String get bio_label => 'Short Bio';
|
||||
|
||||
/// en: 'Experienced hospitality professional...'
|
||||
String get bio_hint => 'Experienced hospitality professional...';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.location
|
||||
class TranslationsStaffAuthenticationProfileSetupPageLocationEn {
|
||||
TranslationsStaffAuthenticationProfileSetupPageLocationEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Where do you want to work?'
|
||||
String get title => 'Where do you want to work?';
|
||||
|
||||
/// en: 'Add your preferred work locations'
|
||||
String get subtitle => 'Add your preferred work locations';
|
||||
|
||||
/// en: 'Add Location *'
|
||||
String get add_location_label => 'Add Location *';
|
||||
|
||||
/// en: 'City or ZIP code'
|
||||
String get add_location_hint => 'City or ZIP code';
|
||||
|
||||
/// en: 'Add'
|
||||
String get add_button => 'Add';
|
||||
|
||||
/// en: 'Max Distance: $distance miles'
|
||||
String max_distance({required Object distance}) => 'Max Distance: ${distance} miles';
|
||||
|
||||
/// en: '5 mi'
|
||||
String get min_dist_label => '5 mi';
|
||||
|
||||
/// en: '50 mi'
|
||||
String get max_dist_label => '50 mi';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.experience
|
||||
class TranslationsStaffAuthenticationProfileSetupPageExperienceEn {
|
||||
TranslationsStaffAuthenticationProfileSetupPageExperienceEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'What are your skills?'
|
||||
String get title => 'What are your skills?';
|
||||
|
||||
/// en: 'Select all that apply'
|
||||
String get subtitle => 'Select all that apply';
|
||||
|
||||
/// en: 'Skills *'
|
||||
String get skills_label => 'Skills *';
|
||||
|
||||
/// en: 'Preferred Industries'
|
||||
String get industries_label => 'Preferred Industries';
|
||||
|
||||
late final TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEn skills = TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEn._(_root);
|
||||
late final TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEn industries = TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEn._(_root);
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.experience.skills
|
||||
class TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEn {
|
||||
TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Food Service'
|
||||
String get food_service => 'Food Service';
|
||||
|
||||
/// en: 'Bartending'
|
||||
String get bartending => 'Bartending';
|
||||
|
||||
/// en: 'Warehouse'
|
||||
String get warehouse => 'Warehouse';
|
||||
|
||||
/// en: 'Retail'
|
||||
String get retail => 'Retail';
|
||||
|
||||
/// en: 'Events'
|
||||
String get events => 'Events';
|
||||
|
||||
/// en: 'Customer Service'
|
||||
String get customer_service => 'Customer Service';
|
||||
|
||||
/// en: 'Cleaning'
|
||||
String get cleaning => 'Cleaning';
|
||||
|
||||
/// en: 'Security'
|
||||
String get security => 'Security';
|
||||
|
||||
/// en: 'Driving'
|
||||
String get driving => 'Driving';
|
||||
|
||||
/// en: 'Cooking'
|
||||
String get cooking => 'Cooking';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.experience.industries
|
||||
class TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEn {
|
||||
TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEn._(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Hospitality'
|
||||
String get hospitality => 'Hospitality';
|
||||
|
||||
/// en: 'Food Service'
|
||||
String get food_service => 'Food Service';
|
||||
|
||||
/// en: 'Warehouse'
|
||||
String get warehouse => 'Warehouse';
|
||||
|
||||
/// en: 'Events'
|
||||
String get events => 'Events';
|
||||
|
||||
/// en: 'Retail'
|
||||
String get retail => 'Retail';
|
||||
|
||||
/// en: 'Healthcare'
|
||||
String get healthcare => 'Healthcare';
|
||||
}
|
||||
|
||||
/// The flat map containing all translations for locale <en>.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
///
|
||||
/// The Dart AOT compiler has issues with very large switch statements,
|
||||
/// so the map is split into smaller functions (512 entries each).
|
||||
extension on Translations {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
return switch (path) {
|
||||
'common.ok' => 'OK',
|
||||
'common.cancel' => 'Cancel',
|
||||
'common.save' => 'Save',
|
||||
'common.delete' => 'Delete',
|
||||
'common.continue_text' => 'Continue',
|
||||
'settings.language' => 'Language',
|
||||
'settings.change_language' => 'Change Language',
|
||||
'staff_authentication.get_started_page.title_part1' => 'Work, Grow, ',
|
||||
'staff_authentication.get_started_page.title_part2' => 'Elevate',
|
||||
'staff_authentication.get_started_page.subtitle' => 'Build your career in hospitality with \nflexibility and freedom.',
|
||||
'staff_authentication.get_started_page.sign_up_button' => 'Sign Up',
|
||||
'staff_authentication.get_started_page.log_in_button' => 'Log In',
|
||||
'staff_authentication.phone_verification_page.validation_error' => 'Please enter a valid 10-digit phone number',
|
||||
'staff_authentication.phone_verification_page.send_code_button' => 'Send Code',
|
||||
'staff_authentication.phone_verification_page.enter_code_title' => 'Enter verification code',
|
||||
'staff_authentication.phone_verification_page.code_sent_message' => 'We sent a 6-digit code to ',
|
||||
'staff_authentication.phone_verification_page.code_sent_instruction' => '. Enter it below to verify your account.',
|
||||
'staff_authentication.phone_input.title' => 'Verify your phone number',
|
||||
'staff_authentication.phone_input.subtitle' => 'We\'ll send you a verification code to get started.',
|
||||
'staff_authentication.phone_input.label' => 'Phone Number',
|
||||
'staff_authentication.phone_input.hint' => 'Enter your number',
|
||||
'staff_authentication.otp_verification.did_not_get_code' => 'Didn\'t get the code ?',
|
||||
'staff_authentication.otp_verification.resend_in' => ({required Object seconds}) => 'Resend in ${seconds} s',
|
||||
'staff_authentication.otp_verification.resend_code' => 'Resend code',
|
||||
'staff_authentication.profile_setup_page.step_indicator' => ({required Object current, required Object total}) => 'Step ${current} of ${total}',
|
||||
'staff_authentication.profile_setup_page.error_occurred' => 'An error occurred',
|
||||
'staff_authentication.profile_setup_page.complete_setup_button' => 'Complete Setup',
|
||||
'staff_authentication.profile_setup_page.steps.basic' => 'Basic Info',
|
||||
'staff_authentication.profile_setup_page.steps.location' => 'Location',
|
||||
'staff_authentication.profile_setup_page.steps.experience' => 'Experience',
|
||||
'staff_authentication.profile_setup_page.basic_info.title' => 'Let\'s get to know you',
|
||||
'staff_authentication.profile_setup_page.basic_info.subtitle' => 'Tell us a bit about yourself',
|
||||
'staff_authentication.profile_setup_page.basic_info.full_name_label' => 'Full Name *',
|
||||
'staff_authentication.profile_setup_page.basic_info.full_name_hint' => 'John Smith',
|
||||
'staff_authentication.profile_setup_page.basic_info.bio_label' => 'Short Bio',
|
||||
'staff_authentication.profile_setup_page.basic_info.bio_hint' => 'Experienced hospitality professional...',
|
||||
'staff_authentication.profile_setup_page.location.title' => 'Where do you want to work?',
|
||||
'staff_authentication.profile_setup_page.location.subtitle' => 'Add your preferred work locations',
|
||||
'staff_authentication.profile_setup_page.location.add_location_label' => 'Add Location *',
|
||||
'staff_authentication.profile_setup_page.location.add_location_hint' => 'City or ZIP code',
|
||||
'staff_authentication.profile_setup_page.location.add_button' => 'Add',
|
||||
'staff_authentication.profile_setup_page.location.max_distance' => ({required Object distance}) => 'Max Distance: ${distance} miles',
|
||||
'staff_authentication.profile_setup_page.location.min_dist_label' => '5 mi',
|
||||
'staff_authentication.profile_setup_page.location.max_dist_label' => '50 mi',
|
||||
'staff_authentication.profile_setup_page.experience.title' => 'What are your skills?',
|
||||
'staff_authentication.profile_setup_page.experience.subtitle' => 'Select all that apply',
|
||||
'staff_authentication.profile_setup_page.experience.skills_label' => 'Skills *',
|
||||
'staff_authentication.profile_setup_page.experience.industries_label' => 'Preferred Industries',
|
||||
'staff_authentication.profile_setup_page.experience.skills.food_service' => 'Food Service',
|
||||
'staff_authentication.profile_setup_page.experience.skills.bartending' => 'Bartending',
|
||||
'staff_authentication.profile_setup_page.experience.skills.warehouse' => 'Warehouse',
|
||||
'staff_authentication.profile_setup_page.experience.skills.retail' => 'Retail',
|
||||
'staff_authentication.profile_setup_page.experience.skills.events' => 'Events',
|
||||
'staff_authentication.profile_setup_page.experience.skills.customer_service' => 'Customer Service',
|
||||
'staff_authentication.profile_setup_page.experience.skills.cleaning' => 'Cleaning',
|
||||
'staff_authentication.profile_setup_page.experience.skills.security' => 'Security',
|
||||
'staff_authentication.profile_setup_page.experience.skills.driving' => 'Driving',
|
||||
'staff_authentication.profile_setup_page.experience.skills.cooking' => 'Cooking',
|
||||
'staff_authentication.profile_setup_page.experience.industries.hospitality' => 'Hospitality',
|
||||
'staff_authentication.profile_setup_page.experience.industries.food_service' => 'Food Service',
|
||||
'staff_authentication.profile_setup_page.experience.industries.warehouse' => 'Warehouse',
|
||||
'staff_authentication.profile_setup_page.experience.industries.events' => 'Events',
|
||||
'staff_authentication.profile_setup_page.experience.industries.retail' => 'Retail',
|
||||
'staff_authentication.profile_setup_page.experience.industries.healthcare' => 'Healthcare',
|
||||
'staff_authentication.common.trouble_question' => 'Having trouble? ',
|
||||
'staff_authentication.common.contact_support' => 'Contact Support',
|
||||
'client_authentication.get_started_page.title' => 'Take Control of Your\nShifts and Events',
|
||||
'client_authentication.get_started_page.subtitle' => 'Streamline your operations with powerful tools to manage schedules, track performance, and keep your team on the same page—all in one place',
|
||||
'client_authentication.get_started_page.sign_in_button' => 'Sign In',
|
||||
'client_authentication.get_started_page.create_account_button' => 'Create Account',
|
||||
'client_authentication.sign_in_page.title' => 'Welcome Back',
|
||||
'client_authentication.sign_in_page.subtitle' => 'Sign in to manage your shifts and workers',
|
||||
'client_authentication.sign_in_page.email_label' => 'Email',
|
||||
'client_authentication.sign_in_page.email_hint' => 'Enter your email',
|
||||
'client_authentication.sign_in_page.password_label' => 'Password',
|
||||
'client_authentication.sign_in_page.password_hint' => 'Enter your password',
|
||||
'client_authentication.sign_in_page.forgot_password' => 'Forgot Password?',
|
||||
'client_authentication.sign_in_page.sign_in_button' => 'Sign In',
|
||||
'client_authentication.sign_in_page.or_divider' => 'or',
|
||||
'client_authentication.sign_in_page.social_apple' => 'Sign In with Apple',
|
||||
'client_authentication.sign_in_page.social_google' => 'Sign In with Google',
|
||||
'client_authentication.sign_in_page.no_account' => 'Don\'t have an account? ',
|
||||
'client_authentication.sign_in_page.sign_up_link' => 'Sign Up',
|
||||
'client_authentication.sign_up_page.title' => 'Create Account',
|
||||
'client_authentication.sign_up_page.subtitle' => 'Get started with Krow for your business',
|
||||
'client_authentication.sign_up_page.company_label' => 'Company Name',
|
||||
'client_authentication.sign_up_page.company_hint' => 'Enter company name',
|
||||
'client_authentication.sign_up_page.email_label' => 'Email',
|
||||
'client_authentication.sign_up_page.email_hint' => 'Enter your email',
|
||||
'client_authentication.sign_up_page.password_label' => 'Password',
|
||||
'client_authentication.sign_up_page.password_hint' => 'Create a password',
|
||||
'client_authentication.sign_up_page.confirm_password_label' => 'Confirm Password',
|
||||
'client_authentication.sign_up_page.confirm_password_hint' => 'Confirm your password',
|
||||
'client_authentication.sign_up_page.create_account_button' => 'Create Account',
|
||||
'client_authentication.sign_up_page.or_divider' => 'or',
|
||||
'client_authentication.sign_up_page.social_apple' => 'Sign Up with Apple',
|
||||
'client_authentication.sign_up_page.social_google' => 'Sign Up with Google',
|
||||
'client_authentication.sign_up_page.has_account' => 'Already have an account? ',
|
||||
'client_authentication.sign_up_page.sign_in_link' => 'Sign In',
|
||||
'client_home.shift_created_success' => 'Shift order submitted successfully',
|
||||
'client_home.dashboard.welcome_back' => 'Welcome back',
|
||||
'client_home.dashboard.edit_mode_active' => 'Edit Mode Active',
|
||||
'client_home.dashboard.drag_instruction' => 'Drag to reorder, toggle visibility',
|
||||
'client_home.dashboard.reset' => 'Reset',
|
||||
'client_home.dashboard.metric_needed' => 'Needed',
|
||||
'client_home.dashboard.metric_filled' => 'Filled',
|
||||
'client_home.dashboard.metric_open' => 'Open',
|
||||
'client_home.dashboard.view_all' => 'View all',
|
||||
'client_home.dashboard.insight_lightbulb' => ({required Object amount}) => 'Save ${amount}/month',
|
||||
'client_home.dashboard.insight_tip' => 'Book 48hrs ahead for better rates',
|
||||
'client_home.widgets.actions' => 'Quick Actions',
|
||||
'client_home.widgets.reorder' => 'Reorder',
|
||||
'client_home.widgets.coverage' => 'Today\'s Coverage',
|
||||
'client_home.widgets.spending' => 'Spending Insights',
|
||||
'client_home.widgets.live_activity' => 'Live Activity',
|
||||
'client_home.actions.rapid' => 'RAPID',
|
||||
'client_home.actions.rapid_subtitle' => 'Urgent same-day',
|
||||
'client_home.actions.create_order' => 'Create Order',
|
||||
'client_home.actions.create_order_subtitle' => 'Schedule shifts',
|
||||
'client_home.reorder.title' => 'REORDER',
|
||||
'client_home.reorder.reorder_button' => 'Reorder',
|
||||
'client_home.reorder.per_hr' => ({required Object amount}) => '${amount}/hr',
|
||||
'client_home.form.edit_reorder' => 'Edit & Reorder',
|
||||
'client_home.form.post_new' => 'Post a New Shift',
|
||||
'client_home.form.review_subtitle' => 'Review and edit the details before posting',
|
||||
'client_home.form.date_label' => 'Date *',
|
||||
'client_home.form.date_hint' => 'mm/dd/yyyy',
|
||||
'client_home.form.location_label' => 'Location *',
|
||||
'client_home.form.location_hint' => 'Business address',
|
||||
'client_home.form.positions_title' => 'Positions',
|
||||
'client_home.form.add_position' => 'Add Position',
|
||||
'client_home.form.role_label' => 'Role *',
|
||||
'client_home.form.role_hint' => 'Select role',
|
||||
'client_home.form.start_time' => 'Start Time *',
|
||||
'client_home.form.end_time' => 'End Time *',
|
||||
'client_home.form.workers_needed' => 'Workers Needed *',
|
||||
'client_home.form.hourly_rate' => 'Hourly Rate (\$) *',
|
||||
'client_home.form.post_shift' => 'Post Shift',
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
}
|
||||
579
apps/packages/core_localization/lib/src/l10n/strings_es.g.dart
Normal file
579
apps/packages/core_localization/lib/src/l10n/strings_es.g.dart
Normal file
@@ -0,0 +1,579 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
// dart format off
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsEs with BaseTranslations<AppLocale, Translations> implements Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsEs({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||
: assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
|
||||
$meta = meta ?? TranslationMetadata(
|
||||
locale: AppLocale.es,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
) {
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <es>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
||||
|
||||
late final TranslationsEs _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsEs $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsEs(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsCommonEs common = _TranslationsCommonEs._(_root);
|
||||
@override late final _TranslationsSettingsEs settings = _TranslationsSettingsEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationEs staff_authentication = _TranslationsStaffAuthenticationEs._(_root);
|
||||
@override late final _TranslationsClientAuthenticationEs client_authentication = _TranslationsClientAuthenticationEs._(_root);
|
||||
@override late final _TranslationsClientHomeEs client_home = _TranslationsClientHomeEs._(_root);
|
||||
}
|
||||
|
||||
// Path: common
|
||||
class _TranslationsCommonEs implements TranslationsCommonEn {
|
||||
_TranslationsCommonEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get ok => 'Aceptar';
|
||||
@override String get cancel => 'Cancelar';
|
||||
@override String get save => 'Guardar';
|
||||
@override String get delete => 'Eliminar';
|
||||
@override String get continue_text => 'Continuar';
|
||||
}
|
||||
|
||||
// Path: settings
|
||||
class _TranslationsSettingsEs implements TranslationsSettingsEn {
|
||||
_TranslationsSettingsEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get language => 'Idioma';
|
||||
@override String get change_language => 'Cambiar Idioma';
|
||||
}
|
||||
|
||||
// Path: staff_authentication
|
||||
class _TranslationsStaffAuthenticationEs implements TranslationsStaffAuthenticationEn {
|
||||
_TranslationsStaffAuthenticationEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStaffAuthenticationGetStartedPageEs get_started_page = _TranslationsStaffAuthenticationGetStartedPageEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationPhoneVerificationPageEs phone_verification_page = _TranslationsStaffAuthenticationPhoneVerificationPageEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationPhoneInputEs phone_input = _TranslationsStaffAuthenticationPhoneInputEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationOtpVerificationEs otp_verification = _TranslationsStaffAuthenticationOtpVerificationEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationProfileSetupPageEs profile_setup_page = _TranslationsStaffAuthenticationProfileSetupPageEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationCommonEs common = _TranslationsStaffAuthenticationCommonEs._(_root);
|
||||
}
|
||||
|
||||
// Path: client_authentication
|
||||
class _TranslationsClientAuthenticationEs implements TranslationsClientAuthenticationEn {
|
||||
_TranslationsClientAuthenticationEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsClientAuthenticationGetStartedPageEs get_started_page = _TranslationsClientAuthenticationGetStartedPageEs._(_root);
|
||||
@override late final _TranslationsClientAuthenticationSignInPageEs sign_in_page = _TranslationsClientAuthenticationSignInPageEs._(_root);
|
||||
@override late final _TranslationsClientAuthenticationSignUpPageEs sign_up_page = _TranslationsClientAuthenticationSignUpPageEs._(_root);
|
||||
}
|
||||
|
||||
// Path: client_home
|
||||
class _TranslationsClientHomeEs implements TranslationsClientHomeEn {
|
||||
_TranslationsClientHomeEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get shift_created_success => 'Orden de turno enviada con éxito';
|
||||
@override late final _TranslationsClientHomeDashboardEs dashboard = _TranslationsClientHomeDashboardEs._(_root);
|
||||
@override late final _TranslationsClientHomeWidgetsEs widgets = _TranslationsClientHomeWidgetsEs._(_root);
|
||||
@override late final _TranslationsClientHomeActionsEs actions = _TranslationsClientHomeActionsEs._(_root);
|
||||
@override late final _TranslationsClientHomeReorderEs reorder = _TranslationsClientHomeReorderEs._(_root);
|
||||
@override late final _TranslationsClientHomeFormEs form = _TranslationsClientHomeFormEs._(_root);
|
||||
}
|
||||
|
||||
// Path: staff_authentication.get_started_page
|
||||
class _TranslationsStaffAuthenticationGetStartedPageEs implements TranslationsStaffAuthenticationGetStartedPageEn {
|
||||
_TranslationsStaffAuthenticationGetStartedPageEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title_part1 => 'Trabaja, Crece, ';
|
||||
@override String get title_part2 => 'Elévate';
|
||||
@override String get subtitle => 'Construye tu carrera en hostelería con \nflexibilidad y libertad.';
|
||||
@override String get sign_up_button => 'Registrarse';
|
||||
@override String get log_in_button => 'Iniciar sesión';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.phone_verification_page
|
||||
class _TranslationsStaffAuthenticationPhoneVerificationPageEs implements TranslationsStaffAuthenticationPhoneVerificationPageEn {
|
||||
_TranslationsStaffAuthenticationPhoneVerificationPageEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get validation_error => 'Por favor, ingresa un número de teléfono válido de 10 dígitos';
|
||||
@override String get send_code_button => 'Enviar código';
|
||||
@override String get enter_code_title => 'Ingresa el código de verificación';
|
||||
@override String get code_sent_message => 'Enviamos un código de 6 dígitos a ';
|
||||
@override String get code_sent_instruction => '. Ingrésalo a continuación para verificar tu cuenta.';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.phone_input
|
||||
class _TranslationsStaffAuthenticationPhoneInputEs implements TranslationsStaffAuthenticationPhoneInputEn {
|
||||
_TranslationsStaffAuthenticationPhoneInputEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'Verifica tu número de teléfono';
|
||||
@override String get subtitle => 'Te enviaremos un código de verificación para comenzar.';
|
||||
@override String get label => 'Número de teléfono';
|
||||
@override String get hint => 'Ingresa tu número';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.otp_verification
|
||||
class _TranslationsStaffAuthenticationOtpVerificationEs implements TranslationsStaffAuthenticationOtpVerificationEn {
|
||||
_TranslationsStaffAuthenticationOtpVerificationEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get did_not_get_code => '¿No recibiste el código?';
|
||||
@override String resend_in({required Object seconds}) => 'Reenviar en ${seconds} s';
|
||||
@override String get resend_code => 'Reenviar código';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page
|
||||
class _TranslationsStaffAuthenticationProfileSetupPageEs implements TranslationsStaffAuthenticationProfileSetupPageEn {
|
||||
_TranslationsStaffAuthenticationProfileSetupPageEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String step_indicator({required Object current, required Object total}) => 'Paso ${current} de ${total}';
|
||||
@override String get error_occurred => 'Ocurrió un error';
|
||||
@override String get complete_setup_button => 'Completar configuración';
|
||||
@override late final _TranslationsStaffAuthenticationProfileSetupPageStepsEs steps = _TranslationsStaffAuthenticationProfileSetupPageStepsEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationProfileSetupPageBasicInfoEs basic_info = _TranslationsStaffAuthenticationProfileSetupPageBasicInfoEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationProfileSetupPageLocationEs location = _TranslationsStaffAuthenticationProfileSetupPageLocationEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationProfileSetupPageExperienceEs experience = _TranslationsStaffAuthenticationProfileSetupPageExperienceEs._(_root);
|
||||
}
|
||||
|
||||
// Path: staff_authentication.common
|
||||
class _TranslationsStaffAuthenticationCommonEs implements TranslationsStaffAuthenticationCommonEn {
|
||||
_TranslationsStaffAuthenticationCommonEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get trouble_question => '¿Tienes problemas? ';
|
||||
@override String get contact_support => 'Contactar a soporte';
|
||||
}
|
||||
|
||||
// Path: client_authentication.get_started_page
|
||||
class _TranslationsClientAuthenticationGetStartedPageEs implements TranslationsClientAuthenticationGetStartedPageEn {
|
||||
_TranslationsClientAuthenticationGetStartedPageEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'Toma el control de tus\nturnos y eventos';
|
||||
@override String get subtitle => 'Optimiza tus operaciones con potentes herramientas para gestionar horarios, realizar un seguimiento del rendimiento y mantener a tu equipo en la misma página, todo en un solo lugar';
|
||||
@override String get sign_in_button => 'Iniciar sesión';
|
||||
@override String get create_account_button => 'Crear cuenta';
|
||||
}
|
||||
|
||||
// Path: client_authentication.sign_in_page
|
||||
class _TranslationsClientAuthenticationSignInPageEs implements TranslationsClientAuthenticationSignInPageEn {
|
||||
_TranslationsClientAuthenticationSignInPageEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'Bienvenido de nuevo';
|
||||
@override String get subtitle => 'Inicia sesión para gestionar tus turnos y trabajadores';
|
||||
@override String get email_label => 'Correo electrónico';
|
||||
@override String get email_hint => 'Ingresa tu correo electrónico';
|
||||
@override String get password_label => 'Contraseña';
|
||||
@override String get password_hint => 'Ingresa tu contraseña';
|
||||
@override String get forgot_password => '¿Olvidaste tu contraseña?';
|
||||
@override String get sign_in_button => 'Iniciar sesión';
|
||||
@override String get or_divider => 'o';
|
||||
@override String get social_apple => 'Iniciar sesión con Apple';
|
||||
@override String get social_google => 'Iniciar sesión con Google';
|
||||
@override String get no_account => '¿No tienes una cuenta? ';
|
||||
@override String get sign_up_link => 'Regístrate';
|
||||
}
|
||||
|
||||
// Path: client_authentication.sign_up_page
|
||||
class _TranslationsClientAuthenticationSignUpPageEs implements TranslationsClientAuthenticationSignUpPageEn {
|
||||
_TranslationsClientAuthenticationSignUpPageEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'Crear cuenta';
|
||||
@override String get subtitle => 'Comienza con Krow para tu negocio';
|
||||
@override String get company_label => 'Nombre de la empresa';
|
||||
@override String get company_hint => 'Ingresa el nombre de la empresa';
|
||||
@override String get email_label => 'Correo electrónico';
|
||||
@override String get email_hint => 'Ingresa tu correo electrónico';
|
||||
@override String get password_label => 'Contraseña';
|
||||
@override String get password_hint => 'Crea una contraseña';
|
||||
@override String get confirm_password_label => 'Confirmar contraseña';
|
||||
@override String get confirm_password_hint => 'Confirma tu contraseña';
|
||||
@override String get create_account_button => 'Crear cuenta';
|
||||
@override String get or_divider => 'o';
|
||||
@override String get social_apple => 'Regístrate con Apple';
|
||||
@override String get social_google => 'Regístrate con Google';
|
||||
@override String get has_account => '¿Ya tienes una cuenta? ';
|
||||
@override String get sign_in_link => 'Iniciar sesión';
|
||||
}
|
||||
|
||||
// Path: client_home.dashboard
|
||||
class _TranslationsClientHomeDashboardEs implements TranslationsClientHomeDashboardEn {
|
||||
_TranslationsClientHomeDashboardEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get welcome_back => 'Bienvenido de nuevo';
|
||||
@override String get edit_mode_active => 'Modo Edición Activo';
|
||||
@override String get drag_instruction => 'Arrastra para reordenar, cambia la visibilidad';
|
||||
@override String get reset => 'Restablecer';
|
||||
@override String get metric_needed => 'Necesario';
|
||||
@override String get metric_filled => 'Lleno';
|
||||
@override String get metric_open => 'Abierto';
|
||||
@override String get view_all => 'Ver todo';
|
||||
@override String insight_lightbulb({required Object amount}) => 'Ahorra ${amount}/mes';
|
||||
@override String get insight_tip => 'Reserva con 48h de antelación para mejores tarifas';
|
||||
}
|
||||
|
||||
// Path: client_home.widgets
|
||||
class _TranslationsClientHomeWidgetsEs implements TranslationsClientHomeWidgetsEn {
|
||||
_TranslationsClientHomeWidgetsEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get actions => 'Acciones Rápidas';
|
||||
@override String get reorder => 'Reordenar';
|
||||
@override String get coverage => 'Cobertura de Hoy';
|
||||
@override String get spending => 'Información de Gastos';
|
||||
@override String get live_activity => 'Actividad en Vivo';
|
||||
}
|
||||
|
||||
// Path: client_home.actions
|
||||
class _TranslationsClientHomeActionsEs implements TranslationsClientHomeActionsEn {
|
||||
_TranslationsClientHomeActionsEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get rapid => 'RÁPIDO';
|
||||
@override String get rapid_subtitle => 'Urgente mismo día';
|
||||
@override String get create_order => 'Crear Orden';
|
||||
@override String get create_order_subtitle => 'Programar turnos';
|
||||
}
|
||||
|
||||
// Path: client_home.reorder
|
||||
class _TranslationsClientHomeReorderEs implements TranslationsClientHomeReorderEn {
|
||||
_TranslationsClientHomeReorderEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'REORDENAR';
|
||||
@override String get reorder_button => 'Reordenar';
|
||||
@override String per_hr({required Object amount}) => '${amount}/hr';
|
||||
}
|
||||
|
||||
// Path: client_home.form
|
||||
class _TranslationsClientHomeFormEs implements TranslationsClientHomeFormEn {
|
||||
_TranslationsClientHomeFormEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get edit_reorder => 'Editar y Reordenar';
|
||||
@override String get post_new => 'Publicar un Nuevo Turno';
|
||||
@override String get review_subtitle => 'Revisa y edita los detalles antes de publicar';
|
||||
@override String get date_label => 'Fecha *';
|
||||
@override String get date_hint => 'mm/dd/aaaa';
|
||||
@override String get location_label => 'Ubicación *';
|
||||
@override String get location_hint => 'Dirección del negocio';
|
||||
@override String get positions_title => 'Posiciones';
|
||||
@override String get add_position => 'Añadir Posición';
|
||||
@override String get role_label => 'Rol *';
|
||||
@override String get role_hint => 'Seleccionar rol';
|
||||
@override String get start_time => 'Hora de Inicio *';
|
||||
@override String get end_time => 'Hora de Fin *';
|
||||
@override String get workers_needed => 'Trabajadores Necesarios *';
|
||||
@override String get hourly_rate => 'Tarifa por hora (\$) *';
|
||||
@override String get post_shift => 'Publicar Turno';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.steps
|
||||
class _TranslationsStaffAuthenticationProfileSetupPageStepsEs implements TranslationsStaffAuthenticationProfileSetupPageStepsEn {
|
||||
_TranslationsStaffAuthenticationProfileSetupPageStepsEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get basic => 'Información básica';
|
||||
@override String get location => 'Ubicación';
|
||||
@override String get experience => 'Experiencia';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.basic_info
|
||||
class _TranslationsStaffAuthenticationProfileSetupPageBasicInfoEs implements TranslationsStaffAuthenticationProfileSetupPageBasicInfoEn {
|
||||
_TranslationsStaffAuthenticationProfileSetupPageBasicInfoEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'Conozcámonos';
|
||||
@override String get subtitle => 'Cuéntanos un poco sobre ti';
|
||||
@override String get full_name_label => 'Nombre completo *';
|
||||
@override String get full_name_hint => 'Juan Pérez';
|
||||
@override String get bio_label => 'Biografía corta';
|
||||
@override String get bio_hint => 'Profesional experimentado en hostelería...';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.location
|
||||
class _TranslationsStaffAuthenticationProfileSetupPageLocationEs implements TranslationsStaffAuthenticationProfileSetupPageLocationEn {
|
||||
_TranslationsStaffAuthenticationProfileSetupPageLocationEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => '¿Dónde quieres trabajar?';
|
||||
@override String get subtitle => 'Agrega tus ubicaciones de trabajo preferidas';
|
||||
@override String get add_location_label => 'Agregar ubicación *';
|
||||
@override String get add_location_hint => 'Ciudad o código postal';
|
||||
@override String get add_button => 'Agregar';
|
||||
@override String max_distance({required Object distance}) => 'Distancia máxima: ${distance} millas';
|
||||
@override String get min_dist_label => '5 mi';
|
||||
@override String get max_dist_label => '50 mi';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.experience
|
||||
class _TranslationsStaffAuthenticationProfileSetupPageExperienceEs implements TranslationsStaffAuthenticationProfileSetupPageExperienceEn {
|
||||
_TranslationsStaffAuthenticationProfileSetupPageExperienceEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => '¿Cuáles son tus habilidades?';
|
||||
@override String get subtitle => 'Selecciona todas las que correspondan';
|
||||
@override String get skills_label => 'Habilidades *';
|
||||
@override String get industries_label => 'Industrias preferidas';
|
||||
@override late final _TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEs skills = _TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEs._(_root);
|
||||
@override late final _TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEs industries = _TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEs._(_root);
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.experience.skills
|
||||
class _TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEs implements TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEn {
|
||||
_TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get food_service => 'Servicio de comida';
|
||||
@override String get bartending => 'Preparación de bebidas';
|
||||
@override String get warehouse => 'Almacén';
|
||||
@override String get retail => 'Venta minorista';
|
||||
@override String get events => 'Eventos';
|
||||
@override String get customer_service => 'Servicio al cliente';
|
||||
@override String get cleaning => 'Limpieza';
|
||||
@override String get security => 'Seguridad';
|
||||
@override String get driving => 'Conducción';
|
||||
@override String get cooking => 'Cocina';
|
||||
}
|
||||
|
||||
// Path: staff_authentication.profile_setup_page.experience.industries
|
||||
class _TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEs implements TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEn {
|
||||
_TranslationsStaffAuthenticationProfileSetupPageExperienceIndustriesEs._(this._root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get hospitality => 'Hostelería';
|
||||
@override String get food_service => 'Servicio de comida';
|
||||
@override String get warehouse => 'Almacén';
|
||||
@override String get events => 'Eventos';
|
||||
@override String get retail => 'Venta minorista';
|
||||
@override String get healthcare => 'Atención médica';
|
||||
}
|
||||
|
||||
/// The flat map containing all translations for locale <es>.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
///
|
||||
/// The Dart AOT compiler has issues with very large switch statements,
|
||||
/// so the map is split into smaller functions (512 entries each).
|
||||
extension on TranslationsEs {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
return switch (path) {
|
||||
'common.ok' => 'Aceptar',
|
||||
'common.cancel' => 'Cancelar',
|
||||
'common.save' => 'Guardar',
|
||||
'common.delete' => 'Eliminar',
|
||||
'common.continue_text' => 'Continuar',
|
||||
'settings.language' => 'Idioma',
|
||||
'settings.change_language' => 'Cambiar Idioma',
|
||||
'staff_authentication.get_started_page.title_part1' => 'Trabaja, Crece, ',
|
||||
'staff_authentication.get_started_page.title_part2' => 'Elévate',
|
||||
'staff_authentication.get_started_page.subtitle' => 'Construye tu carrera en hostelería con \nflexibilidad y libertad.',
|
||||
'staff_authentication.get_started_page.sign_up_button' => 'Registrarse',
|
||||
'staff_authentication.get_started_page.log_in_button' => 'Iniciar sesión',
|
||||
'staff_authentication.phone_verification_page.validation_error' => 'Por favor, ingresa un número de teléfono válido de 10 dígitos',
|
||||
'staff_authentication.phone_verification_page.send_code_button' => 'Enviar código',
|
||||
'staff_authentication.phone_verification_page.enter_code_title' => 'Ingresa el código de verificación',
|
||||
'staff_authentication.phone_verification_page.code_sent_message' => 'Enviamos un código de 6 dígitos a ',
|
||||
'staff_authentication.phone_verification_page.code_sent_instruction' => '. Ingrésalo a continuación para verificar tu cuenta.',
|
||||
'staff_authentication.phone_input.title' => 'Verifica tu número de teléfono',
|
||||
'staff_authentication.phone_input.subtitle' => 'Te enviaremos un código de verificación para comenzar.',
|
||||
'staff_authentication.phone_input.label' => 'Número de teléfono',
|
||||
'staff_authentication.phone_input.hint' => 'Ingresa tu número',
|
||||
'staff_authentication.otp_verification.did_not_get_code' => '¿No recibiste el código?',
|
||||
'staff_authentication.otp_verification.resend_in' => ({required Object seconds}) => 'Reenviar en ${seconds} s',
|
||||
'staff_authentication.otp_verification.resend_code' => 'Reenviar código',
|
||||
'staff_authentication.profile_setup_page.step_indicator' => ({required Object current, required Object total}) => 'Paso ${current} de ${total}',
|
||||
'staff_authentication.profile_setup_page.error_occurred' => 'Ocurrió un error',
|
||||
'staff_authentication.profile_setup_page.complete_setup_button' => 'Completar configuración',
|
||||
'staff_authentication.profile_setup_page.steps.basic' => 'Información básica',
|
||||
'staff_authentication.profile_setup_page.steps.location' => 'Ubicación',
|
||||
'staff_authentication.profile_setup_page.steps.experience' => 'Experiencia',
|
||||
'staff_authentication.profile_setup_page.basic_info.title' => 'Conozcámonos',
|
||||
'staff_authentication.profile_setup_page.basic_info.subtitle' => 'Cuéntanos un poco sobre ti',
|
||||
'staff_authentication.profile_setup_page.basic_info.full_name_label' => 'Nombre completo *',
|
||||
'staff_authentication.profile_setup_page.basic_info.full_name_hint' => 'Juan Pérez',
|
||||
'staff_authentication.profile_setup_page.basic_info.bio_label' => 'Biografía corta',
|
||||
'staff_authentication.profile_setup_page.basic_info.bio_hint' => 'Profesional experimentado en hostelería...',
|
||||
'staff_authentication.profile_setup_page.location.title' => '¿Dónde quieres trabajar?',
|
||||
'staff_authentication.profile_setup_page.location.subtitle' => 'Agrega tus ubicaciones de trabajo preferidas',
|
||||
'staff_authentication.profile_setup_page.location.add_location_label' => 'Agregar ubicación *',
|
||||
'staff_authentication.profile_setup_page.location.add_location_hint' => 'Ciudad o código postal',
|
||||
'staff_authentication.profile_setup_page.location.add_button' => 'Agregar',
|
||||
'staff_authentication.profile_setup_page.location.max_distance' => ({required Object distance}) => 'Distancia máxima: ${distance} millas',
|
||||
'staff_authentication.profile_setup_page.location.min_dist_label' => '5 mi',
|
||||
'staff_authentication.profile_setup_page.location.max_dist_label' => '50 mi',
|
||||
'staff_authentication.profile_setup_page.experience.title' => '¿Cuáles son tus habilidades?',
|
||||
'staff_authentication.profile_setup_page.experience.subtitle' => 'Selecciona todas las que correspondan',
|
||||
'staff_authentication.profile_setup_page.experience.skills_label' => 'Habilidades *',
|
||||
'staff_authentication.profile_setup_page.experience.industries_label' => 'Industrias preferidas',
|
||||
'staff_authentication.profile_setup_page.experience.skills.food_service' => 'Servicio de comida',
|
||||
'staff_authentication.profile_setup_page.experience.skills.bartending' => 'Preparación de bebidas',
|
||||
'staff_authentication.profile_setup_page.experience.skills.warehouse' => 'Almacén',
|
||||
'staff_authentication.profile_setup_page.experience.skills.retail' => 'Venta minorista',
|
||||
'staff_authentication.profile_setup_page.experience.skills.events' => 'Eventos',
|
||||
'staff_authentication.profile_setup_page.experience.skills.customer_service' => 'Servicio al cliente',
|
||||
'staff_authentication.profile_setup_page.experience.skills.cleaning' => 'Limpieza',
|
||||
'staff_authentication.profile_setup_page.experience.skills.security' => 'Seguridad',
|
||||
'staff_authentication.profile_setup_page.experience.skills.driving' => 'Conducción',
|
||||
'staff_authentication.profile_setup_page.experience.skills.cooking' => 'Cocina',
|
||||
'staff_authentication.profile_setup_page.experience.industries.hospitality' => 'Hostelería',
|
||||
'staff_authentication.profile_setup_page.experience.industries.food_service' => 'Servicio de comida',
|
||||
'staff_authentication.profile_setup_page.experience.industries.warehouse' => 'Almacén',
|
||||
'staff_authentication.profile_setup_page.experience.industries.events' => 'Eventos',
|
||||
'staff_authentication.profile_setup_page.experience.industries.retail' => 'Venta minorista',
|
||||
'staff_authentication.profile_setup_page.experience.industries.healthcare' => 'Atención médica',
|
||||
'staff_authentication.common.trouble_question' => '¿Tienes problemas? ',
|
||||
'staff_authentication.common.contact_support' => 'Contactar a soporte',
|
||||
'client_authentication.get_started_page.title' => 'Toma el control de tus\nturnos y eventos',
|
||||
'client_authentication.get_started_page.subtitle' => 'Optimiza tus operaciones con potentes herramientas para gestionar horarios, realizar un seguimiento del rendimiento y mantener a tu equipo en la misma página, todo en un solo lugar',
|
||||
'client_authentication.get_started_page.sign_in_button' => 'Iniciar sesión',
|
||||
'client_authentication.get_started_page.create_account_button' => 'Crear cuenta',
|
||||
'client_authentication.sign_in_page.title' => 'Bienvenido de nuevo',
|
||||
'client_authentication.sign_in_page.subtitle' => 'Inicia sesión para gestionar tus turnos y trabajadores',
|
||||
'client_authentication.sign_in_page.email_label' => 'Correo electrónico',
|
||||
'client_authentication.sign_in_page.email_hint' => 'Ingresa tu correo electrónico',
|
||||
'client_authentication.sign_in_page.password_label' => 'Contraseña',
|
||||
'client_authentication.sign_in_page.password_hint' => 'Ingresa tu contraseña',
|
||||
'client_authentication.sign_in_page.forgot_password' => '¿Olvidaste tu contraseña?',
|
||||
'client_authentication.sign_in_page.sign_in_button' => 'Iniciar sesión',
|
||||
'client_authentication.sign_in_page.or_divider' => 'o',
|
||||
'client_authentication.sign_in_page.social_apple' => 'Iniciar sesión con Apple',
|
||||
'client_authentication.sign_in_page.social_google' => 'Iniciar sesión con Google',
|
||||
'client_authentication.sign_in_page.no_account' => '¿No tienes una cuenta? ',
|
||||
'client_authentication.sign_in_page.sign_up_link' => 'Regístrate',
|
||||
'client_authentication.sign_up_page.title' => 'Crear cuenta',
|
||||
'client_authentication.sign_up_page.subtitle' => 'Comienza con Krow para tu negocio',
|
||||
'client_authentication.sign_up_page.company_label' => 'Nombre de la empresa',
|
||||
'client_authentication.sign_up_page.company_hint' => 'Ingresa el nombre de la empresa',
|
||||
'client_authentication.sign_up_page.email_label' => 'Correo electrónico',
|
||||
'client_authentication.sign_up_page.email_hint' => 'Ingresa tu correo electrónico',
|
||||
'client_authentication.sign_up_page.password_label' => 'Contraseña',
|
||||
'client_authentication.sign_up_page.password_hint' => 'Crea una contraseña',
|
||||
'client_authentication.sign_up_page.confirm_password_label' => 'Confirmar contraseña',
|
||||
'client_authentication.sign_up_page.confirm_password_hint' => 'Confirma tu contraseña',
|
||||
'client_authentication.sign_up_page.create_account_button' => 'Crear cuenta',
|
||||
'client_authentication.sign_up_page.or_divider' => 'o',
|
||||
'client_authentication.sign_up_page.social_apple' => 'Regístrate con Apple',
|
||||
'client_authentication.sign_up_page.social_google' => 'Regístrate con Google',
|
||||
'client_authentication.sign_up_page.has_account' => '¿Ya tienes una cuenta? ',
|
||||
'client_authentication.sign_up_page.sign_in_link' => 'Iniciar sesión',
|
||||
'client_home.shift_created_success' => 'Orden de turno enviada con éxito',
|
||||
'client_home.dashboard.welcome_back' => 'Bienvenido de nuevo',
|
||||
'client_home.dashboard.edit_mode_active' => 'Modo Edición Activo',
|
||||
'client_home.dashboard.drag_instruction' => 'Arrastra para reordenar, cambia la visibilidad',
|
||||
'client_home.dashboard.reset' => 'Restablecer',
|
||||
'client_home.dashboard.metric_needed' => 'Necesario',
|
||||
'client_home.dashboard.metric_filled' => 'Lleno',
|
||||
'client_home.dashboard.metric_open' => 'Abierto',
|
||||
'client_home.dashboard.view_all' => 'Ver todo',
|
||||
'client_home.dashboard.insight_lightbulb' => ({required Object amount}) => 'Ahorra ${amount}/mes',
|
||||
'client_home.dashboard.insight_tip' => 'Reserva con 48h de antelación para mejores tarifas',
|
||||
'client_home.widgets.actions' => 'Acciones Rápidas',
|
||||
'client_home.widgets.reorder' => 'Reordenar',
|
||||
'client_home.widgets.coverage' => 'Cobertura de Hoy',
|
||||
'client_home.widgets.spending' => 'Información de Gastos',
|
||||
'client_home.widgets.live_activity' => 'Actividad en Vivo',
|
||||
'client_home.actions.rapid' => 'RÁPIDO',
|
||||
'client_home.actions.rapid_subtitle' => 'Urgente mismo día',
|
||||
'client_home.actions.create_order' => 'Crear Orden',
|
||||
'client_home.actions.create_order_subtitle' => 'Programar turnos',
|
||||
'client_home.reorder.title' => 'REORDENAR',
|
||||
'client_home.reorder.reorder_button' => 'Reordenar',
|
||||
'client_home.reorder.per_hr' => ({required Object amount}) => '${amount}/hr',
|
||||
'client_home.form.edit_reorder' => 'Editar y Reordenar',
|
||||
'client_home.form.post_new' => 'Publicar un Nuevo Turno',
|
||||
'client_home.form.review_subtitle' => 'Revisa y edita los detalles antes de publicar',
|
||||
'client_home.form.date_label' => 'Fecha *',
|
||||
'client_home.form.date_hint' => 'mm/dd/aaaa',
|
||||
'client_home.form.location_label' => 'Ubicación *',
|
||||
'client_home.form.location_hint' => 'Dirección del negocio',
|
||||
'client_home.form.positions_title' => 'Posiciones',
|
||||
'client_home.form.add_position' => 'Añadir Posición',
|
||||
'client_home.form.role_label' => 'Rol *',
|
||||
'client_home.form.role_hint' => 'Seleccionar rol',
|
||||
'client_home.form.start_time' => 'Hora de Inicio *',
|
||||
'client_home.form.end_time' => 'Hora de Fin *',
|
||||
'client_home.form.workers_needed' => 'Trabajadores Necesarios *',
|
||||
'client_home.form.hourly_rate' => 'Tarifa por hora (\$) *',
|
||||
'client_home.form.post_shift' => 'Publicar Turno',
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import 'package:flutter_modular/flutter_modular.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'data/datasources/locale_local_data_source.dart';
|
||||
import 'data/repositories_impl/locale_repository_impl.dart';
|
||||
import 'domain/repositories/locale_repository_interface.dart';
|
||||
import 'domain/usecases/get_locale_use_case.dart';
|
||||
import 'domain/usecases/set_locale_use_case.dart';
|
||||
import 'bloc/locale_bloc.dart';
|
||||
|
||||
/// A [ModularModule] that manages localization dependencies.
|
||||
///
|
||||
/// This module registers all necessary data sources, repositories, use cases,
|
||||
/// and the BLoC required for application-wide localization management.
|
||||
class LocalizationModule extends Module {
|
||||
@override
|
||||
void binds(Injector i) {
|
||||
// External Dependencies
|
||||
i.addInstance<SharedPreferencesAsync>(SharedPreferencesAsync());
|
||||
|
||||
// Data Sources
|
||||
i.addSingleton<LocaleLocalDataSource>(
|
||||
() => LocaleLocalDataSourceImpl(i.get<SharedPreferencesAsync>()),
|
||||
);
|
||||
|
||||
// Repositories
|
||||
i.addSingleton<LocaleRepositoryInterface>(
|
||||
() => LocaleRepositoryImpl(i.get<LocaleLocalDataSource>()),
|
||||
);
|
||||
|
||||
// Use Cases
|
||||
i.addSingleton<GetLocaleUseCase>(
|
||||
() => GetLocaleUseCase(i.get<LocaleRepositoryInterface>()),
|
||||
);
|
||||
i.addSingleton<SetLocaleUseCase>(
|
||||
() => SetLocaleUseCase(i.get<LocaleRepositoryInterface>()),
|
||||
);
|
||||
|
||||
// BLoCs
|
||||
i.addSingleton<LocaleBloc>(
|
||||
() => LocaleBloc(
|
||||
getLocaleUseCase: i.get<GetLocaleUseCase>(),
|
||||
setLocaleUseCase: i.get<SetLocaleUseCase>(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user