Merge pull request #694 from opastorello/master

Remade translation into Brazilian Portuguese
This commit is contained in:
Donkie
2025-06-08 11:47:17 +02:00
committed by GitHub
3 changed files with 159 additions and 151 deletions

View File

@@ -291,7 +291,9 @@
} }
}, },
"home": { "home": {
"home": "Home" "home": "Home",
"welcome": "Welcome to your Spoolman instance!".
"description": "It looks like you haven't added any spools yet. See the <helpPageLink>Help page</helpPageLink> for help getting started."
}, },
"help": { "help": {
"help": "Help", "help": "Help",

View File

@@ -1,14 +1,22 @@
{ {
"buttons": { "actions": {
"saveAndAdd": "Salvar e Adicionar", "list": "Listar",
"save": "Salvar",
"continue": "Continuar",
"filter": "Filtrar",
"create": "Criar", "create": "Criar",
"edit": "Editar",
"show": "Mostrar",
"clone": "Clonar"
},
"buttons": {
"create": "Criar",
"save": "Salvar",
"saveAndAdd": "Salvar e Adicionar",
"logout": "Sair", "logout": "Sair",
"delete": "Excluir", "delete": "Excluir",
"edit": "Editar", "edit": "Editar",
"cancel": "Cancelar", "cancel": "Cancelar",
"confirm": "Você tem certeza?",
"continue": "Continuar",
"filter": "Filtrar",
"clear": "Limpar", "clear": "Limpar",
"refresh": "Atualizar", "refresh": "Atualizar",
"show": "Mostrar", "show": "Mostrar",
@@ -21,30 +29,50 @@
"showArchived": "Mostrar Arquivados", "showArchived": "Mostrar Arquivados",
"notAccessTitle": "Você não tem permissão para acessar", "notAccessTitle": "Você não tem permissão para acessar",
"hideColumns": "Ocultar Colunas", "hideColumns": "Ocultar Colunas",
"clearFilters": "Limpar Filtros", "clearFilters": "Limpar Filtros"
"confirm": "Você tem certeza?"
}, },
"warnWhenUnsavedChanges": "Você tem certeza que deseja sair? Você tem alterações não salvas.",
"notifications": {
"success": "Sucesso",
"error": "Erro (código de status: {{statusCode}})",
"undoable": "Você tem {{seconds}} segundos para desfazer.",
"createSuccess": "{{resource}} criado com sucesso",
"createError": "Ocorreu um erro ao criar {{resource}} (código de status: {{statusCode}})",
"deleteSuccess": "{{resource}} excluído com sucesso",
"deleteError": "Erro ao excluir {{resource}} (código de status: {{statusCode}})",
"editSuccess": "{{resource}} editado com sucesso",
"editError": "Erro ao editar {{resource}} (código de status: {{statusCode}})",
"importProgress": "Importando: {{processed}}/{{total}}",
"saveSuccessful": "Salvo com sucesso!",
"validationError": "Erro de validação: {{error}}"
},
"kofi": "Doe pelo Ko-fi",
"loading": "Carregando",
"version": "Versão",
"unknown": "Desconhecido",
"yes": "Sim",
"no": "Não",
"tags": { "tags": {
"clone": "Clonar" "clone": "Clonar"
}, },
"dashboard": {
"title": "Painel"
},
"printing": { "printing": {
"generic": { "generic": {
"rows": "Linhas",
"paperSize": "Tamanho do Papel",
"showBorder": "Mostrar Borda",
"skipItems": "Pular Itens",
"borders": {
"grid": "Grade",
"none": "Nenhuma",
"border": "Borda"
},
"columns": "Colunas",
"customSize": "Personalizado",
"title": "Imprimindo", "title": "Imprimindo",
"description": "Ajuste as configurações abaixo para obter o layout de impressão desejado. Tenha em mente que as impressoras e o seu sistema operacional podem aplicar suas próprias margens e dimensionamento, portanto, pode ser necessário realizar algumas tentativas e erros antes que tudo esteja correto. Teste em um papel comum antes de imprimir nas etiquetas reais.", "description": "Ajuste as configurações abaixo para obter o layout de impressão desejado. Tenha em mente que as impressoras e o seu sistema operacional podem aplicar suas próprias margens e dimensionamento, portanto, pode ser necessário realizar algumas tentativas e erros antes que tudo esteja correto. Teste em um papel comum antes de imprimir nas etiquetas reais.",
"helpMargin": "As margens devem ser configuradas para corresponder às suas etiqueta e impressora. Alterá-las afetará o tamanho de toda a grade.", "helpMargin": "As margens devem ser configuradas para corresponder às suas etiquetas e impressora. Alterá-las afetará o tamanho de toda a grade.",
"helpPrinterMargin": "A Zona de Segurança deve ser definida para o quão próximo da borda do papel sua impressora pode imprimir. Alterá-la não afetará toda a grade.", "helpPrinterMargin": "A Zona de Segurança deve ser definida para o quão próximo da borda do papel sua impressora pode imprimir. Alterá-la não afetará toda a grade.",
"print": "Imprimir", "print": "Imprimir",
"columns": "Colunas",
"rows": "Linhas",
"paperSize": "Tamanho do Papel",
"customSize": "Personalizado",
"dimensions": "Dimensões",
"showBorder": "Mostrar Borda",
"previewScale": "Escala da Pré-visualização",
"skipItems": "Pular Itens",
"itemCopies": "Cópias do Item", "itemCopies": "Cópias do Item",
"contentSettings": "Configurações de Conteúdo", "contentSettings": "Configurações de Conteúdo",
"layoutSettings": "Configurações de Layout", "layoutSettings": "Configurações de Layout",
@@ -58,6 +86,11 @@
"printerMarginRight": "Zona de Segurança Direita", "printerMarginRight": "Zona de Segurança Direita",
"printerMarginTop": "Zona de Segurança Superior", "printerMarginTop": "Zona de Segurança Superior",
"printerMarginBottom": "Zona de Segurança Inferior", "printerMarginBottom": "Zona de Segurança Inferior",
"borders": {
"none": "Nenhuma",
"border": "Borda",
"grid": "Grade"
},
"settings": "Predefinições", "settings": "Predefinições",
"defaultSettings": "Padrão", "defaultSettings": "Padrão",
"addSettings": "Adicionar Nova Predefinição", "addSettings": "Adicionar Nova Predefinição",
@@ -67,24 +100,13 @@
"deleteSettingsConfirm": "Tem certeza de que deseja excluir esta predefinição?", "deleteSettingsConfirm": "Tem certeza de que deseja excluir esta predefinição?",
"settingsName": "Nome da Predefinição", "settingsName": "Nome da Predefinição",
"saveSetting": "Salvar Predefinições", "saveSetting": "Salvar Predefinições",
"saveAsImage": "Salvar como Imagem", "saveAsImage": "Salvar como Imagem"
"dimensions": "Dimensões",
"previewScale": "Escala da pré-visualização"
},
"spoolSelect": {
"selectedTotal_one": "{{count}} carretel selecionado",
"selectedTotal_many": "{{count}} carretéis selecionados",
"selectedTotal_other": "{{count}} carretéis selecionados",
"title": "Selecionar Carretéis",
"description": "Selecione os carretéis para imprimir suas etiquetas.",
"showArchived": "Mostrar Arquivado",
"noSpoolsSelected": "Você não selecionou algum dos carretéis.",
"selectAll": "Selecionar/Desselecionar Tudo"
}, },
"qrcode": { "qrcode": {
"button": "Imprimir Etiquetas", "button": "Imprimir Etiquetas",
"title": "Impressão de Etiquetas", "title": "Impressão de Etiquetas",
"template": "Modelo de Etiqueta", "template": "Modelo de Etiqueta",
"templateHelp": "Use \"{tag}\" para inserir valores do objeto carretel como texto. Por exemplo, {id} será substituído pelo valor do \"id\" do carretel ou {filament.material} será substituído pelo material do carretel. Se um valor estiver faltando, ele será substituído por \"?\". Um segundo conjunto de chaves, exemplo \"{{tag}}\", pode ser usado para remover isso. Além disso, qualquer texto entre os conjuntos de chaves será removido se o valor não existir. Por exemplo, {Lote Nº: {lot_nr}} só mostrará o rótulo se o carretel tiver um número de lote. Coloque o texto com asterisco duplo ** para colocar em negrito. Clique no botão ao lado para ver uma lista de todas as tags disponíveis.",
"textSize": "Tamanho do Texto da Etiqueta", "textSize": "Tamanho do Texto da Etiqueta",
"showContent": "Imprimir Etiqueta", "showContent": "Imprimir Etiqueta",
"useHTTPUrl": { "useHTTPUrl": {
@@ -101,26 +123,47 @@
"no": "Não", "no": "Não",
"simple": "Simples", "simple": "Simples",
"withIcon": "Com Ícone" "withIcon": "Com Ícone"
}
}, },
"templateHelp": "Use \"{tag}\" para inserir valores do objeto carretel como texto. Por exemplo, {id} será substituído pelo valor do \"id\" do carretel ou {filament.material} será substituído pelo material do carretel. Se um valor estiver faltando, ele será substituído por \"?\". Um segundo conjunto de chaves, exemplo \"{{tag}}\", pode ser usado para remover isso. Além disso, qualquer texto entre os conjuntos de chaves será removido se o valor não existir. Por exemplo, {Lote Nº: {lot_nr}} só mostrará o rótulo se o carretel tiver um número de lote. Coloque o texto com asterisco duplo ** para colocar em negrito. Clique no botão ao lado para ver uma lista de todas as tags disponíveis." "spoolSelect": {
"title": "Selecionar Carretéis",
"description": "Selecione os carretéis para imprimir suas etiquetas.",
"showArchived": "Mostrar Arquivado",
"noSpoolsSelected": "Você não selecionou algum dos carretéis.",
"selectAll": "Selecionar/Desselecionar Tudo",
"selectedTotal_one": "{{count}} carretel selecionado",
"selectedTotal_other": "{{count}} carretéis selecionados"
}
},
"scanner": {
"title": "Leitor de Código QR",
"description": "Escaneie um código QR do Spoolman para ver detalhes sobre o carretel.",
"error": {
"notAllowed": "Você não deu permissão de acesso à câmera.",
"insecureContext": "A página não é servida por HTTPS.",
"streamApiNotSupported": "O navegador não oferece suporte à API MediaStream.",
"notReadable": "A câmera não está legível.",
"notFound": "Nenhuma câmera foi encontrada.",
"unknown": "Ocorreu um erro desconhecido. ({{error}})"
} }
}, },
"spool": { "spool": {
"formats": { "spool": "Carretéis",
"last_used": "Última utilização em {{date}}"
},
"fields": { "fields": {
"id": "ID", "id": "ID",
"material": "Material", "filament_name": "Filamento",
"weight_to_use": "Peso",
"used_weight": "Peso Utilizado",
"measured_weight": "Peso Medido",
"used_length": "Comprimento Usado",
"initial_weight": "Peso Inicial",
"filament": "Filamento", "filament": "Filamento",
"filament_internal": "Interno", "filament_internal": "Interno",
"filament_external": "Externo", "filament_external": "Externo",
"price": "Preço", "price": "Preço",
"material": "Material",
"weight_to_use": "Peso",
"used_weight": "Peso Utilizado",
"remaining_weight": "Peso Restante",
"measured_weight": "Peso Medido",
"used_length": "Comprimento Usado",
"remaining_length": "Comprimento Restante",
"initial_weight": "Peso Inicial",
"spool_weight": "Peso sem Filamento", "spool_weight": "Peso sem Filamento",
"location": "Localização", "location": "Localização",
"lot_nr": "Número do Lote", "lot_nr": "Número do Lote",
@@ -128,10 +171,7 @@
"last_used": "Último Uso", "last_used": "Último Uso",
"registered": "Registrado", "registered": "Registrado",
"comment": "Comentário", "comment": "Comentário",
"archived": "Arquivado", "archived": "Arquivado"
"remaining_length": "Comprimento Restante",
"remaining_weight": "Peso Restante",
"filament_name": "Filamento"
}, },
"fields_help": { "fields_help": {
"price": "Preço de um carretel cheio. Se não for definido, o preço do filamento será assumido.", "price": "Preço de um carretel cheio. Se não for definido, o preço do filamento será assumido.",
@@ -145,7 +185,7 @@
"lot_nr": "Número de lote do fabricante. Pode ser usado para garantir que uma impressão tenha cores consistentes se vários carretéis forem usados.", "lot_nr": "Número de lote do fabricante. Pode ser usado para garantir que uma impressão tenha cores consistentes se vários carretéis forem usados.",
"external_filament": "Você selecionou um filamento do banco de dados externo. Um objeto de filamento (e possivelmente um objeto de fabricante) será criado automaticamente quando você criar este carretel. Isso pode criar objetos de filamento duplicados se você já tiver criado um objeto de filamento para esse filamento." "external_filament": "Você selecionou um filamento do banco de dados externo. Um objeto de filamento (e possivelmente um objeto de fabricante) será criado automaticamente quando você criar este carretel. Isso pode criar objetos de filamento duplicados se você já tiver criado um objeto de filamento para esse filamento."
}, },
"titles": { | "titles": {
"create": "Criar Carretel", "create": "Criar Carretel",
"clone": "Clonar Carretel", "clone": "Clonar Carretel",
"edit": "Editar Carretel", "edit": "Editar Carretel",
@@ -169,59 +209,61 @@
"messages": { "messages": {
"archive": "Tem certeza de que deseja arquivar este carretel?" "archive": "Tem certeza de que deseja arquivar este carretel?"
}, },
"spool": "Carretéis" "formats": {
"last_used": "Última utilização em {{date}}"
}
}, },
"filament": { "filament": {
"filament": "Filamentos",
"fields": { "fields": {
"id": "ID",
"vendor_name": "Fabricante",
"vendor": "Fabricante",
"name": "Nome", "name": "Nome",
"material": "Material", "material": "Material",
"price": "Preço", "price": "Preço",
"density": "Densidade", "density": "Densidade",
"diameter": "Diâmetro", "diameter": "Diâmetro",
"weight": "Peso", "weight": "Peso",
"spool_weight": "Peso do Carretel",
"article_number": "Número do Artigo", "article_number": "Número do Artigo",
"registered": "Registrado", "registered": "Registrado",
"comment": "Comentário",
"settings_extruder_temp": "Temperatura da Extrusora", "settings_extruder_temp": "Temperatura da Extrusora",
"settings_bed_temp": "Temperatura da Mesa", "settings_bed_temp": "Temperatura da Mesa",
"color_hex": "Cor",
"single_color": "Única", "single_color": "Única",
"multi_color": "Múltiplas", "multi_color": "Múltiplas",
"coaxial": "Coextrusada", "coaxial": "Coextrusada",
"longitudinal": "Longitudinal",
"external_id": "ID Externo", "external_id": "ID Externo",
"spools": "Mostrar Carretéis", "spools": "Mostrar Carretéis"
"id": "ID",
"vendor_name": "Fabricante",
"vendor": "Fabricante",
"spool_weight": "Peso do Carretel",
"color_hex": "Cor",
"comment": "Comentário",
"longitudinal": "Longitudinal"
}, },
"fields_help": { "fields_help": {
"name": "Nome do filamento, para distinguir este tipo de filamento entre outros do mesmo fabricante. Deve conter a cor, por exemplo.", "name": "Nome do filamento, para distinguir este tipo de filamento entre outros do mesmo fabricante. Deve conter a cor, por exemplo.",
"material": "Por exemplo: PLA, ABS, PETG, etc.", "material": "Por exemplo: PLA, ABS, PETG, etc.",
"price": "Preço de um carretel cheio.", "price": "Preço de um carretel cheio.",
"article_number": "Por exemplo: EAN, UPC, etc.", "weight": "O peso do filamento de um carretel cheio (peso líquido). Isso não deve incluir o peso do carretel em si, apenas o filamento. É o que normalmente está escrito na embalagem.",
"spool_weight": "O peso de um carretel vazio. Usado para determinar o peso medido de um carretel.", "spool_weight": "O peso de um carretel vazio. Usado para determinar o peso medido de um carretel.",
"multi_color_direction": "Os filamentos podem ter múltiplas cores de duas maneiras: por meio de coextrusão, como os filamentos bicolores com as cores consistentes ao longo do carretel, ou por meio de mudanças longitudinais de cor, como os filamentos gradientes que mudam as cores ao longo do carretel.", "article_number": "Por exemplo: EAN, UPC, etc.",
"weight": "O peso do filamento de um carretel cheio (peso líquido). Isso não deve incluir o peso do carretel em si, apenas o filamento. É o que normalmente está escrito na embalagem." "multi_color_direction": "Os filamentos podem ter múltiplas cores de duas maneiras: por meio de coextrusão, como os filamentos bicolores com as cores consistentes ao longo do carretel, ou por meio de mudanças longitudinais de cor, como os filamentos gradientes que mudam as cores ao longo do carretel."
}, },
"titles": { "titles": {
"create": "Criar Filamento", "create": "Criar Filamento",
"clone": "Clonar Filamento",
"edit": "Editar Filamento", "edit": "Editar Filamento",
"list": "Filamentos", "list": "Filamentos",
"show": "Mostrar Filamento", "show": "Mostrar Filamento",
"show_title": "[Filamento #{{id}}] {{name}}", "show_title": "[Filamento #{{id}}] {{name}}"
"clone": "Clonar Filamento"
}, },
"form": { "form": {
"filament_updated": "Este filamento foi atualizado por alguém/outra coisa desde que você abriu esta página. Salvar irá sobrescrever essas alterações!",
"import_external": "Importar do Exterior", "import_external": "Importar do Exterior",
"import_external_description": "Selecione um filamento na lista para preencher automaticamente seus detalhes no formulário de criação de filamento. Isso substituirá quaisquer dados que você inseriu no formulário.<br><br>Um objeto Fabricante será criado automaticamente quando você clicar em OK, se necessário.", "import_external_description": "Selecione um filamento na lista para preencher automaticamente seus detalhes no formulário de criação de filamento. Isso substituirá quaisquer dados que você inseriu no formulário.<br><br>Um objeto Fabricante será criado automaticamente quando você clicar em OK, se necessário."
"filament_updated": "Este filamento foi atualizado por alguém/outra coisa desde que você abriu esta página. Salvar irá sobrescrever essas alterações!"
}, },
"buttons": { "buttons": {
"add_spool": "Adicionar Carretel" "add_spool": "Adicionar Carretel"
}, }
"filament": "Filamentos"
}, },
"vendor": { "vendor": {
"vendor": "Fabricantes", "vendor": "Fabricantes",
@@ -241,25 +283,35 @@
"clone": "Clonar Fabricante", "clone": "Clonar Fabricante",
"edit": "Editar Fabricante", "edit": "Editar Fabricante",
"list": "Fabricantes", "list": "Fabricantes",
"show_title": "[Fabricante #{{id}}] {{name}}", "show": "Mostrar Fabricante",
"show": "Mostrar Fabricante" "show_title": "[Fabricante #{{id}}] {{name}}"
}, },
"form": { "form": {
"vendor_updated": "Este fabricante foi atualizado por alguém/alguma coisa desde que você abriu esta página. Salvar sobrescreverá essas alterações!" "vendor_updated": "Este fabricante foi atualizado por alguém/alguma coisa desde que você abriu esta página. Salvar sobrescreverá essas alterações!"
} }
}, },
"help": { "home": {
"resources": { "home": "Início",
"spool": "Carretéis físicos individuais de um filamento específico.", "welcome": "Bem-vindo à sua instância do Spoolman!",
"vendor": "As empresas que fabricam o filamento.", "description": "Parece que você ainda não adicionou nenhum carretel. Veja a <helpPageLink>Página de Ajuda</helpPageLink> para obter ajuda para começar."
"filament": "Marcas de filamento. Elas têm propriedades como nome, material, cor, diâmetro e mais."
}, },
"help": {
"help": "Ajuda", "help": "Ajuda",
"resources": {
"filament": "Marcas de filamento. Elas têm propriedades como nome, material, cor, diâmetro e mais.",
"spool": "Carretéis físicos individuais de um filamento específico.",
"vendor": "As empresas que fabricam o filamento."
},
"description": "<title>Ajuda</title><p>Aqui estão algumas dicas para você começar.</p><p>O Spoolman contém três tipos diferentes de dados:</p><itemsHelp/><p>Para adicionar um novo carretel para o banco de dados, comece criando um objeto <filamentCreateLink>Filamento</filamentCreateLink>. Feito isso, prossiga para criar um objeto <spoolCreateLink>Carretel</spoolCreateLink> para esse carretel específico. Se você adquirir carretéis adicionais do mesmo filamento posteriormente, simplesmente crie carretéis adicionais e reutilize o mesmo objeto Filamento.</p><p>Opcionalmente, você também pode gerar um objeto <vendorCreateLink>Fabricante</vendorCreateLink> para a empresa que fabrica o filamento, se você desejar rastrear essas informações.</p><p>Você tem a opção de vincular outros serviços de impressora 3D ao Spoolman, como o Moonraker, o qual pode automaticamente monitorar o uso do filamento e atualizar os carretéis para você. Consulte o <readmeLink>LEIA-ME do Spoolman</readmeLink> para obter orientação sobre como configurar isso.</p>" "description": "<title>Ajuda</title><p>Aqui estão algumas dicas para você começar.</p><p>O Spoolman contém três tipos diferentes de dados:</p><itemsHelp/><p>Para adicionar um novo carretel para o banco de dados, comece criando um objeto <filamentCreateLink>Filamento</filamentCreateLink>. Feito isso, prossiga para criar um objeto <spoolCreateLink>Carretel</spoolCreateLink> para esse carretel específico. Se você adquirir carretéis adicionais do mesmo filamento posteriormente, simplesmente crie carretéis adicionais e reutilize o mesmo objeto Filamento.</p><p>Opcionalmente, você também pode gerar um objeto <vendorCreateLink>Fabricante</vendorCreateLink> para a empresa que fabrica o filamento, se você desejar rastrear essas informações.</p><p>Você tem a opção de vincular outros serviços de impressora 3D ao Spoolman, como o Moonraker, o qual pode automaticamente monitorar o uso do filamento e atualizar os carretéis para você. Consulte o <readmeLink>LEIA-ME do Spoolman</readmeLink> para obter orientação sobre como configurar isso.</p>"
}, },
"table": {
"actions": "Ações"
},
"settings": { "settings": {
"settings": "Configurações",
"header": "Configurações", "header": "Configurações",
"general": { "general": {
"tab": "Geral",
"currency": { "currency": {
"label": "Moeda" "label": "Moeda"
}, },
@@ -267,7 +319,6 @@
"label": "URL Base", "label": "URL Base",
"tooltip": "A URL base a ser usada ao gerar recursos como códigos QR." "tooltip": "A URL base a ser usada ao gerar recursos como códigos QR."
}, },
"tab": "Geral",
"round_prices": { "round_prices": {
"label": "Arredondar preços", "label": "Arredondar preços",
"tooltip": "Arredonda os preços para o número inteiro mais próximo." "tooltip": "Arredonda os preços para o número inteiro mais próximo."
@@ -275,15 +326,16 @@
}, },
"extra_fields": { "extra_fields": {
"tab": "Campos Extras", "tab": "Campos Extras",
"description": "<p>Aqui você pode adicionar campos personalizados extras às suas entidades.</p><p>Depois que um campo é adicionado, você não pode alterar sua chave ou tipo, e para campos do tipo \"escolha\" você não pode remover as opções ou alterar o estado de \"múltipla de escolha\". Se você remover um campo, os dados associados a ele em todas as entidades serão excluídos.</p><p>A chave é como outros programas leem/gravam os dados, portanto, se o seu campo personalizado for para uma integração com um programa de terceiros, certifique-se de configurá-lo corretamente. O valor padrão é aplicado somente a novos itens.</p><p>Campos extras não podem ser ordenados ou filtrados nas visualizações de tabela.</p>",
"params": { "params": {
"key": "Chave",
"name": "Nome", "name": "Nome",
"field_type": "Tipo",
"unit": "Unidade",
"order": "Ordem",
"default_value": "Valor Padrão", "default_value": "Valor Padrão",
"choices": "Opções", "choices": "Opções",
"multi_choice": "Múltipla Escolha", "multi_choice": "Múltipla Escolha"
"order": "Ordem",
"key": "Chave",
"unit": "Unidade",
"field_type": "Tipo"
}, },
"field_type": { "field_type": {
"text": "Texto", "text": "Texto",
@@ -295,104 +347,53 @@
"boolean": "Booleano", "boolean": "Booleano",
"choice": "Opção" "choice": "Opção"
}, },
"boolean_true": "Sim",
"boolean_false": "Não", "boolean_false": "Não",
"choices_missing_error": "Você não pode remover as opções. As seguintes opções estão faltando: {{choices}}", "choices_missing_error": "Você não pode remover as opções. As seguintes opções estão faltando: {{choices}}",
"non_unique_key_error": "A chave deve ser única.", "non_unique_key_error": "A chave deve ser única.",
"delete_confirm_description": "Isso excluirá o campo e todos os dados associados em todas as entidades.",
"key_not_changed": "Por favor, escolha outra chave.", "key_not_changed": "Por favor, escolha outra chave.",
"delete_confirm": "Apagar o campo {{name}}?", "delete_confirm": "Apagar o campo {{name}}?",
"boolean_true": "Sim", "delete_confirm_description": "Isso excluirá o campo e todos os dados associados em todas as entidades."
"description": "<p>Aqui você pode adicionar campos personalizados extras às suas entidades.</p><p>Depois que um campo é adicionado, você não pode alterar sua chave ou tipo, e para campos do tipo \"escolha\" você não pode remover as opções ou alterar o estado de \"múltipla de escolha\". Se você remover um campo, os dados associados à ela em todas as entidades serão excluídos.</p><p>A chave é como outros programas leem/gravam os dados, portanto, se o seu campo personalizado for para uma integração com um programa de terceiros, certifique-se de configurá-lo corretamente. O valor padrão é aplicado somente a novos itens.</p><p>Campos extras não podem ser ordenados ou filtrados nas visualizações de tabela.</p>" }
},
"settings": "Configurações"
}, },
"documentTitle": { "documentTitle": {
"default": "Spoolman", "default": "Spoolman",
"suffix": " | Spoolman",
"home": { "home": {
"list": "Início | Spoolman" "list": "Início | Spoolman"
}, },
"help": { "help": {
"list": "Ajuda | Spoolman" "list": "Ajuda | Spoolman"
}, },
"locations": {
"list": "Locais | Spoolman"
},
"filament": { "filament": {
"list": "Filamentos | Spoolman",
"show": "Mostrar Filamento #{{id}} | Spoolman",
"edit": "Editar Filamento #{{id}} | Spoolman", "edit": "Editar Filamento #{{id}} | Spoolman",
"create": "Criar Filamento | Spoolman", "create": "Criar Filamento | Spoolman",
"clone": "Clonar Filamento #{{id}} | Spoolman", "clone": "Clonar Filamento #{{id}} | Spoolman"
"show": "Mostrar Filamento #{{id}} | Spoolman",
"list": "Filamentos | Spoolman"
}, },
"spool": { "spool": {
"list": "Carretéis | Spoolman", "list": "Carretéis | Spoolman",
"show": "Mostrar Carretel #{{id}} | Spoolman", "show": "Mostrar Carretel #{{id}} | Spoolman",
"edit": "Editar Carretel #{{id}} | Spoolman", "edit": "Editar Carretel #{{id}} | Spoolman",
"clone": "Clonar Carretel #{{id}} | Spoolman", "create": "Criar Carretel | Spoolman",
"create": "Criar Carretel | Spoolman" "clone": "Clonar Carretel #{{id}} | Spoolman"
}, },
"vendor": { "vendor": {
"list": "Fabricantes | Spoolman", "list": "Fabricantes | Spoolman",
"create": "Criar Fabricante | Spoolman",
"clone": "Clonar Fabricante #{{id}} | Spoolman",
"show": "Mostrar Fabricante #{{id}} | Spoolman", "show": "Mostrar Fabricante #{{id}} | Spoolman",
"edit": "Editar Fabricante #{{id}} | Spoolman" "edit": "Editar Fabricante #{{id}} | Spoolman",
}, "create": "Criar Fabricante | Spoolman",
"suffix": " | Spoolman", "clone": "Clonar Fabricante #{{id}} | Spoolman"
"locations": {
"list": "Locais | Spoolman"
} }
}, },
"locations": { "locations": {
"no_locations_help": "Esta página permite que você organize seus carretéis em locais, adicione alguns carretéis para começar!",
"locations": "Locais", "locations": "Locais",
"new_location": "Novo Local", "new_location": "Novo Local",
"no_location": "Sem Local" "no_location": "Sem Local",
}, "no_locations_help": "Esta página permite que você organize seus carretéis em locais, adicione alguns carretéis para começar!"
"version": "Versão",
"no": "Não",
"actions": {
"create": "Criar",
"edit": "Editar",
"clone": "Clonar",
"show": "Mostrar",
"list": "Listar"
},
"warnWhenUnsavedChanges": "Você tem certeza que quer sair? Você tem alterações não salvas.",
"notifications": {
"success": "Sucesso",
"error": "Erro (código de status: {{statusCode}})",
"undoable": "Você tem {{seconds}} segundos para desfazer.",
"createSuccess": "{{resource}} criado com sucesso",
"createError": "Ocorreu um erro ao criar {{resource}} (código de status: {{statusCode}})",
"deleteSuccess": "{{resource}} excluído com sucesso",
"deleteError": "Erro ao excluir {{resource}} (código de status: {{statusCode}})",
"editError": "Erro ao editar {{resource}} (código de status: {{statusCode}})",
"importProgress": "Importando: {{processed}}/{{total}}",
"saveSuccessful": "Salvo com sucesso!",
"validationError": "Erro de Validação: {{error}}",
"editSuccess": "Editado com sucesso {{resource}}"
},
"kofi": "Doe pelo Ko-fi",
"loading": "Carregando",
"unknown": "Desconhecido",
"yes": "Sim",
"dashboard": {
"title": "Painel"
},
"scanner": {
"title": "Leitor de Código QR",
"description": "Escaneie um código QR do Spoolman para ver detalhes sobre o carretel.",
"error": {
"notAllowed": "Você não deu permissão de acesso à câmera.",
"insecureContext": "A página não é servida por HTTPS.",
"streamApiNotSupported": "O navegador não oferece suporte à API MediaStream.",
"notReadable": "A câmera não está legível.",
"unknown": "Ocorreu um erro desconhecido. ({{error}})",
"notFound": "Nenhuma câmera foi encontrada."
}
},
"home": {
"home": "Início"
},
"table": {
"actions": "Ações"
} }
} }

View File

@@ -7,6 +7,7 @@ import dayjs from "dayjs";
import utc from "dayjs/plugin/utc"; import utc from "dayjs/plugin/utc";
import React, { ReactNode } from "react"; import React, { ReactNode } from "react";
import { Link } from "react-router"; import { Link } from "react-router";
import { Trans } from "react-i18next";
import Logo from "../../icon.svg?react"; import Logo from "../../icon.svg?react";
import { ISpool } from "../spools/model"; import { ISpool } from "../spools/model";
@@ -107,10 +108,14 @@ export const Home: React.FC<IResourceComponentsProps> = () => {
</Row> </Row>
{!hasSpools && ( {!hasSpools && (
<> <>
<p style={{ marginTop: 32 }}>Welcome to your Spoolman instance!</p> <p style={{ marginTop: 32 }}>{t("home.welcome")}</p>
<p> <p>
It looks like you haven't added any spools yet. See the <Link to="/help">Help page</Link> for help getting <Trans
started. i18nKey="home.description"
components={{
helpPageLink: <Link to="/help" />,
}}
/>
</p> </p>
</> </>
)} )}