first commit

This commit is contained in:
root
2026-03-14 09:42:12 +00:00
commit 0adbd20c2c
10991 changed files with 1646955 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from . import routes
__all__ = [routes]

Binary file not shown.

View File

@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html xmlns:py="http://genshi.edgewall.org/">
<head>
<title>Subscription Request</title>
</head>
<body>
<py:for each="record in records">
<div style="display: block; text-align: center">
<div>
<h1>Just one more step...</h1>
<py:choose>
<py:when test="record.party and record.party.name">
<p>${record.party.name}</p>
</py:when>
<py:otherwise>
<p>${record.email}</p>
</py:otherwise>
</py:choose>
<form action="${record.get_email_subscribe_url()}">
<py:for each="name, value in extract_params(record.get_email_subscribe_url())">
<input type="hidden" name="${name}" value="${value}"/>
</py:for>
<button type="submit"
style="cursor: pointer;
padding: 0.5em 1em; font-size: 2em;
border: 1px solid #2E6DA4; border-radius: 4px;
color: #FFF; background-color: #337AB7;">
Subscribe to ${record.list_.name}
</button>
</form>
</div>
<hr style="margin-top: 20px;
border-style: solid none none; border-color: #EEE"></hr>
<div style="font-size: 80%; color: #777">
<p>Button is not working? Paste this into your browser:</p>
<p>${record.get_email_subscribe_url()}</p>
<p>If you received this email by mistake, just ignore it.</p>
</div>
</div>
</py:for>
</body>
</html>

View File

@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html xmlns:py="http://genshi.edgewall.org/">
<head>
<title>Request to Unsubscribe</title>
</head>
<body>
<py:for each="record in records">
<div style="display: block; text-align: center">
<div>
<h1>Just one more step...</h1>
<py:choose>
<py:when test="record.party and record.party.name">
<p>${record.party.name}</p>
</py:when>
<py:otherwise>
<p>${record.email}</p>
</py:otherwise>
</py:choose>
<form action="${record.get_email_unsubscribe_url()}">
<py:for each="name, value in extract_params(record.get_email_unsubscribe_url())">
<input type="hidden" name="${name}" value="${value}"/>
</py:for>
<button type="submit"
style="cursor: pointer;
padding: 0.5em 1em; font-size: 2em;
border: 1px solid #2E6DA4; border-radius: 4px;
color: #FFF; background-color: #337AB7;">
Unsubscribe from ${record.list_.name}
</button>
</form>
</div>
<hr style="margin-top: 20px;
border-style: solid none none; border-color: #EEE"></hr>
<div style="font-size: 80%; color: #777">
<p>Button is not working? Paste this into your browser:</p>
<p>${record.get_email_unsubscribe_url()}</p>
<p>If you received this email by mistake, just ignore it.</p>
</div>
</div>
</py:for>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

View File

@@ -0,0 +1,12 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model.exceptions import ValidationError
class TemplateError(ValidationError):
pass
class EMailValidationError(ValidationError):
pass

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

After

Width:  |  Height:  |  Size: 247 B

View File

@@ -0,0 +1,15 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import PoolMeta
class Cron(metaclass=PoolMeta):
__name__ = 'ir.cron'
@classmethod
def __setup__(cls):
super().__setup__()
cls.method.selection.extend([
('marketing.email.message|process',
"Send Marketing Messages"),
])

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,242 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr "Correu electrònic"
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr "Token del correu electrònic"
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr "Llista"
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Tercer"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr "Usuari web"
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr "Correus electrònics"
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Idioma"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Nom"
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr "Subscrit"
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Contingut"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "De"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr "Llista"
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr "Estat"
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr "Títol"
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr "URLs"
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr "Correu electrònic"
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr "Llista"
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Missatge"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
"Deixeu en blanc per a utilitzar el valor definit al fitxer de configuració."
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr "Llistes de correu electrònic"
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr "Missatges"
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr "Correus electrònics"
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr "Sol·licitud de subscripció"
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr "Sol·licitud de cancel·lació de subscripció"
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr "Envia prova"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr "Tot"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr "Esborrany"
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr "Enviant"
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr "El correu electrònic \"%(email)s\" del registre \"%(record)s\" no es vàlid."
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
"Les direccions de correu només es poden subscriure una vegada a cada llista."
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
"Contingut invàlid al missatge \"%(message)s\" amb l'excepció "
"\"%(exception)s\"."
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Esborrany"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr "Envia"
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr "Envia prova"
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr "Llistes de correu electrònic"
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr "Correus electrònics de marketing"
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr "Llista de correu electrònic de màrqueting"
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr "Missatge de correu electrònic de màrqueting"
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr "Envia missatge de prova del correu electrònic de màrqueting"
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "El botó no funciona? Empega això al teu navegador:"
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Si heu rebut aquest correu per error, ignoreu-lo."
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr "Només un pas més..."
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr "Subscriures a"
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr "Sol·licitud de subscripció"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "El botó no funciona? Empega això al teu navegador:"
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Si heu rebut aquest correu per error, ignoreu-lo."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr "Només un pas més..."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr "Sol·licitud de cancel·lacio de subscripció"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr "Cancela la subscripció a"
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr "Envia correus de marketing"
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr "Esborrany"
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr "Enviant"
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr "Enviat"
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr "Edita"
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr "A:"
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr "A:"
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr "Cancel·la"
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr "Envia"

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,244 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr "E-Mail"
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr "E-Mail Token"
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr "Liste"
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Partei"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr "Webbenutzer"
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr "E-Mails"
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Sprache"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Name"
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr "Angemeldet"
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Inhalt"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "Von"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr "Liste"
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr "Status"
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr "Betreff"
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr "URLs"
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr "E-Mails"
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr "Liste"
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Nachricht"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Leer lassen, um den Wert aus der Konfigurationsdatei zu verwenden."
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr "Mailinglisten"
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr "Nachrichten"
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr "E-Mails"
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr "Mailing Anmeldung"
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr "Mailing Abmeldung"
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr "Testversand"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr "Alle"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr "Entwurf"
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr "Im Versand"
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr "Die E-Mail-Adresse \"%(email)s\" für \"%(record)s\" ist ungültig."
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr "E-Mail-Adressen können nur einmal je Liste angemeldet werden."
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr "Ungültiger Inhalt in Nachricht \"%(message)s\" mit Fehler \"%(exception)s\"."
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Entwurf"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr "Senden"
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr "Test versenden"
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr "Mailinglisten"
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr "Marketing E-Mail"
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr "Marketing E-Mail Liste"
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr "Marketing E-Mail Nachricht"
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr "Marketing E-Mail Test senden"
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
"Wenn der Button nicht funktioniert, kopieren Sie bitte die folgende Zeile in"
" die Adresszeile Ihres Browsers:"
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
"Ignorieren Sie bitte diese E-Mail, wenn Sie sie irrtümlich erhalten haben."
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr "Nur noch ein weiterer Schritt..."
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr "Anmeldung für"
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr "Anmeldeanfrage"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
"Wenn der Button nicht funktioniert, kopieren Sie bitte die folgende Zeile in"
" die Adresszeile Ihres Browsers:"
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
"Ignorieren Sie bitte diese E-Mail, wenn Sie sie irrtümlich erhalten haben."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr "Nur noch ein weiterer Schritt..."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr "Abmeldeanfrage"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr "Abmelden von"
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr "Marketing Nachrichten versenden"
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr "Entwurf"
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr "Im Versand"
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr "Gesendet"
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr "Bearbeiten"
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr "An:"
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr "An:"
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr "Abbrechen"
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr "Senden"

View File

@@ -0,0 +1,243 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr "Correo electrónico"
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr "Token de correo electrónico"
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr "Lista"
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Tercero"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr "Usuario web"
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr "Correos electrónicos"
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Idioma"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Nombre"
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr "Suscrito"
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Contenido"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "De"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr "Lista"
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr "Estado"
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr "Título"
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr "URLs"
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr "Correo electrónico"
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr "Lista"
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Mensaje"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
"Dejar en blanco para usar el valor definido en el fichero de configuración."
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr "Listas de correos electrónicos"
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr "Mensajes"
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr "Correos electrónicos"
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr "Solicitud de suscripción"
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr "Solicitud de cancelación de suscripción"
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr "Enviar prueba"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr "Todo"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr "Borrador"
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr "Enviando"
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr "El correo electrónico \"%(email)s\" de \"%(record)s\" no es valido."
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
"Las direcciones de correo electrónico solo se pueden suscribir una vez a "
"cada lista."
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
"Contenido inválido en el mensaje \"%(message)s\" con la excepción "
"\"%(exception)s\"."
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Borrador"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr "Enviar"
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr "Enviar prueba"
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr "Listas de correos electrónicos"
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr "Email Marketing"
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr "Lista de Email Marketing"
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr "Mensaje de Email Marketing"
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr "Enviar mensaje de prueba de Email Marketing"
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "¿El botón no funciona? Pegue esto en su navegador:"
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Si ha recibido este correo electrónico por error, por favor ignórelo."
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr "Solo un paso más ..."
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr "Suscribirse a"
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr "Solicitud de suscripción"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "¿El botón no funciona? Pega esto en tu navegador:"
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Si ha recibido este correo electrónico por error, por favor ignórelo."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr "Solo un paso más ..."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr "Solicitud de cancelación de suscripción"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr "Cancelar suscripción a"
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr "Enviar correos de marketing"
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr "Borrador"
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr "Enviando"
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr "Enviado"
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr "Editar"
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr "Para:"
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr "Para:"
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr "Enviar"

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,243 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr "Adresse électronique"
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr "Jeton de courrier électronique"
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr "Liste"
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Tiers"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr "Utilisateur web"
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr "Courriels"
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Langue"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Nom"
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr "Abonné"
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Contenu"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "De"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr "Liste"
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr "État"
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr "Titre"
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr "URLs"
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr "Adresse électronique"
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr "Liste"
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Message"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Laissez vide pour la valeur définie dans le fichier de configuration."
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr "Listes de diffusion"
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr "Messages"
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr "Adresses électroniques"
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr "Demande d'abonnement"
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr "Demande de désabonnement"
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr "Envoyer un test"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr "Tous"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr "Brouillons"
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr "Envoi en cours"
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
"L'adresse de courriel « %(email)s » pour « %(record)s » n'est pas valide."
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
"Les adresses de courriel ne peuvent être abonnées qu'une seule fois à chaque"
" liste."
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
"Contenu non valide dans le message « %(message)s » avec l'exception "
"« %(exception)s »."
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Brouillon"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr "Envoyer"
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr "Envoyer un test"
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr "Listes de diffusion"
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr "Courriel marketing"
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr "Liste de diffusion marketing"
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr "Message de courriel marketing"
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr "Test d'envoi de courriel marketing"
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Le bouton ne fonctionne pas ? Copier ceci dans votre navigateur :"
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Si vous avez reçu ce courriel par erreur, ignorez le."
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr "Encore une étape.."
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr "S'abonner à"
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr "Demande d'abonnement"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Le bouton ne fonctionne pas ? Copier ceci dans votre navigateur :"
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Si vous avez reçu ce courriel par erreur, ignorez le."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr "Encore une étape.."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr "Demande de désabonnement"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr "Se désabonner de"
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr "Envoyer les messages marketing"
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr "Brouillon"
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr "Envoi en cours"
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr "Envoyé"
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr "Éditer"
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr "À :"
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr "À :"
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr "Annuler"
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr "Envoyer"

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Pihak"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Bahasa"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Nama"
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Kandungan"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "Dari"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Pesan"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Biarkan kosong untuk nilai yang ditentukan dalam file konfigurasi."
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Rancangan"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Tombol tidak berfungsi? Lekatkan ini pada browser Anda:"
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Jika Anda menerima email ini karena kesalahan, abaikan saja."
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr "Tinggal satu langkah lagi..."
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Tombol tidak berfungsi? Lekatkan ini pada browser Anda:"
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Jika Anda menerima email ini karena kesalahan, abaikan saja."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr "Tinggal satu langkah lagi..."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,242 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
#, fuzzy
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr "E-mail"
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr "Elenco"
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Controparte"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr "Utente Web"
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr "Email"
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Lingua"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Nome"
#, fuzzy
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr "Richiesta di iscrizione"
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Contenuto"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "Da"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr "Elenco"
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr "Stato"
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr "Titolo"
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr "URLs"
#, fuzzy
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr "Email"
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr "Elenco"
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Messaggio"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr "Messaggi"
#, fuzzy
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr "Email"
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr "Richiesta di iscrizione"
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr "Tutti"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr "Bozza"
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr "Invio"
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Bozza"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr "Bozza"
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,245 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr "Email"
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr "Email token"
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr "Lijst"
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Relatie"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr "Web gebruiker"
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr "E-mails"
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Taal"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Naam"
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr "Geabonneerd"
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Inhoud"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "Van"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr "Lijst"
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr "Status"
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr "Titel"
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr "URLs"
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr "Email"
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr "Lijst"
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Bericht"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
"Laat leeg om de waarde te gebruiken die gedefinieerd is in het "
"configuratiebestand."
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr "Mail lijst"
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr "Berichten"
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr "Emails"
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr "Abonnementsverzoek"
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr "Uitschrijfverzoek"
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr "Test verzenden"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr "Alle"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr "Concept"
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr "Bezig met verzenden"
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr "Het email adres \"%(email)s\" voor \"%(record)s\" is not geldig."
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
"E-mailadressen kunnen slechts één keer op elke lijst worden ingeschreven."
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
"Ongeldige inhoud in bericht \"%(message)s\" met uitzondering "
"\"%(exception)s\"."
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Concept"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr "Sturen"
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr "Test verzenden"
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr "Mail lijst"
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr "Marketing e-mail"
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr "Marketing e-mail lijst"
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr "Marketing e-mailbericht"
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr "Marketing verstuur e-mailbericht test"
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Werkt de knop niet? Plak dan dit in uw browser:"
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
"Als je deze e-mail per ongeluk hebt ontvangen, negeer deze dan gewoon."
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr "Nog maar een stap.."
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr "Abboneer op"
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr "Abonnementsaanvraag"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Werkt de knop niet? Plak dan dit in uw browser:"
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
"Als je deze e-mail per ongeluk hebt ontvangen, negeer deze dan gewoon."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr "Nog maar een stap.."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr "Verzoek om u uit te schrijven"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr "Afmelden voor"
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr "Stuur marketingberichten"
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr "Concept"
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr "Bezig met verzenden"
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr "Verzonden"
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr "Bewerk"
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr "Aan:"
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr "Aan:"
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr "Annuleren"
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr "Sturen"

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,248 @@
#
#, fuzzy
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
#, fuzzy
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr "E-pošta"
#, fuzzy
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr "E-poštni žeton"
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr "Seznam"
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr "Partner"
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr "Spletni uporabnik"
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr "E-poštni naslovi"
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr "Jezik"
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr "Naziv"
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr "Naročen"
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr "Vsebina"
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr "Od"
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr "Seznam"
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr "Stanje"
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr "Napis"
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr "URL-ji"
#, fuzzy
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr "E-poštni naslovi"
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr "Seznam"
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr "Sporočilo"
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
"Pustite prazno za privzeto vrednost opredeljeno v konfiguracijski datoteki."
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr "Elektronski poštni seznami"
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr "Sporočila"
#, fuzzy
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr "E-poštni naslovi"
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr "Zahteva za naročnino"
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr "Zahteva za odjavo"
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr "Test pošiljanja"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr "Vse"
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr "Osnutek"
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr "V pošiljanju"
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr "E-poštni naslov \"%(email)s\" za \"%(record)s\" ni veljaven."
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr "E-poštni naslov sme biti naročen samo enkrat na posameznem seznamu."
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr "Sporočilo \"%(message)s\" ima neveljavno vsebino. Napaka: \"%(exception)s\"."
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr "Osnutek"
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr "Pošlji"
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr "Test pošiljanja"
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr "Elektronski poštni seznami"
#, fuzzy
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr "Marketinška e-pošta"
#, fuzzy
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr "Marketinška e-pošta"
#, fuzzy
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr "Marketinško e-poštno sporočilo"
#, fuzzy
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr "Marketinško e-poštno sporočilo"
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Gumb ne deluje? Prilepite to povezavo v vaš brskalnik:"
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Če ste po pomoti prejeli to sporočilo, ga preprosto prezrite."
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr "Samo še en korak..."
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr "Prijava na"
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr "Zahteva za prijavo"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr "Gumb ne deluje? Prilepite to povezavo v vaš brskalnik:"
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr "Če ste po pomoti prejeli to sporočilo, ga preprosto prezrite."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr "Samo še en korak..."
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr "Zahteva za odjavo"
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr "Odjava od"
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr "Pošlji marketinška sporočila"
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr "Osnutek"
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr "V pošiljanju"
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr "Poslano"
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr "Uredi"
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr "Za:"
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr "Za:"
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr "Prekliči"
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr "Pošlji"

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,238 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:marketing.email,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email,email_token:"
msgid "Email Token"
msgstr ""
msgctxt "field:marketing.email,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email,party:"
msgid "Party"
msgstr ""
msgctxt "field:marketing.email,web_user:"
msgid "Web User"
msgstr ""
msgctxt "field:marketing.email.list,emails:"
msgid "Emails"
msgstr ""
msgctxt "field:marketing.email.list,language:"
msgid "Language"
msgstr ""
msgctxt "field:marketing.email.list,name:"
msgid "Name"
msgstr ""
msgctxt "field:marketing.email.list,subscribed:"
msgid "Subscribed"
msgstr ""
msgctxt "field:marketing.email.message,content:"
msgid "Content"
msgstr ""
msgctxt "field:marketing.email.message,from_:"
msgid "From"
msgstr ""
msgctxt "field:marketing.email.message,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.message,state:"
msgid "State"
msgstr ""
msgctxt "field:marketing.email.message,title:"
msgid "Title"
msgstr ""
msgctxt "field:marketing.email.message,urls:"
msgid "URLs"
msgstr ""
msgctxt "field:marketing.email.send_test,email:"
msgid "Email"
msgstr ""
msgctxt "field:marketing.email.send_test,list_:"
msgid "List"
msgstr ""
msgctxt "field:marketing.email.send_test,message:"
msgid "Message"
msgstr ""
msgctxt "help:marketing.email.message,from_:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:act_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:ir.action,name:act_email_message_form"
msgid "Messages"
msgstr ""
msgctxt "model:ir.action,name:act_email_relate_list"
msgid "Emails"
msgstr ""
msgctxt "model:ir.action,name:report_email_subscribe"
msgid "Subscribe Request"
msgstr ""
msgctxt "model:ir.action,name:report_email_unsubscribe"
msgid "Unsubscribe Request"
msgstr ""
msgctxt "model:ir.action,name:wizard_send_test"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_all"
msgid "All"
msgstr ""
msgctxt "model:ir.action.act_window.domain,name:act_email_message_form_draft"
msgid "Draft"
msgstr ""
msgctxt ""
"model:ir.action.act_window.domain,name:act_email_message_form_sending"
msgid "Sending"
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_email_invalid"
msgid "The email address \"%(email)s\" for \"%(record)s\" is not valid."
msgstr ""
msgctxt "model:ir.message,text:msg_email_list_unique"
msgid "Email addresses can only be subscribed once to each list."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_message_invalid_content"
msgid "Invalid content in message \"%(message)s\" with exception \"%(exception)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:message_draft_button"
msgid "Draft"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_button"
msgid "Send"
msgstr ""
msgctxt "model:ir.model.button,string:message_send_test_button"
msgid "Send Test"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_email_list_form"
msgid "Mailing Lists"
msgstr ""
msgctxt "model:marketing.email,string:"
msgid "Marketing Email"
msgstr ""
msgctxt "model:marketing.email.list,string:"
msgid "Marketing Email List"
msgstr ""
msgctxt "model:marketing.email.message,string:"
msgid "Marketing Email Message"
msgstr ""
msgctxt "model:marketing.email.send_test,string:"
msgid "Marketing Email Send Test"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscribe to"
msgstr ""
msgctxt "report:marketing.email.subscribe:"
msgid "Subscription Request"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Button is not working? Paste this into your browser:"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "If you received this email by mistake, just ignore it."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Just one more step..."
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Request to Unsubscribe"
msgstr ""
msgctxt "report:marketing.email.unsubscribe:"
msgid "Unsubscribe from"
msgstr ""
msgctxt "selection:ir.cron,method:"
msgid "Send Marketing Messages"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Draft"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sending"
msgstr ""
msgctxt "selection:marketing.email.message,state:"
msgid "Sent"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "Edit"
msgstr ""
msgctxt "view:marketing.email.message:"
msgid "To:"
msgstr ""
msgctxt "view:marketing.email.send_test:"
msgid "To:"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:marketing.email.send_test,start,send:"
msgid "Send"
msgstr ""

View File

@@ -0,0 +1,561 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import random
import time
from collections import defaultdict
from email.message import EmailMessage
from functools import lru_cache, partial
from urllib.parse import (
parse_qs, parse_qsl, urlencode, urljoin, urlsplit, urlunsplit)
from genshi.core import END, START, Attrs, QName
from genshi.template import MarkupTemplate
from genshi.template import TemplateError as GenshiTemplateError
from sql import Literal
from sql.aggregate import Count
try:
import html2text
except ImportError:
html2text = None
import trytond.config as config
from trytond.i18n import gettext
from trytond.ir.session import token_hex
from trytond.model import (
DeactivableMixin, Index, ModelSQL, ModelView, Unique, Workflow, fields)
from trytond.pool import Pool
from trytond.pyson import Eval
from trytond.report import Report, get_email
from trytond.sendmail import SMTPDataManager, send_message_transactional
from trytond.tools import grouped_slice, reduce_ids
from trytond.tools.email_ import (
EmailNotValidError, format_address, normalize_email, set_from_header,
validate_email)
from trytond.transaction import Transaction, inactive_records
from trytond.url import http_host
from trytond.wizard import Button, StateTransition, StateView, Wizard
from .exceptions import EMailValidationError, TemplateError
def _add_params(url, **params):
parts = urlsplit(url)
query = parse_qsl(parts.query)
for key, value in sorted(params.items()):
query.append((key, value))
parts = list(parts)
parts[3] = urlencode(query)
return urlunsplit(parts)
def _extract_params(url):
return parse_qsl(urlsplit(url).query)
class Email(DeactivableMixin, ModelSQL, ModelView):
__name__ = 'marketing.email'
_rec_name = 'email'
email = fields.Char("Email", required=True)
list_ = fields.Many2One('marketing.email.list', "List", required=True)
email_token = fields.Char("Email Token", required=True)
web_user = fields.Function(
fields.Many2One('web.user', "Web User"), 'get_web_user')
party = fields.Function(
fields.Many2One('party.party', "Party"), 'get_web_user')
@classmethod
def __setup__(cls):
super().__setup__()
t = cls.__table__()
cls._sql_constraints = [
('email_list_unique', Unique(t, t.email, t.list_),
'marketing_email.msg_email_list_unique'),
]
cls._sql_indexes.add(Index(
t,
(t.list_, Index.Range()),
(t.email, Index.Equality(cardinality='high'))))
@classmethod
def default_email_token(cls, nbytes=None):
return token_hex(nbytes)
@classmethod
def get_web_user(cls, records, names):
pool = Pool()
WebUser = pool.get('web.user')
result = {}
web_user = 'web_user' in names
if web_user:
web_users = dict.fromkeys(list(map(int, records)))
result['web_user'] = web_users
party = 'party' in names
if party:
parties = dict.fromkeys(list(map(int, records)))
result['party'] = parties
for sub_records in grouped_slice(records):
email2id = {r.email: r.id for r in sub_records}
users = WebUser.search([
('email', 'in', list(email2id.keys())),
])
if web_user:
web_users.update((email2id[u.email], u.id) for u in users)
if party:
parties.update(
(email2id[u.email], u.party.id)
for u in users if u.party)
return result
@classmethod
def preprocess_values(cls, mode, values):
values = super().preprocess_values(mode, values)
if mode == 'create':
# Ensure to get a different token for each record
# default methods are called only once
values.setdefault('email_token', cls.default_email_token())
if values.get('email'):
values['email'] = normalize_email(values['email']).lower()
return values
@classmethod
def validate_fields(cls, records, fields_names):
super().validate_fields(records, fields_names)
cls.check_valid_email(records, fields_names)
@classmethod
def check_valid_email(cls, records, fields_names=None):
if fields_names and 'email' not in fields_names:
return
for record in records:
if record.email:
try:
validate_email(record.email)
except EmailNotValidError as e:
raise EMailValidationError(gettext(
'marketing_email.msg_email_invalid',
record=record.rec_name,
email=record.email),
str(e)) from e
def get_email_subscribe(self, report_name='marketing.email.subscribe'):
pool = Pool()
ActionReport = pool.get('ir.action.report')
report, = ActionReport.search([
('report_name', '=', report_name),
], limit=1)
return get_email(report, self, [self.list_.language])
def get_email_subscribe_url(self, url=None):
if url is None:
url = config.get('marketing', 'email_subscribe_url')
if url is not None:
return _add_params(url, token=self.email_token)
else:
return ''
@classmethod
def subscribe_url(cls, url):
parts = urlsplit(url)
tokens = filter(
None, parse_qs(parts.query).get('token', [None]))
return cls.subscribe(list(tokens))
@classmethod
def subscribe(cls, tokens):
# Make it slow to prevent brute force attacks
delay = config.getint('marketing', 'subscribe_delay', default=1)
Transaction().atexit(time.sleep, delay)
with inactive_records():
records = cls.search([
('email_token', 'in', tokens),
])
cls.write(records, {'active': True})
return bool(records)
def get_email_unsubscribe(self, report_name='marketing.email.unsubscribe'):
pool = Pool()
ActionReport = pool.get('ir.action.report')
report, = ActionReport.search([
('report_name', '=', report_name),
], limit=1)
return get_email(report, self, [self.list_.language])
def get_email_unsubscribe_url(self, url=None):
if url is None:
url = config.get('marketing', 'email_unsubscribe_url')
if url is not None:
return _add_params(url, token=self.email_token)
else:
return ''
@classmethod
def unsubscribe_url(cls, url):
parts = urlsplit(url)
tokens = filter(
None, parse_qs(parts.query).get('token', [None]))
cls.unsubscribe(list(tokens))
@classmethod
def unsubscribe(cls, tokens):
# Make it slow to prevent brute force attacks
delay = config.getint('marketing', 'subscribe_delay', default=1)
Transaction().atexit(time.sleep, delay)
records = cls.search([
('email_token', 'in', tokens),
])
cls.write(records, {'active': False})
return bool(records)
class EmailSubscribe(Report):
__name__ = 'marketing.email.subscribe'
@classmethod
def get_context(cls, records, header, data):
context = super().get_context(records, header, data)
context['extract_params'] = _extract_params
return context
class EmailUnsubscribe(Report):
__name__ = 'marketing.email.unsubscribe'
@classmethod
def get_context(cls, records, header, data):
context = super().get_context(records, header, data)
context['extract_params'] = _extract_params
return context
class EmailList(DeactivableMixin, ModelSQL, ModelView):
__name__ = 'marketing.email.list'
name = fields.Char("Name", required=True)
language = fields.Many2One('ir.lang', "Language", required=True)
emails = fields.One2Many('marketing.email', 'list_', "Emails")
subscribed = fields.Function(
fields.Integer("Subscribed"), 'get_subscribed')
@staticmethod
def default_language():
Lang = Pool().get('ir.lang')
code = Transaction().context.get(
'language', config.get('database', 'language'))
try:
lang, = Lang.search([
('code', '=', code),
('translatable', '=', True),
], limit=1)
return lang.id
except ValueError:
return None
@classmethod
def get_subscribed(cls, lists, name):
pool = Pool()
Email = pool.get('marketing.email')
email = Email.__table__()
cursor = Transaction().connection.cursor()
subscribed = defaultdict(int)
query = email.select(
email.list_, Count(Literal('*')), group_by=[email.list_])
for sub_lists in grouped_slice(lists):
query.where = (
reduce_ids(email.list_, sub_lists)
& email.active)
cursor.execute(*query)
subscribed.update(cursor)
return subscribed
def request_subscribe(self, email, from_=None):
pool = Pool()
Email = pool.get('marketing.email')
# Randomize processing time to prevent guessing whether the email
# address is already subscribed to the list or not.
Transaction().atexit(time.sleep, random.random())
email = email.lower()
with inactive_records():
records = Email.search([
('email', '=', email),
('list_', '=', self.id),
])
if not records:
record = Email(email=email, list_=self.id, active=False)
record.save()
else:
record, = records
if not record.active:
from_cfg = (config.get('marketing', 'email_from')
or config.get('email', 'from'))
msg, title = record.get_email_subscribe()
set_from_header(msg, from_cfg, from_ or from_cfg)
msg['To'] = record.email
msg['Subject'] = title
send_message_transactional(msg)
def request_unsubscribe(self, email, from_=None):
pool = Pool()
Email = pool.get('marketing.email')
# Randomize processing time to prevent guessing whether the email
# address was subscribed to the list or not.
Transaction().atexit(time.sleep, random.random())
email = email.lower()
with inactive_records():
records = Email.search([
('email', '=', email),
('list_', '=', self.id),
])
if records:
record, = records
if record.active:
from_cfg = (config.get('marketing', 'email_from')
or config.get('email', 'from'))
msg, title = record.get_email_unsubscribe()
set_from_header(msg, from_cfg, from_ or from_cfg)
msg['To'] = record.email
msg['Subject'] = title
send_message_transactional(msg)
class Message(Workflow, ModelSQL, ModelView):
__name__ = 'marketing.email.message'
_rec_name = 'title'
_states = {
'readonly': Eval('state') != 'draft',
}
from_ = fields.Char(
"From", states=_states,
help="Leave empty for the value defined in the configuration file.")
list_ = fields.Many2One(
'marketing.email.list', "List",
required=True, states=_states)
title = fields.Char(
"Title", required=True, states=_states)
content = fields.Text(
"Content",
states={
'required': Eval('state') != 'draft',
'readonly': _states['readonly'],
})
urls = fields.One2Many(
'web.shortened_url', 'record', "URLs", readonly=True)
state = fields.Selection([
('draft', "Draft"),
('sending', "Sending"),
('sent', "Sent"),
], "State", readonly=True, sort=False)
del _states
@classmethod
def __setup__(cls):
super().__setup__()
t = cls.__table__()
cls._sql_indexes.add(
Index(
t, (t.state, Index.Equality(cardinality='low')),
where=t.state.in_(['draft', 'sending'])))
cls._transitions |= set([
('draft', 'sending'),
('sending', 'sent'),
('sending', 'draft'),
])
cls._buttons.update({
'draft': {
'invisible': Eval('state') != 'sending',
'depends': ['state'],
},
'send': {
'invisible': Eval('state') != 'draft',
'depends': ['state'],
},
'send_test': {
'invisible': Eval('state') != 'draft',
'depends': ['state'],
},
})
@classmethod
def default_state(cls):
return 'draft'
@classmethod
def validate_fields(cls, messages, field_names):
super().validate_fields(messages, field_names)
cls.check_content(messages, field_names)
@classmethod
def check_content(cls, messages, field_names=None):
if field_names and 'content' not in field_names:
return
for message in messages:
if not message.content:
continue
try:
MarkupTemplate(message.content)
except GenshiTemplateError as exception:
raise TemplateError(
gettext('marketing_email'
'.msg_message_invalid_content',
message=message.rec_name,
exception=exception)) from exception
@classmethod
@ModelView.button
@Workflow.transition('draft')
def draft(cls, messages):
pass
@classmethod
@ModelView.button_action('marketing_email.wizard_send_test')
def send_test(cls, messages):
pass
@classmethod
@ModelView.button
@Workflow.transition('sending')
def send(cls, messages):
pass
@classmethod
@Workflow.transition('sent')
def sent(cls, messages):
pass
@classmethod
def process(cls, messages=None, emails=None, smtpd_datamanager=None):
pool = Pool()
WebShortener = pool.get('web.shortened_url')
spy_pixel = config.getboolean(
'marketing', 'email_spy_pixel', default=False)
url_base = config.get('marketing', 'email_base', default=http_host())
url_open = urljoin(url_base, '/m/empty.gif')
@lru_cache(None)
def short(url, record):
url = WebShortener(
record=record,
redirect_url=url)
url.save()
return url.shortened_url
def convert_href(message):
def filter_(stream):
for kind, data, pos in stream:
if kind is START:
tag, attrs = data
if tag == 'a' and attrs.get('href'):
href = attrs.get('href')
attrs -= 'href'
href = short(href, str(message))
attrs |= [(QName('href'), href)]
data = tag, attrs
elif kind is END and data == 'body' and spy_pixel:
yield START, (QName('img'), Attrs([
(QName('src'), short(
url_open, str(message))),
(QName('height'), '1'),
(QName('width'), '1'),
])), pos
yield END, QName('img'), pos
yield kind, data, pos
return filter_
if not smtpd_datamanager:
smtpd_datamanager = SMTPDataManager()
if messages is None:
messages = cls.search([
('state', '=', 'sending'),
])
for message in messages:
try:
template = MarkupTemplate(message.content)
except GenshiTemplateError as exception:
raise TemplateError(
gettext('marketing_email'
'.msg_message_invalid_content',
message=message.rec_name,
exception=exception)) from exception
for email in (emails or message.list_.emails):
content = (template
.generate(
email=email,
short=partial(short, record=message))
.filter(convert_href(message))
.render())
name = email.party.rec_name if email.party else ''
from_cfg = (config.get('marketing', 'email_from')
or config.get('email', 'from'))
to = format_address(email.email, name)
msg = EmailMessage()
set_from_header(msg, from_cfg, message.from_ or from_cfg)
msg['To'] = to
msg['Subject'] = message.title
msg['List-Unsubscribe'] = (
f'<{email.get_email_unsubscribe_url()}>')
msg['List-Unsubscribe-Post'] = 'List-Unsubscribe=One-Click'
if html2text:
converter = html2text.HTML2Text()
content_text = converter.handle(content)
msg.add_alternative(content_text, subtype='plain')
if msg.is_multipart():
msg.add_alternative(content, subtype='html')
else:
msg.set_content(content, subtype='html')
send_message_transactional(msg, datamanager=smtpd_datamanager)
if not emails:
cls.sent(messages)
class SendTest(Wizard):
__name__ = 'marketing.email.send_test'
start = StateView(
'marketing.email.send_test',
'marketing_email.send_test_view_form', [
Button("Cancel", 'end', 'tryton-cancel'),
Button("Send", 'send', 'tryton-ok', default=True),
])
send = StateTransition()
def default_start(self, fields):
pool = Pool()
Message = pool.get('marketing.email.message')
message = Message(Transaction().context.get('active_id'))
return {
'list_': message.list_.id,
'message': message.id,
}
def transition_send(self):
pool = Pool()
Message = pool.get('marketing.email.message')
Message.process([self.start.message], [self.start.email])
return 'end'
class SendTestView(ModelView):
__name__ = 'marketing.email.send_test'
list_ = fields.Many2One(
'marketing.email.list', "List", readonly=True)
message = fields.Many2One(
'marketing.email.message', "Message", readonly=True)
email = fields.Many2One(
'marketing.email', "Email", required=True,
domain=[
('list_', '=', Eval('list_', -1)),
])

View File

@@ -0,0 +1,219 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.icon" id="mail_icon">
<field name="name">tryton-marketing-mail</field>
<field name="path">icons/tryton-marketing-mail.svg</field>
</record>
<record model="ir.ui.view" id="email_view_form">
<field name="model">marketing.email</field>
<field name="type">form</field>
<field name="name">email_form</field>
</record>
<record model="ir.ui.view" id="email_view_list">
<field name="model">marketing.email</field>
<field name="type">tree</field>
<field name="name">email_list</field>
</record>
<record model="ir.action.act_window" id="act_email_relate_list">
<field name="name">Emails</field>
<field name="res_model">marketing.email</field>
<field name="domain" eval="[('list_', '=', Eval('active_id'))]" pyson="1"/>
</record>
<record model="ir.action.keyword" id="act_email_relate_list_keyword1">
<field name="keyword">form_relate</field>
<field name="model">marketing.email.list,-1</field>
<field name="action" ref="act_email_relate_list"/>
</record>
<record model="ir.model.access" id="access_email">
<field name="model">marketing.email</field>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.model.access" id="access_email_marketing_email">
<field name="model">marketing.email</field>
<field name="group" ref="marketing.group_marketing"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.ui.view" id="email_list_view_form">
<field name="model">marketing.email.list</field>
<field name="type">form</field>
<field name="name">email_list_form</field>
</record>
<record model="ir.ui.view" id="email_list_view_list">
<field name="model">marketing.email.list</field>
<field name="type">tree</field>
<field name="name">email_list_list</field>
</record>
<record model="ir.action.act_window" id="act_email_list_form">
<field name="name">Mailing Lists</field>
<field name="res_model">marketing.email.list</field>
</record>
<record model="ir.action.act_window.view" id="act_email_list_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="email_list_view_list"/>
<field name="act_window" ref="act_email_list_form"/>
</record>
<record model="ir.action.act_window.view" id="act_email_list_form_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="email_list_view_form"/>
<field name="act_window" ref="act_email_list_form"/>
</record>
<menuitem
parent="marketing.menu_marketing"
action="act_email_list_form"
sequence="10"
id="menu_email_list_form"/>
<record model="ir.model.access" id="access_email_list">
<field name="model">marketing.email.list</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.model.access" id="access_email_list_marketing_email">
<field name="model">marketing.email.list</field>
<field name="group" ref="marketing.group_marketing"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.action.report" id="report_email_subscribe">
<field name="name">Subscribe Request</field>
<field name="model">marketing.email</field>
<field name="report_name">marketing.email.subscribe</field>
<field name="report">marketing_email/email_subscribe.html</field>
<field name="template_extension">html</field>
</record>
<record model="ir.action.report" id="report_email_unsubscribe">
<field name="name">Unsubscribe Request</field>
<field name="model">marketing.email</field>
<field name="report_name">marketing.email.unsubscribe</field>
<field name="report">marketing_email/email_unsubscribe.html</field>
<field name="template_extension">html</field>
</record>
<record model="ir.ui.view" id="email_message_view_form">
<field name="model">marketing.email.message</field>
<field name="type">form</field>
<field name="name">email_message_form</field>
</record>
<record model="ir.ui.view" id="email_message_view_list">
<field name="model">marketing.email.message</field>
<field name="type">tree</field>
<field name="name">email_message_list</field>
</record>
<record model="ir.action.act_window" id="act_email_message_form">
<field name="name">Messages</field>
<field name="res_model">marketing.email.message</field>
<field name="domain" eval="[('list_', '=', Eval('active_id'))]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_email_message_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="email_message_view_list"/>
<field name="act_window" ref="act_email_message_form"/>
</record>
<record model="ir.action.act_window.view" id="act_email_message_form_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="email_message_view_form"/>
<field name="act_window" ref="act_email_message_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_email_message_form_draft">
<field name="name">Draft</field>
<field name="sequence" eval="10"/>
<field name="domain" eval="[('state', '=', 'draft')]" pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_email_message_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_email_message_form_sending">
<field name="name">Sending</field>
<field name="sequence" eval="20"/>
<field name="domain" eval="[('state', '=', 'sending')]" pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_email_message_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_email_message_form_all">
<field name="name">All</field>
<field name="sequence" eval="9999"/>
<field name="domain"/>
<field name="act_window" ref="act_email_message_form"/>
</record>
<record model="ir.action.keyword" id="act_email_message_form_keyword1">
<field name="keyword">form_relate</field>
<field name="model">marketing.email.list,-1</field>
<field name="action" ref="act_email_message_form"/>
</record>
<record model="ir.model.button" id="message_draft_button">
<field name="model">marketing.email.message</field>
<field name="name">draft</field>
<field name="string">Draft</field>
</record>
<record model="ir.model.button" id="message_send_button">
<field name="model">marketing.email.message</field>
<field name="name">send</field>
<field name="string">Send</field>
</record>
<record model="ir.model.button" id="message_send_test_button">
<field name="model">marketing.email.message</field>
<field name="name">send_test</field>
<field name="string">Send Test</field>
</record>
<record model="ir.model.access" id="access_email_message">
<field name="model">marketing.email.message</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.model.access" id="access_email_message_marketing_email">
<field name="model">marketing.email.message</field>
<field name="group" ref="marketing.group_marketing"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.action.wizard" id="wizard_send_test">
<field name="name">Send Test</field>
<field name="wiz_name">marketing.email.send_test</field>
<field name="model">marketing.email.message</field>
</record>
<record model="ir.ui.view" id="send_test_view_form">
<field name="model">marketing.email.send_test</field>
<field name="type">form</field>
<field name="name">send_test_form</field>
</record>
</data>
<data noupdate="1">
<record model="ir.cron" id="cron_send_messages">
<field name="method">marketing.email.message|process</field>
<field name="interval_number" eval="15"/>
<field name="interval_type">minutes</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data grouped="1">
<record model="ir.message" id="msg_email_list_unique">
<field name="text">Email addresses can only be subscribed once to each list.</field>
</record>
<record model="ir.message" id="msg_message_invalid_content">
<field name="text">Invalid content in message "%(message)s" with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_email_invalid">
<field name="text">The email address "%(email)s" for "%(record)s" is not valid.</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,12 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.protocols.wrappers import Response
from trytond.tools import file_open
from trytond.wsgi import app
@app.route('/m/empty.gif')
def empty(request):
fp = file_open('marketing_email/empty.gif', mode='rb')
return Response(fp, 200, content_type='image/gif', direct_passthrough=True)

View File

@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.

View File

@@ -0,0 +1,159 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from unittest.mock import ANY, Mock, patch
import trytond.config as config
from trytond.modules.marketing_email import marketing as marketing_module
from trytond.pool import Pool
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
from trytond.transaction import inactive_records
SUBSCRIBE_URL = 'http://www.example.com/subscribe'
UNSUBSCRIBE_URL = 'http://www.example.com/unsubscribe'
FROM = 'marketing@example.com'
class MarketingEmailTestCase(ModuleTestCase):
'Test Marketing Email module'
module = 'marketing_email'
def setUp(self):
super().setUp()
if not config.has_section('marketing'):
config.add_section('marketing')
subscribe_url = config.get(
'marketing', 'email_subscribe_url', default='')
config.set('marketing', 'email_subscribe_url', SUBSCRIBE_URL)
self.addCleanup(
config.set, 'marketing', 'email_subscribe_url', subscribe_url)
unsubscribe_url = config.get(
'marketing', 'email_unsubscribe_url', default='')
config.set('marketing', 'email_unsubscribe_url', UNSUBSCRIBE_URL)
self.addCleanup(
config.set, 'marketing', 'email_unsubscribe_url', unsubscribe_url)
spy_pixel = config.get('marketing', 'email_spy_pixel', default='')
config.set('marketing', 'email_spy_pixel', 'true')
self.addCleanup(
config.set, 'marketing', 'email_spy_pixel', spy_pixel)
from_ = config.get('email', 'from', default='')
config.set('email', 'from', FROM)
self.addCleanup(config.set, 'email', 'from', from_)
@with_transaction()
def test_subscribe(self):
"Test subscribe"
pool = Pool()
Email = pool.get('marketing.email')
EmailList = pool.get('marketing.email.list')
email_list = EmailList(name="Test")
email_list.save()
with patch.object(
marketing_module,
'send_message_transactional') as send_message:
email_list.request_subscribe('user@example.com')
send_message.assert_called_once()
with inactive_records():
email, = Email.search([
('list_', '=', email_list.id),
])
token = email.email_token
self.assertTrue(token)
self.assertFalse(email.active)
self.assertEqual(email_list.subscribed, 0)
self.assertEqual(
email.get_email_subscribe_url(),
'%s?token=%s' % (SUBSCRIBE_URL, token))
Email.subscribe_url(SUBSCRIBE_URL)
self.assertFalse(email.active)
Email.subscribe_url('%s?token=12345' % SUBSCRIBE_URL)
self.assertFalse(email.active)
Email.subscribe_url(email.get_email_subscribe_url())
self.assertTrue(email.active)
self.assertEqual(email_list.subscribed, 1)
@with_transaction()
def test_unsubscribe(self):
"Test unsubscribe"
pool = Pool()
Email = pool.get('marketing.email')
EmailList = pool.get('marketing.email.list')
email_list = EmailList(name="Test")
email_list.save()
email = Email(email='user@example.com', list_=email_list.id)
email.save()
token = email.email_token
self.assertTrue(token)
self.assertTrue(email.active)
with patch.object(
marketing_module,
'send_message_transactional') as send_message:
email_list.request_unsubscribe('user@example.com')
send_message.assert_called_once()
self.assertEqual(
email.get_email_unsubscribe_url(),
'%s?token=%s' % (UNSUBSCRIBE_URL, token))
Email.unsubscribe_url(UNSUBSCRIBE_URL)
self.assertTrue(email.active)
Email.unsubscribe_url('%s?token=12345' % UNSUBSCRIBE_URL)
self.assertTrue(email.active)
Email.unsubscribe_url(email.get_email_unsubscribe_url())
self.assertFalse(email.active)
@with_transaction()
def test_send_messages(self):
"Test messages are sent to the list"
pool = Pool()
Email = pool.get('marketing.email')
EmailList = pool.get('marketing.email.list')
Message = pool.get('marketing.email.message')
ShortenedURL = pool.get('web.shortened_url')
email_list = EmailList(name="Test")
email_list.save()
email = Email(email='user@example.com', list_=email_list)
email.save()
message = Message(list_=email_list)
message.title = 'Test'
message.content = (
'<html>'
'<body>'
'<a href="http://www.example.com/">Content</a>'
'</body>'
'</html>')
message.save()
Message.send([message])
with patch.object(
marketing_module,
'send_message_transactional') as send_message:
smtpd_datamanager = Mock()
Message.process(smtpd_datamanager=smtpd_datamanager)
send_message.assert_called_once_with(
ANY, datamanager=smtpd_datamanager)
urls = ShortenedURL.search([
('record', '=', str(message)),
])
self.assertEqual(message.state, 'sent')
self.assertEqual(len(urls), 2)
del ModuleTestCase

View File

@@ -0,0 +1,26 @@
[tryton]
version=7.8.2
depends:
ir
marketing
party
res
web_user
web_shortener
xml:
marketing.xml
message.xml
[register]
model:
marketing.Email
marketing.EmailList
marketing.Message
marketing.SendTestView
ir.Cron
web.ShortenedURL
wizard:
marketing.SendTest
report:
marketing.EmailSubscribe
marketing.EmailUnsubscribe

View File

@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form>
<label name="list_"/>
<field name="list_"/>
<label name="active"/>
<field name="active"/>
<label name="email"/>
<field name="email" colspan="3"/>
</form>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="list_" expand="2"/>
<field name="email" expand="2"/>
<field name="party" expand="1"/>
<field name="web_user" expand="1"/>
</tree>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form>
<label name="name"/>
<field name="name"/>
<label name="active"/>
<field name="active"/>
<label name="language"/>
<field name="language"/>
<group id="links" col="-1" colspan="4">
<link icon="tryton-marketing-mail" name="marketing_email.act_email_message_form"/>
</group>
</form>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="name" expand="2"/>
<field name="language" expand="1"/>
<field name="subscribed" sum="1"/>
</tree>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form cursor="list_">
<label name="from_"/>
<field name="from_" colspan="3"/>
<label name="list_" string="To:"/>
<field name="list_" colspan="3"/>
<label name="title"/>
<field name="title" colspan="3"/>
<notebook colspan="4">
<page name="content">
<label name="content" yfill="1" yalign="0"/>
<group col="-1" id="content" colspan="3" yexpand="1">
<field name="content"/>
<field name="content" string="Edit" widget="html" xexpand="0"/>
</group>
</page>
<page name="urls">
<field name="urls" colspan="4"/>
</page>
</notebook>
<label name="state"/>
<field name="state"/>
<group col="-1" colspan="2" id="buttons">
<button name="draft"/>
<button name="send_test" colspan="2"/>
<button name="send"/>
</group>
</form>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="from_"/>
<field name="list_"/>
<field name="title"/>
<field name="state"/>
</tree>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form col="2">
<label name="email" string="To:"/>
<field name="email"/>
<label name="message"/>
<field name="message"/>
</form>

View File

@@ -0,0 +1,14 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import PoolMeta
class ShortenedURL(metaclass=PoolMeta):
__name__ = 'web.shortened_url'
@classmethod
def _get_models(cls):
return super()._get_models() + [
'marketing.email.message',
]