{
  "app.name": "MageStock",
  "lang.label": "Idioma",
  "theme.toggle": "Alternar tema",
  "btn.logout": "Sair",
  "btn.login": "Entrar",
  "btn.save": "Salvar",
  "btn.cancel": "Cancelar",
  "btn.close": "Fechar",
  "btn.delete": "Excluir",
  "btn.add": "Adicionar",
  "btn.edit": "Editar",
  "btn.export": "Exportar",
  "btn.export_pdf": "Exportar PDF",
  "btn.print": "Imprimir",
  "btn.search": "Pesquisar",
  "search.placeholder": "Pesquisar…",
  "login.title": "Entrar",
  "login.username": "Nome de utilizador",
  "login.password": "Palavra-passe",
  "login.error": "Credenciais inválidas.",
  "nav.dashboard": "Início",
  "nav.products": "Produtos",
  "nav.warehouses": "Armazéns",
  "nav.warehouse_manager": "Gestão de armazéns",
  "nav.movements": "Movimentos",
  "nav.inventory": "Inventários",
  "nav.scanner": "Scanner",
  "nav.barcodes": "Códigos de barras",
  "nav.reports": "Relatórios",
  "nav.settings": "Definições",
  "nav.users": "Utilizadores",
  "nav.alerts": "Alertas",
  "nav.suppliers": "Fornecedores",
  "nav.brands": "Marcas",
  "nav.orders": "Pedidos",
  "auto.21cb337616": "Todos os armazéns",
  "auto.318262fcf6": "Novo alerta",
  "auto.b0b7cddbe9": "Alertas críticos",
  "auto.e238b76e11": "Alertas ativos",
  "auto.b1a735917d": "Produtos OK",
  "auto.38cfc9c7f5": "Status atual",
  "auto.a1230fab7a": "Regras de alerta",
  "auto.e30e2cb9aa": "Produto",
  "auto.055c3b9395": "Armazém",
  "auto.a1fa277792": "Tipo",
  "auto.3e8e07eb39": "Limiar",
  "auto.b7c0fdcea6": "Qtd. atual",
  "auto.87a831bc99": "Status",
  "auto.06df33001c": "Ações",
  "auto.194eef0e3d": "Gerador de etiquetas",
  "auto.c313d6dc96": "Selecione produtos, escolha estilo + formato, visualize e imprima.",
  "auto.7ce1f3fdf2": "Limpar",
  "auto.94c48b9ef5": "Exportar PDF",
  "auto.943021b255": "Imprimir",
  "auto.e06ff32467": "🎨 Estilo",
  "auto.2f7174f197": "📏 Formato",
  "auto.a777aa1532": "🖼️ Opções",
  "auto.2186767964": "🖼️ Imagem + Código de barras",
  "auto.99e780809b": "Visual do produto + código de barras compacto",
  "auto.d46181e2a6": "📊 Somente código de barras",
  "auto.9ad7781b20": "Impressão rápida e legível",
  "auto.241ee90c1d": "🏷️ QR Code",
  "auto.1e813ad6bd": "Codificação de texto/URL ou payload de produto",
  "auto.dd26d4798f": "📋 Etiqueta completa",
  "auto.da652b69a5": "Imagem + info + código de barras",
  "auto.966f80ae51": "Formato de código de barras",
  "auto.db053df979": "CODE128",
  "auto.52eb5928a3": "EAN13",
  "auto.ed7ef6f38d": "Código personalizado (opcional)",
  "auto.a8fe1a3b2f": "📄 A4 — folha de 24",
  "auto.3ebf618916": "3 colunas × 8 linhas",
  "auto.dbde0d64d0": "🏷️ Avery L7160",
  "auto.da16c67df4": "63,5×38,1mm (3×7)",
  "auto.6507e11634": "📦 70×37mm",
  "auto.ee40c8a5ad": "3×8 (approx.)",
  "auto.f99b1a642e": "📦 105×37mm",
  "auto.8ace2ca182": "2 colonnes (approx.)",
  "auto.d3cbaa3e9e": "🎯 Personalizado",
  "auto.368b7fb41b": "Largura/altura + grade",
  "auto.505279d1db": "Largura (mm)",
  "auto.5cd5426490": "Altura (mm)",
  "auto.be920cea70": "Colunas",
  "auto.1945ed4570": "Linhas",
  "auto.af847154be": "Conteúdo",
  "auto.ca0dbad92a": "Código",
  "auto.be53a0541a": "Imagem",
  "auto.251040e9a0": "QR — texto personalizado (opcional)",
  "auto.a65da323a9": "📷 Digitalizar QR",
  "auto.9100e163bb": "Pré-visualização",
  "auto.00882b098c": "Nenhuma seleção",
  "auto.7159991d00": "📦 Seleção de produtos",
  "auto.bbbe4b9ce4": "Todas as categorias",
  "auto.0e520a1ffa": "Impressão",
  "auto.7d206237f9": "Fechar",
  "auto.aa38fb6cd7": "Iniciar impressão",
  "auto.168a75f6c4": "window.SM_PAGE = 'barcodes';",
  "auto.2bef3061dc": "0 marca(s)",
  "auto.9aa58eb9b1": "Nova marca",
  "auto.a3e2b2eac8": "Marca",
  "auto.d3b02c902c": "Fornecedores vinculados",
  "auto.88c61ac25a": "Produtos",
  "auto.793b746788": "Criado em",
  "auto.d045fd5356": "Valorização por armazém",
  "auto.2b335b2844": "Atividade recente",
  "auto.b1beaad72e": "Ver tudo",
  "auto.b24e631664": "Gerenciar",
  "auto.d167478c48": "Visão geral do estoque",
  "auto.91dbfff7a0": "Custo unit.",
  "auto.debedfb449": "Valor",
  "auto.f86f444e68": "Iniciar inventário",
  "auto.5eb62fda83": "Selecionar armazém",
  "auto.8fa534403b": "Categoria (opcional)",
  "auto.5bb4f30971": "Iniciar",
  "auto.35723f9629": "Histórico",
  "auto.54628887e8": "Total de produtos",
  "auto.86bdb2b73d": "Validados",
  "auto.ffacbac836": "Discrepâncias",
  "auto.439149be8b": "Pendente",
  "auto.948505fb20": "Scanner",
  "auto.d12c3b0dcf": "Cancelar",
  "auto.e1c50082af": "Validar inventário",
  "auto.18d925e4d5": "Adicionar",
  "auto.754a3f71bd": "Estoque teórico",
  "auto.cdd262917a": "Contado",
  "auto.0dc60556d9": "Discrepância",
  "auto.5104751360": "\" class=\"sidebar-link",
  "auto.354e62ea5b": "\" title=\"",
  "auto.d2766d9b56": "\" data-label=\"",
  "auto.19dd00a2a6": "\" class=\"header-btn header-alerts\">",
  "auto.d0976037d2": "Desenvolvido por",
  "auto.166ad53556": "KREMER Régis",
  "auto.1e8d587771": "&copy;",
  "auto.f83511a305": "MageStock",
  "auto.b61541208d": "Menu",
  "auto.3e75196365": "\" class=\"slide-item",
  "auto.59e7b5977f": "Sair",
  "auto.99fb48ddce": "Título",
  "auto.121dc34a0d": "Códigos de barras",
  "auto.2cddd28fee": "window.SM_PAGE = '",
  "auto.d3794314a9": "'; window.SM_ROLE = '",
  "auto.3978edca6e": "'; window.USER_ROLE = '",
  "auto.ecdfac8b01": "'; window.CSRF_TOKEN = '",
  "auto.5cd9831e35": "'; document.addEventListener('DOMContentLoaded', ()=> App.init());",
  "auto.47b404afa4": "Todos os tipos",
  "auto.e49ab34478": "Entrada",
  "auto.772ae0b683": "Saída",
  "auto.b0be74ed47": "Transferência",
  "auto.66c1fb3547": "Inventário",
  "auto.d0f84e00bb": "Entrada",
  "auto.4cfc9c2fee": "Filtros +",
  "auto.3f181e87bd": "Operador",
  "auto.532a44859a": "Obra / Local",
  "auto.fed0b874ff": "GRE / Referência",
  "auto.73d163bfa7": "Fornecedor",
  "auto.612eae5e7f": "0 movimento(s)",
  "auto.60b1cf36a1": "Entrada de estoque",
  "auto.6788c41f73": "Saída de estoque",
  "auto.41c2e8aa4b": "Data / Hora",
  "auto.27ce7f8b56": "Estoque",
  "auto.c18c12d75b": "Motivo / Obra",
  "auto.3b0649c726": "Nota",
  "auto.0945359809": "Documento",
  "auto.153d913716": "Peça",
  "auto.511924d443": "Página 1 / 1",
  "auto.292d37187f": "Anterior",
  "auto.257a7b4c17": "Próximo",
  "auto.42895bd48e": "20 / pág.",
  "auto.1b6aabe1ed": "50 / pág.",
  "auto.74a0253db2": "100 / pág.",
  "auto.d60f3bbc79": "Todas as marcas",
  "auto.f813c866dd": "0 produto(s)",
  "auto.aee5874ea5": "Entrada de estoque",
  "auto.69cc8fa3c3": "Novo produto",
  "auto.cac8eee4d8": "📂 Importar CSV",
  "auto.8c6b7f2067": "Categoria",
  "auto.bc13813162": "Preço",
  "auto.3c5f34af12": "12 / pág.",
  "auto.551635d5bd": "24 / pág.",
  "auto.154a663289": "48 / pág.",
  "auto.554522921a": "📦 Estoque",
  "auto.4ecf2a7c1a": "📊 Valorização",
  "auto.1dc86dc039": "📈 Movimentos",
  "auto.7a98add9ae": "📉 Alertas",
  "auto.c53a63874f": "🏷️ Marcas",
  "auto.1ce60d078c": "📊 Discrepâncias de inventário",
  "auto.c6c34fda97": "💰 Histórico de preços",
  "auto.fec8c371a7": "📦 Relatório de estoque",
  "auto.50304dcf67": "🖨️ Imprimer",
  "auto.360f889205": "📥 Exporter CSV",
  "auto.feec0f0326": "🏢 Todos os armazéns",
  "auto.089490558f": "📦 Todas as categorias",
  "auto.9cbdde64e6": "🏷️ Todas as marcas",
  "auto.80343600a3": "⚠️ Todos os limiares",
  "auto.d3b1d82825": "Somente estoque baixo",
  "auto.173562e26f": "Estoque normal",
  "auto.7a1206e827": "🔄 Redefinir",
  "auto.1f78ab905c": "Total de unidades",
  "auto.6d2a66c81f": "Valor total",
  "auto.e1ded249ca": "Estoque baixo",
  "auto.894a31e48b": "Estoque atual",
  "auto.db19dd4050": "Limiar mínimo",
  "auto.7660ba0d20": "Custo unitário",
  "auto.796c5a9d55": "📊 Valorização de estoque",
  "auto.5e2c9b7c0b": "Valor total do estoque",
  "auto.95726adbb0": "Armazéns",
  "auto.3059d560a9": "Unidades",
  "auto.9b1acffafa": "Valor médio/produto",
  "auto.2083a88a18": "📈 Relatório de movimentos",
  "auto.42da2a07fe": "Todos os tipos",
  "auto.ff0f4810b8": "Entradas",
  "auto.c9a2bb2291": "Adições",
  "auto.4fc39f3ee2": "Saídas",
  "auto.7ebbd5c301": "Transferências",
  "auto.9d02934dab": "Todos os armazéns",
  "auto.44749712db": "Data",
  "auto.1b27b371c9": "Quantidade",
  "auto.f628ae7eac": "Usuário",
  "auto.a530dc1ad2": "📉 Alertas de estoque baixo",
  "auto.d0e1705373": "⚠️ Prioridade",
  "auto.3e81dfbadd": "Déficit",
  "auto.004bf6c9a4": "Ação",
  "auto.82b55b0cfc": "🏷️ Relatório por marcas",
  "auto.e3d3e6972a": "Estoque total",
  "auto.20a50f9498": "Fornecedores",
  "auto.7a05a317f8": "📊 Relatório de discrepâncias de inventário",
  "auto.a494117a99": "Com discrepância",
  "auto.15bd1cc7e9": "Valor de discrepância",
  "auto.70a0ad141f": "Teórico",
  "auto.5b95306754": "Discrepância de quantidade",
  "auto.7173ba9784": "Discrepância de valor",
  "auto.ba1154f241": "Data do inventário",
  "auto.65191f650c": "Clique na aba para carregar",
  "auto.1097e12af1": "💰 Histórico de preços de compra",
  "auto.1cde1caea4": "Todos os produtos",
  "auto.e02d1a9572": "Preço unitário",
  "auto.79cf6cf5a0": "Preço base",
  "auto.c92101a214": "Selecione um produto",
  "auto.274f5cdec9": "window.SM_PAGE = 'reports';",
  "auto.959b190c85": "Câmera inativa",
  "auto.468f4252a6": "Ativar câmera",
  "auto.2d9361e513": "Parar",
  "auto.9e3272ea56": "QR Code",
  "auto.110420912f": "Produto encontrado",
  "auto.6ca9a16a57": "Ver produto",
  "auto.3ed833a118": "+ Estoque",
  "auto.6cb59842f7": "- Estoque",
  "auto.de0b6a7cce": "Entrada manual",
  "auto.3a8a7a8a2d": "Pesquisar",
  "auto.a31799d611": "Scans recentes",
  "auto.1c3c733a59": "Nenhum scan recente",
  "auto.69fed99374": "Os códigos escaneados aparecerão aqui",
  "auto.4aeb99590e": "Configurações gerais",
  "auto.c70d8f1160": "Nome da empresa",
  "auto.8e2a02bfc3": "Prefixo SKU",
  "auto.f58eb11abe": "O próximo SKU será baseado neste prefixo",
  "auto.aed88202e2": "Salvar",
  "auto.aa599a041b": "Backup e Restauração",
  "auto.267166e23f": "Exportar backup",
  "auto.306d178741": "Importar backup",
  "auto.5c21b459de": "Notificações push",
  "auto.2ec16d5047": "Ativar",
  "auto.3095c3e4f1": "Testar",
  "auto.0944d1cb93": "Tipos de notificação:",
  "auto.2f1ebdf889": "📤 Saídas de estoque",
  "auto.cf1d483131": "📥 Entradas de estoque",
  "auto.61bdca438f": "🔄 Transferências entre armazéns",
  "auto.ba836f3d98": "⚠️ Alertas de estoque (mín/máx atingido)",
  "auto.614ffce03f": "📋 Inventários concluídos",
  "auto.104fa50318": "Zona de perigo",
  "auto.4f53516a3a": "Estas ações são irreversíveis. Certifique-se do que está fazendo.",
  "auto.d9dcbeffaf": "Excluir todos os produtos",
  "auto.2e6def894b": "Excluir todos os movimentos",
  "auto.aba3cbc459": "EXCLUIR TUDO",
  "auto.b5fd93d382": "0 fornecedor(es)",
  "auto.ff5e5012cd": "Novo fornecedor",
  "auto.bbaff12800": "Contato",
  "auto.ce8ae9da5b": "Email",
  "auto.301dc874dc": "Telefone",
  "auto.fc29e0aa3d": "Marcas vinculadas",
  "auto.1297ef5077": "Prazo de entrega",
  "auto.229eb04083": "Condições",
  "auto.4eeea5804e": "0 usuário(s)",
  "auto.c898411faf": "Novo usuário",
  "auto.c9437f7d5f": "Nome de usuário",
  "auto.19772a94ff": "Função",
  "auto.212078f396": "Criado em",
  "auto.f7f9943ba3": "Gestão de armazéns e categorias",
  "auto.e209935d37": "Novo armazém",
  "auto.2a53fbe526": "window.SM_PAGE = 'warehouse-manager';",
  "auto.e5915f5f8b": "0 armazém(ns)",
  "auto.50d46c2f99": "Endereço",
  "auto.83f62264e3": "Categorias",
  "btn.duplicate": "Duplicar",
  "btn.duplicate.tooltip": "Criar uma cópia deste produto",
  "sizes.baby": "0M,3M,6M,9M,12M,18M,24M,2A,3A,4A,5A,6A,8A,10A,12A,14A,16A",
  "sizes.clothing": "XS,S,M,L,XL,XXL,3XL,4XL",
  "sizes.eyewear": "Único,S,M,L",
  "sizes.gloves": "6,7,8,9,10,11,12",
  "sizes.headwear": "S,M,L,XL,Único",
  "sizes.label.allSizes": "Todos os tamanhos",
  "sizes.label.generateVariants": "Gerar variações",
  "sizes.label.parentProduct": "Produto principal",
  "sizes.label.selectSizes": "Selecione os tamanhos a criar",
  "sizes.label.size": "Tamanho",
  "sizes.label.sizeNorm": "Norma de tamanho",
  "sizes.label.sizeType": "Tamanhos e variações",
  "sizes.label.variantsWillCreate": "variação(ões) serão criadas",
  "sizes.norm.eu": "EU (Europa)",
  "sizes.norm.uk": "UK (Reino Unido)",
  "sizes.norm.us": "US (Estados Unidos)",
  "sizes.pants.eu": "34,36,38,40,42,44,46,48,50,52,54",
  "sizes.pants.uk": "24,26,28,30,32,34,36,38,40,42",
  "sizes.pants.us": "24,26,28,30,32,34,36,38,40,42",
  "sizes.shoes.eu": "36,37,38,39,40,41,42,43,44,45,46,47,48",
  "sizes.shoes.uk": "3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,12,13",
  "sizes.shoes.us": "4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,12,12.5,13,14",
  "sizes.type.baby": "Bebé / Criança (0M → 16A)",
  "sizes.type.clothing": "Vestuário (XS → 4XL)",
  "sizes.type.eyewear": "Óculos / Acessório (S → L)",
  "sizes.type.gloves": "Luvas (6 → 12)",
  "sizes.type.headwear": "Chapéu / Capacete (S → XL)",
  "sizes.type.none": "Nenhum (produto padrão)",
  "sizes.type.pants": "Calças (tamanho FR 34 → 54)",
  "sizes.type.shoes": "Calçado (EU / UK / US)",
  "settings.country.label": "País da empresa",
  "settings.country.hint": "O país serve como referência administrativa. Nunca altera os montantes guardados.",
  "settings.locale.label": "Formato regional",
  "settings.locale.hint": "No modo automático, números e datas seguem o idioma de cada utilizador.",
  "settings.locale.auto": "Automático conforme o idioma",
  "settings.currency.label": "Moeda contabilística",
  "settings.currency.hint": "Esta moeda aplica-se a preços, encomendas, custo médio ponderado e valorizações.",
  "settings.currency.warning": "Alterar a moeda muda apenas a unidade apresentada. O MageStock não converte valores financeiros já guardados.",
  "settings.preview.label": "Pré-visualização do formato",
  "nav.kits": "Kits",
  "nav.reservations": "Reservas",
  "nav.locations": "Localizações",
  "nav.plans": "Plantas",
  "nav.analytics": "Análises",
  "nav.help": "Ajuda",
  "nav.more": "Mais",
  "nav.logout": "Terminar sessão",
  "nav.section.operations": "Operações",
  "nav.section.organization": "Organização",
  "nav.section.monitoring": "Acompanhamento e controlo",
  "nav.section.administration": "Administração",
  "page.dashboard": "Painel",
  "page.products": "Produtos",
  "page.warehouses": "Armazéns",
  "page.movements": "Movimentos",
  "page.inventory": "Inventários",
  "page.scanner": "Scanner",
  "page.barcodes": "Códigos de barras",
  "page.reports": "Relatórios",
  "page.settings": "Definições",
  "page.users": "Utilizadores",
  "page.alerts": "Alertas",
  "page.suppliers": "Fornecedores",
  "page.brands": "Marcas",
  "page.orders": "Ordens de compra",
  "page.locations": "Localizações",
  "page.lots": "Lotes",
  "page.kits": "Kits",
  "page.reservations": "Reservas",
  "page.analytics": "Análises",
  "page.warehouse_manager": "Gestão de armazéns",
  "page.plans": "Plantas de localizações",
  "page.plans_edit": "Editar planta",
  "page.help": "Ajuda",
  "shell.menu.toggle": "Abrir/fechar menu",
  "shell.menu.open": "Abrir menu",
  "shell.menu.close": "Fechar menu",
  "shell.language": "Idioma",
  "shell.theme.change": "Alterar tema",
  "shell.theme.light": "Mudar para tema claro",
  "shell.theme.dark": "Mudar para tema escuro",
  "shell.role.admin": "Administrador",
  "shell.role.user": "Utilizador",
  "shell.logout": "Terminar sessão",
  "shell.footer.developed_by": "Desenvolvido por",
  "shell.footer.license": "Licença de utilização",
  "shell.modal.title": "Título",
  "shell.pwa.title": "Instalar MageStock",
  "shell.pwa.text": "Adicione o MageStock como aplicação neste dispositivo. As instruções adaptam-se ao navegador.",
  "shell.pwa.install": "Instalar",
  "shell.pwa.dismiss": "Ocultar",
  "shell.print.barcodes": "Códigos de barras",
  "shell.print.print": "Imprimir",
  "shell.print.close": "Fechar",
  "shell.alerts": "Alertas",
  "login.page_title": "Iniciar sessão",
  "login.meta_description": "Início de sessão MageStock — gestão de stock para vários armazéns.",
  "login.tagline": "Gestão de stock • MageStock",
  "login.submit": "Iniciar sessão",
  "login.language": "Idioma",
  "login.theme.light": "Mudar para tema claro",
  "login.theme.dark": "Mudar para tema escuro",
  "login.logo_alt": "{company} — logótipo",
  "login.footer": "© {year} {company} — por KREMER Régis",
  "login.error.rate_limit": "Demasiadas tentativas de início de sessão. Aguarde 5 minutos.",
  "login.error.users_missing": "O ficheiro data/users.json não foi encontrado neste servidor.",
  "login.error.users_unreadable": "O ficheiro data/users.json existe, mas o PHP não o consegue ler. Verifique as permissões de data/ e users.json.",
  "login.error.users_empty": "O ficheiro data/users.json está vazio ou ilegível.",
  "login.error.users_invalid_json": "O ficheiro data/users.json não contém JSON válido: {error}",
  "login.error.invalid_credentials": "Credenciais incorretas ou conta desativada.",
  "dashboard.greeting.morning": "Bom dia",
  "dashboard.greeting.afternoon": "Boa tarde",
  "dashboard.greeting.evening": "Boa noite",
  "dashboard.shortcut.scanner": "Scanner",
  "dashboard.shortcut.movement": "Movimento",
  "dashboard.shortcut.inventory": "Inventário",
  "dashboard.shortcut.orders": "Pedidos",
  "dashboard.chart.movements_14_days": "Movimentos (14 dias)",
  "dashboard.chart.valuation_by_warehouse": "Valorização por armazém",
  "dashboard.section.recent_activity": "Atividade recente",
  "dashboard.section.active_alerts": "Alertas ativos",
  "dashboard.action.view_all": "Ver tudo →",
  "dashboard.action.manage": "Gerir →",
  "dashboard.kpi.products": "Produtos",
  "dashboard.kpi.units_in_stock": "Unidades em stock",
  "dashboard.kpi.stock_value": "Valor do stock",
  "dashboard.kpi.active_alerts": "Alertas ativos",
  "dashboard.kpi.pending_orders": "Pedidos em curso",
  "dashboard.kpi.warehouses": "Armazéns",
  "dashboard.chart.movements": "Movimentos",
  "dashboard.chart.value_currency": "Valor ({currency})",
  "dashboard.warehouse_fallback": "Armazém {id}",
  "dashboard.activity.none": "Sem atividade",
  "dashboard.activity.title": "{name} — {type} ({quantity})",
  "dashboard.unit.short": "{value} un.",
  "dashboard.movement.add": "Adição",
  "dashboard.movement.remove": "Saída",
  "dashboard.movement.transfer": "Transferência",
  "dashboard.movement.entry": "Entrada",
  "dashboard.movement.inventory": "Inventário",
  "dashboard.pagination.previous": "◀ Anterior",
  "dashboard.pagination.page": "Página {current} / {total}",
  "dashboard.pagination.next": "Seguinte ▶",
  "dashboard.alerts.all_ok": "Está tudo em ordem",
  "dashboard.alerts.badge_min": "↓ MÍN",
  "dashboard.alerts.badge_max": "↑ MÁX",
  "dashboard.alerts.stock_detail": "Stock: <strong>{qty}</strong> / limite <strong>{threshold}</strong>",
  "date.weekday.0": "domingo",
  "date.weekday.1": "segunda-feira",
  "date.weekday.2": "terça-feira",
  "date.weekday.3": "quarta-feira",
  "date.weekday.4": "quinta-feira",
  "date.weekday.5": "sexta-feira",
  "date.weekday.6": "sábado",
  "date.month.1": "janeiro",
  "date.month.2": "fevereiro",
  "date.month.3": "março",
  "date.month.4": "abril",
  "date.month.5": "maio",
  "date.month.6": "junho",
  "date.month.7": "julho",
  "date.month.8": "agosto",
  "date.month.9": "setembro",
  "date.month.10": "outubro",
  "date.month.11": "novembro",
  "date.month.12": "dezembro",
  "date.long": "{weekday}, {day} de {month} de {year}",
  "shell.meta_description": "MageStock — gestão de stock para vários armazéns, scanner, movimentos, inventários e alertas.",
  "shell.scroll_top": "Voltar ao topo",
  "shell.role.storekeeper": "Almoxarife",
  "warehouse.manager.heading": "Gestão de armazéns",
  "warehouse.manager.intro": "Crie armazéns, preencha as informações e organize as categorias.",
  "warehouse.manager.new": "Novo armazém",
  "warehouse.manager.load_error": "Não foi possível carregar os armazéns.",
  "warehouse.manager.empty_title": "Nenhum armazém",
  "warehouse.manager.empty_text": "Crie o primeiro armazém para organizar o stock.",
  "warehouse.manager.not_provided": "Não informado",
  "warehouse.manager.edit": "Editar armazém",
  "warehouse.manager.add_category": "Adicionar",
  "warehouse.manager.remove_category": "Remover {category}",
  "warehouse.manager.address": "Morada",
  "warehouse.manager.contact": "Contacto",
  "warehouse.manager.capacity": "Capacidade máxima",
  "warehouse.manager.indicators": "Indicadores do armazém",
  "warehouse.manager.products": "Produtos",
  "warehouse.manager.categories": "Categorias",
  "warehouse.manager.no_categories": "Sem categorias",
  "warehouse.manager.cancel": "Cancelar",
  "warehouse.manager.confirm": "Confirmar",
  "warehouse.manager.existing_categories": "Já existem {count} categoria(s) neste armazém.",
  "warehouse.manager.no_categories_defined": "Ainda não foi definida nenhuma categoria.",
  "warehouse.manager.add_category_title": "Adicionar categoria — {warehouse}",
  "warehouse.manager.category_name": "Nome da categoria",
  "warehouse.manager.category_placeholder": "Ex. Sinalização vertical",
  "warehouse.manager.add": "Adicionar",
  "warehouse.manager.category_required": "O nome da categoria é obrigatório.",
  "warehouse.manager.category_exists": "Esta categoria já existe.",
  "warehouse.manager.category_added": "Categoria adicionada.",
  "warehouse.manager.category_add_error": "Não foi possível adicionar a categoria.",
  "warehouse.manager.remove_category_title": "Remover categoria",
  "warehouse.manager.remove_category_question": "Remover “{category}” de “{warehouse}”? Os produtos manterão o rótulo atual.",
  "warehouse.manager.remove": "Remover",
  "warehouse.manager.category_removed": "Categoria removida.",
  "warehouse.manager.category_remove_error": "Não foi possível remover a categoria.",
  "warehouse.manager.edit_title": "Editar armazém",
  "warehouse.manager.new_title": "Novo armazém",
  "warehouse.manager.name": "Nome",
  "warehouse.manager.name_placeholder": "Ex. Oficina principal",
  "warehouse.manager.address_placeholder": "Morada completa",
  "warehouse.manager.optional": "Opcional",
  "warehouse.manager.contact_placeholder": "Responsável do armazém",
  "warehouse.manager.notes": "Notas",
  "warehouse.manager.save": "Guardar",
  "warehouse.manager.create": "Criar",
  "warehouse.manager.delete": "Eliminar",
  "warehouse.manager.name_required": "O nome é obrigatório.",
  "warehouse.manager.updated": "Armazém atualizado.",
  "warehouse.manager.created": "Armazém criado.",
  "warehouse.manager.save_error": "Não foi possível guardar.",
  "warehouse.manager.dep_products": "Produtos",
  "warehouse.manager.dep_stock": "Linhas de stock",
  "warehouse.manager.dep_movements": "Movimentos",
  "warehouse.manager.dep_inventories": "Inventários",
  "warehouse.manager.dep_orders": "Encomendas",
  "warehouse.manager.dep_locations": "Localizações",
  "warehouse.manager.dep_plans": "Planos",
  "warehouse.manager.dep_alerts": "Alertas",
  "warehouse.manager.dep_reservations": "Reservas",
  "warehouse.manager.dep_users": "Utilizadores",
  "warehouse.manager.dep_ldap": "Mapeamentos LDAP",
  "warehouse.manager.delete_blocked_title": "Não é possível eliminar",
  "warehouse.manager.delete_blocked_text": "O armazém “{warehouse}” ainda está em uso. Reatribua os elementos abaixo antes de o eliminar.",
  "warehouse.manager.close": "Fechar",
  "warehouse.manager.delete_products_notice": "{count} produto(s) estão associados a este armazém.",
  "warehouse.manager.delete_title": "Eliminar armazém",
  "warehouse.manager.delete_question": "Eliminar definitivamente “{warehouse}”?",
  "warehouse.manager.deleted": "Armazém eliminado.",
  "warehouse.manager.delete_error": "Não foi possível eliminar o armazém.",
  "update.analysis.baseline": "Migration baseline",
  "update.analysis.blocker": "Blocker",
  "update.analysis.corrections": "Corrections required before installation",
  "update.analysis.files": "Targeted files",
  "update.analysis.free_space": "Available space",
  "update.analysis.impossible": "Operation impossible.",
  "update.analysis.install_blocked": "Installation blocked",
  "update.analysis.installed": "Installed version",
  "update.analysis.legacy": "legacy",
  "update.analysis.migrations": "Declared migrations",
  "update.analysis.more_files": "other file(s)",
  "update.analysis.permissions": "Detected permissions: {mode}",
  "update.analysis.range": "{minimum} to {maximum}",
  "update.analysis.ready_text": "Signature, source range, files and permissions are valid. Installation still requires your confirmation.",
  "update.analysis.required_space": "Estimated space",
  "update.analysis.schema": "Schema",
  "update.analysis.server_ready": "Server ready",
  "update.analysis.signature": "Signature",
  "update.analysis.sources": "Accepted source versions",
  "update.analysis.target": "Target version",
  "update.analysis.type": "Type",
  "update.analysis.unknown": "Undetermined",
  "update.analysis.verified_package": "Official package verified",
  "update.code_version": "Code version",
  "update.installed_version": "Installed version",
  "update.kicker": "System administration",
  "update.title": "Atualizações do MageStock",
  "update.subtitle": "Find an official version, download its signed package, then confirm installation separately.",
  "update.loading": "Loading…",
  "update.working": "Processing…",
  "update.confirm.finalize_manual": "Finalize the manually deployed files?",
  "update.confirm.install": "Back up and install this update?",
  "update.confirm.rollback": "Restore the previous point?",
  "update.discovery.available_badge": "Nova versão disponível",
  "update.discovery.checked": "Last check",
  "update.discovery.checking": "Checking the official catalog, signature and compatible versions…",
  "update.discovery.compatible_sources": "Compatible sources",
  "update.discovery.current": "No newer version is published on the stable channel.",
  "update.discovery.current_badge": "Versão atual",
  "update.discovery.description": "MageStock only contacts the official HTTPS domain, verifies the Ed25519 manifest and sends no business data.",
  "update.discovery.disk_blocked": "Insufficient disk space to download and prepare this package.",
  "update.discovery.download": "Transferir e analisar",
  "update.discovery.download_blocked": "Official package verified, but the server preflight blocks installation.",
  "update.discovery.download_ready": "Official package downloaded, verified and ready to install after confirmation.",
  "update.discovery.downloading": "Controlled download, SHA-256 verification and internal signature analysis…",
  "update.discovery.found": "A compatible official update is available.",
  "update.discovery.kicker": "Official catalog",
  "update.discovery.mandatory": "Important",
  "update.discovery.never_checked": "Not checked yet",
  "update.discovery.none": "MageStock already uses the latest published version.",
  "update.discovery.package": "Selected package",
  "update.discovery.privacy": "No user, product, stock, warehouse, LDAP setting, secret or installation identifier is sent.",
  "update.discovery.prompt": "Start a search to check the official stable channel.",
  "update.discovery.published": "Published",
  "update.discovery.release_notes": "View changes",
  "update.discovery.search": "Procurar atualizações",
  "update.discovery.signature": "Trust",
  "update.discovery.size": "Size",
  "update.discovery.title": "Procurar uma atualização no MageKorp Hub",
  "update.discovery.unavailable": "The official catalog cannot be reached. Manual import remains available.",
  "update.discovery.unavailable_badge": "Serviço indisponível",
  "update.discovery.verified": "Authenticated manifest, authorized origin and package compatible with this installation.",
  "update.discovery.version": "MageStock {version}",
  "update.history.empty": "No update recorded.",
  "update.history.title": "Histórico",
  "update.install.running": "Final preflight and update in progress.",
  "update.install.success": "Update successful. Reloading…",
  "update.integrity.failed": "Some checks failed.",
  "update.integrity.ok": "Integrity validated.",
  "update.manual.analyze": "Analyze package",
  "update.manual.blocked": "Valid package, but installation is blocked by the listed permissions.",
  "update.manual.checking": "Checking signature, version compatibility, integrity and permissions…",
  "update.manual.description": "Keep this method when the server has no outbound Internet access. The ZIP undergoes exactly the same checks.",
  "update.manual.limit": "128 MB maximum",
  "update.manual.ready": "Package validated and server ready.",
  "update.manual.select": "Select an official ZIP",
  "update.manual.title": "Importar manualmente uma atualização",
  "update.notice.blocked": "The package is authentic, but the server cannot replace every file yet.",
  "update.notice.idle": "The system is ready. Remote discovery never starts installation automatically.",
  "update.notice.interrupted": "An interrupted update requires administrator action.",
  "update.notice.manual": "New files were detected. Finalize the update before resuming activity.",
  "update.notice.orphan": "An old state without an archive or backup was detected. Click Restore.",
  "update.notice.ready": "Signed package, compatible source version and file system ready.",
  "update.package.confirmation": "Installation never starts automatically. Administrator confirmation is always required.",
  "update.package.install": "Instalar atualização",
  "update.package.kicker": "Package ready",
  "update.package.recheck": "Recheck permissions",
  "update.package.source_manual": "Manual import",
  "update.package.source_remote": "Downloaded from MageKorp Hub",
  "update.package.title": "Official package analysis",
  "update.preflight.blocked": "Blockers remain.",
  "update.preflight.ready": "The server is now ready.",
  "update.preflight.running": "Checking permissions again…",
  "update.rollup.bridge": "Bridge",
  "update.rollup.bridge_desc": "An intermediate baseline remains possible for a structure that is too old.",
  "update.rollup.cumulative": "Cumulative",
  "update.rollup.cumulative_desc": "A range of source versions reaches the same target.",
  "update.rollup.description": "MageKorp selects the direct or cumulative package compatible with the installed version. MageStock then rechecks its internal signature, files, migrations and permissions.",
  "update.rollup.direct": "Direct rollup",
  "update.rollup.direct_desc": "One specific historical source reaches the target in one package.",
  "update.rollup.kicker": "Cumulative engine active",
  "update.rollup.note": "Remote discovery, download and analysis are automated. Installation always remains manual and confirmed.",
  "update.rollup.title": "An older installation can reach the target without applying every intermediate version",
  "update.system.finalize_manual": "Finalize manual deployment",
  "update.system.integrity": "Check integrity",
  "update.system.last_operation": "Last operation",
  "update.system.method": "Method",
  "update.system.package_mode": "Package mode",
  "update.system.resume": "Resume",
  "update.system.rollback": "Restore",
  "update.system.status": "Status",
  "update.system.target": "Target",
  "update.system.title": "Estado do sistema",
  "update.method.manual_deploy": "Manual deployment",
  "update.method.recovery": "Recovery",
  "update.method.remote": "MageKorp Hub",
  "update.method.upload": "Manual import",
  "update.mode.bridge": "Compatibility bridge",
  "update.mode.cumulative": "Cumulative",
  "update.mode.distribution": "Full distribution",
  "update.mode.exact": "Direct",
  "update.status.backup_created": "Backup created",
  "update.status.files_replaced": "Files replaced",
  "update.status.health_check": "Health check",
  "update.status.inconsistent": "Inconsistent installation",
  "update.status.migrations_running": "Migrations running",
  "update.status.pending_manual": "Update to finalize",
  "update.status.preflight_failed": "Server not ready",
  "update.status.rollback_required": "Restore required",
  "update.status.staged": "Files staged",
  "update.status.up_to_date": "Up to date",
  "update.status.uploaded": "Package uploaded",
  "update.status.verified": "Package verified",
  "auth.brand.strapline": "Stocks · inventories · fieldwork",
  "auth.brand.version": "MageStock {version}",
  "auth.brand.hosted": "alojado pela sua organização",
  "auth.password.toggle": "Mostrar ou ocultar a palavra-passe",
  "login.error.session_expired": "Your session expired. Reload the page and try again.",
  "login.brand.lead": "Manage your stock, warehouses and field operations from one workspace.",
  "login.brand.point.access": "View available stock by warehouse and location",
  "login.brand.point.scope": "Run inventories and movements with guided workflows",
  "login.brand.point.security": "Use the unified scanner and field tools in one experience",
  "login.form.kicker": "Bem-vindo",
  "login.form.title": "Aceda ao seu espaço",
  "login.form.intro": "Enter the credentials supplied by your organisation. MageStock will direct you to the services available to your account.",
  "login.forgot_password": "Esqueceu-se da palavra-passe?",
  "login.security_note": "Several incorrect attempts may temporarily suspend sign-in. Contact your administrator if you need help.",
  "recovery.meta_description": "Controlled MageStock password reset.",
  "recovery.page_title": "Repor a palavra-passe",
  "recovery.brand.strapline": "Account · access · security",
  "recovery.brand.lead": "Recover access to your MageStock workspace with a temporary token created by your administrator.",
  "recovery.brand.step.request.title": "Request a token",
  "recovery.brand.step.request.text": "Contact your administrator or internal support team.",
  "recovery.brand.step.expiry.title": "Use it before it expires",
  "recovery.brand.step.expiry.text": "The token is personal, time-limited and replaces any previous token.",
  "recovery.brand.step.sessions.title": "Session revocation",
  "recovery.brand.step.sessions.text": "After validation, all previous sign-ins are closed automatically.",
  "recovery.brand.notice": "MageStock never asks for your old password and does not store the new one in the browser.",
  "recovery.form.kicker": "Segurança da conta",
  "recovery.form.title": "Repor a palavra-passe",
  "recovery.form.intro": "Enter the token supplied by your administrator, then choose a password that meets every requirement.",
  "recovery.error.session_expired": "Your session expired. Reload the page and try again.",
  "recovery.error.rate_limit": "Too many attempts. Wait before trying again.",
  "recovery.error.password_mismatch": "The two passwords do not match.",
  "recovery.error.invalid_token": "The token is unknown, expired or already used.",
  "recovery.error.unavailable": "The recovery service is temporarily unavailable.",
  "recovery.success": "A palavra-passe foi reposta. Todas as sessões anteriores foram fechadas.",
  "recovery.return_login": "Voltar ao início de sessão",
  "recovery.token.label": "Token de recuperação",
  "recovery.token.hint": "Paste the complete token without adding spaces. It can only be used once.",
  "recovery.password.label": "Nova palavra-passe",
  "recovery.password_confirm.label": "Confirmar a palavra-passe",
  "recovery.policy.kicker": "Critérios obrigatórios",
  "recovery.policy.title": "Palavra-passe esperada",
  "recovery.policy.length": "Entre 14 e 255 caracteres",
  "recovery.policy.lowercase": "Pelo menos uma letra minúscula",
  "recovery.policy.uppercase": "Pelo menos uma letra maiúscula",
  "recovery.policy.number": "Pelo menos um número",
  "recovery.policy.symbol": "Pelo menos um símbolo ou sinal",
  "recovery.policy.identity": "No sequence related to MageStock or the account",
  "recovery.policy.matches": "As duas entradas coincidem",
  "recovery.policy.pending": "Enter a password to check the criteria.",
  "recovery.policy.valid": "All visible criteria are met.",
  "recovery.submit": "Repor e fechar as sessões anteriores",
  "recovery.no_token.title": "Do you not have a token?",
  "recovery.no_token.text": "Only an authorised MageStock administrator can create a token. Ask them to open your account in Users and access.",
  "login.stage.aria": "Demonstration preview of MageStock stock operations",
  "login.stage.eyebrow": "Operational preview",
  "login.stage.warehouse": "Main warehouse",
  "login.stage.status": "Demonstration",
  "login.stage.products": "Available items",
  "login.stage.inventory": "Inventory in progress",
  "login.stage.inventory_status": "82% checked",
  "login.stage.alerts": "Low stock",
  "login.stage.alerts_value": "12 alerts",
  "login.stage.movement": "Latest movement",
  "login.stage.movement_value": "Transfer confirmed",
  "login.stage.destination": "North depot",
  "recovery.stage.aria": "Demonstration preview of MageStock account protection",
  "recovery.stage.eyebrow": "Account protection",
  "recovery.stage.account": "MageStock access",
  "recovery.stage.status": "Control active",
  "recovery.stage.token": "Temporary token",
  "recovery.stage.token_value": "Single use",
  "recovery.stage.sessions": "Sessions",
  "recovery.stage.sessions_value": "Automatic revocation",
  "recovery.stage.storage": "Storage",
  "recovery.stage.storage_value": "No plaintext secret",
  "recovery.stage.policy": "Password policy",
  "recovery.stage.policy_value": "Server-side enforcement",
  "recovery.stage.local": "Local account",
  "products.mobile.resources": "Documents and location",
  "products.mobile.datasheet": "Technical datasheet",
  "products.mobile.safety_sheet": "Safety data sheet",
  "products.mobile.document_unavailable": "Document unavailable",
  "products.mobile.plan": "View product on a plan",
  "products.mobile.plan_short": "Plan",
  "products.mobile.document_opening": "opening document",
  "products.mobile.create.show_steps": "View all 5 steps",
  "products.mobile.create.step_identity": "Identity",
  "products.mobile.create.step_classification": "Classification",
  "products.mobile.create.step_purchase": "Purchasing",
  "products.mobile.create.step_traceability": "Traceability",
  "products.mobile.create.step_review": "Review",
  "products.mobile.create.identity_more": "Additional information",
  "products.mobile.create.identity_more_help": "Additional EAN codes and description.",
  "products.mobile.create.image": "Product image",
  "products.mobile.create.image_help": "Optional photo or visual.",
  "products.mobile.create.storage": "Precise location",
  "products.mobile.create.storage_help": "Registered location or manual entry.",
  "products.mobile.create.purchase_more": "Price and supplier offers",
  "products.mobile.create.purchase_more_help": "Optional purchasing information.",
  "products.mobile.create.trace": "Traceability and thresholds",
  "products.mobile.create.trace_help": "Lots, expiry and safety stock.",
  "products.mobile.create.variants": "Variants and sizes",
  "products.mobile.create.variants_help": "Only for relevant products.",
  "products.mobile.create.documents": "Documents",
  "products.mobile.create.documents_help": "Technical and safety sheets.",
  "products.mobile.create.initial_stock": "Initial stock",
  "products.mobile.create.initial_stock_help": "Leave empty if stock will be entered later.",
  "shell.footer.magekorp_app": "uma aplicação web MageKorp",
  "shell.footer.contact": "Contactar a MageKorp"
}
