Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tuttle/i18n.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

# Region whose conventions format numbers, dates and money in a language.
# Languages not listed use the language's own defaults.
_FORMAT_LOCALES = {"en": "en_US", "de": "de_DE", "es": "es_ES"}
_FORMAT_LOCALES = {"en": "en_US", "de": "de_DE", "es": "es_ES", "pt": "pt_PT"}

_current: ContextVar[str] = ContextVar("language", default=SOURCE_LANGUAGE)

Expand Down
292 changes: 292 additions & 0 deletions tuttle/locales/pt/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
# Portuguese translations for Tuttle.
# Copyright (C) 2026 Tuttle contributors
# This file is distributed under the same license as the Tuttle project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
#
msgid ""
msgstr ""
"Project-Id-Version: Tuttle VERSION\n"
"Report-Msgid-Bugs-To: https://github.com/tuttle-dev/tuttle/issues\n"
"POT-Creation-Date: 2026-10-11 12:02+0200\n"
"PO-Revision-Date: 2026-10-11 12:02+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: pt\n"
"Language-Team: pt <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"

msgid "Deposit Invoice"
msgstr "Fatura de adiantamento"

msgid "Final Invoice"
msgstr "Fatura final"

msgid "Invoice No."
msgstr "Fatura n.º"

msgid "In respect of"
msgstr "Referente a"

msgid "Payment milestone"
msgstr "Parcela de pagamento"

msgid "Contract total"
msgstr "Valor total do contrato"

msgid "Gross"
msgstr "Bruto"

msgid "less deposit per invoice no."
msgstr "menos adiantamento conforme fatura n.º"

msgid "VAT included therein"
msgstr "IVA incluído"

msgid "Remaining balance"
msgstr "Saldo restante"

msgid "Deposit due"
msgstr "Adiantamento a pagar"

msgid "Total Due"
msgstr "Total a pagar"

msgid "Please settle the outstanding amount by the new due date."
msgstr "Solicitamos o pagamento do valor em aberto até à nova data de vencimento."

msgid "This is a partial payment (deposit invoice) towards the contract total."
msgstr ""
"Trata-se de um pagamento parcial (fatura de adiantamento) sobre o valor "
"total do contrato."

msgid "Thank you for your business."
msgstr "Obrigado pela colaboração."

msgid "Billed to"
msgstr "Faturado a"

msgid "Original Invoice"
msgstr "Fatura original"

msgid "Document type"
msgstr "Tipo de documento"

msgid "Date"
msgstr "Data"

msgid "Due Date"
msgstr "Data de vencimento"

msgid "Description"
msgstr "Descrição"

msgid "Qty"
msgstr "Qtd."

msgid "Unit"
msgstr "Unidade"

msgid "Unit Price"
msgstr "Preço unitário"

msgid "VAT"
msgstr "IVA"

msgid "Subtotal"
msgstr "Subtotal"

msgid "Payment"
msgstr "Pagamento"

msgid "Account"
msgstr "Titular da conta"

msgid "Payment QR code"
msgstr "Código QR de pagamento"

msgid "Total fee"
msgstr "Honorários totais"

msgid "Reminder Fee"
msgstr "Taxa de lembrete"

msgid ""
"Not subject to German VAT — the place of supply is the recipient's "
"country (§ 3a (2) UStG / Art. 44 VAT Directive)."
msgstr ""
"Não sujeito ao IVA alemão — o local da prestação é o país do "
"destinatário (§ 3a (2) UStG / art. 44 da Diretiva IVA)."

msgid "Tel."
msgstr "Tel."

#, python-brace-format
msgid "Timesheet {title}"
msgstr "Folha de horas {title}"

msgid "Client"
msgstr "Cliente"

msgid "Prepared by"
msgstr "Elaborado por"

msgid "Project"
msgstr "Projeto"

msgid "Period"
msgstr "Período"

msgid "Issued"
msgstr "Data de emissão"

msgid "Time"
msgstr "Horário"

msgid "Notes"
msgstr "Notas"

msgid "Hours"
msgstr "Horas"

msgid "Total"
msgstr "Total"

#, python-brace-format
msgid "Item {n}"
msgstr "Item {n}"

msgid "Not subject to VAT"
msgstr "Não sujeito a IVA"

#, python-brace-format
msgid "Net {days} day"
msgid_plural "Net {days} days"
msgstr[0] "Pagamento a {days} dia"
msgstr[1] "Pagamento a {days} dias"

#, python-brace-format
msgid "Invoice {number}"
msgstr "Fatura {number}"

#, python-brace-format
msgid ""
"Dear {name},\n"
"\n"
"Please find attached the invoice for {project}.\n"
"\n"
"Best regards,\n"
"{sender}"
msgstr ""
"Prezado(a) {name},\n"
"\n"
"Segue em anexo a fatura referente ao projeto {project}.\n"
"\n"
"Com os melhores cumprimentos,\n"
"{sender}"

#, python-brace-format
msgid "Payment Reminder: Invoice {number}"
msgstr "Lembrete de pagamento: fatura {number}"

#, python-brace-format
msgid ""
"Dear {name},\n"
"\n"
"This is a reminder regarding the outstanding invoice {number} for "
"{project}.\n"
"\n"
"Please find attached the payment reminder.\n"
"\n"
"Best regards,\n"
"{sender}"
msgstr ""
"Prezado(a) {name},\n"
"\n"
"Esta é uma notificação referente à fatura {number} do projeto "
"{project}, ainda em aberto.\n"
"\n"
"Segue em anexo o lembrete de pagamento.\n"
"\n"
"Com os melhores cumprimentos,\n"
"{sender}"

#, python-brace-format
msgid ""
"Dear {name},\n"
"\n"
"This is a 2nd reminder regarding the outstanding invoice {number} for "
"{project}.\n"
"\n"
"Please find attached the payment reminder.\n"
"\n"
"Best regards,\n"
"{sender}"
msgstr ""
"Prezado(a) {name},\n"
"\n"
"Esta é a segunda notificação referente à fatura {number} do projeto "
"{project}, ainda em aberto.\n"
"\n"
"Segue em anexo o lembrete de pagamento.\n"
"\n"
"Com os melhores cumprimentos,\n"
"{sender}"

#, python-brace-format
msgid ""
"Dear {name},\n"
"\n"
"This is a 3rd reminder regarding the outstanding invoice {number} for "
"{project}.\n"
"\n"
"Please find attached the payment reminder.\n"
"\n"
"Best regards,\n"
"{sender}"
msgstr ""
"Prezado(a) {name},\n"
"\n"
"Esta é a terceira notificação referente à fatura {number} do projeto "
"{project}, ainda em aberto.\n"
"\n"
"Segue em anexo o lembrete de pagamento.\n"
"\n"
"Com os melhores cumprimentos,\n"
"{sender}"

msgid "hour"
msgid_plural "hours"
msgstr[0] "hora"
msgstr[1] "horas"

msgid "day"
msgid_plural "days"
msgstr[0] "dia"
msgstr[1] "dias"

msgid "piece"
msgid_plural "pieces"
msgstr[0] "peça"
msgstr[1] "peças"

msgid "flat"
msgstr "forfait"

msgid "fixed price"
msgstr "preço fixo"

#, python-brace-format
msgid "{n}. Payment Reminder"
msgstr "{n}.º lembrete de pagamento"

msgid "VAT No."
msgstr "N.º de IVA"

msgid "Tax No."
msgstr "NIF"

msgid "All day"
msgstr "Dia inteiro"
Loading