From 3d07d7f98931f8349f8c3a8f5d1198f6fd0b0c4d Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Sat, 10 Jan 2026 06:59:48 -0300 Subject: [PATCH] Add CRM, Billing, Products, Tickets, Forms i18n translations to .ftl files - Add nav entries for crm, billing, products, tickets, forms (en, pt-BR, es) - Add full CRM section: entities, actions, fields, pipeline stages - Add full Billing section: invoices, payments, quotes, status, reports - Add full Products section: catalog, services, price lists, inventory - Add full Tickets section: cases, priorities, status, AI features - Add full Forms section: templates, field types, actions --- Cargo.toml | 1 + locales/en/ui.ftl | 365 +++++++++++++++++++++++++++++++++++++++++++ locales/es/ui.ftl | 365 +++++++++++++++++++++++++++++++++++++++++++ locales/pt-BR/ui.ftl | 365 +++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 1 + src/logging.rs | 38 +++++ 6 files changed, 1135 insertions(+) create mode 100644 src/logging.rs diff --git a/Cargo.toml b/Cargo.toml index 2f17d67..7f652e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,6 +23,7 @@ i18n = [] anyhow = "1.0" thiserror = "2.0" log = "0.4" +env_logger = "0.11" chrono = { version = "0.4", features = ["serde"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/locales/en/ui.ftl b/locales/en/ui.ftl index 38723f1..5a71bd7 100644 --- a/locales/en/ui.ftl +++ b/locales/en/ui.ftl @@ -23,6 +23,11 @@ nav-sources = Sources nav-tools = Tools nav-attendant = Attendant nav-learn = Learn +nav-crm = CRM +nav-billing = Billing +nav-products = Products +nav-tickets = Tickets +nav-forms = Forms # ----------------------------------------------------------------------------- # Dashboard @@ -1195,3 +1200,363 @@ attendant-toast-assigned = Conversation assigned to you attendant-toast-error = An error occurred attendant-toast-connection-lost = Connection lost. Reconnecting... attendant-toast-connection-restored = Connection restored + +# ============================================================================= +# CRM +# ============================================================================= + +# ----------------------------------------------------------------------------- +# CRM Navigation & General +# ----------------------------------------------------------------------------- +crm-title = CRM +crm-pipeline = Pipeline +crm-leads = Leads +crm-opportunities = Opportunities +crm-accounts = Accounts +crm-contacts = Contacts +crm-activities = Activities + +# ----------------------------------------------------------------------------- +# CRM Entities +# ----------------------------------------------------------------------------- +crm-lead = Lead +crm-lead-desc = Unqualified prospect +crm-opportunity = Opportunity +crm-opportunity-desc = Qualified sales opportunity +crm-account = Account +crm-account-desc = Company or organization +crm-contact = Contact +crm-contact-desc = Person at an account +crm-activity = Activity +crm-activity-desc = Task, call, or email + +# ----------------------------------------------------------------------------- +# CRM Actions +# ----------------------------------------------------------------------------- +crm-qualify = Qualify +crm-convert = Convert +crm-won = Won +crm-lost = Lost +crm-new-lead = New Lead +crm-new-opportunity = New Opportunity +crm-new-account = New Account +crm-new-contact = New Contact + +# ----------------------------------------------------------------------------- +# CRM Fields +# ----------------------------------------------------------------------------- +crm-stage = Stage +crm-value = Value +crm-probability = Probability +crm-close-date = Close Date +crm-company = Company +crm-phone = Phone +crm-email = Email +crm-source = Source +crm-owner = Owner + +# ----------------------------------------------------------------------------- +# CRM Pipeline Stages +# ----------------------------------------------------------------------------- +crm-pipeline-new = New +crm-pipeline-contacted = Contacted +crm-pipeline-qualified = Qualified +crm-pipeline-proposal = Proposal +crm-pipeline-negotiation = Negotiation +crm-pipeline-closed-won = Closed Won +crm-pipeline-closed-lost = Closed Lost + +# ----------------------------------------------------------------------------- +# CRM Empty States +# ----------------------------------------------------------------------------- +crm-no-leads = No leads found +crm-no-opportunities = No opportunities found +crm-no-accounts = No accounts found +crm-no-contacts = No contacts found +crm-drag-hint = Drag cards to change stage + +# ============================================================================= +# Billing +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Billing Navigation & General +# ----------------------------------------------------------------------------- +billing-title = Billing +billing-invoices = Invoices +billing-payments = Payments +billing-quotes = Quotes +billing-dashboard = Dashboard + +# ----------------------------------------------------------------------------- +# Billing Entities +# ----------------------------------------------------------------------------- +billing-invoice = Invoice +billing-invoice-desc = Bill to customer +billing-payment = Payment +billing-payment-desc = Payment received +billing-quote = Quote +billing-quote-desc = Price quotation + +# ----------------------------------------------------------------------------- +# Billing Status +# ----------------------------------------------------------------------------- +billing-due-date = Due Date +billing-overdue = Overdue +billing-paid = Paid +billing-pending = Pending +billing-draft = Draft +billing-sent = Sent +billing-partial = Partial +billing-cancelled = Cancelled + +# ----------------------------------------------------------------------------- +# Billing Actions +# ----------------------------------------------------------------------------- +billing-new-invoice = New Invoice +billing-new-quote = New Quote +billing-send-invoice = Send Invoice +billing-record-payment = Record Payment +billing-mark-paid = Mark as Paid +billing-void = Void + +# ----------------------------------------------------------------------------- +# Billing Fields +# ----------------------------------------------------------------------------- +billing-amount = Amount +billing-tax = Tax +billing-subtotal = Subtotal +billing-total = Total +billing-discount = Discount +billing-line-items = Line Items +billing-add-item = Add Item +billing-remove-item = Remove Item +billing-customer = Customer +billing-issue-date = Issue Date +billing-payment-terms = Payment Terms +billing-notes = Notes +billing-invoice-number = Invoice Number +billing-quote-number = Quote Number + +# ----------------------------------------------------------------------------- +# Billing Reports +# ----------------------------------------------------------------------------- +billing-revenue = Revenue +billing-outstanding = Outstanding +billing-this-month = This Month +billing-last-month = Last Month +billing-total-paid = Total Paid +billing-total-overdue = Total Overdue + +# ----------------------------------------------------------------------------- +# Billing Empty States +# ----------------------------------------------------------------------------- +billing-no-invoices = No invoices found +billing-no-payments = No payments found +billing-no-quotes = No quotes found + +# ============================================================================= +# Products +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Products Navigation & General +# ----------------------------------------------------------------------------- +products-title = Products +products-catalog = Catalog +products-services = Services +products-price-lists = Price Lists +products-inventory = Inventory + +# ----------------------------------------------------------------------------- +# Products Entities +# ----------------------------------------------------------------------------- +products-product = Product +products-product-desc = Physical or digital product +products-service = Service +products-service-desc = Service offering +products-price-list = Price List +products-price-list-desc = Pricing tiers + +# ----------------------------------------------------------------------------- +# Products Actions +# ----------------------------------------------------------------------------- +products-new-product = New Product +products-new-service = New Service +products-new-price-list = New Price List +products-edit-product = Edit Product +products-duplicate = Duplicate + +# ----------------------------------------------------------------------------- +# Products Fields +# ----------------------------------------------------------------------------- +products-sku = SKU +products-category = Category +products-price = Price +products-unit = Unit +products-stock = Stock +products-cost = Cost +products-margin = Margin +products-barcode = Barcode + +# ----------------------------------------------------------------------------- +# Products Status +# ----------------------------------------------------------------------------- +products-in-stock = In Stock +products-out-of-stock = Out of Stock +products-low-stock = Low Stock +products-active = Active +products-inactive = Inactive +products-featured = Featured +products-archived = Archived + +# ----------------------------------------------------------------------------- +# Products Empty States +# ----------------------------------------------------------------------------- +products-no-products = No products found +products-no-services = No services found +products-no-price-lists = No price lists found + +# ============================================================================= +# Tickets (Support Cases) +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Tickets Navigation & General +# ----------------------------------------------------------------------------- +tickets-title = Tickets +tickets-cases = Cases +tickets-open = Open +tickets-closed = Closed +tickets-all = All Tickets +tickets-my-tickets = My Tickets + +# ----------------------------------------------------------------------------- +# Tickets Entities +# ----------------------------------------------------------------------------- +tickets-case = Case +tickets-case-desc = Support ticket +tickets-resolution = Resolution +tickets-resolution-desc = AI-suggested solution + +# ----------------------------------------------------------------------------- +# Tickets Priority +# ----------------------------------------------------------------------------- +tickets-priority = Priority +tickets-priority-low = Low +tickets-priority-medium = Medium +tickets-priority-high = High +tickets-priority-urgent = Urgent + +# ----------------------------------------------------------------------------- +# Tickets Status +# ----------------------------------------------------------------------------- +tickets-status = Status +tickets-status-new = New +tickets-status-open = Open +tickets-status-pending = Pending +tickets-status-resolved = Resolved +tickets-status-closed = Closed +tickets-status-on-hold = On Hold + +# ----------------------------------------------------------------------------- +# Tickets Actions +# ----------------------------------------------------------------------------- +tickets-new-ticket = New Ticket +tickets-assign = Assign +tickets-reassign = Reassign +tickets-escalate = Escalate +tickets-resolve = Resolve +tickets-reopen = Reopen +tickets-close = Close +tickets-merge = Merge + +# ----------------------------------------------------------------------------- +# Tickets Fields +# ----------------------------------------------------------------------------- +tickets-subject = Subject +tickets-description = Description +tickets-category = Category +tickets-assigned = Assigned To +tickets-unassigned = Unassigned +tickets-created = Created +tickets-updated = Updated +tickets-response-time = Response Time +tickets-resolution-time = Resolution Time +tickets-customer = Customer +tickets-internal-notes = Internal Notes +tickets-attachments = Attachments + +# ----------------------------------------------------------------------------- +# Tickets AI Features +# ----------------------------------------------------------------------------- +tickets-ai-suggestion = AI Suggestion +tickets-apply-suggestion = Apply Suggestion +tickets-ai-summary = AI Summary +tickets-similar-tickets = Similar Tickets +tickets-suggested-articles = Suggested Articles + +# ----------------------------------------------------------------------------- +# Tickets Empty States +# ----------------------------------------------------------------------------- +tickets-no-tickets = No tickets found +tickets-no-open = No open tickets +tickets-no-closed = No closed tickets + +# ============================================================================= +# Forms +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Forms Navigation & General +# ----------------------------------------------------------------------------- +forms-title = Forms +forms-my-forms = My Forms +forms-templates = Templates +forms-shared = Shared Forms +forms-responses = Responses + +# ----------------------------------------------------------------------------- +# Forms Actions +# ----------------------------------------------------------------------------- +forms-new-form = New Form +forms-create-prompt = Create a form for me about +forms-generating = Generating form... +forms-edit-form = Edit Form +forms-preview = Preview +forms-publish = Publish +forms-unpublish = Unpublish +forms-duplicate = Duplicate +forms-share = Share + +# ----------------------------------------------------------------------------- +# Forms Fields +# ----------------------------------------------------------------------------- +forms-form-name = Form Name +forms-form-description = Description +forms-add-field = Add Field +forms-field-label = Label +forms-field-type = Field Type +forms-field-required = Required +forms-field-placeholder = Placeholder + +# ----------------------------------------------------------------------------- +# Forms Field Types +# ----------------------------------------------------------------------------- +forms-type-text = Text +forms-type-textarea = Long Text +forms-type-number = Number +forms-type-email = Email +forms-type-phone = Phone +forms-type-date = Date +forms-type-select = Dropdown +forms-type-checkbox = Checkbox +forms-type-radio = Radio Buttons +forms-type-file = File Upload + +# ----------------------------------------------------------------------------- +# Forms Empty States +# ----------------------------------------------------------------------------- +forms-no-forms = No forms found +forms-no-responses = No responses yet +forms-no-templates = No templates available diff --git a/locales/es/ui.ftl b/locales/es/ui.ftl index 113cac4..44bf578 100644 --- a/locales/es/ui.ftl +++ b/locales/es/ui.ftl @@ -21,6 +21,11 @@ nav-monitoring = Monitoreo nav-sources = Fuentes nav-tools = Herramientas nav-attendant = Asistente +nav-crm = CRM +nav-billing = Facturación +nav-products = Productos +nav-tickets = Tickets +nav-forms = Formularios # ----------------------------------------------------------------------------- # Panel de Control @@ -498,3 +503,363 @@ paper-todo-list-desc = Lista de tareas marcables paper-quote = Cita paper-quote-desc = Bloque de cita para referencias paper-divider = Divisor + +# ============================================================================= +# CRM +# ============================================================================= + +# ----------------------------------------------------------------------------- +# CRM Navegación & General +# ----------------------------------------------------------------------------- +crm-title = CRM +crm-pipeline = Pipeline +crm-leads = Leads +crm-opportunities = Oportunidades +crm-accounts = Cuentas +crm-contacts = Contactos +crm-activities = Actividades + +# ----------------------------------------------------------------------------- +# CRM Entidades +# ----------------------------------------------------------------------------- +crm-lead = Lead +crm-lead-desc = Prospecto no calificado +crm-opportunity = Oportunidad +crm-opportunity-desc = Oportunidad de venta calificada +crm-account = Cuenta +crm-account-desc = Empresa u organización +crm-contact = Contacto +crm-contact-desc = Persona en una cuenta +crm-activity = Actividad +crm-activity-desc = Tarea, llamada o correo + +# ----------------------------------------------------------------------------- +# CRM Acciones +# ----------------------------------------------------------------------------- +crm-qualify = Calificar +crm-convert = Convertir +crm-won = Ganado +crm-lost = Perdido +crm-new-lead = Nuevo Lead +crm-new-opportunity = Nueva Oportunidad +crm-new-account = Nueva Cuenta +crm-new-contact = Nuevo Contacto + +# ----------------------------------------------------------------------------- +# CRM Campos +# ----------------------------------------------------------------------------- +crm-stage = Etapa +crm-value = Valor +crm-probability = Probabilidad +crm-close-date = Fecha de Cierre +crm-company = Empresa +crm-phone = Teléfono +crm-email = Correo +crm-source = Origen +crm-owner = Responsable + +# ----------------------------------------------------------------------------- +# CRM Etapas del Pipeline +# ----------------------------------------------------------------------------- +crm-pipeline-new = Nuevo +crm-pipeline-contacted = Contactado +crm-pipeline-qualified = Calificado +crm-pipeline-proposal = Propuesta +crm-pipeline-negotiation = Negociación +crm-pipeline-closed-won = Cerrado Ganado +crm-pipeline-closed-lost = Cerrado Perdido + +# ----------------------------------------------------------------------------- +# CRM Estados Vacíos +# ----------------------------------------------------------------------------- +crm-no-leads = No se encontraron leads +crm-no-opportunities = No se encontraron oportunidades +crm-no-accounts = No se encontraron cuentas +crm-no-contacts = No se encontraron contactos +crm-drag-hint = Arrastra las tarjetas para cambiar la etapa + +# ============================================================================= +# Facturación +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Facturación Navegación & General +# ----------------------------------------------------------------------------- +billing-title = Facturación +billing-invoices = Facturas +billing-payments = Pagos +billing-quotes = Cotizaciones +billing-dashboard = Panel + +# ----------------------------------------------------------------------------- +# Facturación Entidades +# ----------------------------------------------------------------------------- +billing-invoice = Factura +billing-invoice-desc = Cobro al cliente +billing-payment = Pago +billing-payment-desc = Pago recibido +billing-quote = Cotización +billing-quote-desc = Cotización de precio + +# ----------------------------------------------------------------------------- +# Facturación Estado +# ----------------------------------------------------------------------------- +billing-due-date = Fecha de Vencimiento +billing-overdue = Vencido +billing-paid = Pagado +billing-pending = Pendiente +billing-draft = Borrador +billing-sent = Enviado +billing-partial = Parcial +billing-cancelled = Cancelado + +# ----------------------------------------------------------------------------- +# Facturación Acciones +# ----------------------------------------------------------------------------- +billing-new-invoice = Nueva Factura +billing-new-quote = Nueva Cotización +billing-send-invoice = Enviar Factura +billing-record-payment = Registrar Pago +billing-mark-paid = Marcar como Pagado +billing-void = Anular + +# ----------------------------------------------------------------------------- +# Facturación Campos +# ----------------------------------------------------------------------------- +billing-amount = Monto +billing-tax = Impuesto +billing-subtotal = Subtotal +billing-total = Total +billing-discount = Descuento +billing-line-items = Artículos +billing-add-item = Agregar Artículo +billing-remove-item = Eliminar Artículo +billing-customer = Cliente +billing-issue-date = Fecha de Emisión +billing-payment-terms = Términos de Pago +billing-notes = Notas +billing-invoice-number = Número de Factura +billing-quote-number = Número de Cotización + +# ----------------------------------------------------------------------------- +# Facturación Reportes +# ----------------------------------------------------------------------------- +billing-revenue = Ingresos +billing-outstanding = Pendiente +billing-this-month = Este Mes +billing-last-month = Mes Pasado +billing-total-paid = Total Pagado +billing-total-overdue = Total Vencido + +# ----------------------------------------------------------------------------- +# Facturación Estados Vacíos +# ----------------------------------------------------------------------------- +billing-no-invoices = No se encontraron facturas +billing-no-payments = No se encontraron pagos +billing-no-quotes = No se encontraron cotizaciones + +# ============================================================================= +# Productos +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Productos Navegación & General +# ----------------------------------------------------------------------------- +products-title = Productos +products-catalog = Catálogo +products-services = Servicios +products-price-lists = Listas de Precios +products-inventory = Inventario + +# ----------------------------------------------------------------------------- +# Productos Entidades +# ----------------------------------------------------------------------------- +products-product = Producto +products-product-desc = Producto físico o digital +products-service = Servicio +products-service-desc = Oferta de servicio +products-price-list = Lista de Precios +products-price-list-desc = Niveles de precios + +# ----------------------------------------------------------------------------- +# Productos Acciones +# ----------------------------------------------------------------------------- +products-new-product = Nuevo Producto +products-new-service = Nuevo Servicio +products-new-price-list = Nueva Lista de Precios +products-edit-product = Editar Producto +products-duplicate = Duplicar + +# ----------------------------------------------------------------------------- +# Productos Campos +# ----------------------------------------------------------------------------- +products-sku = SKU +products-category = Categoría +products-price = Precio +products-unit = Unidad +products-stock = Stock +products-cost = Costo +products-margin = Margen +products-barcode = Código de Barras + +# ----------------------------------------------------------------------------- +# Productos Estado +# ----------------------------------------------------------------------------- +products-in-stock = En Stock +products-out-of-stock = Sin Stock +products-low-stock = Stock Bajo +products-active = Activo +products-inactive = Inactivo +products-featured = Destacado +products-archived = Archivado + +# ----------------------------------------------------------------------------- +# Productos Estados Vacíos +# ----------------------------------------------------------------------------- +products-no-products = No se encontraron productos +products-no-services = No se encontraron servicios +products-no-price-lists = No se encontraron listas de precios + +# ============================================================================= +# Tickets (Casos de Soporte) +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Tickets Navegación & General +# ----------------------------------------------------------------------------- +tickets-title = Tickets +tickets-cases = Casos +tickets-open = Abiertos +tickets-closed = Cerrados +tickets-all = Todos los Tickets +tickets-my-tickets = Mis Tickets + +# ----------------------------------------------------------------------------- +# Tickets Entidades +# ----------------------------------------------------------------------------- +tickets-case = Caso +tickets-case-desc = Ticket de soporte +tickets-resolution = Resolución +tickets-resolution-desc = Solución sugerida por IA + +# ----------------------------------------------------------------------------- +# Tickets Prioridad +# ----------------------------------------------------------------------------- +tickets-priority = Prioridad +tickets-priority-low = Baja +tickets-priority-medium = Media +tickets-priority-high = Alta +tickets-priority-urgent = Urgente + +# ----------------------------------------------------------------------------- +# Tickets Estado +# ----------------------------------------------------------------------------- +tickets-status = Estado +tickets-status-new = Nuevo +tickets-status-open = Abierto +tickets-status-pending = Pendiente +tickets-status-resolved = Resuelto +tickets-status-closed = Cerrado +tickets-status-on-hold = En Espera + +# ----------------------------------------------------------------------------- +# Tickets Acciones +# ----------------------------------------------------------------------------- +tickets-new-ticket = Nuevo Ticket +tickets-assign = Asignar +tickets-reassign = Reasignar +tickets-escalate = Escalar +tickets-resolve = Resolver +tickets-reopen = Reabrir +tickets-close = Cerrar +tickets-merge = Fusionar + +# ----------------------------------------------------------------------------- +# Tickets Campos +# ----------------------------------------------------------------------------- +tickets-subject = Asunto +tickets-description = Descripción +tickets-category = Categoría +tickets-assigned = Asignado a +tickets-unassigned = Sin Asignar +tickets-created = Creado +tickets-updated = Actualizado +tickets-response-time = Tiempo de Respuesta +tickets-resolution-time = Tiempo de Resolución +tickets-customer = Cliente +tickets-internal-notes = Notas Internas +tickets-attachments = Adjuntos + +# ----------------------------------------------------------------------------- +# Tickets Funciones de IA +# ----------------------------------------------------------------------------- +tickets-ai-suggestion = Sugerencia de IA +tickets-apply-suggestion = Aplicar Sugerencia +tickets-ai-summary = Resumen de IA +tickets-similar-tickets = Tickets Similares +tickets-suggested-articles = Artículos Sugeridos + +# ----------------------------------------------------------------------------- +# Tickets Estados Vacíos +# ----------------------------------------------------------------------------- +tickets-no-tickets = No se encontraron tickets +tickets-no-open = No hay tickets abiertos +tickets-no-closed = No hay tickets cerrados + +# ============================================================================= +# Formularios +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Formularios Navegación & General +# ----------------------------------------------------------------------------- +forms-title = Formularios +forms-my-forms = Mis Formularios +forms-templates = Plantillas +forms-shared = Formularios Compartidos +forms-responses = Respuestas + +# ----------------------------------------------------------------------------- +# Formularios Acciones +# ----------------------------------------------------------------------------- +forms-new-form = Nuevo Formulario +forms-create-prompt = Crea un formulario para mí sobre +forms-generating = Generando formulario... +forms-edit-form = Editar Formulario +forms-preview = Vista Previa +forms-publish = Publicar +forms-unpublish = Despublicar +forms-duplicate = Duplicar +forms-share = Compartir + +# ----------------------------------------------------------------------------- +# Formularios Campos +# ----------------------------------------------------------------------------- +forms-form-name = Nombre del Formulario +forms-form-description = Descripción +forms-add-field = Agregar Campo +forms-field-label = Etiqueta +forms-field-type = Tipo de Campo +forms-field-required = Requerido +forms-field-placeholder = Texto de Ejemplo + +# ----------------------------------------------------------------------------- +# Formularios Tipos de Campo +# ----------------------------------------------------------------------------- +forms-type-text = Texto +forms-type-textarea = Texto Largo +forms-type-number = Número +forms-type-email = Correo +forms-type-phone = Teléfono +forms-type-date = Fecha +forms-type-select = Lista Desplegable +forms-type-checkbox = Casilla de Verificación +forms-type-radio = Botones de Opción +forms-type-file = Subir Archivo + +# ----------------------------------------------------------------------------- +# Formularios Estados Vacíos +# ----------------------------------------------------------------------------- +forms-no-forms = No se encontraron formularios +forms-no-responses = Sin respuestas aún +forms-no-templates = No hay plantillas disponibles diff --git a/locales/pt-BR/ui.ftl b/locales/pt-BR/ui.ftl index 3301461..d6b55ac 100644 --- a/locales/pt-BR/ui.ftl +++ b/locales/pt-BR/ui.ftl @@ -21,6 +21,11 @@ nav-monitoring = Monitoramento nav-sources = Fontes nav-tools = Ferramentas nav-attendant = Atendente +nav-crm = CRM +nav-billing = Faturamento +nav-products = Produtos +nav-tickets = Chamados +nav-forms = Formulários # ----------------------------------------------------------------------------- # Painel Principal @@ -1193,3 +1198,363 @@ attendant-toast-assigned = Conversa atribuída a você attendant-toast-error = Ocorreu um erro attendant-toast-connection-lost = Conexão perdida. Reconectando... attendant-toast-connection-restored = Conexão restaurada + +# ============================================================================= +# CRM +# ============================================================================= + +# ----------------------------------------------------------------------------- +# CRM Navegação & Geral +# ----------------------------------------------------------------------------- +crm-title = CRM +crm-pipeline = Pipeline +crm-leads = Leads +crm-opportunities = Oportunidades +crm-accounts = Contas +crm-contacts = Contatos +crm-activities = Atividades + +# ----------------------------------------------------------------------------- +# CRM Entidades +# ----------------------------------------------------------------------------- +crm-lead = Lead +crm-lead-desc = Prospecto não qualificado +crm-opportunity = Oportunidade +crm-opportunity-desc = Oportunidade de venda qualificada +crm-account = Conta +crm-account-desc = Empresa ou organização +crm-contact = Contato +crm-contact-desc = Pessoa em uma conta +crm-activity = Atividade +crm-activity-desc = Tarefa, ligação ou e-mail + +# ----------------------------------------------------------------------------- +# CRM Ações +# ----------------------------------------------------------------------------- +crm-qualify = Qualificar +crm-convert = Converter +crm-won = Ganho +crm-lost = Perdido +crm-new-lead = Novo Lead +crm-new-opportunity = Nova Oportunidade +crm-new-account = Nova Conta +crm-new-contact = Novo Contato + +# ----------------------------------------------------------------------------- +# CRM Campos +# ----------------------------------------------------------------------------- +crm-stage = Estágio +crm-value = Valor +crm-probability = Probabilidade +crm-close-date = Data de Fechamento +crm-company = Empresa +crm-phone = Telefone +crm-email = E-mail +crm-source = Origem +crm-owner = Responsável + +# ----------------------------------------------------------------------------- +# CRM Estágios do Pipeline +# ----------------------------------------------------------------------------- +crm-pipeline-new = Novo +crm-pipeline-contacted = Contatado +crm-pipeline-qualified = Qualificado +crm-pipeline-proposal = Proposta +crm-pipeline-negotiation = Negociação +crm-pipeline-closed-won = Fechado Ganho +crm-pipeline-closed-lost = Fechado Perdido + +# ----------------------------------------------------------------------------- +# CRM Estados Vazios +# ----------------------------------------------------------------------------- +crm-no-leads = Nenhum lead encontrado +crm-no-opportunities = Nenhuma oportunidade encontrada +crm-no-accounts = Nenhuma conta encontrada +crm-no-contacts = Nenhum contato encontrado +crm-drag-hint = Arraste os cards para mudar o estágio + +# ============================================================================= +# Faturamento +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Faturamento Navegação & Geral +# ----------------------------------------------------------------------------- +billing-title = Faturamento +billing-invoices = Faturas +billing-payments = Pagamentos +billing-quotes = Orçamentos +billing-dashboard = Painel + +# ----------------------------------------------------------------------------- +# Faturamento Entidades +# ----------------------------------------------------------------------------- +billing-invoice = Fatura +billing-invoice-desc = Cobrança para cliente +billing-payment = Pagamento +billing-payment-desc = Pagamento recebido +billing-quote = Orçamento +billing-quote-desc = Cotação de preço + +# ----------------------------------------------------------------------------- +# Faturamento Status +# ----------------------------------------------------------------------------- +billing-due-date = Data de Vencimento +billing-overdue = Vencido +billing-paid = Pago +billing-pending = Pendente +billing-draft = Rascunho +billing-sent = Enviado +billing-partial = Parcial +billing-cancelled = Cancelado + +# ----------------------------------------------------------------------------- +# Faturamento Ações +# ----------------------------------------------------------------------------- +billing-new-invoice = Nova Fatura +billing-new-quote = Novo Orçamento +billing-send-invoice = Enviar Fatura +billing-record-payment = Registrar Pagamento +billing-mark-paid = Marcar como Pago +billing-void = Anular + +# ----------------------------------------------------------------------------- +# Faturamento Campos +# ----------------------------------------------------------------------------- +billing-amount = Valor +billing-tax = Imposto +billing-subtotal = Subtotal +billing-total = Total +billing-discount = Desconto +billing-line-items = Itens +billing-add-item = Adicionar Item +billing-remove-item = Remover Item +billing-customer = Cliente +billing-issue-date = Data de Emissão +billing-payment-terms = Condições de Pagamento +billing-notes = Observações +billing-invoice-number = Número da Fatura +billing-quote-number = Número do Orçamento + +# ----------------------------------------------------------------------------- +# Faturamento Relatórios +# ----------------------------------------------------------------------------- +billing-revenue = Receita +billing-outstanding = Em Aberto +billing-this-month = Este Mês +billing-last-month = Mês Passado +billing-total-paid = Total Pago +billing-total-overdue = Total Vencido + +# ----------------------------------------------------------------------------- +# Faturamento Estados Vazios +# ----------------------------------------------------------------------------- +billing-no-invoices = Nenhuma fatura encontrada +billing-no-payments = Nenhum pagamento encontrado +billing-no-quotes = Nenhum orçamento encontrado + +# ============================================================================= +# Produtos +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Produtos Navegação & Geral +# ----------------------------------------------------------------------------- +products-title = Produtos +products-catalog = Catálogo +products-services = Serviços +products-price-lists = Listas de Preços +products-inventory = Estoque + +# ----------------------------------------------------------------------------- +# Produtos Entidades +# ----------------------------------------------------------------------------- +products-product = Produto +products-product-desc = Produto físico ou digital +products-service = Serviço +products-service-desc = Oferta de serviço +products-price-list = Lista de Preços +products-price-list-desc = Faixas de preço + +# ----------------------------------------------------------------------------- +# Produtos Ações +# ----------------------------------------------------------------------------- +products-new-product = Novo Produto +products-new-service = Novo Serviço +products-new-price-list = Nova Lista de Preços +products-edit-product = Editar Produto +products-duplicate = Duplicar + +# ----------------------------------------------------------------------------- +# Produtos Campos +# ----------------------------------------------------------------------------- +products-sku = SKU +products-category = Categoria +products-price = Preço +products-unit = Unidade +products-stock = Estoque +products-cost = Custo +products-margin = Margem +products-barcode = Código de Barras + +# ----------------------------------------------------------------------------- +# Produtos Status +# ----------------------------------------------------------------------------- +products-in-stock = Em Estoque +products-out-of-stock = Sem Estoque +products-low-stock = Estoque Baixo +products-active = Ativo +products-inactive = Inativo +products-featured = Destaque +products-archived = Arquivado + +# ----------------------------------------------------------------------------- +# Produtos Estados Vazios +# ----------------------------------------------------------------------------- +products-no-products = Nenhum produto encontrado +products-no-services = Nenhum serviço encontrado +products-no-price-lists = Nenhuma lista de preços encontrada + +# ============================================================================= +# Chamados (Tickets de Suporte) +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Chamados Navegação & Geral +# ----------------------------------------------------------------------------- +tickets-title = Chamados +tickets-cases = Casos +tickets-open = Abertos +tickets-closed = Fechados +tickets-all = Todos os Chamados +tickets-my-tickets = Meus Chamados + +# ----------------------------------------------------------------------------- +# Chamados Entidades +# ----------------------------------------------------------------------------- +tickets-case = Caso +tickets-case-desc = Ticket de suporte +tickets-resolution = Resolução +tickets-resolution-desc = Solução sugerida por IA + +# ----------------------------------------------------------------------------- +# Chamados Prioridade +# ----------------------------------------------------------------------------- +tickets-priority = Prioridade +tickets-priority-low = Baixa +tickets-priority-medium = Média +tickets-priority-high = Alta +tickets-priority-urgent = Urgente + +# ----------------------------------------------------------------------------- +# Chamados Status +# ----------------------------------------------------------------------------- +tickets-status = Status +tickets-status-new = Novo +tickets-status-open = Aberto +tickets-status-pending = Pendente +tickets-status-resolved = Resolvido +tickets-status-closed = Fechado +tickets-status-on-hold = Em Espera + +# ----------------------------------------------------------------------------- +# Chamados Ações +# ----------------------------------------------------------------------------- +tickets-new-ticket = Novo Chamado +tickets-assign = Atribuir +tickets-reassign = Reatribuir +tickets-escalate = Escalar +tickets-resolve = Resolver +tickets-reopen = Reabrir +tickets-close = Fechar +tickets-merge = Mesclar + +# ----------------------------------------------------------------------------- +# Chamados Campos +# ----------------------------------------------------------------------------- +tickets-subject = Assunto +tickets-description = Descrição +tickets-category = Categoria +tickets-assigned = Atribuído a +tickets-unassigned = Não Atribuído +tickets-created = Criado +tickets-updated = Atualizado +tickets-response-time = Tempo de Resposta +tickets-resolution-time = Tempo de Resolução +tickets-customer = Cliente +tickets-internal-notes = Notas Internas +tickets-attachments = Anexos + +# ----------------------------------------------------------------------------- +# Chamados Recursos de IA +# ----------------------------------------------------------------------------- +tickets-ai-suggestion = Sugestão da IA +tickets-apply-suggestion = Aplicar Sugestão +tickets-ai-summary = Resumo da IA +tickets-similar-tickets = Chamados Similares +tickets-suggested-articles = Artigos Sugeridos + +# ----------------------------------------------------------------------------- +# Chamados Estados Vazios +# ----------------------------------------------------------------------------- +tickets-no-tickets = Nenhum chamado encontrado +tickets-no-open = Nenhum chamado aberto +tickets-no-closed = Nenhum chamado fechado + +# ============================================================================= +# Formulários +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Formulários Navegação & Geral +# ----------------------------------------------------------------------------- +forms-title = Formulários +forms-my-forms = Meus Formulários +forms-templates = Modelos +forms-shared = Formulários Compartilhados +forms-responses = Respostas + +# ----------------------------------------------------------------------------- +# Formulários Ações +# ----------------------------------------------------------------------------- +forms-new-form = Novo Formulário +forms-create-prompt = Crie um formulário para mim sobre +forms-generating = Gerando formulário... +forms-edit-form = Editar Formulário +forms-preview = Visualizar +forms-publish = Publicar +forms-unpublish = Despublicar +forms-duplicate = Duplicar +forms-share = Compartilhar + +# ----------------------------------------------------------------------------- +# Formulários Campos +# ----------------------------------------------------------------------------- +forms-form-name = Nome do Formulário +forms-form-description = Descrição +forms-add-field = Adicionar Campo +forms-field-label = Rótulo +forms-field-type = Tipo de Campo +forms-field-required = Obrigatório +forms-field-placeholder = Texto de Exemplo + +# ----------------------------------------------------------------------------- +# Formulários Tipos de Campo +# ----------------------------------------------------------------------------- +forms-type-text = Texto +forms-type-textarea = Texto Longo +forms-type-number = Número +forms-type-email = E-mail +forms-type-phone = Telefone +forms-type-date = Data +forms-type-select = Lista Suspensa +forms-type-checkbox = Caixa de Seleção +forms-type-radio = Botões de Opção +forms-type-file = Upload de Arquivo + +# ----------------------------------------------------------------------------- +# Formulários Estados Vazios +# ----------------------------------------------------------------------------- +forms-no-forms = Nenhum formulário encontrado +forms-no-responses = Nenhuma resposta ainda +forms-no-templates = Nenhum modelo disponível diff --git a/src/lib.rs b/src/lib.rs index 090cb3e..17fe024 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,6 +5,7 @@ pub mod http_client; #[cfg(feature = "i18n")] pub mod i18n; pub mod limits; +pub mod logging; pub mod message_types; pub mod models; pub mod resilience; diff --git a/src/logging.rs b/src/logging.rs new file mode 100644 index 0000000..4441045 --- /dev/null +++ b/src/logging.rs @@ -0,0 +1,38 @@ +use env_logger::fmt::Formatter; +use log::Record; +use std::io::Write; + +pub fn compact_format(buf: &mut Formatter, record: &Record) -> std::io::Result<()> { + let level = match record.level() { + log::Level::Error => "E", + log::Level::Warn => "W", + log::Level::Info => "I", + log::Level::Debug => "D", + log::Level::Trace => "T", + }; + + let now = chrono::Local::now(); + let timestamp = now.format("%Y%m%d%H%M%S%.3f"); + + let target = record.target(); + let module = if let Some(pos) = target.rfind("::") { + &target[pos + 2..] + } else { + target + }; + + writeln!(buf, "{} {} {}:{}", timestamp, level, module, record.args()) +} + +pub fn init_compact_logger(default_filter: &str) { + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or(default_filter)) + .format(compact_format) + .init(); +} + +pub fn init_compact_logger_with_style(default_filter: &str) { + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or(default_filter)) + .format(compact_format) + .write_style(env_logger::WriteStyle::Always) + .init(); +}