mirror of
https://github.com/pretix/pretix.git
synced 2025-12-05 21:32:28 +00:00
Compare commits
4 Commits
e1f5678d7c
...
c491c8232e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c491c8232e | ||
|
|
aa02cc7968 | ||
|
|
cfa13d6b9d | ||
|
|
af4eabc800 |
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-11-27 13:57+0000\n"
|
||||
"PO-Revision-Date: 2025-12-03 23:00+0000\n"
|
||||
"PO-Revision-Date: 2025-12-04 18:00+0000\n"
|
||||
"Last-Translator: sandra r <sandrarial@gestiontickets.online>\n"
|
||||
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"gl/>\n"
|
||||
@@ -713,7 +713,7 @@ msgid "Your password must contain both numeric and alphabetic characters."
|
||||
msgstr "O teu contrasinal debe conter caracteres numéricos e alfabéticos."
|
||||
|
||||
#: pretix/base/auth.py:202 pretix/base/auth.py:212
|
||||
#, fuzzy, python-format
|
||||
#, python-format
|
||||
msgid "Your password may not be the same as your previous password."
|
||||
msgid_plural ""
|
||||
"Your password may not be the same as one of your %(history_length)s previous "
|
||||
@@ -721,7 +721,7 @@ msgid_plural ""
|
||||
msgstr[0] "O teu contrasinal non sexa o mesmo que o teu contrasinal anterior."
|
||||
msgstr[1] ""
|
||||
"O teu contrasinal non sexa o mesmo que un dos teus contrasinais anteriores "
|
||||
"de %(history_length)."
|
||||
"de %(history_length)s."
|
||||
|
||||
#: pretix/base/channels.py:168
|
||||
msgid "Online shop"
|
||||
@@ -3329,42 +3329,48 @@ msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
"Carga unha imaxe válida. O ficheiro que cargaches ou non era unha imaxe ou "
|
||||
"estaba danado."
|
||||
|
||||
#: pretix/base/forms/questions.py:653 pretix/base/forms/questions.py:662
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Se o deixas baleiro, o billete será válido a partir do momento da compra."
|
||||
|
||||
#: pretix/base/forms/questions.py:709 pretix/base/forms/questions.py:1102
|
||||
#, fuzzy
|
||||
msgid "Street and Number"
|
||||
msgstr "Calle y número"
|
||||
msgstr "Rúa e Número"
|
||||
|
||||
#: pretix/base/forms/questions.py:1166
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
"you additional taxes if you do not enter it."
|
||||
msgstr ""
|
||||
"Opcional, pero dependendo do país no que residas, pode que teñamos que "
|
||||
"cobrarche impostos adicionais se non o introduces."
|
||||
|
||||
#: pretix/base/forms/questions.py:1168 pretix/base/forms/questions.py:1174
|
||||
msgid "If you are registered in Switzerland, you can enter your UID instead."
|
||||
msgstr ""
|
||||
"Se estás rexistrado/a en Suíza, podes introducir o teu UID no seu lugar."
|
||||
|
||||
#: pretix/base/forms/questions.py:1172
|
||||
msgid ""
|
||||
"Optional, but it might be required for you to claim tax benefits on your "
|
||||
"invoice depending on your and the seller’s country of residence."
|
||||
msgstr ""
|
||||
"Opcional, pero pode ser necesario para que solicites beneficios fiscais na "
|
||||
"túa factura dependendo do teu país de residencia e do vendedor."
|
||||
|
||||
#: pretix/base/forms/questions.py:1181
|
||||
#, fuzzy
|
||||
msgid "No invoice requested"
|
||||
msgstr "Tarifa de cancelación"
|
||||
msgstr "Non se solicitou factura"
|
||||
|
||||
#: pretix/base/forms/questions.py:1183
|
||||
msgid "Invoice transmission method"
|
||||
msgstr ""
|
||||
msgstr "Método de transmisión de facturas"
|
||||
|
||||
#: pretix/base/forms/questions.py:1329
|
||||
msgid "You need to provide a company name."
|
||||
@@ -3379,111 +3385,101 @@ msgid ""
|
||||
"If you enter an invoice address, you also need to select an invoice "
|
||||
"transmission method."
|
||||
msgstr ""
|
||||
"Se introduces un enderezo de facturación, tamén debes seleccionar un método "
|
||||
"de transmisión da factura."
|
||||
|
||||
#: pretix/base/forms/questions.py:1385
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The selected transmission type is not available in your country or for your "
|
||||
"type of address."
|
||||
msgstr "El producto seleccionado no está activo o no tiene precio fijo."
|
||||
msgstr ""
|
||||
"O tipo de transmisión seleccionado non está dispoñible no seu país nin para "
|
||||
"o seu tipo de enderezo."
|
||||
|
||||
#: pretix/base/forms/questions.py:1394
|
||||
msgid ""
|
||||
"The selected type of invoice transmission requires a field that is currently "
|
||||
"not available, please reach out to the organizer."
|
||||
msgstr ""
|
||||
"O tipo de transmisión de factura seleccionado require un campo que non está "
|
||||
"dispoñible actualmente. Ponte en contacto co organizador."
|
||||
|
||||
#: pretix/base/forms/questions.py:1398
|
||||
msgid "This field is required for the selected type of invoice transmission."
|
||||
msgstr ""
|
||||
"Este campo é obrigatorio para o tipo de transmisión de factura seleccionado."
|
||||
|
||||
#: pretix/base/forms/user.py:54 pretix/control/forms/organizer.py:458
|
||||
#: pretix/control/forms/users.py:58
|
||||
#, fuzzy
|
||||
msgid "Default timezone"
|
||||
msgstr "Zona horaria predefinida"
|
||||
msgstr "Fuso horario predeterminado"
|
||||
|
||||
#: pretix/base/forms/user.py:55 pretix/control/forms/users.py:59
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Only used for views that are not bound to an event. For all event views, the "
|
||||
"event timezone is used instead."
|
||||
msgstr ""
|
||||
"Sólo se utiliza para vistas que no están vinculadas a un evento. Para todas "
|
||||
"las vistas de eventos, se utiliza la zona horaria de eventos."
|
||||
"Só se usa para vistas que non están vinculadas a un evento. Para todas as "
|
||||
"vistas de eventos, úsase o fuso horario do evento."
|
||||
|
||||
#: pretix/base/forms/user.py:77
|
||||
#, fuzzy
|
||||
#| msgid "Attendee email address"
|
||||
msgid "Change email address"
|
||||
msgstr "Correo electrónico do participante"
|
||||
msgstr "Cambiar enderezo de correo electrónico"
|
||||
|
||||
#: pretix/base/forms/user.py:83
|
||||
msgid "Device name"
|
||||
msgstr "Nombre do dispositivo"
|
||||
|
||||
#: pretix/base/forms/user.py:84
|
||||
#, fuzzy
|
||||
msgid "Device type"
|
||||
msgstr "Tipo de dispositivo"
|
||||
|
||||
#: pretix/base/forms/user.py:85
|
||||
#, fuzzy
|
||||
msgid "Smartphone with the Authenticator application"
|
||||
msgstr "Celular con aplicación de autenticación"
|
||||
msgstr "Teléfono intelixente coa aplicación Authenticator"
|
||||
|
||||
#: pretix/base/forms/user.py:86
|
||||
#, fuzzy
|
||||
msgid "WebAuthn-compatible hardware token (e.g. Yubikey)"
|
||||
msgstr "Hardware compatible con token WebAuthn (p. ej. Yubikey)"
|
||||
msgstr "Token de hardware compatible con WebAuthn (por exemplo, Yubikey)"
|
||||
|
||||
#: pretix/base/forms/user.py:92 pretix/presale/forms/customer.py:383
|
||||
#: pretix/presale/forms/customer.py:456
|
||||
#, fuzzy
|
||||
msgid "The current password you entered was not correct."
|
||||
msgstr "La contraseña actual que ingresó no es correcta."
|
||||
msgstr "O contrasinal actual que introduciches non era correcto."
|
||||
|
||||
#: pretix/base/forms/user.py:95
|
||||
msgid "Please choose a password different to your current one."
|
||||
msgstr ""
|
||||
msgstr "Escolle un contrasinal diferente ao teu actual."
|
||||
|
||||
#: pretix/base/forms/user.py:105 pretix/presale/forms/customer.py:392
|
||||
#: pretix/presale/forms/customer.py:461
|
||||
#, fuzzy
|
||||
msgid "Your current password"
|
||||
msgstr "Su contraseña actual"
|
||||
msgstr "O teu contrasinal actual"
|
||||
|
||||
#: pretix/base/forms/user.py:111 pretix/control/forms/users.py:50
|
||||
#: pretix/presale/forms/customer.py:397
|
||||
#, fuzzy
|
||||
msgid "New password"
|
||||
msgstr "Nueva contraseña"
|
||||
msgstr "New password"
|
||||
|
||||
#: pretix/base/forms/user.py:117 pretix/control/forms/users.py:54
|
||||
#, fuzzy
|
||||
msgid "Repeat new password"
|
||||
msgstr "Repetir la nueva contraseña"
|
||||
msgstr "Repita o novo contrasinal"
|
||||
|
||||
#: pretix/base/forms/user.py:176 pretix/control/forms/users.py:43
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"There already is an account associated with this email address. Please "
|
||||
"choose a different one."
|
||||
msgstr ""
|
||||
"Ya existe una cuenta asociada a este correo electrónico. Por favor, escoja "
|
||||
"otro."
|
||||
"Xa existe unha conta asociada a este enderezo de correo electrónico. Escolle "
|
||||
"unha diferente."
|
||||
|
||||
#: pretix/base/forms/user.py:179
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "Old email address"
|
||||
msgstr "Correo electrónico"
|
||||
msgstr "Enderezo de correo electrónico antigo"
|
||||
|
||||
#: pretix/base/forms/user.py:180
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "New email address"
|
||||
msgstr "Correo electrónico"
|
||||
msgstr "Novo enderezo de correo electrónico"
|
||||
|
||||
#: pretix/base/forms/validators.py:51
|
||||
msgid ""
|
||||
@@ -3492,29 +3488,32 @@ msgid ""
|
||||
"up. Please note: to use literal \"{\" or \"}\", you need to double them as "
|
||||
"\"{{\" and \"}}\"."
|
||||
msgstr ""
|
||||
"Hai un erro coa sintaxe dos marcadores de posición. Comproba que as "
|
||||
"corchetes de apertura \"{\" e de peche \"}\" dos marcadores de posición "
|
||||
"coincidan. Ten en conta que para usar \"{\" ou \"}\" literal, debes "
|
||||
"duplicalos como \"{{\" e \"}}\"."
|
||||
|
||||
#: pretix/base/forms/validators.py:72 pretix/control/views/event.py:870
|
||||
#, fuzzy, python-format
|
||||
#, python-format
|
||||
msgid "Invalid placeholder: {%(value)s}"
|
||||
msgstr "Persona(s) interesada(s) inválida(s): %(value)s"
|
||||
msgstr "Marcador de posición non válido: {%(value)s}"
|
||||
|
||||
#: pretix/base/forms/widgets.py:68
|
||||
#, fuzzy, python-format
|
||||
#, python-format
|
||||
msgid "Sample: %s"
|
||||
msgstr "Ciudad de ejemplo"
|
||||
msgstr "Mostra: %s"
|
||||
|
||||
#: pretix/base/forms/widgets.py:71
|
||||
#, python-brace-format
|
||||
msgid "Available placeholders: {list}"
|
||||
msgstr ""
|
||||
msgstr "Marcadores de posición dispoñibles: {list}"
|
||||
|
||||
#: pretix/base/forms/widgets.py:214 pretix/base/models/items.py:1655
|
||||
#: pretix/plugins/checkinlists/exporters.py:757
|
||||
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:40
|
||||
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:54
|
||||
#, fuzzy
|
||||
msgid "Time"
|
||||
msgstr "Hora"
|
||||
msgstr "Tempo"
|
||||
|
||||
#: pretix/base/forms/widgets.py:234 pretix/base/forms/widgets.py:239
|
||||
msgid "Business or institutional customer"
|
||||
@@ -3527,53 +3526,49 @@ msgstr "Cliente individual"
|
||||
#: pretix/base/invoicing/email.py:50
|
||||
msgid "Email invoice directly to accounting department"
|
||||
msgstr ""
|
||||
"Enviar factura por correo electrónico directamente ao departamento de "
|
||||
"contabilidade"
|
||||
|
||||
#: pretix/base/invoicing/email.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Please enter the same email address twice."
|
||||
msgid ""
|
||||
"If not selected, the invoice will be sent to you using the email address "
|
||||
"listed above."
|
||||
msgstr "Introduce o mesmo enderezo de correo electrónico dúas veces."
|
||||
msgstr ""
|
||||
"Se non se selecciona, a factura enviaraseche usando o enderezo de correo "
|
||||
"electrónico indicado anteriormente."
|
||||
|
||||
#: pretix/base/invoicing/email.py:55
|
||||
#, fuzzy
|
||||
#| msgid "Email address verified"
|
||||
msgid "Email address for invoice"
|
||||
msgstr "Correo electrónico verificado"
|
||||
msgstr "Enderezo de correo electrónico para factura"
|
||||
|
||||
#: pretix/base/invoicing/email.py:91
|
||||
#, fuzzy
|
||||
msgid "PDF via email"
|
||||
msgstr "Vista previa del correo electrónico"
|
||||
msgstr "PDF por correo electrónico"
|
||||
|
||||
#: pretix/base/invoicing/national.py:37
|
||||
msgctxt "italian_invoice"
|
||||
msgid "Italian Exchange System (SdI)"
|
||||
msgstr ""
|
||||
msgstr "Sistema de intercambio italiano (SdI)"
|
||||
|
||||
#: pretix/base/invoicing/national.py:38
|
||||
msgctxt "italian_invoice"
|
||||
msgid "Exchange System (SdI)"
|
||||
msgstr ""
|
||||
msgstr "Sistema de intercambio (SdI)"
|
||||
|
||||
#: pretix/base/invoicing/national.py:49
|
||||
#, fuzzy
|
||||
#| msgid "Gift card code"
|
||||
msgctxt "italian_invoice"
|
||||
msgid "Fiscal code"
|
||||
msgstr "Código da tarxeta de regalo"
|
||||
msgstr "Código fiscal"
|
||||
|
||||
#: pretix/base/invoicing/national.py:53
|
||||
msgctxt "italian_invoice"
|
||||
msgid "Address for certified electronic mail"
|
||||
msgstr ""
|
||||
msgstr "Enderezo para correo electrónico certificado"
|
||||
|
||||
#: pretix/base/invoicing/national.py:57
|
||||
#, fuzzy
|
||||
msgctxt "italian_invoice"
|
||||
msgid "Recipient code"
|
||||
msgstr "Destinatario"
|
||||
msgstr "Código do destinatario"
|
||||
|
||||
#: pretix/base/invoicing/national.py:81
|
||||
msgctxt "italian_invoice"
|
||||
@@ -3583,75 +3578,68 @@ msgid ""
|
||||
"in accordance with the procedures and terms set forth in No. 89757/2018 of "
|
||||
"April 30, 2018, issued by the Director of the Revenue Agency."
|
||||
msgstr ""
|
||||
"Este documento PDF é unha copia visual da factura e non constitúe unha "
|
||||
"factura para efectos do IVE. A factura emítese en formato XML, transmitida "
|
||||
"de acordo cos procedementos e termos establecidos no Regulamento n.º 89757/"
|
||||
"2018, do 30 de abril de 2018, emitido polo Director da Axencia Tributaria."
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:143
|
||||
#, fuzzy, python-format
|
||||
#, python-format
|
||||
msgctxt "invoice"
|
||||
msgid "Page %d of %d"
|
||||
msgstr "Página %d de %d"
|
||||
msgstr "Páxina %d de %d"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:384
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Classic renderer (pretix 1.0)"
|
||||
msgstr "Versión clásica (pretix 1.0)"
|
||||
msgstr "Renderizador clásico (pretix 1.0)"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:428
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice from"
|
||||
msgstr "Factura de"
|
||||
msgstr "Factura dende"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:434
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice to"
|
||||
msgstr "Factura para"
|
||||
msgstr "Factura ata"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:471 pretix/base/invoicing/pdf.py:1222
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Order code"
|
||||
msgstr "Código de la orden"
|
||||
msgstr "Código de pedido"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:480 pretix/base/invoicing/pdf.py:1235
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Cancellation number"
|
||||
msgstr "Número de cancelación"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:486 pretix/base/invoicing/pdf.py:1237
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Original invoice"
|
||||
msgstr "Factura original"
|
||||
msgstr "Factura orixinal"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:491 pretix/base/invoicing/pdf.py:1242
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice number"
|
||||
msgstr "Número de factura"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:499 pretix/base/invoicing/pdf.py:1257
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Cancellation date"
|
||||
msgstr "Fecha de cancelación"
|
||||
msgstr "Data de cancelación"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:505
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Original invoice date"
|
||||
msgstr "Fecha original de la factura"
|
||||
msgstr "Data orixinal da factura"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:512 pretix/base/invoicing/pdf.py:1259
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice date"
|
||||
msgstr "Fecha de la factura"
|
||||
msgstr "Data da factura"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:528
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Event"
|
||||
msgstr "Evento"
|
||||
@@ -3667,7 +3655,7 @@ msgstr ""
|
||||
" ata {to_date}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:609 pretix/base/services/mail.py:512
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice {num}"
|
||||
msgstr "Factura {num}"
|
||||
@@ -3679,25 +3667,21 @@ msgid "Customer reference: {reference}"
|
||||
msgstr "Referencia do cliente: {reference}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:669
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Customer VAT ID"
|
||||
msgstr "Cliente VAT ID"
|
||||
msgstr "CIF do cliente"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:676
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Beneficiary"
|
||||
msgstr "Beneficiario"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:709
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Tax Invoice"
|
||||
msgstr "Impuesto de la factura"
|
||||
msgstr "Factura fiscal"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:710
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
@@ -3706,7 +3690,6 @@ msgstr "Factura"
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:272
|
||||
#: pretix/control/templates/pretixcontrol/order/mail_history.html:70
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:244
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Cancellation"
|
||||
msgstr "Cancelación"
|
||||
@@ -3724,145 +3707,133 @@ msgid "Qty"
|
||||
msgstr "Cant."
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:735 pretix/base/invoicing/pdf.py:1039
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Tax rate"
|
||||
msgstr "Tasa de impuestos"
|
||||
msgstr "Tipo impositivo"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:736
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Net"
|
||||
msgstr "Neto"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:737
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Gross"
|
||||
msgstr "Bruto"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:743
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Amount"
|
||||
msgstr "Monto"
|
||||
msgstr "Cantidade"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:870
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Single price: {net_price} net / {gross_price} gross"
|
||||
msgstr ""
|
||||
msgstr "Prezo único: {net_price} neto / {gross_price} bruto"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:901
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Single price: {price}"
|
||||
msgstr "Precio original"
|
||||
msgstr "Prezo único: {price}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:944 pretix/base/invoicing/pdf.py:949
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice total"
|
||||
msgstr "Total de la factura"
|
||||
msgstr "Total da factura"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:958
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Received payments"
|
||||
msgstr "Pagos recibidos"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:963
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Outstanding payments"
|
||||
msgstr "Pagos no válidos"
|
||||
msgstr "Pagos pendentes"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:980
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Paid by gift card"
|
||||
msgstr "Tarjeta de crédito"
|
||||
msgstr "Pago con tarxeta regalo"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:985
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Remaining amount"
|
||||
msgstr "Monto pendiente"
|
||||
msgstr "Cantidade restante"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1009
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice period: {daterange}"
|
||||
msgstr "Rango de fechas de evento"
|
||||
msgstr "Período de facturación: {daterange}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1040
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Net value"
|
||||
msgstr "Valor neto"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1041
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Gross value"
|
||||
msgstr "Valor bruto"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1042
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Tax"
|
||||
msgstr "Impuesto"
|
||||
msgstr "Imposto"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1072
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "Included taxes"
|
||||
msgstr "Impuestos incluidos"
|
||||
msgstr "Impostos incluídos"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1100
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid ""
|
||||
"Using the conversion rate of 1:{rate} as published by the {authority} on "
|
||||
"{date}, this corresponds to:"
|
||||
msgstr ""
|
||||
"Utilizando el tipo de conversión de 1:{rate} publicado por el Banco Central "
|
||||
"Europeo el {date}, esto corresponde a:"
|
||||
"Usando a taxa de conversión de 1:{rate} tal e como a publicou {authority} o "
|
||||
"{date}, isto corresponde a:"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1115
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid ""
|
||||
"Using the conversion rate of 1:{rate} as published by the {authority} on "
|
||||
"{date}, the invoice total corresponds to {total}."
|
||||
msgstr ""
|
||||
"Utilizando el tipo de conversión de 1:{rate} publicado por el Banco Central "
|
||||
"Europeo el {date}, el total de la factura corresponde a {total}."
|
||||
"Usando a taxa de conversión de 1:{rate} publicada pola {authority} o {date}, "
|
||||
"o total da factura corresponde a {total}."
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1129
|
||||
msgid "Default invoice renderer (European-style letter)"
|
||||
msgstr ""
|
||||
msgstr "Renderizador de facturas predeterminado (carta de estilo europeo)"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1218
|
||||
#, fuzzy
|
||||
msgctxt "invoice"
|
||||
msgid "(Please quote at all times.)"
|
||||
msgstr "Por favor, seleccione una cuota."
|
||||
msgstr "(Por favor, cite en todo momento.)"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1265
|
||||
msgid "Simplified invoice renderer"
|
||||
msgstr ""
|
||||
msgstr "Renderizador de facturas simplificado"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1284
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Event date: {date_range}"
|
||||
msgstr "Rango de fechas de evento"
|
||||
msgstr "Data do evento: {date_range}"
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:128
|
||||
msgid ""
|
||||
"A Peppol participant ID always starts with a prefix, followed by a colon (:)."
|
||||
msgstr ""
|
||||
"Un ID de participante de Peppol sempre comeza cun prefixo, seguido de dous "
|
||||
"puntos (:)."
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:132
|
||||
#, python-format
|
||||
@@ -3870,6 +3841,8 @@ msgid ""
|
||||
"The Peppol participant ID prefix %(number)s is not known to our system. "
|
||||
"Please reach out to us if you are sure this ID is correct."
|
||||
msgstr ""
|
||||
"O noso sistema descoñece o prefixo do ID de participante de Peppol %(number)"
|
||||
"s. Ponte en contacto connosco se estás seguro de que este ID é correcto."
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:136
|
||||
#, python-format
|
||||
@@ -3877,17 +3850,18 @@ msgid ""
|
||||
"The Peppol participant ID does not match the validation rules for the prefix "
|
||||
"%(number)s. Please reach out to us if you are sure this ID is correct."
|
||||
msgstr ""
|
||||
"O ID de participante de Peppol non coincide coas regras de validación para o "
|
||||
"prefixo %(number)s. Ponte en contacto connosco se estás seguro de que este "
|
||||
"ID é correcto."
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:156
|
||||
msgid "Peppol participant ID"
|
||||
msgstr ""
|
||||
msgstr "Identificación de participante de Peppol"
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:170
|
||||
#, fuzzy
|
||||
#| msgid "Gift card code"
|
||||
msgctxt "peppol_invoice"
|
||||
msgid "Visual copy"
|
||||
msgstr "Código da tarxeta de regalo"
|
||||
msgstr "Copia visual"
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:175
|
||||
msgctxt "peppol_invoice"
|
||||
@@ -3896,27 +3870,30 @@ msgid ""
|
||||
"invoice for VAT purposes. The original invoice is issued in XML format and "
|
||||
"transmitted through the Peppol network."
|
||||
msgstr ""
|
||||
"Este documento PDF é unha copia visual da factura e non constitúe unha "
|
||||
"factura para efectos do IVE. A factura orixinal emítese en formato XML e "
|
||||
"transmítese a través da rede Peppol."
|
||||
|
||||
#: pretix/base/logentrytype_registry.py:43
|
||||
msgid ""
|
||||
"The relevant plugin is currently not active. To activate it, click here to "
|
||||
"go to the plugin settings."
|
||||
msgstr ""
|
||||
"O plugin relevante non está activo actualmente. Para activalo, fai clic aquí "
|
||||
"para ir á configuración do plugin."
|
||||
|
||||
#: pretix/base/logentrytype_registry.py:53
|
||||
#, fuzzy
|
||||
msgid "The relevant plugin is currently not active."
|
||||
msgstr "La taquilla seleccionada no está disponible en este momento."
|
||||
msgstr "O plugin relevante non está activo actualmente."
|
||||
|
||||
#: pretix/base/logentrytypes.py:49
|
||||
#, fuzzy
|
||||
msgid "(deleted)"
|
||||
msgstr "Eliminar"
|
||||
msgstr "(eliminado)"
|
||||
|
||||
#: pretix/base/logentrytypes.py:78
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgid "Order {val}"
|
||||
msgstr "Orden {val}"
|
||||
msgstr "Orde {val}"
|
||||
|
||||
#: pretix/base/logentrytypes.py:90
|
||||
#, fuzzy, python-brace-format
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-11-27 13:57+0000\n"
|
||||
"PO-Revision-Date: 2025-09-10 05:00+0000\n"
|
||||
"PO-Revision-Date: 2025-12-04 18:00+0000\n"
|
||||
"Last-Translator: Renne Rocha <renne@rocha.dev.br>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
|
||||
"pretix/pretix/pt_BR/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.13.2\n"
|
||||
"X-Generator: Weblate 5.14.3\n"
|
||||
|
||||
#: pretix/_base_settings.py:87
|
||||
msgid "English"
|
||||
@@ -3286,10 +3286,8 @@ msgid "Repeat password"
|
||||
msgstr "Repita a senha"
|
||||
|
||||
#: pretix/base/forms/auth.py:220 pretix/base/forms/user.py:99
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "Your email address"
|
||||
msgstr "Endereço de email"
|
||||
msgstr "Seu endereço de e-mail"
|
||||
|
||||
#: pretix/base/forms/auth.py:327 pretix/control/forms/orders.py:1041
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:53
|
||||
@@ -3433,10 +3431,8 @@ msgstr ""
|
||||
"as exibições de eventos, o fuso horário do evento é usado."
|
||||
|
||||
#: pretix/base/forms/user.py:77
|
||||
#, fuzzy
|
||||
#| msgid "Attendee email address"
|
||||
msgid "Change email address"
|
||||
msgstr "Email do participante"
|
||||
msgstr "Alterar endereço de e-mail"
|
||||
|
||||
#: pretix/base/forms/user.py:83
|
||||
msgid "Device name"
|
||||
@@ -3486,16 +3482,12 @@ msgstr ""
|
||||
"um diferente."
|
||||
|
||||
#: pretix/base/forms/user.py:179
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "Old email address"
|
||||
msgstr "Endereço de email"
|
||||
msgstr "Endereço de e-mail antigo"
|
||||
|
||||
#: pretix/base/forms/user.py:180
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "New email address"
|
||||
msgstr "Endereço de email"
|
||||
msgstr "Endereço de e-mail novo"
|
||||
|
||||
#: pretix/base/forms/validators.py:51
|
||||
msgid ""
|
||||
@@ -3540,22 +3532,17 @@ msgid "Individual customer"
|
||||
msgstr "Cliente pessoa física"
|
||||
|
||||
#: pretix/base/invoicing/email.py:50
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "To send the invoice directly to your accounting department, please enter "
|
||||
#| "their email address:"
|
||||
msgid "Email invoice directly to accounting department"
|
||||
msgstr ""
|
||||
"Para enviar a fatura diretamente ao seu departamento de contabilidade, "
|
||||
"insira o endereço de e-mail:"
|
||||
"Enviar e-mail com a fatura diretamente para departamento de contabilidade"
|
||||
|
||||
#: pretix/base/invoicing/email.py:51
|
||||
#, fuzzy
|
||||
#| msgid "The invoice was sent to the designated email address."
|
||||
msgid ""
|
||||
"If not selected, the invoice will be sent to you using the email address "
|
||||
"listed above."
|
||||
msgstr "A fatura foi enviada para o endereço de e-mail designado."
|
||||
msgstr ""
|
||||
"Se não selecionado, a fatura será enviada para o endereço de e-mail listado "
|
||||
"a seguir."
|
||||
|
||||
#: pretix/base/invoicing/email.py:55
|
||||
msgid "Email address for invoice"
|
||||
@@ -3778,12 +3765,10 @@ msgid "Remaining amount"
|
||||
msgstr "Valor restante"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1009
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgctxt "invoice"
|
||||
#| msgid "Event date: {date_range}"
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice period: {daterange}"
|
||||
msgstr "Data do evento: {date_range}"
|
||||
msgstr "Período da fatura: {daterange}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1040
|
||||
msgctxt "invoice"
|
||||
@@ -3868,12 +3853,9 @@ msgid "Peppol participant ID"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:170
|
||||
#, fuzzy
|
||||
#| msgctxt "italian_invoice"
|
||||
#| msgid "Fiscal code"
|
||||
msgctxt "peppol_invoice"
|
||||
msgid "Visual copy"
|
||||
msgstr "Código fiscal"
|
||||
msgstr "Cópia visual"
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:175
|
||||
msgctxt "peppol_invoice"
|
||||
@@ -4357,10 +4339,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/auth.py:392
|
||||
#, fuzzy
|
||||
#| msgid "Confirmation code"
|
||||
msgid "pretix confirmation code"
|
||||
msgstr "Código de confirmação"
|
||||
msgstr "código de confirmação do pretix"
|
||||
|
||||
#: pretix/base/models/auth.py:435
|
||||
#: pretix/control/templates/pretixcontrol/auth/forgot.html:7
|
||||
@@ -6298,9 +6278,6 @@ msgstr ""
|
||||
"insira um valor possível por linha."
|
||||
|
||||
#: pretix/base/models/items.py:2310
|
||||
#, fuzzy
|
||||
#| msgctxt "timeframe"
|
||||
#| msgid "Start"
|
||||
msgid "Start"
|
||||
msgstr "Início"
|
||||
|
||||
@@ -7912,10 +7889,8 @@ msgid "123.45 EUR"
|
||||
msgstr "123.45 BRL"
|
||||
|
||||
#: pretix/base/pdf.py:166
|
||||
#, fuzzy
|
||||
#| msgid "Price including add-ons"
|
||||
msgid "Price including bundled products"
|
||||
msgstr "Preço incluindo complementos"
|
||||
msgstr "Preços incluindo produtos empacotados"
|
||||
|
||||
#: pretix/base/pdf.py:175
|
||||
#, fuzzy
|
||||
@@ -9878,10 +9853,8 @@ msgid "Require a phone number per order"
|
||||
msgstr "Exigir um número de telefone por pedido"
|
||||
|
||||
#: pretix/base/settings.py:482
|
||||
#, fuzzy
|
||||
#| msgid "including all taxes"
|
||||
msgid "Rounding of taxes"
|
||||
msgstr "incluindo todos os impostos"
|
||||
msgstr "Arredondamento dos impostos"
|
||||
|
||||
#: pretix/base/settings.py:486
|
||||
msgid ""
|
||||
@@ -10424,18 +10397,12 @@ msgid "Automatic, but prefer invoice date over event date"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py:1142 pretix/base/settings.py:1153
|
||||
#, fuzzy
|
||||
#| msgctxt "invoice"
|
||||
#| msgid "Invoice date"
|
||||
msgid "Invoice date"
|
||||
msgstr "Data da fatura"
|
||||
|
||||
#: pretix/base/settings.py:1146
|
||||
#, fuzzy
|
||||
#| msgctxt "subevent"
|
||||
#| msgid "Date ordering"
|
||||
msgid "Date of service"
|
||||
msgstr "Ordenação de datas"
|
||||
msgstr "Data do serviço"
|
||||
|
||||
#: pretix/base/settings.py:1155
|
||||
msgid ""
|
||||
@@ -12166,17 +12133,7 @@ msgid "Invoice {invoice_number}"
|
||||
msgstr "Fatura {invoice_number}"
|
||||
|
||||
#: pretix/base/settings.py:2789
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "somebody requested a list of your orders for {event}.\n"
|
||||
#| "The list is as follows:\n"
|
||||
#| "\n"
|
||||
#| "{orders}\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "Your {event} team"
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -12189,12 +12146,12 @@ msgid ""
|
||||
msgstr ""
|
||||
"Olá,\n"
|
||||
"\n"
|
||||
"Segue anexo uma nova fatura para o pedido {code} para {evento} . Este pedido "
|
||||
"foi feito por {order_email}.\n"
|
||||
"Em anexo você encontrará uma nova fatura para o pedido {code} para {event}. "
|
||||
"Este pedido foi feito por {order_email}.\n"
|
||||
"\n"
|
||||
"Atenciosamente, \n"
|
||||
"\n"
|
||||
"Equipe organizadora de {event}"
|
||||
"Organização {event}"
|
||||
|
||||
#: pretix/base/settings.py:2807 pretix/base/settings.py:2823
|
||||
#, python-brace-format
|
||||
@@ -14023,21 +13980,16 @@ msgstr ""
|
||||
"que o cartão-presente é emitido."
|
||||
|
||||
#: pretix/control/forms/event.py:813
|
||||
#, fuzzy
|
||||
#| msgid "including all taxes"
|
||||
msgid "Prices including tax"
|
||||
msgstr "incluindo todos os impostos"
|
||||
msgstr "Preços incluindo impostos"
|
||||
|
||||
#: pretix/control/forms/event.py:814
|
||||
msgid "Recommended if you sell tickets at least partly to consumers."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py:818
|
||||
#, fuzzy
|
||||
#| msgctxt "reporting_timeframe"
|
||||
#| msgid "All future (excluding today)"
|
||||
msgid "Prices excluding tax"
|
||||
msgstr "Todos os futuros (excluindo hoje)"
|
||||
msgstr "Preços excluindo impostos"
|
||||
|
||||
#: pretix/control/forms/event.py:819
|
||||
msgid "Recommended only if you sell tickets primarily to business customers."
|
||||
@@ -17410,10 +17362,9 @@ msgstr ""
|
||||
"O endereço de e-mail foi alterado de \"{old_email}\" para \"{new_email}\"."
|
||||
|
||||
#: pretix/control/logdisplay.py:673
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Your email address has been updated."
|
||||
#, python-brace-format
|
||||
msgid "Your email address {email} has been confirmed."
|
||||
msgstr "Seu endereço de email foi atualizado."
|
||||
msgstr "Seu endereço de e-mail {email} foi confirmado."
|
||||
|
||||
#: pretix/control/logdisplay.py:685
|
||||
#, python-brace-format
|
||||
@@ -19690,6 +19641,20 @@ msgid ""
|
||||
"Best regards,\n"
|
||||
"Your pretix team\n"
|
||||
msgstr ""
|
||||
"Olá,\n"
|
||||
"\n"
|
||||
"%(reason)s\n"
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Por favor, nunca forneça este código para outra pessoa. Nosso time de "
|
||||
"suporte nunca irá solicitar este código.\n"
|
||||
"\n"
|
||||
"Se você não solicitou este código, por favor entre em contato conosco "
|
||||
"imediatamente.\n"
|
||||
"\n"
|
||||
"Atenciosamente,\n"
|
||||
"Time pretix\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/email_setup.txt:1
|
||||
#, python-format
|
||||
@@ -21314,10 +21279,8 @@ msgid "with custom rules"
|
||||
msgstr "Regras personalizadas"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/tax.html:110
|
||||
#, fuzzy
|
||||
#| msgid "Base settings"
|
||||
msgid "Tax settings"
|
||||
msgstr "Configurações base"
|
||||
msgstr "Configurações de impostos"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_delete.html:4
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_delete.html:6
|
||||
@@ -26144,7 +26107,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:29
|
||||
msgid "Download data"
|
||||
msgstr ""
|
||||
msgstr "Baixar dados"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:34
|
||||
msgid "Step 2: Confirm deletion"
|
||||
@@ -26475,7 +26438,7 @@ msgstr "Adicionar um dispositivo de autenticação de dois fatores"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/user/2fa_confirm_totp.html:8
|
||||
msgid "To set up this device, please follow the following steps:"
|
||||
msgstr ""
|
||||
msgstr "Para configurar este dispositivo, por favor siga os passos a seguir:"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/user/2fa_confirm_totp.html:12
|
||||
msgid "Download the Google Authenticator application to your phone:"
|
||||
@@ -26901,11 +26864,11 @@ msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:6
|
||||
msgid "Session notes"
|
||||
msgstr ""
|
||||
msgstr "Notas de sessão"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:17
|
||||
msgid "Audit log"
|
||||
msgstr ""
|
||||
msgstr "Log de auditoria"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:30
|
||||
msgid "Method"
|
||||
@@ -27949,7 +27912,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py:237
|
||||
msgid "The selected category has been deleted."
|
||||
msgstr ""
|
||||
msgstr "A categoria selecionada foi excluída"
|
||||
|
||||
#: pretix/control/views/item.py:322
|
||||
msgid "The new category has been created."
|
||||
@@ -29874,7 +29837,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:239
|
||||
msgid "Please fill out your bank account details."
|
||||
msgstr ""
|
||||
msgstr "Por favor, preencha os detalhes da sua conta bancária."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:243
|
||||
msgid "Please enter your bank account details."
|
||||
@@ -30175,7 +30138,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:122
|
||||
msgid "Scan the QR code with your banking app"
|
||||
msgstr ""
|
||||
msgstr "Escanear o QR Code com o seu aplicativo bancário"
|
||||
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:5
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:7
|
||||
@@ -30746,6 +30709,8 @@ msgid ""
|
||||
"We're waiting for an answer from PayPal regarding your payment. Please "
|
||||
"contact us, if this takes more than a few hours."
|
||||
msgstr ""
|
||||
"Estamos aguardando por informações do PayPal referentes ao seu pagamento. "
|
||||
"Por favor, entre em contato conosco se isso demorar mais que algumas horas."
|
||||
|
||||
#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:17
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/redirect.html:17
|
||||
@@ -33370,19 +33335,17 @@ msgstr "Organizador: {organizer}"
|
||||
#: pretix/presale/ical.py:139
|
||||
#, python-brace-format
|
||||
msgid "{event} - {item}"
|
||||
msgstr ""
|
||||
msgstr "{event} - {item}"
|
||||
|
||||
#: pretix/presale/ical.py:147
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Start date"
|
||||
#, python-brace-format
|
||||
msgid "Start: {datetime}"
|
||||
msgstr "Data inicial"
|
||||
msgstr "Início: {datetime}"
|
||||
|
||||
#: pretix/presale/ical.py:150
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Admission: {datetime}"
|
||||
#, python-brace-format
|
||||
msgid "End: {datetime}"
|
||||
msgstr "Admissão: {datetime}"
|
||||
msgstr "Término: {datetime}"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/base.html:44
|
||||
#, fuzzy
|
||||
@@ -35632,10 +35595,8 @@ msgid "The following gift cards are available in your customer account:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/giftcard/checkout.html:24
|
||||
#, fuzzy
|
||||
#| msgid "Issued gift cards"
|
||||
msgid "Use gift card"
|
||||
msgstr "Cartões-presente emitidos"
|
||||
msgstr "Usar cartão-presente"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/giftcard/checkout_confirm.html:4
|
||||
#, python-format
|
||||
@@ -35754,10 +35715,9 @@ msgid "Expired since %(date)s"
|
||||
msgstr "Expirado desde"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:46
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Valid until %(datetime)s"
|
||||
#, python-format
|
||||
msgid "Valid until %(date)s"
|
||||
msgstr "Válido até %(datetime)s"
|
||||
msgstr "Válido até %(date)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:66
|
||||
#, fuzzy
|
||||
@@ -36287,10 +36247,8 @@ msgid "The selected date does not exist in this event series."
|
||||
msgstr "A data selecionada não existe nesta série de eventos."
|
||||
|
||||
#: pretix/presale/views/widget.py:412
|
||||
#, fuzzy
|
||||
#| msgid "The selected seat \"{seat}\" is not available."
|
||||
msgid "The selected date is not available."
|
||||
msgstr "O assento selecionado \"{seat}\" não está disponível."
|
||||
msgstr "A data selecionada não está disponível."
|
||||
|
||||
#: pretix/presale/views/widget.py:476
|
||||
#, python-format
|
||||
|
||||
@@ -41,15 +41,20 @@ for app in apps.get_app_configs():
|
||||
if hasattr(app, 'PretixPluginMeta'):
|
||||
if importlib.util.find_spec(app.name + '.urls'):
|
||||
urlmod = importlib.import_module(app.name + '.urls')
|
||||
single_plugin_patterns = []
|
||||
|
||||
if hasattr(urlmod, 'event_patterns'):
|
||||
patterns = plugin_event_urls(urlmod.event_patterns, plugin=app.name)
|
||||
raw_plugin_patterns.append(
|
||||
re_path(r'^(?P<event>[^/]+)/', include((patterns, app.label)))
|
||||
single_plugin_patterns.append(
|
||||
re_path(r'^(?P<event>[^/]+)/', include(patterns))
|
||||
)
|
||||
|
||||
if hasattr(urlmod, 'organizer_patterns'):
|
||||
patterns = plugin_event_urls(urlmod.organizer_patterns, plugin=app.name)
|
||||
single_plugin_patterns += plugin_event_urls(urlmod.organizer_patterns, plugin=app.name)
|
||||
|
||||
if single_plugin_patterns:
|
||||
raw_plugin_patterns.append(
|
||||
re_path(r'', include((patterns, app.label)))
|
||||
re_path(r'', include((single_plugin_patterns, app.label)))
|
||||
)
|
||||
|
||||
plugin_patterns = [
|
||||
|
||||
@@ -42,15 +42,20 @@ for app in apps.get_app_configs():
|
||||
if hasattr(app, 'PretixPluginMeta'):
|
||||
if importlib.util.find_spec(app.name + '.urls'):
|
||||
urlmod = importlib.import_module(app.name + '.urls')
|
||||
if hasattr(urlmod, 'event_patterns'):
|
||||
patterns = plugin_event_urls(urlmod.event_patterns, plugin=app.name)
|
||||
raw_plugin_patterns.append(
|
||||
re_path(r'^(?P<event>[^/]+)/', include((patterns, app.label)))
|
||||
)
|
||||
single_plugin_patterns = []
|
||||
|
||||
if hasattr(urlmod, 'organizer_patterns'):
|
||||
patterns = plugin_event_urls(urlmod.organizer_patterns, plugin=app.name)
|
||||
single_plugin_patterns += plugin_event_urls(urlmod.organizer_patterns, plugin=app.name)
|
||||
|
||||
if hasattr(urlmod, 'event_patterns'):
|
||||
plugin_event_patterns = plugin_event_urls(urlmod.event_patterns, plugin=app.name)
|
||||
single_plugin_patterns.append(
|
||||
re_path(r'^(?P<event>[^/]+)/', include(plugin_event_patterns))
|
||||
)
|
||||
|
||||
if single_plugin_patterns:
|
||||
raw_plugin_patterns.append(
|
||||
re_path(r'', include((patterns, app.label)))
|
||||
re_path(r'', include((single_plugin_patterns, app.label)))
|
||||
)
|
||||
|
||||
plugin_patterns = [
|
||||
|
||||
@@ -34,8 +34,10 @@
|
||||
|
||||
import json
|
||||
import logging
|
||||
import operator
|
||||
import re
|
||||
from decimal import Decimal
|
||||
from functools import reduce
|
||||
|
||||
import dateutil.parser
|
||||
from celery.exceptions import MaxRetriesExceededError
|
||||
@@ -117,20 +119,26 @@ def _find_order_for_code(base_qs, code):
|
||||
pass
|
||||
|
||||
|
||||
def _find_order_for_invoice_id(base_qs, prefix, number):
|
||||
def _find_order_for_invoice_id(base_qs, prefixes, number):
|
||||
try:
|
||||
# Working with __iregex here is an experiment, if this turns out to be too slow in production
|
||||
# we might need to switch to a different approach.
|
||||
r = [
|
||||
Q(
|
||||
prefix__istartswith=prefix, # redundant, but hopefully makes it a little faster
|
||||
full_invoice_no__iregex=prefix + r'[\- ]*0*' + number
|
||||
)
|
||||
for prefix in set(prefixes)
|
||||
]
|
||||
return base_qs.select_related('order').get(
|
||||
prefix__istartswith=prefix, # redundant, but hopefully makes it a little faster
|
||||
full_invoice_no__iregex=prefix + r'[\- ]*0*' + number
|
||||
reduce(operator.or_, r)
|
||||
).order
|
||||
except (Invoice.DoesNotExist, Invoice.MultipleObjectsReturned):
|
||||
pass
|
||||
|
||||
|
||||
@transaction.atomic
|
||||
def _handle_transaction(trans: BankTransaction, matches: tuple, event: Event = None, organizer: Organizer = None):
|
||||
def _handle_transaction(trans: BankTransaction, matches: tuple, regex_match_to_slug, event: Event = None, organizer: Organizer = None):
|
||||
orders = []
|
||||
if event:
|
||||
for slug, code in matches:
|
||||
@@ -139,18 +147,19 @@ def _handle_transaction(trans: BankTransaction, matches: tuple, event: Event = N
|
||||
if order.code not in {o.code for o in orders}:
|
||||
orders.append(order)
|
||||
else:
|
||||
order = _find_order_for_invoice_id(Invoice.objects.filter(event=event), slug, code)
|
||||
order = _find_order_for_invoice_id(Invoice.objects.filter(event=event), (slug, regex_match_to_slug.get(slug, slug)), code)
|
||||
if order and order.code not in {o.code for o in orders}:
|
||||
orders.append(order)
|
||||
else:
|
||||
qs = Order.objects.filter(event__organizer=organizer)
|
||||
for slug, code in matches:
|
||||
order = _find_order_for_code(qs.filter(event__slug__iexact=slug), code)
|
||||
original_slug = regex_match_to_slug.get(slug, slug)
|
||||
order = _find_order_for_code(qs.filter(Q(event__slug__iexact=slug) | Q(event__slug__iexact=original_slug)), code)
|
||||
if order:
|
||||
if order.code not in {o.code for o in orders}:
|
||||
orders.append(order)
|
||||
else:
|
||||
order = _find_order_for_invoice_id(Invoice.objects.filter(event__organizer=organizer), slug, code)
|
||||
order = _find_order_for_invoice_id(Invoice.objects.filter(event__organizer=organizer), (slug, original_slug), code)
|
||||
if order and order.code not in {o.code for o in orders}:
|
||||
orders.append(order)
|
||||
|
||||
@@ -366,22 +375,37 @@ def process_banktransfers(self, job: int, data: list) -> None:
|
||||
transactions = _get_unknown_transactions(job, data, **job.owner_kwargs)
|
||||
|
||||
# Match order codes
|
||||
regex_match_to_slug = {}
|
||||
code_len_agg = Order.objects.filter(event__organizer=job.organizer).annotate(
|
||||
clen=Length('code')
|
||||
).aggregate(min=Min('clen'), max=Max('clen'))
|
||||
if job.event:
|
||||
prefixes = {job.event.slug.upper()}
|
||||
prefixes = {job.event.slug.upper(), job.event.slug.upper().replace("-", "")}
|
||||
if "-" in job.event.slug:
|
||||
regex_match_to_slug[job.event.slug.upper().replace("-", "")] = job.event.slug
|
||||
else:
|
||||
prefixes = {e.slug.upper() for e in job.organizer.events.all()}
|
||||
prefixes = set()
|
||||
for e in job.organizer.events.all():
|
||||
prefixes.add(e.slug.upper())
|
||||
if "-" in e.slug:
|
||||
prefixes.add(e.slug.upper().replace("-", ""))
|
||||
regex_match_to_slug[e.slug.upper().replace("-", "")] = e.slug
|
||||
|
||||
# Match invoice numbers
|
||||
inr_len_agg = Invoice.objects.filter(event__organizer=job.organizer).annotate(
|
||||
clen=Length('invoice_no')
|
||||
).aggregate(min=Min('clen'), max=Max('clen'))
|
||||
if job.event:
|
||||
prefixes |= {p.rstrip(' -') for p in Invoice.objects.filter(event=job.event).distinct().values_list('prefix', flat=True)}
|
||||
invoice_prefixes = Invoice.objects.filter(event=job.event)
|
||||
else:
|
||||
prefixes |= {p.rstrip(' -') for p in Invoice.objects.filter(event__organizer=job.organizer).distinct().values_list('prefix', flat=True)}
|
||||
invoice_prefixes = Invoice.objects.filter(event__organizer=job.organizer)
|
||||
for p in invoice_prefixes.order_by().distinct().values_list('prefix', flat=True):
|
||||
prefix = p.rstrip(" -")
|
||||
prefixes.add(prefix)
|
||||
if "-" in prefix:
|
||||
prefix_nodash = prefix.replace("-", "")
|
||||
prefixes.add(prefix_nodash)
|
||||
regex_match_to_slug[prefix_nodash] = prefix
|
||||
|
||||
pattern = re.compile(
|
||||
"(%s)[ \\-_]*([A-Z0-9]{%s,%s})" % (
|
||||
@@ -409,9 +433,9 @@ def process_banktransfers(self, job: int, data: list) -> None:
|
||||
|
||||
if matches:
|
||||
if job.event:
|
||||
_handle_transaction(trans, matches, event=job.event)
|
||||
_handle_transaction(trans, matches, regex_match_to_slug, event=job.event)
|
||||
else:
|
||||
_handle_transaction(trans, matches, organizer=job.organizer)
|
||||
_handle_transaction(trans, matches, regex_match_to_slug, organizer=job.organizer)
|
||||
else:
|
||||
trans.state = BankTransaction.STATE_NOMATCH
|
||||
trans.save()
|
||||
|
||||
@@ -45,6 +45,8 @@ def env():
|
||||
def test_event_main_domain_front_page(env):
|
||||
assert eventreverse(env[1], 'presale:event.index') == '/mrmcd/2015/'
|
||||
assert eventreverse(env[0], 'presale:organizer.index') == '/mrmcd/'
|
||||
assert eventreverse(env[1], 'plugins:testdummy:view') == '/mrmcd/2015/testdummy'
|
||||
assert eventreverse(env[0], 'plugins:testdummy:view') == '/mrmcd/testdummy'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -52,12 +54,16 @@ def test_event_custom_domain_kwargs(env):
|
||||
KnownDomain.objects.create(domainname='foobar', organizer=env[0])
|
||||
KnownDomain.objects.create(domainname='barfoo', organizer=env[0], event=env[1])
|
||||
assert eventreverse(env[1], 'presale:event.checkout', {'step': 'payment'}) == 'http://barfoo/checkout/payment/'
|
||||
assert eventreverse(env[0], 'plugins:testdummy:view') == 'http://foobar/testdummy'
|
||||
assert eventreverse(env[1], 'plugins:testdummy:view') == 'http://barfoo/testdummy'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_event_org_domain_kwargs(env):
|
||||
KnownDomain.objects.create(domainname='foobar', organizer=env[0])
|
||||
assert eventreverse(env[1], 'presale:event.checkout', {'step': 'payment'}) == 'http://foobar/2015/checkout/payment/'
|
||||
assert eventreverse(env[0], 'plugins:testdummy:view') == 'http://foobar/testdummy'
|
||||
assert eventreverse(env[1], 'plugins:testdummy:view') == 'http://foobar/2015/testdummy'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -65,9 +71,13 @@ def test_event_org_alt_domain_kwargs(env):
|
||||
KnownDomain.objects.create(domainname='foobar', organizer=env[0])
|
||||
d = KnownDomain.objects.create(domainname='altfoo', organizer=env[0], mode=KnownDomain.MODE_ORG_ALT_DOMAIN)
|
||||
assert eventreverse(env[1], 'presale:event.checkout', {'step': 'payment'}) == 'http://foobar/2015/checkout/payment/'
|
||||
assert eventreverse(env[1], 'plugins:testdummy:view') == 'http://foobar/2015/testdummy'
|
||||
d.event_assignments.create(event=env[1])
|
||||
with scopes_disabled():
|
||||
assert eventreverse(Event.objects.get(pk=env[1].pk), 'presale:event.checkout', {'step': 'payment'}) == 'http://altfoo/2015/checkout/payment/'
|
||||
event = Event.objects.get(pk=env[1].pk)
|
||||
assert eventreverse(event, 'presale:event.checkout', {'step': 'payment'}) == 'http://altfoo/2015/checkout/payment/'
|
||||
assert eventreverse(env[0], 'plugins:testdummy:view') == 'http://foobar/testdummy'
|
||||
assert eventreverse(event, 'plugins:testdummy:view') == 'http://altfoo/2015/testdummy'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
@@ -385,6 +385,20 @@ def test_mark_paid_organizer_dash_in_slug(env, orga_job):
|
||||
assert env[2].status == Order.STATUS_PAID
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_mark_paid_organizer_dash_in_slug_missing(env, orga_job):
|
||||
env[0].slug = "foo-bar"
|
||||
env[0].save()
|
||||
process_banktransfers(orga_job, [{
|
||||
'payer': 'Karla Kundin',
|
||||
'reference': 'Bestellung FOOBAR1234S',
|
||||
'date': '2016-01-26',
|
||||
'amount': '23.00'
|
||||
}])
|
||||
env[2].refresh_from_db()
|
||||
assert env[2].status == Order.STATUS_PAID
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_mark_paid_organizer_varying_order_code_length(env, orga_job):
|
||||
env[2].code = "123412341234"
|
||||
|
||||
52
src/tests/testdummy/urls.py
Normal file
52
src/tests/testdummy/urls.py
Normal file
@@ -0,0 +1,52 @@
|
||||
#
|
||||
# This file is part of pretix (Community Edition).
|
||||
#
|
||||
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||
# Copyright (C) 2020-today pretix GmbH and contributors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
||||
# Public License as published by the Free Software Foundation in version 3 of the License.
|
||||
#
|
||||
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||
# this file, see <https://pretix.eu/about/en/license>.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
from django.http import HttpResponse
|
||||
from django.urls import path
|
||||
|
||||
|
||||
def view(request):
|
||||
return HttpResponse("")
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
"testdummy",
|
||||
view,
|
||||
name="view",
|
||||
),
|
||||
]
|
||||
|
||||
organizer_patterns = [
|
||||
path(
|
||||
"testdummy",
|
||||
view,
|
||||
name="view",
|
||||
),
|
||||
]
|
||||
|
||||
event_patterns = [
|
||||
path(
|
||||
"testdummy",
|
||||
view,
|
||||
name="view",
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user