diff --git a/client/public/locales/pt-BR/common.json b/client/public/locales/pt-BR/common.json
index 895f23e..d94dfeb 100644
--- a/client/public/locales/pt-BR/common.json
+++ b/client/public/locales/pt-BR/common.json
@@ -1,14 +1,22 @@
{
- "buttons": {
- "saveAndAdd": "Salvar e Adicionar",
- "save": "Salvar",
- "continue": "Continuar",
- "filter": "Filtrar",
+ "actions": {
+ "list": "Listar",
"create": "Criar",
+ "edit": "Editar",
+ "show": "Mostrar",
+ "clone": "Clonar"
+ },
+ "buttons": {
+ "create": "Criar",
+ "save": "Salvar",
+ "saveAndAdd": "Salvar e Adicionar",
"logout": "Sair",
"delete": "Excluir",
"edit": "Editar",
"cancel": "Cancelar",
+ "confirm": "Você tem certeza?",
+ "continue": "Continuar",
+ "filter": "Filtrar",
"clear": "Limpar",
"refresh": "Atualizar",
"show": "Mostrar",
@@ -21,30 +29,50 @@
"showArchived": "Mostrar Arquivados",
"notAccessTitle": "Você não tem permissão para acessar",
"hideColumns": "Ocultar Colunas",
- "clearFilters": "Limpar Filtros",
- "confirm": "Você tem certeza?"
+ "clearFilters": "Limpar Filtros"
},
+ "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": {
"clone": "Clonar"
},
+ "dashboard": {
+ "title": "Painel"
+ },
"printing": {
"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",
"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.",
"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",
"contentSettings": "Configurações de Conteúdo",
"layoutSettings": "Configurações de Layout",
@@ -58,6 +86,11 @@
"printerMarginRight": "Zona de Segurança Direita",
"printerMarginTop": "Zona de Segurança Superior",
"printerMarginBottom": "Zona de Segurança Inferior",
+ "borders": {
+ "none": "Nenhuma",
+ "border": "Borda",
+ "grid": "Grade"
+ },
"settings": "Predefinições",
"defaultSettings": "Padrão",
"addSettings": "Adicionar Nova Predefinição",
@@ -67,24 +100,13 @@
"deleteSettingsConfirm": "Tem certeza de que deseja excluir esta predefinição?",
"settingsName": "Nome da Predefinição",
"saveSetting": "Salvar Predefinições",
- "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"
+ "saveAsImage": "Salvar como Imagem"
},
"qrcode": {
"button": "Imprimir Etiquetas",
"title": "Impressão de Etiquetas",
"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",
"showContent": "Imprimir Etiqueta",
"useHTTPUrl": {
@@ -101,26 +123,47 @@
"no": "Não",
"simple": "Simples",
"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": {
- "formats": {
- "last_used": "Última utilização em {{date}}"
- },
+ "spool": "Carretéis",
"fields": {
"id": "ID",
- "material": "Material",
- "weight_to_use": "Peso",
- "used_weight": "Peso Utilizado",
- "measured_weight": "Peso Medido",
- "used_length": "Comprimento Usado",
- "initial_weight": "Peso Inicial",
+ "filament_name": "Filamento",
"filament": "Filamento",
"filament_internal": "Interno",
"filament_external": "Externo",
"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",
"location": "Localização",
"lot_nr": "Número do Lote",
@@ -128,10 +171,7 @@
"last_used": "Último Uso",
"registered": "Registrado",
"comment": "Comentário",
- "archived": "Arquivado",
- "remaining_length": "Comprimento Restante",
- "remaining_weight": "Peso Restante",
- "filament_name": "Filamento"
+ "archived": "Arquivado"
},
"fields_help": {
"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.",
"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",
"clone": "Clonar Carretel",
"edit": "Editar Carretel",
@@ -169,59 +209,61 @@
"messages": {
"archive": "Tem certeza de que deseja arquivar este carretel?"
},
- "spool": "Carretéis"
+ "formats": {
+ "last_used": "Última utilização em {{date}}"
+ }
},
"filament": {
+ "filament": "Filamentos",
"fields": {
+ "id": "ID",
+ "vendor_name": "Fabricante",
+ "vendor": "Fabricante",
"name": "Nome",
"material": "Material",
"price": "Preço",
"density": "Densidade",
"diameter": "Diâmetro",
"weight": "Peso",
+ "spool_weight": "Peso do Carretel",
"article_number": "Número do Artigo",
"registered": "Registrado",
+ "comment": "Comentário",
"settings_extruder_temp": "Temperatura da Extrusora",
"settings_bed_temp": "Temperatura da Mesa",
+ "color_hex": "Cor",
"single_color": "Única",
"multi_color": "Múltiplas",
"coaxial": "Coextrusada",
+ "longitudinal": "Longitudinal",
"external_id": "ID Externo",
- "spools": "Mostrar Carretéis",
- "id": "ID",
- "vendor_name": "Fabricante",
- "vendor": "Fabricante",
- "spool_weight": "Peso do Carretel",
- "color_hex": "Cor",
- "comment": "Comentário",
- "longitudinal": "Longitudinal"
+ "spools": "Mostrar Carretéis"
},
"fields_help": {
"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.",
"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.",
- "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.",
- "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."
+ "article_number": "Por exemplo: EAN, UPC, etc.",
+ "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": {
"create": "Criar Filamento",
+ "clone": "Clonar Filamento",
"edit": "Editar Filamento",
"list": "Filamentos",
"show": "Mostrar Filamento",
- "show_title": "[Filamento #{{id}}] {{name}}",
- "clone": "Clonar Filamento"
+ "show_title": "[Filamento #{{id}}] {{name}}"
},
"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_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.
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!"
+ "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.
Um objeto Fabricante será criado automaticamente quando você clicar em OK, se necessário."
},
"buttons": {
"add_spool": "Adicionar Carretel"
- },
- "filament": "Filamentos"
+ }
},
"vendor": {
"vendor": "Fabricantes",
@@ -241,25 +283,35 @@
"clone": "Clonar Fabricante",
"edit": "Editar Fabricante",
"list": "Fabricantes",
- "show_title": "[Fabricante #{{id}}] {{name}}",
- "show": "Mostrar Fabricante"
+ "show": "Mostrar Fabricante",
+ "show_title": "[Fabricante #{{id}}] {{name}}"
},
"form": {
"vendor_updated": "Este fabricante foi atualizado por alguém/alguma coisa desde que você abriu esta página. Salvar sobrescreverá essas alterações!"
}
},
+ "home": {
+ "home": "Início",
+ "welcome": "Bem-vindo à sua instância do Spoolman!",
+ "description": "Parece que você ainda não adicionou nenhum carretel. Veja a
Aqui estão algumas dicas para você começar.
O Spoolman contém três tipos diferentes de dados:
Para adicionar um novo carretel para o banco de dados, comece criando um objeto
Opcionalmente, você também pode gerar um objeto
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
Aqui você pode adicionar campos personalizados extras às suas entidades.
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.
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.
Campos extras não podem ser ordenados ou filtrados nas visualizações de tabela.
", "params": { + "key": "Chave", "name": "Nome", + "field_type": "Tipo", + "unit": "Unidade", + "order": "Ordem", "default_value": "Valor Padrão", "choices": "Opções", - "multi_choice": "Múltipla Escolha", - "order": "Ordem", - "key": "Chave", - "unit": "Unidade", - "field_type": "Tipo" + "multi_choice": "Múltipla Escolha" }, "field_type": { "text": "Texto", @@ -295,104 +347,53 @@ "boolean": "Booleano", "choice": "Opção" }, + "boolean_true": "Sim", "boolean_false": "Não", "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.", - "delete_confirm_description": "Isso excluirá o campo e todos os dados associados em todas as entidades.", "key_not_changed": "Por favor, escolha outra chave.", "delete_confirm": "Apagar o campo {{name}}?", - "boolean_true": "Sim", - "description": "Aqui você pode adicionar campos personalizados extras às suas entidades.
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.
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.
Campos extras não podem ser ordenados ou filtrados nas visualizações de tabela.
" - }, - "settings": "Configurações" + "delete_confirm_description": "Isso excluirá o campo e todos os dados associados em todas as entidades." + } }, "documentTitle": { "default": "Spoolman", + "suffix": " | Spoolman", "home": { "list": "Início | Spoolman" }, "help": { "list": "Ajuda | Spoolman" }, + "locations": { + "list": "Locais | Spoolman" + }, "filament": { + "list": "Filamentos | Spoolman", + "show": "Mostrar Filamento #{{id}} | Spoolman", "edit": "Editar Filamento #{{id}} | Spoolman", "create": "Criar Filamento | Spoolman", - "clone": "Clonar Filamento #{{id}} | Spoolman", - "show": "Mostrar Filamento #{{id}} | Spoolman", - "list": "Filamentos | Spoolman" + "clone": "Clonar Filamento #{{id}} | Spoolman" }, "spool": { "list": "Carretéis | Spoolman", "show": "Mostrar 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": { "list": "Fabricantes | Spoolman", - "create": "Criar Fabricante | Spoolman", - "clone": "Clonar Fabricante #{{id}} | Spoolman", "show": "Mostrar Fabricante #{{id}} | Spoolman", - "edit": "Editar Fabricante #{{id}} | Spoolman" - }, - "suffix": " | Spoolman", - "locations": { - "list": "Locais | Spoolman" + "edit": "Editar Fabricante #{{id}} | Spoolman", + "create": "Criar Fabricante | Spoolman", + "clone": "Clonar Fabricante #{{id}} | Spoolman" } }, "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", "new_location": "Novo Local", - "no_location": "Sem Local" - }, - "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" + "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!" } }