aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Tari <robert@tari.in>2020-08-17 17:40:59 +0200
committerRobert Tari <robert@tari.in>2020-08-17 17:40:59 +0200
commit711050055339f6a14f0c3da4d3d28f707b97a102 (patch)
tree7c69fbc7809bc1592bab47c811c6d9e4ddf964da
downloadayatana-webmail-711050055339f6a14f0c3da4d3d28f707b97a102.tar.gz
ayatana-webmail-711050055339f6a14f0c3da4d3d28f707b97a102.tar.bz2
ayatana-webmail-711050055339f6a14f0c3da4d3d28f707b97a102.zip
Initial port from Unity Mail
-rwxr-xr-x.gitignore3
-rwxr-xr-xCOPYING674
-rwxr-xr-xayatanawebmail/__init__.py1
-rwxr-xr-xayatanawebmail/accounts.py57
-rwxr-xr-xayatanawebmail/actions.py36
-rwxr-xr-xayatanawebmail/appdata.py18
-rwxr-xr-xayatanawebmail/application.py1207
-rwxr-xr-xayatanawebmail/common.py112
-rwxr-xr-xayatanawebmail/dialog.py583
-rwxr-xr-xayatanawebmail/idler.py79
-rwxr-xr-xayatanawebmail/imaplib2.py2618
-rw-r--r--data/etc/xdg/autostart/ayatana-webmail-autostart.desktop77
-rwxr-xr-xdata/usr/bin/ayatana-webmail28
-rwxr-xr-xdata/usr/bin/ayatana-webmail-clear40
-rwxr-xr-xdata/usr/bin/ayatana-webmail-reset27
-rwxr-xr-xdata/usr/bin/ayatana-webmail-settings44
-rwxr-xr-xdata/usr/bin/ayatana-webmail-url66
-rw-r--r--data/usr/share/applications/ayatana-webmail.desktop265
-rwxr-xr-xdata/usr/share/ayatanawebmail/indicator-messages-new.svg375
-rwxr-xr-xdata/usr/share/ayatanawebmail/indicator-messages.svg510
-rwxr-xr-xdata/usr/share/glib-2.0/schemas/org.ayatana.webmail.gschema.xml70
-rwxr-xr-xdata/usr/share/icons/Faenza/apps/scalable/ayatanawebmail.svg703
-rwxr-xr-xdata/usr/share/icons/hicolor/scalable/apps/ayatanawebmail.svg513
-rwxr-xr-xdebian/changelog5
-rwxr-xr-xdebian/compat1
-rwxr-xr-xdebian/control31
-rwxr-xr-xdebian/copyright32
-rwxr-xr-xdebian/postinst29
-rwxr-xr-xdebian/rules14
-rwxr-xr-xdebian/source/format1
-rwxr-xr-xdebian/watch2
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/ayatana-webmail-autostart.desktop.pot26
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/bg.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/ca.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/cs.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/de.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/el.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/en_AU.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/en_CA.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/en_GB.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/es.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/fi.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/fr.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/gl.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/hr.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/hu.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/it.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/ja.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/kk.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/lt.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/lv.po31
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/ms.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/mus.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/nl.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/nn.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/oc.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/pl.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/pt.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/pt_BR.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/ru.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/sk.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/sl.po29
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/sr.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/tr.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/ug.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/uk.po30
-rwxr-xr-xpo.ayatana-webmail-autostart.desktop/zh_CN.po30
-rwxr-xr-xpo.ayatana-webmail.desktop/ayatana-webmail.desktop.pot46
-rwxr-xr-xpo.ayatana-webmail.desktop/bg.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/ca.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/cs.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/de.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/el.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/en_AU.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/en_CA.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/en_GB.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/es.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/et.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/fi.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/fr.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/gl.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/hr.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/hu.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/it.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/ja.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/kk.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/lt.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/lv.po51
-rwxr-xr-xpo.ayatana-webmail.desktop/ms.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/mus.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/nl.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/nn.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/oc.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/pl.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/pt.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/pt_BR.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/ru.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/sk.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/sl.po49
-rwxr-xr-xpo.ayatana-webmail.desktop/sr.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/tr.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/ug.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/uk.po50
-rwxr-xr-xpo.ayatana-webmail.desktop/zh_CN.po50
-rwxr-xr-xpo/ayatanawebmail.pot284
-rwxr-xr-xpo/bg.po296
-rwxr-xr-xpo/ca.po296
-rwxr-xr-xpo/cs.po297
-rwxr-xr-xpo/cy.po299
-rwxr-xr-xpo/de.po304
-rwxr-xr-xpo/el.po296
-rwxr-xr-xpo/en_AU.po296
-rwxr-xr-xpo/en_CA.po296
-rwxr-xr-xpo/en_GB.po299
-rwxr-xr-xpo/es.po296
-rwxr-xr-xpo/et.po296
-rwxr-xr-xpo/fi.po296
-rwxr-xr-xpo/fr.po306
-rwxr-xr-xpo/gl.po296
-rwxr-xr-xpo/hr.po298
-rwxr-xr-xpo/hu.po299
-rwxr-xr-xpo/it.po299
-rwxr-xr-xpo/ja.po296
-rwxr-xr-xpo/kk.po296
-rwxr-xr-xpo/lt.po297
-rwxr-xr-xpo/lv.po297
-rwxr-xr-xpo/ms.po296
-rwxr-xr-xpo/nl.po296
-rwxr-xr-xpo/nn.po297
-rwxr-xr-xpo/oc.po296
-rwxr-xr-xpo/pl.po299
-rwxr-xr-xpo/pt.po296
-rwxr-xr-xpo/pt_BR.po296
-rwxr-xr-xpo/ru.po298
-rwxr-xr-xpo/sk.po297
-rwxr-xr-xpo/sl.po299
-rwxr-xr-xpo/sr.po299
-rwxr-xr-xpo/tr.po296
-rwxr-xr-xpo/ug.po299
-rwxr-xr-xpo/uk.po307
-rwxr-xr-xpo/zh_CN.po298
-rwxr-xr-xsetup.py117
142 files changed, 22231 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..6b824f0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+TODO
+project.geany
+__pycache__/
diff --git a/COPYING b/COPYING
new file mode 100755
index 0000000..94a9ed0
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/ayatanawebmail/__init__.py b/ayatanawebmail/__init__.py
new file mode 100755
index 0000000..8b13789
--- /dev/null
+++ b/ayatanawebmail/__init__.py
@@ -0,0 +1 @@
+
diff --git a/ayatanawebmail/accounts.py b/ayatanawebmail/accounts.py
new file mode 100755
index 0000000..c21af56
--- /dev/null
+++ b/ayatanawebmail/accounts.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, message actions dialog
+# Authors: Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import gi
+
+gi.require_version('Gtk', '3.0')
+
+from gi.repository import Gtk
+from ayatanawebmail.appdata import APPNAME
+
+class DialogAccounts(Gtk.Dialog):
+
+ def __init__(self, strKey, getDataPath, lstAccounts):
+
+ Gtk.Dialog.__init__(self, _('Select account'), None, 0, (Gtk.STOCK_OK, Gtk.ResponseType.OK))
+
+ self.lstURLs = []
+ self.set_icon_from_file(getDataPath('/usr/share/icons/hicolor/scalable/apps/' + APPNAME + '.svg'))
+ self.set_position(Gtk.WindowPosition.CENTER)
+ oImage = Gtk.Image()
+ oImage.set_from_file(getDataPath('/usr/share/icons/hicolor/scalable/apps/' + APPNAME + '.svg'))
+ oImage.props.valign = Gtk.Align.START
+ oImage.props.icon_size = Gtk.IconSize.DIALOG
+ oGrid = Gtk.Grid(border_width=10, row_spacing=2, column_spacing=10)
+ oGrid.attach(oImage, 0, 0, 1, 4)
+ oGrid.attach(Gtk.Label('<b>'+_('Which account\'s command/web page would you like to open?')+'</b>', use_markup=True, xalign=0, margin_bottom=10), 1, 0, 1, 1)
+
+ for nIndex, dctAccount in enumerate(lstAccounts):
+
+ self.__dict__['oRadioButton' + str(nIndex)] = Gtk.RadioButton.new_with_label_from_widget(None if not 'oRadioButton0' in self.__dict__ else self.__dict__['oRadioButton0'], dctAccount['Login'] + '@' + dctAccount['Host'])
+ self.__dict__['oRadioButton' + str(nIndex)].props.valign = Gtk.Align.START
+
+ if nIndex == len(lstAccounts) - 1:
+ self.__dict__['oRadioButton' + str(nIndex)].props.vexpand = True
+
+ oGrid.attach(self.__dict__['oRadioButton' + str(nIndex)] , 1, 1 + nIndex, 1, 1)
+ self.lstURLs.append(dctAccount[strKey])
+
+ self.get_content_area().add(oGrid)
+ self.connect('response', self.onResponse)
+ self.set_keep_above(True)
+ self.show_all()
+ self.strURL = None
+
+ def onResponse(self, oWidget, nResponse):
+
+ if nResponse == Gtk.ResponseType.OK:
+
+ for nIndex, strURL in enumerate(self.lstURLs):
+
+ if self.__dict__['oRadioButton' + str(nIndex)].get_active():
+
+ self.strURL = strURL
+ break
diff --git a/ayatanawebmail/actions.py b/ayatanawebmail/actions.py
new file mode 100755
index 0000000..03ea6bf
--- /dev/null
+++ b/ayatanawebmail/actions.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, message actions dialog
+# Authors: Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+from gi.repository import Gtk
+from ayatanawebmail.common import getDataPath
+from ayatanawebmail.appdata import APPNAME
+
+class DialogActions(Gtk.Dialog):
+
+ def __init__(self, strSender, strSubject):
+
+ Gtk.Dialog.__init__(self, _('Message actions'), None, 0, (_('Delete'), 100, _('Mark as read'), 200, _('Open message/Run command'), 300))
+ self.set_icon_from_file(getDataPath('/usr/share/icons/hicolor/scalable/apps/' + APPNAME + '.svg'))
+ self.set_position(Gtk.WindowPosition.CENTER)
+ oImage = Gtk.Image()
+ oImage.set_from_file(getDataPath('/usr/share/icons/hicolor/scalable/apps/' + APPNAME + '.svg'))
+ oImage.props.valign = Gtk.Align.START
+ oImage.props.icon_size = Gtk.IconSize.DIALOG
+ oGrid = Gtk.Grid(border_width=10, row_spacing=2, column_spacing=10)
+ oGrid.attach(oImage, 0, 0, 1, 4)
+ oGrid.attach(Gtk.Label('<b>' + _('Sender') + '</b>', xalign=0, use_markup=True, valign = Gtk.Align.START), 1, 0, 1, 1)
+ oGrid.attach(Gtk.Label(strSender, xalign=0, margin_bottom=10, valign = Gtk.Align.START), 1, 1, 1, 1)
+ oGrid.attach(Gtk.Label('<b>' + _('Subject') + '</b>', xalign=0, use_markup=True, valign = Gtk.Align.START), 1, 2, 1, 1)
+ oGrid.attach(Gtk.Label(strSubject, xalign=0, valign = Gtk.Align.START, vexpand = True), 1, 3, 1, 1)
+ self.get_content_area().add(oGrid)
+ oButtonDelete = self.get_widget_for_response(100)
+ oButtonDelete.set_image(Gtk.Image.new_from_icon_name('gtk-delete', Gtk.IconSize.BUTTON))
+ oButtonMark = self.get_widget_for_response(200)
+ oButtonMark.set_image(Gtk.Image.new_from_icon_name('gtk-ok', Gtk.IconSize.BUTTON))
+ oButtonOpen = self.get_widget_for_response(300)
+ oButtonOpen.set_image(Gtk.Image.new_from_icon_name('web-browser', Gtk.IconSize.BUTTON))
+ self.set_keep_above(True)
+ self.show_all()
diff --git a/ayatanawebmail/appdata.py b/ayatanawebmail/appdata.py
new file mode 100755
index 0000000..aba29f6
--- /dev/null
+++ b/ayatanawebmail/appdata.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+APPNAME = 'ayatanawebmail'
+APPEXECUTABLE='/usr/bin/ayatana-webmail'
+APPDEPENDENCIES = ['gir1.2-messagingmenu-1.0', 'python3-gi', 'gir1.2-gtk-3.0', 'gir1.2-notify-0.7', 'python3-secretstorage', 'gnome-session-canberra', 'python3-psutil', 'python3-babel', 'python3-urllib3']
+APPRECOMMENDS = ['gir1.2-unity-5.0']
+APPVERSION = '20.8.16'
+APPSHOWSETTINGS = 180603
+APPYEAR = '2016'
+APPTITLE = 'Ayatana Webmail'
+APPDESCRIPTION = 'Webmail notifications and actions for any desktop'
+APPLONGDESCRIPTION = 'Ayatana Webmail is an application that integrates your webmail into MATE, Xfce, LXDE and other environments. It displays notifications about incoming mail, shows the number of unread messages and displays subjects in the Messaging Menu. The Launcher item also has a quicklist that provides quick access to your mail folders (configured for GMail by default). It also allows you to quickly compose a new message. Ayatana Webmail starts automatically, all you have to do is to enter your accounts settings in a configuration dialog.'
+APPAUTHOR = 'Robert Tari'
+APPMAIL = 'robert@tari.in'
+APPURL = 'https://tari.in/www/software/ayatana-webmail/'
+APPKEYWORDS = ['ayatanawebmail', 'ayatana-webmail', 'e-mail','notification','gmail','indicator','mate','ayatana']
+APPDEBUG = []
diff --git a/ayatanawebmail/application.py b/ayatanawebmail/application.py
new file mode 100755
index 0000000..4c1ba92
--- /dev/null
+++ b/ayatanawebmail/application.py
@@ -0,0 +1,1207 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, the main application class
+# Authors: Dmitry Shachnev <mitya57@gmail.com>
+# Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import gi
+
+gi.require_version('Gtk', '3.0')
+gi.require_version('Notify', '0.7')
+
+import email
+import email.errors
+import email.header
+import email.utils
+import dbus
+import dbus.service
+import logging
+import secretstorage
+import subprocess
+import sys
+import time
+import re
+import ayatanawebmail.imaplib2 as imaplib
+import os.path
+import os
+import urllib3
+import importlib
+import locale
+import psutil
+from gi.repository import Gio, GLib, Gtk, Notify
+from socket import error as socketerror
+from dbus.mainloop.glib import DBusGMainLoop
+from babel.dates import format_timedelta
+from ayatanawebmail.common import g_oTranslation, g_oSettings, openURLOrCommand, g_lstAccounts, g_dctDefaultURLs
+from ayatanawebmail.idler import Idler
+from ayatanawebmail.dialog import PreferencesDialog, MESSAGEACTION
+from ayatanawebmail.actions import DialogActions
+from ayatanawebmail.appdata import APPNAME
+
+urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
+imaplib._MAXLINE = 500000#160000 # See discussion in LP: #1309566
+logger = logging.getLogger('Ayatana Webmail')
+logger.setLevel(logging.DEBUG)
+handler = logging.StreamHandler()
+handler.setFormatter(logging.Formatter('%(asctime)s: %(name)s: %(levelname)s: %(message)s'))
+logger.addHandler(handler)
+logger.propagate = False
+m_reThrid = re.compile(b'THRID (\\d+)')
+fixFormat = lambda string: string.replace('%(t0)s', '{t0}').replace('%(t1)s', '{t1}')
+
+def checkNetwork():
+
+ try:
+
+ oResult = urllib3.PoolManager().request('HEAD', 'https://www.google.com', timeout=5)
+ return True
+
+ except Exception as oException:
+
+ return False
+
+def decodeWrapper(header):
+
+ # Decodes an Email header, returns a string
+ # A hack for headers without a space between decoded name and email
+ try:
+
+ dec = email.header.decode_header(header.replace('=?=<', '=?= <'))
+
+ except email.errors.HeaderParseError:
+
+ logger.warning('Exception in decode, skipping.')
+ return header
+
+ parts = []
+
+ for dec_part in dec:
+
+ if dec_part[1]:
+
+ try:
+ parts.append(dec_part[0].decode(dec_part[1]))
+ except (AttributeError, LookupError, UnicodeDecodeError):
+ logger.warning('Exception in decode, skipping.')
+
+ elif isinstance(dec_part[0], bytes):
+
+ parts.append(dec_part[0].decode())
+
+ else:
+ parts.append(dec_part[0])
+
+ return str.join(' ', parts)
+
+def getHeaderWrapper(message, header_name, decode):
+
+ header = message[header_name]
+
+ if isinstance(header, str):
+
+ header = header.replace(' \r\n', '').replace('\r\n', '')
+ return (decodeWrapper(header) if decode else header)
+
+ return ''
+
+def getSenderName(sender):
+
+ # Strips address, and returns only name
+ sname = email.utils.parseaddr(sender)[0]
+
+ return sname if sname else sender
+
+class MessagingMenu(object):
+
+ oUnity = None
+ oMessagingMenu = None
+ oAppIndicator = None
+
+ def __init__(self, fnActivate, fnSettings, fnUpdateMessageAges, fnCheckNetwork):
+
+ self.fnActivate = fnActivate
+ self.launcher = None
+ self.nMenuItems = 0
+ self.nMessageAgeTimer = None
+ self.nNetworkTimer = GLib.timeout_add_seconds(60, fnCheckNetwork)
+ self.oMenuItemClear = None
+ self.oMailIcon = Gio.Icon.new_for_string('mail-unread')
+
+ try:
+
+ gi.require_version('Unity', '7.0')
+ self.oUnity = importlib.import_module('gi.repository.Unity')
+
+ strDesktopId = 'ayatana-webmail.desktop'
+
+ for strId in self.oUnity.LauncherFavorites.get_default().enumerate_ids():
+
+ if APPNAME in strId:
+
+ strDesktopId = strId
+ break
+
+ self.oLauncher = self.oUnity.LauncherEntry.get_for_desktop_id(strDesktopId)
+
+ except Exception as oException:
+
+ pass
+
+ lstProcesses = [oProcess.name() for oProcess in psutil.process_iter()]
+
+ if 'ayatana-indicator-messages-service' in lstProcesses:
+
+ try:
+
+ gi.require_version('AyatanaMessagingMenu', '1.0')
+ self.oMessagingMenu = importlib.import_module('gi.repository.AyatanaMessagingMenu')
+
+ except Exception as oException:
+
+ gi.require_version('MessagingMenu', '1.0')
+ self.oMessagingMenu = importlib.import_module('gi.repository.MessagingMenu')
+
+ elif 'indicator-messages-service' in lstProcesses:
+
+ gi.require_version('MessagingMenu', '1.0')
+ self.oMessagingMenu = importlib.import_module('gi.repository.MessagingMenu')
+
+ if self.oMessagingMenu:
+
+ self.oIndicator = self.oMessagingMenu.App(desktop_id='ayatana-webmail.desktop')
+ self.oIndicator.register()
+ self.oIndicator.connect('activate-source', lambda a, i: self.onMenuItemClicked(i))
+
+ return
+
+ if 'ayatana-indicator-application-service' in lstProcesses:
+
+ try:
+
+ gi.require_version('AyatanaAppIndicator3', '0.1')
+ self.oAppIndicator = importlib.import_module('gi.repository.AyatanaAppIndicator3')
+
+ except Exception as oException:
+
+ gi.require_version('AppIndicator3', '0.1')
+ self.oAppIndicator = importlib.import_module('gi.repository.AppIndicator3')
+
+ if not self.oAppIndicator:
+
+ gi.require_version('AppIndicator3', '0.1')
+ self.oAppIndicator = importlib.import_module('gi.repository.AppIndicator3')
+
+ self.oIndicator = self.oAppIndicator.Indicator.new(APPNAME, 'indicator-messages', self.oAppIndicator.IndicatorCategory.APPLICATION_STATUS)
+ self.oIndicator.set_attention_icon('indicator-messages-new')
+ self.oIndicator.set_status(self.oAppIndicator.IndicatorStatus.ACTIVE)
+ self.oMenu = Gtk.Menu()
+ self.oMenu.append(Gtk.SeparatorMenuItem())
+ oMenuItemInbox = Gtk.MenuItem()
+ oMenuItemInbox.connect('activate', lambda w: openURLOrCommand('Home'))
+ oBoxInbox = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 6)
+ oBoxInbox.pack_start(Gtk.Image.new_from_stock(Gtk.STOCK_HOME, Gtk.IconSize.MENU), False, False, 0)
+ oBoxInbox.pack_start(Gtk.Label(_('Open webmail home page'), xalign=0), True, True, 0)
+ oMenuItemInbox.add(oBoxInbox)
+ self.oMenu.append(oMenuItemInbox)
+ self.oMenuItemClear = Gtk.MenuItem(sensitive=False)
+ self.oMenuItemClear.connect('activate', self.onClear)
+ oBoxClear = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 6)
+ oBoxClear.pack_start(Gtk.Image.new_from_icon_name('gtk-clear', Gtk.IconSize.MENU), False, False, 0)
+ oBoxClear.pack_start(Gtk.Label(_('Clear'), xalign=0), True, True, 0)
+ self.oMenuItemClear.add(oBoxClear)
+ self.oMenu.append(self.oMenuItemClear)
+ oMenuItemConfig = Gtk.MenuItem()
+ oMenuItemConfig.connect('activate', lambda w: fnSettings())
+ oBoxConfig = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 6)
+ oBoxConfig.pack_start(Gtk.Image.new_from_stock(Gtk.STOCK_PREFERENCES, Gtk.IconSize.MENU), False, False, 0)
+ oBoxConfig.pack_start(Gtk.Label(_('Settings'), xalign=0), True, True, 0)
+ oMenuItemConfig.add(oBoxConfig)
+ self.oMenu.append(oMenuItemConfig)
+ self.oMenu.show_all()
+ self.oIndicator.set_menu(self.oMenu)
+ self.nMenuItems = len(self.oMenu.get_children())
+ self.nMessageAgeTimer = GLib.timeout_add_seconds(60, fnUpdateMessageAges)
+
+ def getMessageAge(self, nTimestamp):
+
+ nTimeDelta = int(time.time() - nTimestamp / 1000000)
+ strGranularity = 'minute'
+
+ if nTimeDelta > (7 * 24 * 60 * 60):
+ strGranularity = 'week'
+ elif nTimeDelta > (24 * 60 * 60):
+ strGranularity = 'day'
+ elif nTimeDelta > (60 * 60):
+ strGranularity = 'hour'
+ elif nTimeDelta < 60:
+ nTimeDelta = 61
+
+ return ' (' + format_timedelta(nTimeDelta, granularity=strGranularity, format='short', locale=locale.getlocale()[0]) + ')'
+
+ def onMenuItemClicked(self, strId):
+
+ if self.fnActivate(strId):
+
+ self.setCount(-1, True)
+
+ if not self.oMessagingMenu:
+ self.remove(strId)
+
+ def append(self, strId, strTitle, nTimestamp, bDrawAttention):
+
+ if self.oMessagingMenu:
+
+ self.oIndicator.append_source_with_time(strId, self.oMailIcon, strTitle, nTimestamp)
+
+ if bDrawAttention:
+ self.oIndicator.draw_attention(strId)
+
+ else:
+
+ oMenuItem = Gtk.MenuItem()
+ oMenuItem.props.name = strId
+ oMenuItem.connect('activate', lambda w: self.onMenuItemClicked(w.props.name))
+ oBox = Gtk.Box(Gtk.Orientation.HORIZONTAL, 6)
+ oBox.pack_start(Gtk.Image.new_from_icon_name('mail-unread', Gtk.IconSize.MENU), False, False, 0)
+ oBox.pack_start(Gtk.Label(strTitle + self.getMessageAge(nTimestamp), xalign=0), True, True, 0)
+ oMenuItem.add(oBox)
+ oMenuItem.show_all()
+ self.oMenu.insert(oMenuItem, len(self.oMenu.get_children()) - self.nMenuItems)
+
+ if bDrawAttention:
+ self.oIndicator.set_status(self.oAppIndicator.IndicatorStatus.ATTENTION)
+
+ self.oMenuItemClear.set_sensitive(True)
+
+ return False
+
+ def remove(self, strId):
+
+ if self.oMessagingMenu:
+
+ if self.oIndicator.has_source(strId):
+ self.oIndicator.remove_source(strId)
+
+ else:
+
+ for oItem in self.oMenu.get_children()[0:-self.nMenuItems]:
+
+ if oItem.props.name == strId:
+ self.oMenu.remove(oItem)
+
+ if len(self.oMenu.get_children()) - self.nMenuItems == 0:
+
+ self.oIndicator.set_status(self.oAppIndicator.IndicatorStatus.ACTIVE)
+ self.oMenuItemClear.set_sensitive(False)
+
+ return False
+
+ def hasSource(self, strId):
+
+ if self.oMessagingMenu:
+
+ return self.oIndicator.has_source(strId)
+
+ else:
+
+ for oItem in self.oMenu.get_children()[0:-self.nMenuItems]:
+
+ if oItem.props.name == strId:
+ return True
+
+ return False
+
+ def close(self):
+
+ if not self.oMessagingMenu:
+ GLib.source_remove(self.nMessageAgeTimer)
+
+ GLib.source_remove(self.nNetworkTimer)
+
+ def update(self, strId, nTimestamp):
+
+ for oItem in self.oMenu.get_children()[0:-self.nMenuItems]:
+
+ if oItem.props.name == strId:
+
+ oLabel = oItem.get_children()[0].get_children()[1]
+ oLabel.set_text(oLabel.get_text().rpartition(' (')[0] + self.getMessageAge(nTimestamp))
+
+ return False
+
+ def onClear(self, oWidget):
+
+ for oItem in self.oMenu.get_children()[0:-self.nMenuItems]:
+ self.oMenu.remove(oItem)
+
+ if len(self.oMenu.get_children()) - self.nMenuItems == 0:
+
+ self.oIndicator.set_status(self.oAppIndicator.IndicatorStatus.ACTIVE)
+ self.oMenuItemClear.set_sensitive(False)
+
+ self.setCount(0, True)
+
+ def setCount(self, nCount, bVisible):
+
+ if nCount == -1:
+
+ if self.oUnity:
+ nCount = self.oLauncher.get_property('count') - 1
+ elif not self.oMessagingMenu:
+ nCount = int(self.oIndicator.get_label()) - 1
+
+ bVisible = bVisible and ((nCount > 0) or not g_oSettings.get_boolean('hide-messages-count'))
+
+ if self.oUnity:
+
+ self.oLauncher.set_property('count', nCount)
+ self.oLauncher.set_property('count_visible', bVisible)
+
+ elif not self.oMessagingMenu:
+ self.oIndicator.set_label(str(nCount) if bVisible else '', '')
+
+ return False
+
+class SessionBus(dbus.service.Object):
+
+ fnSettings = None
+ fnClear = None
+ fnIsInit = None
+
+ def __init__(self, fnSettings, fnClear, fnIsInit, fnOpenURL):
+
+ oBusName = dbus.service.BusName('org.ayatana.webmail', bus=dbus.SessionBus())
+ dbus.service.Object.__init__(self, oBusName, '/org/ayatana/webmail')
+
+ self.fnSettings = fnSettings
+ self.fnClear = fnClear
+ self.fnIsInit = fnIsInit
+ self.fnOpenURL = fnOpenURL
+
+ @dbus.service.method('org.ayatana.webmail')
+ def settings(self):
+ self.fnSettings()
+
+ @dbus.service.method('org.ayatana.webmail')
+ def clear(self):
+ self.fnClear()
+
+ @dbus.service.method('org.ayatana.webmail')
+ def isinit(self):
+ return self.fnIsInit()
+
+ @dbus.service.method('org.ayatana.webmail', in_signature='s')
+ def openurl(self, strURL):
+ return self.fnOpenURL(strURL)
+
+class Connection(object):
+
+ def __init__(self, bDebug, host, port, login, passwd, folder, fnIdle, strInbox):
+
+ self.bDebug = bDebug
+ self.strHost = host
+ self.nPort = port
+ self.strLogin = login
+ self.strPasswd = passwd
+ self.oImap = None
+ self.lstNotificationQueue = []
+ self.oIdler = None
+ self.strFolder = folder
+ self.fnIdle = fnIdle
+ self.strInbox = strInbox
+ self.bConnecting = False
+
+ def close(self):
+
+ if self.oIdler:
+
+ self.oIdler.stop()
+ self.oIdler.join()
+ self.oIdler = None
+
+ if self.oImap:
+
+ try:
+ self.oImap.close()
+ except Exception as oException:
+ pass
+
+ try:
+ self.oImap.logout()
+ except Exception as oException:
+ pass
+
+ self.oImap = None
+
+ logger.info('"{0}:{1}" has been cleaned up.'.format(self.strLogin, self.strFolder))
+
+ def connect(self):
+
+ try:
+
+ self.oImap = imaplib.IMAP4_SSL(self.strHost, self.nPort, debug=int(self.bDebug)*5)
+
+ except Exception as e:
+
+ logger.warning('"{0}:{1}" IMAP4_SSL failed, trying IMAP4.'.format(self.strLogin, self.strFolder))
+
+ self.oImap = imaplib.IMAP4(self.strHost, self.nPort, debug=int(self.bDebug)*5)
+
+ if 'STARTTLS' in self.oImap.capabilities:
+ self.oImap.starttls()
+
+ try:
+ self.oImap.login(self.strLogin, self.strPasswd)
+
+ except Exception as e:
+
+ logger.error('"{0}:{1}" login failed.'.format(self.strLogin, self.strFolder))
+ raise
+
+ strFolderUTF7 = bytes(self.strFolder, 'utf-7').replace(b'+', b'&').replace(b' &', b'- &')
+
+ if b' ' in strFolderUTF7:
+ strFolderUTF7 = b'"' + strFolderUTF7 + b'"'
+
+ if self.oImap.select(mailbox=strFolderUTF7)[0] != 'OK':
+
+ raise Exception('Mailbox "{0}:{1}" does not exist.'.format(self.strLogin, self.strFolder))
+
+ else:
+
+ logger.info('"{0}:{1}" is now connected.'.format(self.strLogin, self.strFolder))
+ self.fnIdle(self, False)
+ self.oIdler = Idler(self, self.fnIdle, logger)
+ self.oIdler.start()
+
+ def isOpen(self):
+
+ return checkNetwork() and self.oImap and self.oImap.state != imaplib.LOGOUT and not self.oImap.Terminate
+
+class Message(object):
+
+ def __init__(self, oConnection, strUId, title, message_id, timestamp, strSender, thread_id=''):
+
+ self.oConnection = oConnection
+ self.strUId = strUId
+ self.title = title
+ self.message_id = message_id
+ self.timestamp = timestamp
+ self.thread_id = thread_id
+ self.strSender = strSender
+
+class AyatanaWebmail(object):
+
+ def __init__(self, bDebug):
+
+ self.bDebug = bDebug
+ self.dlgSettings = None
+ self.nLastMailTimestamp = 0
+ self.first_run = True
+ self.lstConnections = []
+ self.lstUnreadMessages = []
+ self.bDrawAttention = False
+ self.bIdlerRunning = False
+ self.bNoNetwork = True
+ self.oMessagingMenu = MessagingMenu(self.onMenuItemClicked, self.openDialog, self.updateMessageAges, self.fnCheckNetwork)
+
+ self.initKeyring()
+ self.initConfig()
+ DBusGMainLoop(set_as_default=True)
+ SessionBus(self.openDialog, self.clear, lambda: bool(g_lstAccounts), openURLOrCommand)
+ oSystemBus = dbus.SystemBus()
+ oSystemBus.add_signal_receiver(self.onPrepareForSleep, 'PrepareForSleep', 'org.freedesktop.login1.Manager', 'org.freedesktop.login1')
+ Notify.init('Ayatana Webmail')
+ GLib.set_application_name('Ayatana Webmail')
+
+ if not self.bIdlerRunning:
+
+ self.bIdlerRunning = True
+
+ for oConnection in self.lstConnections:
+ oConnection.bConnecting = True
+
+ GLib.timeout_add_seconds(5, self.connect, self.lstConnections)
+
+ try:
+ GLib.MainLoop().run()
+ except KeyboardInterrupt:
+ self.close(0)
+
+ def onPrepareForSleep(self, bGoing):
+
+ if not bGoing:
+
+ logger.info('The System has resumed from sleep, reconnecting accounts.')
+
+ for oConnection in self.lstConnections:
+
+ oConnection.bConnecting = True
+ oConnection.close()
+
+ GLib.timeout_add_seconds(5, self.connect, self.lstConnections)
+
+ def fnCheckNetwork(self):
+
+ if not checkNetwork():
+
+ logger.info('No network connection, checking in 1 minute.')
+ self.bNoNetwork = True
+ self.bIdlerRunning = False
+
+ elif self.bNoNetwork:
+
+ self.bNoNetwork = False
+
+ if not self.bIdlerRunning:
+
+ self.bIdlerRunning = True
+
+ for oConnection in self.lstConnections:
+ oConnection.bConnecting = True
+
+ GLib.timeout_add_seconds(5, self.connect, self.lstConnections)
+
+ return True
+
+ def clear(self):
+
+ # WARNING: loadDataFromDicts also calls this!
+ if g_lstAccounts:
+
+ for oMessage in self.lstUnreadMessages:
+
+ #self.markMessageAsRead(message)
+ GLib.idle_add(self.oMessagingMenu.remove, oMessage.message_id)
+ time.sleep(0.01)
+
+ self.setLauncherCount(0)
+
+ def closeConnections(self):
+
+ for oConnection in self.lstConnections:
+ oConnection.close()
+
+ self.lstConnections = []
+ self.bIdlerRunning = False
+
+ def close(self, nCode):
+
+ self.oMessagingMenu.close()
+ self.closeConnections()
+ print()
+ sys.exit(nCode)
+
+ def onMenuItemClicked(self, strId):
+
+ for message in self.lstUnreadMessages:
+
+ if message.message_id == strId:
+
+ if self.nMessageAction == MESSAGEACTION['MARK']:
+
+ self.markMessageAsRead(message)
+
+ elif self.nMessageAction == MESSAGEACTION['ASK']:
+
+ dlg = DialogActions(message.strSender, message.title)
+ nResponse = dlg.run()
+ dlg.destroy()
+
+ if nResponse == 100:
+
+ try:
+
+ if any(s in message.oConnection.strHost for s in ['gmail', 'google']):
+
+ message.oConnection.oImap.uid('STORE', message.strUId, '+X-GM-LABELS', '\\Trash')
+
+ else:
+
+ message.oConnection.oImap.uid('STORE', message.strUId, '+FLAGS', '\\Deleted')
+ message.oConnection.oImap.expunge()
+
+ except (imaplib.IMAP4.error, socketerror) as oError:
+
+ logger.error(str(oError))
+
+ elif nResponse == 200:
+
+ self.markMessageAsRead(message)
+
+ elif nResponse == 300:
+
+ openURLOrCommand(message.oConnection.strInbox.replace('$MSG_THREAD', message.thread_id).replace('$MSG_UID', message.strUId.decode('utf-8')))
+
+ else:
+
+ self.bDrawAttention = not message.timestamp < self.nLastMailTimestamp
+ self.appendToIndicator(message)
+ self.bDrawAttention = False
+ return False
+
+ else:
+
+ openURLOrCommand(message.oConnection.strInbox.replace('$MSG_THREAD', message.thread_id).replace('$MSG_UID', message.strUId.decode('utf-8')))
+
+ # True removes the message from Appindicator3
+ return True
+
+ def markMessageAsRead(self, message):
+
+ # Mark entire conversation
+ lstIndexes = [message.strUId]
+
+ if message.thread_id and self.bMergeConversation:
+
+ lstSearch = []
+
+ try:
+
+ lstSearch = message.oConnection.oImap.uid('SEARCH', None, '(X-GM-THRID ' + str(int(message.thread_id, 16)) + ')')
+
+ except imaplib.IMAP4.error as oError:
+
+ logger.error(str(oError))
+ return
+
+ if lstSearch[1][0] is not None:
+ lstIndexes = [m for m in lstSearch[1][0].split()]
+
+ for strIndex in lstIndexes:
+
+ try:
+
+ message.oConnection.oImap.uid('STORE', strIndex, '+FLAGS', '\\Seen')
+
+ except (imaplib.IMAP4.error, socketerror) as e:
+
+ logger.error(str(e))
+
+ def initConfig(self):
+
+ self.nMaxCount = g_oSettings.get_int('max-item-count')
+ self.bEnableNotifications = g_oSettings.get_boolean('enable-notifications')
+ self.bPlaySound = g_oSettings.get_boolean('enable-sound')
+ self.bHideCount = g_oSettings.get_boolean('hide-messages-count')
+ self.strCommand = g_oSettings.get_string('exec-on-receive')
+ self.custom_sound = g_oSettings.get_string('custom-sound')
+ self.bMergeConversation = g_oSettings.get_boolean('merge-messages')
+ self.nMessageAction = g_oSettings.get_enum('message-action')
+
+ def initKeyring(self):
+
+ bus = secretstorage.dbus_init()
+
+ try:
+
+ self.collection = secretstorage.get_default_collection(bus)
+ self.collection.is_locked()
+
+ except secretstorage.SecretStorageException as e:
+
+ logger.critical(str(e))
+ self.close(1)
+
+ if self.collection.is_locked():
+ self.collection.unlock()
+
+ if self.collection.is_locked():
+
+ logger.critical('Failed to unlock the collection, exiting.')
+ self.close(1)
+
+ self.mail_keys = list(self.collection.search_items({'application': 'ayatana-webmail'}))
+
+ if not self.mail_keys:
+ self.openDialog()
+
+ if not g_lstAccounts:
+
+ for key in sorted(self.mail_keys, key=lambda item: item.item_path):
+
+ dctAttributes = key.get_attributes()
+ strHost = dctAttributes['server']
+ nPort = int(dctAttributes['port'])
+ strLogin = dctAttributes['username']
+ strPasswd = key.get_secret().decode('utf-8')
+ strFolders = dctAttributes['folders']
+ strHome = g_oSettings.get_string('home')
+ strCompose = g_oSettings.get_string('compose')
+ strInbox = g_oSettings.get_string('inbox')
+ strSent = g_oSettings.get_string('sent')
+ strInboxAppend = ''
+
+ try:
+
+ strHome = dctAttributes['home']
+ strCompose = dctAttributes['compose']
+ strInbox = dctAttributes['inbox']
+ strSent = dctAttributes['sent']
+
+ except KeyError:
+
+ pass
+
+ try:
+
+ strInboxAppend = dctAttributes['InboxAppend']
+
+ except KeyError:
+
+ if strInbox == g_dctDefaultURLs['Inbox']:
+ strInboxAppend = '/$MSG_THREAD'
+
+ pass
+
+ g_lstAccounts.append({'Host': strHost, 'Port': nPort, 'Login': strLogin, 'Passwd': strPasswd, 'Folders': strFolders, 'Home': strHome, 'Compose': strCompose, 'Inbox': strInbox, 'Sent': strSent, 'InboxAppend': strInboxAppend})
+
+ for strFolder in strFolders.split('\t'):
+ self.lstConnections.append(Connection(self.bDebug, strHost, nPort, strLogin, strPasswd, strFolder, self.onIdle, strInbox + strInboxAppend))
+
+ def createKeyringItem(self, ind, update=False):
+
+ attrs = {'application': 'ayatana-webmail', 'service': 'imap', 'server': g_lstAccounts[ind]['Host'], 'port': str(g_lstAccounts[ind]['Port']), 'username': g_lstAccounts[ind]['Login'], 'folders': g_lstAccounts[ind]['Folders'], 'home': g_lstAccounts[ind]['Home'], 'compose': g_lstAccounts[ind]['Compose'], 'inbox': g_lstAccounts[ind]['Inbox'], 'sent': g_lstAccounts[ind]['Sent'], 'InboxAppend': g_lstAccounts[ind]['InboxAppend']}
+ label = 'ayatana-webmail: ' + g_lstAccounts[ind]['Login'] + ' at ' + g_lstAccounts[ind]['Host']
+
+ if update:
+
+ self.mail_keys[ind].set_attributes(attrs)
+ self.mail_keys[ind].set_secret(g_lstAccounts[ind]['Passwd'])
+ self.mail_keys[ind].set_label(label)
+
+ else:
+
+ self.collection.unlock()
+ self.collection.create_item(label, attrs, g_lstAccounts[ind]['Passwd'], True)
+
+ def openDialog(self):
+
+ if not self.dlgSettings:
+
+ self.dlgSettings = PreferencesDialog()
+ self.dlgSettings.connect('response', self.onDialogResponse)
+
+ if self.mail_keys:
+ self.dlgSettings.setAccounts(g_lstAccounts)
+
+ self.dlgSettings.run()
+ self.dlgSettings.destroy()
+ self.dlgSettings = None
+
+ def onDialogResponse(self, dlg, response):
+
+ global g_lstAccounts
+
+ if response == Gtk.ResponseType.APPLY:
+
+ dlg.updateAccounts()
+ dlg.saveAllSettings()
+
+ g_lstAccounts = dlg.lstDicts[:]
+
+ self.loadDataFromDicts()
+
+ for index in range(len(g_lstAccounts), len(self.mail_keys)):
+
+ # Remove old keys
+ self.mail_keys[index].delete()
+
+ for index in range(len(g_lstAccounts)):
+
+ # Create new keys or update existing
+ self.createKeyringItem(index, update=(index < len(self.mail_keys)))
+
+ self.mail_keys = list(self.collection.search_items({'application': 'ayatana-webmail'}))
+
+ if self.mail_keys and g_lstAccounts and all(self.lstConnections) and not self.bIdlerRunning:
+
+ self.bIdlerRunning = True
+
+ for oConnection in self.lstConnections:
+ oConnection.bConnecting = True
+
+ GLib.timeout_add_seconds(5, self.connect, self.lstConnections)
+
+ if response in [Gtk.ResponseType.APPLY, Gtk.ResponseType.CANCEL]:
+ dlg.destroy()
+
+ def loadDataFromDicts(self):
+
+ self.closeConnections()
+ self.initConfig()
+ self.clear()
+ self.lstUnreadMessages = []
+ self.nLastMailTimestamp = 0
+ self.first_run = True
+
+ for dct in g_lstAccounts:
+
+ strFolders = 'INBOX'
+
+ try:
+ strFolders = dct['Folders']
+ except KeyError:
+ pass
+
+ nPort = 993
+
+ try:
+ nPort = int(dct['Port'])
+ except ValueError:
+ pass
+
+ for strFolder in strFolders.split('\t'):
+ self.lstConnections.append(Connection(self.bDebug, dct['Host'], nPort, dct['Login'], dct['Passwd'], strFolder, self.onIdle, dct['Inbox'] + dct['InboxAppend']))
+
+ def appendToIndicator(self, message):
+
+ if self.oMessagingMenu.hasSource(message.message_id):
+ return
+
+ title = message.title
+
+ if len(title) > 50:
+ title = title[:50] + '...'
+
+ if len(g_lstAccounts) > 1:
+ title = '↪ ' + message.oConnection.strLogin + '\n' + title
+
+ GLib.idle_add(self.oMessagingMenu.append, message.message_id, title, message.timestamp, self.bDrawAttention)
+ time.sleep(0.01)
+
+ def onIdle(self, oConnection, bAborted):
+
+ if bAborted or not oConnection.isOpen():
+
+ if not oConnection.bConnecting:
+
+ oConnection.bConnecting = True
+ GLib.timeout_add_seconds(1, oConnection.close)
+ logger.info('"{0}:{1}" will try to reconnect in 1 minute.'.format(oConnection.strLogin, oConnection.strFolder))
+ GLib.timeout_add_seconds(60, self.connect, [oConnection])
+
+ return
+
+ lstMessages = []
+ lstNewMessages = []
+ lstUnread = []
+
+ search = oConnection.oImap.uid('SEARCH', '(UNSEEN)')
+
+ if search[1][0] is not None:
+ lstMessages = search[1][0].split()
+
+ for m in lstMessages[-self.nMaxCount:]:
+
+ typ = None
+ msg_data = None
+ thread_id = ''
+ msg = None
+
+ try:
+
+ typ, msg_data = oConnection.oImap.uid('FETCH', m, '(X-GM-THRID BODY.PEEK[HEADER.FIELDS (DATE SUBJECT FROM MESSAGE-ID)])')
+
+ for lstField in msg_data:
+
+ if 'THRID' in str(lstField):
+
+ thread_id = '%x' % int(m_reThrid.search(lstField[0]).group(1))
+ break
+
+ except imaplib.IMAP4.error:
+
+ typ, msg_data = oConnection.oImap.uid('FETCH', m, '(BODY.PEEK[HEADER.FIELDS (DATE SUBJECT FROM MESSAGE-ID)])')
+
+ for response_part in msg_data:
+
+ if isinstance(response_part, tuple):
+ msg = email.message_from_bytes(response_part[1])
+
+ if msg is None:
+ continue
+
+ message_id = msg['Message-Id']
+
+ if not isinstance(message_id, str):
+ message_id = oConnection.strHost + ':' + oConnection.strLogin + ':' + oConnection.strFolder + ':' + str(m.decode())
+
+ bMessageExists = False
+
+ for cMessage in self.lstUnreadMessages:
+
+ if cMessage.message_id == message_id:
+
+ bMessageExists = True
+ break
+
+ if not bMessageExists:
+
+ sender = getHeaderWrapper(msg, 'From', True)
+ subj = getHeaderWrapper(msg, 'Subject', True)
+ date = getHeaderWrapper(msg, 'Date', False)
+
+ try:
+
+ tuple_time = email.utils.parsedate_tz(date)
+ timestamp = email.utils.mktime_tz(tuple_time)
+
+ if timestamp > time.time():
+
+ # Message time is larger than the current one
+ timestamp = time.time()
+
+ except TypeError:
+
+ # Failed to get time from message
+ timestamp = time.time()
+
+ # Number of seconds to number of microseconds
+ timestamp *= (10**6)
+
+ while subj.lower().startswith('re:'):
+ subj = subj[3:]
+
+ while subj.lower().startswith('fwd:'):
+ subj = subj[4:]
+
+ subj = subj.strip()
+
+ if sender.startswith('"'):
+
+ pos = sender[1:].find('"')
+
+ if pos >= 0:
+ sender = sender[1:pos+1]+sender[pos+2:]
+
+ ilabel = subj if subj else _('No subject')
+
+ # Display only last message in thread
+ bConversationInUnread = False
+ bConversationInNew = False
+
+ if thread_id and self.bMergeConversation:
+
+ for oMessage in self.lstUnreadMessages:
+
+ if oMessage.thread_id == thread_id:
+
+ oMessage.timestamp = max(timestamp, oMessage.timestamp)
+ bConversationInUnread = True
+ break
+
+ if not bConversationInUnread:
+
+ for oMessage in lstNewMessages:
+
+ if oMessage.thread_id == thread_id:
+
+ oMessage.timestamp = max(timestamp, oMessage.timestamp)
+ bConversationInNew = True
+ break
+
+ if not bConversationInUnread and not bConversationInNew:
+
+ message = Message(oConnection, m, ilabel, message_id, timestamp, sender, thread_id)
+ lstNewMessages.append(message)
+
+ if timestamp > self.nLastMailTimestamp:
+
+ if self.bEnableNotifications:
+
+ if not bConversationInNew:
+
+ oConnection.lstNotificationQueue.append([sender, subj, oConnection, thread_id])
+
+ else:
+
+ for lstNotification in oConnection.lstNotificationQueue:
+
+ if lstNotification[3] == thread_id:
+
+ lstNotification[0] = sender
+ break
+
+ self.nLastMailTimestamp = timestamp
+ self.bDrawAttention = True
+
+ if self.strCommand and not self.first_run:
+
+ try:
+
+ subprocess.call((self.strCommand, sender, ilabel))
+
+ except OSError as e:
+
+ # File doesn't exist or is not executable
+ logger.warning('Cannot execute command: {0}'.format(str(e)))
+
+ else:
+
+ lstUnread.append(message_id)
+
+ self.updateIndicator(lstNewMessages, [oMessage for oMessage in self.lstUnreadMessages if oMessage.oConnection == oConnection and oMessage.message_id not in lstUnread], oConnection)
+
+ def updateIndicator(self, lstNewMessages, lstRemovedMessages, oConnection):
+
+ for oMessage in [oMessage for oMessage in self.lstUnreadMessages if oMessage.oConnection == oConnection]:
+
+ # Removed outside the app
+ if oMessage in lstRemovedMessages:
+
+ GLib.idle_add(self.oMessagingMenu.remove, oMessage.message_id)
+ time.sleep(0.01)
+
+ # Cleared
+ if not self.oMessagingMenu.hasSource(oMessage.message_id) and oMessage not in lstNewMessages:
+
+ self.markMessageAsRead(oMessage)
+ self.lstUnreadMessages.remove(oMessage)
+
+ self.lstUnreadMessages = sorted(self.lstUnreadMessages + lstNewMessages, key=lambda m: m.timestamp)[-self.nMaxCount:]
+
+ #logger.debug('Unread: {0}, New: {1}, Removed: {2}'.format(len(self.lstUnreadMessages), len(lstNewMessages), len(lstRemovedMessages)))
+
+ if lstNewMessages:
+
+ for cMessage in lstNewMessages:
+ self.appendToIndicator(cMessage)
+
+ try:
+
+ if self.first_run and oConnection != self.lstConnections[-1]:
+
+ pass
+
+ elif self.first_run and oConnection == self.lstConnections[-1]:
+
+ self.showNotifications()
+ self.first_run = False
+
+ elif lstNewMessages:
+
+ self.showNotifications()
+
+ except GLib.GError as e:
+
+ logger.warning(str(e))
+
+ self.setLauncherCount(len(self.lstUnreadMessages))
+
+ if not self.first_run:
+ self.bDrawAttention = False
+
+ def updateMessageAges(self):
+
+ for oMessage in self.lstUnreadMessages:
+
+ GLib.idle_add(self.oMessagingMenu.update, oMessage.message_id, oMessage.timestamp)
+ time.sleep(0.01)
+
+ return True
+
+ def connect(self, lstConnections):
+
+ logger.info('Checking network...')
+
+ if not checkNetwork():
+ return False
+
+ logger.info('Network connection active, connecting...')
+
+ for oConnection in lstConnections:
+
+ oConnection.close()
+
+ try:
+
+ oConnection.connect()
+ oConnection.bConnecting = False
+
+ except KeyboardInterrupt:
+
+ self.close(0)
+
+ except Exception as oException:
+
+ logger.error('"{0}:{1}" could not connect: {2}'.format(oConnection.strLogin, oConnection.strFolder, str(oException)))
+
+ oNotification = Notify.Notification.new(_('Connection error'), '', APPNAME)
+ oNotification.set_property('body', _('Unable to connect to account "{accountName}", the application will now exit.').format(accountName=oConnection.strLogin) + '\n\n' + _('You can run "{command}" to delete all your login settings.').format(command='ayatana-webmail-reset'))
+ oNotification.set_hint('desktop-entry', GLib.Variant.new_string(APPNAME))
+ oNotification.set_timeout(Notify.EXPIRES_NEVER)
+ oNotification.show()
+ self.close(1)
+
+ return False
+
+ def setLauncherCount(self, nCount):
+
+ GLib.idle_add(self.oMessagingMenu.setCount, nCount, any([oImap for oImap in self.lstConnections]))
+ time.sleep(0.01)
+
+ def showNotifications(self):
+
+ lstNotificationsQueue = []
+
+ for oConnection in self.lstConnections:
+
+ if oConnection:
+
+ lstNotificationsQueue += oConnection.lstNotificationQueue
+ oConnection.lstNotificationQueue = []
+
+ number_of_mails = len(lstNotificationsQueue)
+ basemessage = g_oTranslation.ngettext('You have %d unread mail', 'You have %d unread mails', number_of_mails)
+ basemessage = basemessage.replace('%d', '{0}')
+
+ if number_of_mails and self.bPlaySound:
+
+ try:
+
+ if self.custom_sound:
+ subprocess.call(('canberra-gtk-play', '-f', self.custom_sound))
+ else:
+ subprocess.call(('canberra-gtk-play', '-i', 'message-new-email'))
+
+ except OSError as e:
+
+ logger.warning(str(e))
+
+ if number_of_mails > 1:
+
+ senders = set(getSenderName(lstNotification[0]) for lstNotification in lstNotificationsQueue)
+ unknown_sender = ('' in senders)
+
+ if unknown_sender:
+ senders.remove('')
+
+ ts = tuple(senders)
+
+ if len(ts) > 2 or (len(ts) == 2 and unknown_sender):
+ message = fixFormat(_('from %(t0)s, %(t1)s and others')).format(t0=ts[0], t1=ts[1])
+ elif len(ts) == 2 and not unknown_sender:
+ message = fixFormat(_('from %(t0)s and %(t1)s')).format(t0=ts[0], t1=ts[1])
+ elif len(ts) == 1 and not unknown_sender:
+ message = _('from %s').replace('%s', '{0}').format(getSenderName(ts[0]))
+ else:
+ message = None
+
+ oNotification = Notify.Notification.new(basemessage.format(number_of_mails), message, APPNAME)
+ oNotification.set_hint('desktop-entry', GLib.Variant.new_string(APPNAME))
+ oNotification.show()
+
+ elif number_of_mails:
+
+ lstNotification = lstNotificationsQueue[0]
+
+ if lstNotification[0]:
+ message = _('New mail from %s').replace('%s', '{0}').format(getSenderName(lstNotification[0]))
+ else:
+ message = basemessage.format(1)
+
+ oNotification = Notify.Notification.new(message, lstNotification[1], APPNAME)
+ oNotification.set_hint('desktop-entry', GLib.Variant.new_string(APPNAME))
+ oNotification.show()
diff --git a/ayatanawebmail/common.py b/ayatanawebmail/common.py
new file mode 100755
index 0000000..95d3797
--- /dev/null
+++ b/ayatanawebmail/common.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, message actions dialog
+# Authors: Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import gettext
+import os
+import psutil
+import subprocess
+import webbrowser
+from gi.repository import Gio
+from ayatanawebmail.appdata import APPEXECUTABLE, APPNAME
+from ayatanawebmail.accounts import DialogAccounts
+
+try:
+ g_oTranslation = gettext.translation(APPNAME)
+except IOError:
+ g_oTranslation = gettext.NullTranslations()
+
+g_oTranslation.install()
+
+g_dctDefaultURLs = {'Home': 'https://mail.google.com/mail/', 'Compose': 'https://mail.google.com/mail/#compose', 'Inbox': 'https://mail.google.com/mail/#inbox', 'Sent': 'https://mail.google.com/mail/#sent'}
+g_oSettings = Gio.Settings.new('org.ayatana.webmail')
+g_lstAccounts = []
+
+def getDataPath(strPath):
+
+ try:
+
+ strExecPath = os.path.split(APPEXECUTABLE)[0]
+ strDataPath = os.getcwd().replace(strExecPath, '')
+ strRelativePath = os.path.join(strDataPath, strPath.lstrip('/'))
+
+ if os.path.exists(strRelativePath):
+ return strRelativePath
+
+ except:
+
+ pass
+
+ return strPath
+
+def isRunning():
+
+ nCount = 0
+
+ for oProc in psutil.process_iter():
+
+ strName = oProc.name
+
+ if not isinstance(strName, str):
+
+ strName = oProc.name()
+
+ if strName == 'python3' or strName == 'python':
+
+ lstCmdline = oProc.cmdline
+
+ if not isinstance(lstCmdline, list):
+ lstCmdline = oProc.cmdline()
+
+ for strCmd in lstCmdline:
+
+ if strCmd.endswith('ayatana-webmail'):
+ nCount += 1
+
+ elif strName.endswith('ayatana-webmail'):
+
+ nCount += 1
+
+ return nCount
+
+def resolveURL(strURL):
+
+ if strURL.startswith('Exec:'):
+ subprocess.Popen(strURL[5:], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
+ elif strURL.startswith('http'):
+ webbrowser.open_new_tab(strURL)
+
+def openURLOrCommand(strURL):
+
+ if strURL in g_dctDefaultURLs:
+
+ strURL0 = g_lstAccounts[0][strURL]
+
+ if len(g_lstAccounts) > 1:
+
+ for dctAccount in g_lstAccounts[1:]:
+
+ if dctAccount[strURL] != strURL0:
+
+ oDialogAccounts = DialogAccounts(strURL, getDataPath, g_lstAccounts)
+ oDialogAccounts.run()
+ strURL = oDialogAccounts.strURL
+ oDialogAccounts.destroy()
+
+ if strURL:
+ resolveURL(strURL)
+
+ return
+
+ resolveURL(strURL0)
+
+ elif strURL.startswith('Exec:') or strURL.startswith('http'):
+
+ resolveURL(strURL)
+
+ else:
+
+ print('Unknown URL name!')
+ print('Possible URL names: "Home", "Compose", "Inbox", "Sent", "Exec:...", "http..."')
diff --git a/ayatanawebmail/dialog.py b/ayatanawebmail/dialog.py
new file mode 100755
index 0000000..453592a
--- /dev/null
+++ b/ayatanawebmail/dialog.py
@@ -0,0 +1,583 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, the Preferences Dialog
+# Authors: Dmitry Shachnev <mitya57@gmail.com>
+# Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import ayatanawebmail.imaplib2 as imaplib
+import os.path
+from socket import error as socketerror
+from gi.repository import Gtk, GdkPixbuf, Gdk
+from ayatanawebmail.common import g_oSettings, getDataPath, g_dctDefaultURLs
+from ayatanawebmail.appdata import APPVERSION, APPURL, APPDESCRIPTION, APPAUTHOR, APPYEAR, APPTITLE
+import webbrowser
+
+MESSAGEACTION = {'OPEN': 1, 'MARK': 2, 'ASK': 3}
+
+def utf7dec(lstInput):
+
+ if not isinstance(lstInput, bytes):
+
+ return lstInput
+
+ lstResult = []
+ lstBytes = bytearray()
+
+ for nChar in lstInput:
+
+ if nChar == b'&'[0] and not lstBytes:
+
+ lstBytes.append(nChar)
+
+ elif nChar == b'-'[0] and lstBytes:
+
+ if len(lstBytes) == 1:
+ lstResult.append('&')
+ else:
+ lstResult.append((b'+' + lstBytes[1:].replace(b',', b'/') + b'-').decode('utf-7'))
+
+ lstBytes = bytearray()
+
+ elif lstBytes:
+
+ lstBytes.append(nChar)
+
+ else:
+
+ lstResult.append(chr(nChar))
+
+ if lstBytes:
+ lstResult.append((b'+' + lstBytes[1:].replace(b',', b'/') + b'-').decode('utf-7'))
+
+ return ''.join(lstResult)
+
+class ComboEntry(Gtk.ButtonBox):
+
+ def __init__(self, strId, **kwargs):
+
+ Gtk.ButtonBox.__init__(self, orientation=Gtk.Orientation.HORIZONTAL, layout_style=Gtk.ButtonBoxStyle.EXPAND, **kwargs)
+
+ self.oComboBoxText = Gtk.ComboBoxText()
+ self.oComboBoxText.append('HTTP:', _('Web page'))
+ self.oComboBoxText.append('Exec:', _('Command'))
+ self.oEntry = Gtk.Entry()
+ self.oEntry.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, 'gtk-revert-to-saved-ltr')
+ self.oEntry.connect('icon-press', self.onReset)
+ self.oComboBoxText.set_active_id('HTTP:')
+ self.pack_start(self.oComboBoxText, False, False, 0)
+ self.pack_start(self.oEntry, True, True, 0)
+ self.set_homogeneous(False)
+ self.strId = strId
+
+ def onReset(self, oWidget, nPosition, oEvent):
+
+ self.setText(g_dctDefaultURLs[self.strId]);
+
+ def setText(self, strText):
+
+ self.oEntry.set_text(strText[5:] if strText.startswith('Exec:') else strText)
+ self.oComboBoxText.set_active_id('Exec:' if strText.startswith('Exec:') else 'HTTP:')
+
+ def getText(self):
+
+ return ('Exec:' if self.oComboBoxText.get_active_id() == 'Exec:' else '') + self.oEntry.get_text()
+
+class EntryReset(Gtk.Entry):
+
+ def __init__(self, oComboEntry, **kwargs):
+
+ Gtk.Entry.__init__(self, **kwargs)
+
+ self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, 'gtk-revert-to-saved-ltr')
+ self.connect('icon-press', self.onReset)
+ self.oComboEntry = oComboEntry
+ self.set_tooltip_text(_('Append an additional string - you can use the $MSG_THREAD and $MSG_UID placeholders.'))
+
+ def onReset(self, oWidget, nPosition, oEvent):
+
+ strText = ''
+
+ if self.oComboEntry.oComboBoxText.get_active_id() == 'HTTP:' and self.oComboEntry.getText() == g_dctDefaultURLs['Inbox']:
+ strText = '/$MSG_THREAD'
+
+ self.set_text(strText);
+
+class FileChooserButtonEx(Gtk.ButtonBox):
+
+ def __init__(self, strFilename, **kwargs):
+
+ Gtk.ButtonBox.__init__(self, orientation=Gtk.Orientation.HORIZONTAL, layout_style=Gtk.ButtonBoxStyle.EXPAND, **kwargs)
+
+ oButtonClear = Gtk.Button.new_from_icon_name('gtk-clear', Gtk.IconSize.BUTTON)
+ oButtonClear.connect('clicked', self.onClear)
+ oButtonOpen = Gtk.Button()
+ oButtonOpen.connect('clicked', self.onOpen)
+ self.oLabel = Gtk.Label(os.path.basename(strFilename) or _('(None)'), xalign=0, margin_left=5)
+ oImage = Gtk.Image.new_from_icon_name('gtk-open', Gtk.IconSize.BUTTON)
+ oBox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
+ oBox.pack_start(oImage, False, False, 0)
+ oBox.pack_start(self.oLabel, True, True, 0)
+ oButtonOpen.add(oBox)
+ self.pack_start(oButtonOpen, True, True, 0)
+ self.pack_start(oButtonClear, False, False, 0)
+ self.set_homogeneous(False)
+ self.strFilename = strFilename
+
+ def onClear(self, oWidget):
+
+ self.strFilename = ''
+ self.oLabel.set_text(_('(None)'))
+
+ def onOpen(self, oWidget):
+
+ oDlg = Gtk.FileChooserDialog(None, oWidget.get_toplevel(), 0, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.APPLY))
+
+ if self.strFilename:
+ oDlg.set_filename(self.strFilename)
+
+ nResponse = oDlg.run()
+
+ if nResponse == Gtk.ResponseType.APPLY:
+
+ self.strFilename = oDlg.get_filename()
+ self.oLabel.set_text(os.path.basename(self.strFilename))
+
+ oDlg.destroy()
+
+ def getFilename(self):
+
+ return self.strFilename
+
+class PreferencesDialog(Gtk.Dialog):
+
+ def __init__(self):
+
+ self.bInit = False
+ self.initConfig()
+ Gtk.Dialog.__init__(self, _('Ayatana Webmail Preferences'), None, 0, (Gtk.STOCK_CONNECT, 100, Gtk.STOCK_APPLY, Gtk.ResponseType.APPLY, Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
+ self.set_icon_name('ayatana-webmail')
+ self.connect('destroy', lambda w: Gtk.main_quit())
+ self.connect('response', self.onResponse)
+ self.set_position(Gtk.WindowPosition.CENTER)
+ self.set_property('width-request', 640)
+ self.set_property('height-request', 480)
+ self.oNotebook = Gtk.Notebook(vexpand=True, margin_left=5, margin_top=5, margin_right=5)
+ self.oNotebook.append_page(self.pageAccounts(), Gtk.Label(_('Accounts')))
+ self.oNotebook.append_page(self.pageOptions(), Gtk.Label(_('Options')))
+ self.oNotebook.append_page(self.pageSupport(), Gtk.Label(_('Support')))
+ self.oNotebook.append_page(self.pageAbout(), Gtk.Label(_('About')))
+ oContentArea = self.get_content_area()
+ oContentArea.set_property('vexpand', True)
+ oContentArea.add(self.oNotebook)
+ self.oButtonConnect = self.get_widget_for_response(100)
+ self.oButtonApply = self.get_widget_for_response(Gtk.ResponseType.APPLY)
+ self.lstDicts = [{'Host': 'imap.gmail.com', 'Port': '993', 'Login': '', 'Passwd': '', 'Folders': 'INBOX', 'InboxAppend': '/$MSG_THREAD'}]
+ self.lstDicts[0].update(g_dctDefaultURLs)
+ self.set_keep_above(True)
+ self.show_all()
+ self.bInit = True
+ self.nIndex = 0
+
+ def onResponse(self, oWidget, nResponse):
+
+ if nResponse == 100:
+
+ self.oNotebook.set_current_page(0)
+ self.oListStore.clear()
+ self.getFolderList(True)
+ self.updateUI()
+
+ def getFolderList(self, bAutoselect):
+
+ try:
+
+ oImap = None
+
+ try:
+
+ oImap = imaplib.IMAP4_SSL(self.EntryHost.get_text(), int(self.EntryPort.get_text()))
+
+ except Exception:
+
+ oImap = imaplib.IMAP4(self.EntryHost.get_text(), int(self.EntryPort.get_text()))
+ oImap.starttls()
+
+ oImap.login(self.EntryLogin.get_text(), self.EntryPassword.get_text())
+
+ for f in oImap.list()[1]:
+
+ flags, b, c = utf7dec(f).partition(' ')
+ separator, b, strName = c.partition(' ')
+ strName = strName.replace('"', '').replace('/ ', '')
+
+ if strName != '[Gmail]' and 'All Mail' not in strName:
+ self.oListStore.append([strName, strName.replace('[Gmail]/', ''), strName.upper() == 'INBOX' if bAutoselect else False])
+
+ oImap.logout()
+
+ except (imaplib.IMAP4.error, socketerror) as oError:
+
+ oDlg = Gtk.MessageDialog(self, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, '')
+
+ strError = str(oError)
+
+ if strError.startswith("b'"):
+ strError = strError[1:]
+
+ if 'https://support.google.com/mail/accounts/answer/78754' in strError:
+
+ oDlg.set_markup( _('Please visit the following link and enable access for less secure apps:') + '\n\n<a href="https://www.google.com/settings/security/lesssecureapps">https://www.google.com/settings/security/lesssecureapps</a>')
+ oDlg.set_property('message_type', Gtk.MessageType.INFO)
+ oDlg.set_title(_('Access blocked by Google'))
+
+ else:
+
+ oDlg.set_property('text', _('Failed to connect to mail account. The returned error was:') + '\n\n' + strError)
+ oDlg.set_title(_('Connection failure'))
+
+ oDlg.run()
+ oDlg.destroy()
+
+ def initConfig(self):
+
+ self.nMaxCount = g_oSettings.get_int('max-item-count')
+ self.bEnableNotifications = g_oSettings.get_boolean('enable-notifications')
+ self.bPlaySound = g_oSettings.get_boolean('enable-sound')
+ self.bHideCount = g_oSettings.get_boolean('hide-messages-count')
+ self.strCommand = g_oSettings.get_string('exec-on-receive')
+ self.strCustomSound = g_oSettings.get_string('custom-sound')
+ self.bMergeConversation = g_oSettings.get_boolean('merge-messages')
+ self.nMessageAction = g_oSettings.get_enum('message-action')
+
+ def pageAccounts(self):
+
+ acclabel = Gtk.Label(xalign=0, hexpand=True)
+ acclabel.set_markup('<b>'+_('Choose an account')+'</b>')
+ self.sb = Gtk.SpinButton.new_with_range(1, 1, 1)
+ self.sb.set_numeric(True)
+ self.sb.set_update_policy(Gtk.SpinButtonUpdatePolicy.IF_VALID)
+ self.sb.connect('value-changed', self.onAccountChanged)
+ self.addbtn = Gtk.Button.new_with_label(_('Add'))
+ self.addbtn.connect('clicked', self.onAddAccount)
+ self.rmbtn = Gtk.Button.new_with_label(_('Remove'))
+ self.rmbtn.connect('clicked', self.onRemoveAccount)
+ accbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=5, hexpand=True)
+ accbox.pack_start(self.sb, True, True, 0)
+ accbox.pack_end(self.rmbtn, False, False, 0)
+ accbox.pack_end(self.addbtn, False, False, 0)
+ self.EntryHost = Gtk.Entry(hexpand=True)
+ self.EntryHost.connect('changed', lambda w: self.updateUI())
+ self.EntryPort = Gtk.Entry(hexpand=True)
+ self.EntryPort.connect('changed', lambda w: self.updateUI())
+ self.EntryLogin = Gtk.Entry(hexpand=True)
+ self.EntryLogin.connect('changed', lambda w: self.updateUI())
+ self.EntryPassword = Gtk.Entry(visibility=False, caps_lock_warning=True, hexpand=True)
+ self.EntryPassword.connect('changed', lambda w: self.updateUI())
+ srvlabel = Gtk.Label(xalign=0, margin_top=5, hexpand=True)
+ srvlabel.set_markup('<b>'+_('Server data')+'</b>')
+ infolabel = Gtk.Label(xalign=0, margin_top=5, hexpand=True)
+ infolabel.set_markup('<b>'+_('Account data')+'</b>')
+ self.oListStore = Gtk.ListStore(str, str, bool)
+ oTreeView = Gtk.TreeView(self.oListStore, headers_visible=False, activate_on_single_click=True, margin_left=5, margin_top=5, margin_right=5, margin_bottom=5)
+ oTreeView.connect('row-activated', self.onFolderActivated)
+ oTreeViewColumnBool = Gtk.TreeViewColumn('bool', Gtk.CellRendererToggle(), active=2)
+ oTreeViewColumnBool.get_cells()[0].set_property('xalign', 1.0)
+ oTreeView.append_column(Gtk.TreeViewColumn('folder', Gtk.CellRendererText(), text=1))
+ oTreeView.append_column(oTreeViewColumnBool)
+ oFrame = Gtk.ScrolledWindow(shadow_type=Gtk.ShadowType.IN, hexpand=True, vexpand=True)
+ oFrame.add(oTreeView)
+ oLabelLinks = Gtk.Label(xalign=0, margin_top=5, hexpand=True)
+ oLabelLinks.set_markup('<b>'+_('Links')+'</b>')
+ self.oEntryHome = ComboEntry('Home', hexpand=True)
+ self.oEntryCompose = ComboEntry('Compose', hexpand=True)
+ self.oEntryInbox = ComboEntry('Inbox', hexpand=True)
+ self.oEntrySent = ComboEntry('Sent', hexpand=True)
+ self.oEntryInboxAppend = EntryReset(self.oEntryInbox)
+ oGrid = Gtk.Grid(row_spacing=5, column_spacing=5, vexpand=True)
+ oGrid.attach(srvlabel, 0, 0, 3, 1)
+ oGrid.attach(Gtk.Label(_('Host:'), xalign=0, margin_right=5), 0, 1, 1, 1)
+ oGrid.attach(self.EntryHost, 1, 1, 2, 1)
+ oGrid.attach(Gtk.Label(_('Port:'), xalign=0, margin_right=5), 0, 2, 1, 1)
+ oGrid.attach(self.EntryPort, 1, 2, 2, 1)
+ oGrid.attach(infolabel, 0, 3, 3, 1)
+ oGrid.attach(Gtk.Label(_('Login:'), xalign=0, margin_right=5), 0, 4, 1, 1)
+ oGrid.attach(self.EntryLogin, 1, 4, 2, 1)
+ oGrid.attach(Gtk.Label(_('Password:'), xalign=0, margin_right=5), 0, 5, 1, 1)
+ oGrid.attach(self.EntryPassword, 1, 5, 2, 1)
+ oGrid.attach(Gtk.Label(_('Folders:'), xalign=0, margin_right=5), 0, 6, 1, 1)
+ oGrid.attach(oFrame, 1, 6, 2, 1)
+ oGrid.attach(oLabelLinks, 0, 7, 3, 1)
+ oGrid.attach(Gtk.Label(_('Home:'), xalign=0, margin_right=5), 0, 8, 1, 1)
+ oGrid.attach(self.oEntryHome, 1, 8, 2, 1)
+ oGrid.attach(Gtk.Label(_('Compose:'), xalign=0, margin_right=5), 0, 9, 1, 1)
+ oGrid.attach(self.oEntryCompose, 1, 9, 2, 1)
+ oGrid.attach(Gtk.Label(_('Inbox:'), xalign=0, margin_right=5), 0, 10, 1, 1)
+ oGrid.attach(self.oEntryInbox, 1, 10, 1, 1)
+ oGrid.attach(self.oEntryInboxAppend, 2, 10, 1, 1)
+ oGrid.attach(Gtk.Label(_('Sent:'), xalign=0, margin_right=5), 0, 11, 1, 1)
+ oGrid.attach(self.oEntrySent, 1, 11, 2, 1)
+ page = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=5, border_width=10, vexpand=True)
+ page.add(acclabel)
+ page.add(accbox)
+ page.add(oGrid)
+ oScrolledWindow = Gtk.ScrolledWindow()
+ oScrolledWindow.add(page)
+
+ nHeight = 721
+ oDisplay = Gdk.Display.get_default()
+
+ if oDisplay:
+
+ oMonitor = None
+
+ # get_primary_monitor is available in >= 3.22
+ try:
+ oMonitor = oDisplay.get_primary_monitor()
+ except Exception as oException:
+ pass
+
+ if oMonitor:
+ nHeight = oMonitor.get_workarea().height
+
+ if nHeight > 720:
+
+ # propagate_natural_height is available in >= 3.22
+ try:
+ oScrolledWindow.props.propagate_natural_height = True
+ except Exception as oException:
+ pass
+
+ return oScrolledWindow
+
+ def pageOptions(self):
+
+ self.oComboMessageAction = Gtk.ComboBoxText()
+ self.oComboMessageAction.append(str(MESSAGEACTION['MARK']), _('Mark message as read'))
+ self.oComboMessageAction.append(str(MESSAGEACTION['OPEN']), _('Open message in browser/Execute command'))
+ self.oComboMessageAction.append(str(MESSAGEACTION['ASK']), _('Ask me what to do'))
+ self.oComboMessageAction.set_active_id(str(self.nMessageAction))
+ self.oSwitchMerge = Gtk.Switch(active=self.bMergeConversation, halign=Gtk.Align.END)
+ self.notifyswitch = Gtk.Switch(active=self.bEnableNotifications, halign=Gtk.Align.END)
+ self.sndswitch = Gtk.Switch(active=self.bPlaySound, halign=Gtk.Align.END)
+ self.sndswitch.connect('notify::active', self.onSoundSwitchActivate)
+ self.hcswitch = Gtk.Switch(active=self.bHideCount, halign=Gtk.Align.END)
+ self.commandchooser = FileChooserButtonEx(self.strCommand)
+ self.sndchooser = FileChooserButtonEx(self.strCustomSound)
+ oGrid = Gtk.Grid(row_spacing=5, column_spacing=10)
+ oGrid.attach(Gtk.Label(_('Enable notifications:'), xalign=0), 0, 0, 1, 1)
+ oGrid.attach(self.notifyswitch, 1, 0, 1, 1)
+ oGrid.attach(Gtk.Label(_('Play sound when a message is received:'), xalign=0), 0, 1, 1, 1)
+ oGrid.attach(self.sndswitch, 1, 1, 1, 1)
+ oGrid.attach(Gtk.Label(_('Merge messages from the same conversation:'), xalign=0), 0, 2, 1, 1)
+ oGrid.attach(self.oSwitchMerge, 1, 2, 1, 1)
+ oGrid.attach(Gtk.Label(_('Hide count when zero:'), xalign=0), 0, 3, 1, 1)
+ oGrid.attach(self.hcswitch, 1, 3, 1, 1)
+ oGrid.attach(Gtk.Label(_('When a message is activated:'), xalign=0), 0, 4, 1, 1)
+ oGrid.attach(self.oComboMessageAction, 1, 4, 1, 1)
+ commandbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=10)
+ commandbox.add(Gtk.Label(_('Execute this command when a message is received:'), xalign=0))
+ commandbox.pack_end(self.commandchooser, True, True, 0)
+
+ if self.commandchooser.get_allocated_width() < 180:
+ self.commandchooser.set_size_request(180, 0)
+
+ self.sndbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=10, sensitive=self.bPlaySound)
+ self.sndbox.add(Gtk.Label(_('Custom sound to play:'), xalign=0))
+ self.sndbox.pack_end(self.sndchooser, True, True, 0)
+
+ if self.sndchooser.get_allocated_width() < 180:
+ self.sndchooser.set_size_request(180, 0)
+
+ page = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=5, border_width=10)
+ page.add(oGrid)
+ page.add(commandbox)
+ page.add(self.sndbox)
+
+ return page
+
+ def pageSupport(self):
+
+ oGrid = Gtk.Grid(border_width=10, row_spacing=2)
+ oGrid.attach(Gtk.Label(_('Report a bug'), xalign=0), 0, 0, 1, 1)
+ oGrid.attach(Gtk.Label('<a href="https://github.com/AyatanaIndicators/ayatana-webmail/issues">https://github.com/AyatanaIndicators/ayatana-webmail/issues</a>', xalign=0, use_markup=True, margin_bottom=10), 0, 1, 1, 1)
+ oGrid.attach(Gtk.Label(_('Request a feature'), xalign=0), 0, 2, 1, 1)
+ oGrid.attach(Gtk.Label('<a href="https://github.com/AyatanaIndicators/ayatana-webmail/issues">https://github.com/AyatanaIndicators/ayatana-webmail/issues</a>', xalign=0, use_markup=True), 0, 3, 1, 1)
+ oGrid.attach(Gtk.Label(_('It\'s a good idea to add the {labelname} label to your issue.').format(labelname='<b>enhancement</b>'), xalign=0, margin_bottom=10, use_markup=True), 0, 4, 1, 1)
+ oGrid.attach(Gtk.Label(_('Ask a question'), xalign=0), 0, 5, 1, 1)
+ oGrid.attach(Gtk.Label('<a href="https://github.com/AyatanaIndicators/ayatana-webmail/issues">https://github.com/AyatanaIndicators/ayatana-webmail/issues</a>', xalign=0, use_markup=True), 0, 6, 1, 1)
+ oGrid.attach(Gtk.Label(_('It\'s a good idea to add the {labelname} label to your issue.').format(labelname='<b>question</b>'), xalign=0, margin_bottom=10, use_markup=True), 0, 7, 1, 1)
+ #oGrid.attach(Gtk.Label(_('Help translate'), xalign=0), 0, 4, 1, 1)
+ #oGrid.attach(Gtk.Label('<a href="https://translations.launchpad.net/ayatana-webmail/trunk">https://translations.launchpad.net/ayatana-webmail/trunk</a>', xalign=0, use_markup=True, margin_bottom=10), 0, 5, 1, 1)
+ oGrid.attach(Gtk.Label(_('Source code'), xalign=0), 0, 8, 1, 1)
+ oGrid.attach(Gtk.Label('<a href="https://github.com/AyatanaIndicators/ayatana-webmail">https://github.com/AyatanaIndicators/ayatana-webmail</a>', xalign=0, use_markup=True, margin_bottom=10), 0, 9, 1, 1)
+ oGrid.attach(Gtk.Label(_('Home page'), xalign=0), 0, 10, 1, 1)
+ oGrid.attach(Gtk.Label('<a href="https://tari.in/www/software/ayatana-webmail/">https://tari.in/www/software/ayatana-webmail/</a>', xalign=0, use_markup=True, margin_bottom=10), 0, 11, 1, 1)
+
+ return oGrid
+
+ def onActivateLinkAbout(self, pAboutDialog, sUrl):
+
+ webbrowser.open_new_tab(sUrl)
+
+ return True
+
+ def pageAbout(self):
+
+ oBox = Gtk.Box()
+ oAboutDialog = Gtk.AboutDialog()
+ oAboutDialog.set_license_type(Gtk.License.GPL_3_0)
+ oAboutDialog.set_program_name(APPTITLE)
+ oAboutDialog.set_copyright(APPAUTHOR + ' ' + (APPYEAR if APPYEAR[-2:] == APPVERSION[:2] else APPYEAR + '-20' + APPVERSION[:2]))
+ oAboutDialog.set_comments(_(APPDESCRIPTION))
+ oAboutDialog.set_authors(['Dmitry Shachnev &lt;mitya57@gmail.com&gt;', 'Robert Tari &lt;robert@tari.in&gt;'])
+ oAboutDialog.set_translator_credits(_('translator-credits'))
+ oAboutDialog.set_version(APPVERSION)
+ oAboutDialog.set_website(APPURL)
+ oAboutDialog.set_website_label(APPURL)
+ oAboutDialog.set_logo(GdkPixbuf.Pixbuf().new_from_file(getDataPath('/usr/share/icons/hicolor/scalable/apps/ayatanawebmail.svg')))
+ oAboutDialog.get_content_area().reparent(oBox)
+ oAboutDialog.get_content_area().set_hexpand(True)
+ oAboutDialog.connect('activate_link', self.onActivateLinkAbout)
+
+ lstChildren = oAboutDialog.action_area.get_children()
+
+ for oWidget in lstChildren:
+
+ if (isinstance(oWidget, Gtk.Button) and not isinstance(oWidget, Gtk.ToggleButton)) or (isinstance(oWidget, Gtk.ToggleButton) and len(lstChildren) == 3 and oWidget == lstChildren[1]):
+
+ oWidget.set_property('no-show-all', True)
+ oWidget.set_property('visible', False)
+
+ return oBox
+
+ def onFolderActivated(self, oView, nRow, oColumn):
+
+ self.oListStore[nRow][2] = not self.oListStore[nRow][2]
+ self.updateUI()
+
+ def updateUI(self):
+
+ bHasFolderSelection = [oRow for oRow in self.oListStore if oRow[2]]
+ bHasAccountData = all([oWidget.get_text() for oWidget in [self.EntryHost, self.EntryPort, self.EntryLogin, self.EntryPassword]])
+ bHasMultipleAccounts = len(self.lstDicts) > 1
+
+ self.oButtonConnect.set_sensitive(bHasAccountData)
+ self.oButtonApply.set_sensitive(bHasFolderSelection and bHasAccountData)
+ self.rmbtn.set_sensitive(bHasMultipleAccounts)
+ self.addbtn.set_sensitive(bHasFolderSelection and bHasAccountData)
+ self.sb.set_sensitive(bHasFolderSelection and bHasAccountData and bHasMultipleAccounts)
+
+ def run(self):
+
+ if not self.lstDicts[0]['Passwd']:
+ self.updateEntries()
+
+ self.updateUI()
+ Gtk.main()
+
+ def saveAllSettings(self):
+
+ g_oSettings.set_int('max-item-count', self.nMaxCount)
+ g_oSettings.set_boolean('enable-notifications', self.notifyswitch.get_active())
+ g_oSettings.set_boolean('enable-sound', self.sndswitch.get_active())
+ g_oSettings.set_boolean('hide-messages-count', self.hcswitch.get_active())
+ g_oSettings.set_string('exec-on-receive', self.commandchooser.getFilename())
+ g_oSettings.set_string('custom-sound', self.sndchooser.getFilename())
+ g_oSettings.set_boolean('merge-messages', self.oSwitchMerge.get_active())
+ g_oSettings.set_enum('message-action', int(self.oComboMessageAction.get_active_id()))
+
+ def onAddAccount(self, btn):
+
+ self.updateAccounts()
+ self.lstDicts.append({'Host': 'imap.gmail.com', 'Port': '993', 'Login': '', 'Passwd': '', 'Folders': 'INBOX', 'InboxAppend': '/$MSG_THREAD'})
+ self.lstDicts[-1].update(g_dctDefaultURLs)
+ self.sb.set_range(1, len(self.lstDicts))
+ self.sb.set_value(len(self.lstDicts))
+ self.updateUI()
+
+ def onRemoveAccount(self, btn):
+
+ self.updateAccounts()
+ index = self.sb.get_value_as_int()-1
+
+ del self.lstDicts[index]
+
+ self.bInit = False
+ self.sb.set_range(1, len(self.lstDicts))
+ self.bInit = True
+ self.updateEntries()
+ self.updateUI()
+
+ if index+1 > len(self.lstDicts):
+ self.sb.set_value(index)
+
+ self.updateUI()
+
+ def setAccounts(self, lstDicts):
+
+ self.bInit = False
+ self.lstDicts = [dct for dct in lstDicts]
+ self.nIndex = 0
+ self.sb.set_range(1, len(lstDicts))
+ self.updateEntries()
+ self.updateUI()
+ self.bInit = True
+
+ def onAccountChanged(self, sb):
+
+ self.updateAccounts()
+ self.nIndex = self.sb.get_value_as_int() - 1
+ self.updateEntries()
+ self.updateUI()
+
+ def onSoundSwitchActivate(self, sndswitch, param):
+
+ self.sndbox.set_sensitive(sndswitch.get_active())
+
+ def updateEntries(self):
+
+ if self.lstDicts:
+
+ nIndex = self.sb.get_value_as_int() - 1
+ self.EntryHost.set_text(self.lstDicts[nIndex]['Host'])
+ self.EntryPort.set_text(str(self.lstDicts[nIndex]['Port']))
+ self.EntryLogin.set_text(self.lstDicts[nIndex]['Login'])
+ self.EntryPassword.set_text(self.lstDicts[nIndex]['Passwd'])
+
+ self.oListStore.clear()
+
+ if self.lstDicts[nIndex]['Passwd']:
+
+ self.getFolderList(False)
+
+ lstFolders = self.lstDicts[nIndex]['Folders'].split('\t')
+
+ for oRow in self.oListStore:
+ oRow[2] = oRow[0] in lstFolders
+
+ self.oEntryHome.setText(self.lstDicts[nIndex]['Home'])
+ self.oEntryCompose.setText(self.lstDicts[nIndex]['Compose'])
+ self.oEntryInbox.setText(self.lstDicts[nIndex]['Inbox'])
+ self.oEntrySent.setText(self.lstDicts[nIndex]['Sent'])
+ self.oEntryInboxAppend.set_text(self.lstDicts[nIndex]['InboxAppend'])
+
+ def updateAccounts(self):
+
+ if self.bInit:
+
+ self.lstDicts[self.nIndex]['Host'] = self.EntryHost.get_text()
+
+ if self.EntryPort.get_text():
+ self.lstDicts[self.nIndex]['Port'] = self.EntryPort.get_text()
+ else:
+ self.lstDicts[self.nIndex]['Port'] = '993'
+
+ self.lstDicts[self.nIndex]['Login'] = self.EntryLogin.get_text()
+ self.lstDicts[self.nIndex]['Passwd'] = self.EntryPassword.get_text()
+ self.lstDicts[self.nIndex]['Folders'] = '\t'.join([oRow[0] for oRow in self.oListStore if oRow[2]])
+ self.lstDicts[self.nIndex]['Home'] = self.oEntryHome.getText()
+ self.lstDicts[self.nIndex]['Compose'] = self.oEntryCompose.getText()
+ self.lstDicts[self.nIndex]['Inbox'] = self.oEntryInbox.getText()
+ self.lstDicts[self.nIndex]['Sent'] = self.oEntrySent.getText()
+ self.lstDicts[self.nIndex]['InboxAppend'] = self.oEntryInboxAppend.get_text()
diff --git a/ayatanawebmail/idler.py b/ayatanawebmail/idler.py
new file mode 100755
index 0000000..8f956ea
--- /dev/null
+++ b/ayatanawebmail/idler.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import time
+from threading import *
+
+class Idler(object):
+
+ def __init__(self, oConnection, fnCallback, oLogger):
+
+ self.oThread = Thread(target=self.idle)
+ self.oConnection = oConnection
+ self.oEvent = Event()
+ self.fnCallback = fnCallback
+ self.bNeedSync = False
+ self.oLogger = oLogger
+ self.bAborted = False
+
+ def start(self):
+
+ self.oThread.start()
+
+ def stop(self):
+
+ self.oEvent.set()
+
+ def join(self):
+
+ self.oThread.join()
+
+ def idle(self):
+
+ while True:
+
+ if self.oEvent.isSet():
+ break
+
+ self.bNeedSync = False
+ self.bAborted = False
+
+ def callback(lstArgs):
+
+ if (lstArgs[2] != None) and (lstArgs[2][0] is self.oConnection.oImap.abort):
+
+ self.oLogger.info('"{0}:{1}" has been closed by the server.'.format(self.oConnection.strLogin, self.oConnection.strFolder))
+ self.bAborted = True
+
+ else:
+
+ self.bNeedSync = True
+
+ # We may need to skip the condition
+ # if not self.oEvent.isSet():
+ self.oEvent.set()
+
+ while not self.oConnection.isOpen():
+
+ self.oLogger.info('"{0}:{1}" IDLE is waiting for a connection.'.format(self.oConnection.strLogin, self.oConnection.strFolder))
+ time.sleep(10)
+
+ self.oConnection.oImap.idle(callback=callback, timeout=600)
+ self.oEvent.wait()
+
+ if self.bNeedSync:
+
+ self.oEvent.clear()
+ self.fnCallback(self.oConnection, False)
+
+ try:
+
+ if self.oConnection.oImap != None:
+ self.oConnection.oImap.noop()
+
+ except:
+
+ pass
+
+ if self.bAborted:
+ self.fnCallback(self.oConnection, True)
diff --git a/ayatanawebmail/imaplib2.py b/ayatanawebmail/imaplib2.py
new file mode 100755
index 0000000..056acb6
--- /dev/null
+++ b/ayatanawebmail/imaplib2.py
@@ -0,0 +1,2618 @@
+#!/usr/bin/env python
+
+"""Threaded IMAP4 client for Python 3.
+
+Based on RFC 3501 and original imaplib module.
+
+Public classes: IMAP4
+ IMAP4_SSL
+ IMAP4_stream
+
+Public functions: Internaldate2Time
+ ParseFlags
+ Time2Internaldate
+"""
+
+
+__all__ = ("IMAP4", "IMAP4_SSL", "IMAP4_stream",
+ "Internaldate2Time", "ParseFlags", "Time2Internaldate",
+ "Mon2num", "MonthNames", "InternalDate")
+
+__version__ = "3.05"
+__release__ = "3"
+__revision__ = "05"
+__credits__ = """
+Authentication code contributed by Donn Cave <donn@u.washington.edu> June 1998.
+String method conversion by ESR, February 2001.
+GET/SETACL contributed by Anthony Baxter <anthony@interlink.com.au> April 2001.
+IMAP4_SSL contributed by Tino Lange <Tino.Lange@isg.de> March 2002.
+GET/SETQUOTA contributed by Andreas Zeidler <az@kreativkombinat.de> June 2002.
+PROXYAUTH contributed by Rick Holbert <holbert.13@osu.edu> November 2002.
+IDLE via threads suggested by Philippe Normand <phil@respyre.org> January 2005.
+GET/SETANNOTATION contributed by Tomas Lindroos <skitta@abo.fi> June 2005.
+COMPRESS/DEFLATE contributed by Bron Gondwana <brong@brong.net> May 2009.
+STARTTLS from Jython's imaplib by Alan Kennedy.
+ID contributed by Dave Baggett <dave@baggett.org> November 2009.
+Improved untagged responses handling suggested by Dave Baggett <dave@baggett.org> November 2009.
+Improved thread naming, and 0 read detection contributed by Grant Edwards <grant.b.edwards@gmail.com> June 2010.
+Improved timeout handling contributed by Ivan Vovnenko <ivovnenko@gmail.com> October 2010.
+Timeout handling further improved by Ethan Glasser-Camp <glasse@cs.rpi.edu> December 2010.
+Time2Internaldate() patch to match RFC2060 specification of English month names from bugs.python.org/issue11024 March 2011.
+starttls() bug fixed with the help of Sebastian Spaeth <sebastian@sspaeth.de> April 2011.
+Threads now set the "daemon" flag (suggested by offlineimap-project) April 2011.
+Single quoting introduced with the help of Vladimir Marek <vladimir.marek@oracle.com> August 2011.
+Support for specifying SSL version by Ryan Kavanagh <rak@debian.org> July 2013.
+Fix for gmail "read 0" error provided by Jim Greenleaf <james.a.greenleaf@gmail.com> August 2013.
+Fix for offlineimap "indexerror: string index out of range" bug provided by Eygene Ryabinkin <rea@codelabs.ru> August 2013.
+Fix for missing idle_lock in _handler() provided by Franklin Brook <franklin@brook.se> August 2014.
+Conversion to Python3 provided by F. Malina <fmalina@gmail.com> February 2015.
+Fix for READ-ONLY error from multiple EXAMINE/SELECT calls by Pierre-Louis Bonicoli <pierre-louis.bonicoli@gmx.fr> March 2015.
+Fix for null strings appended to untagged responses by Pierre-Louis Bonicoli <pierre-louis.bonicoli@gmx.fr> March 2015.
+Fix for correct byte encoding for _CRAM_MD5_AUTH taken from python3.5 imaplib.py June 2015.
+Fix for correct Python 3 exception handling by Tobias Brink <tobias.brink@gmail.com> August 2015.
+Fix to allow interruptible IDLE command by Tim Peoples <dromedary512@users.sf.net> September 2015.
+Add support for TLS levels by Ben Boeckel <mathstuf@gmail.com> September 2015.
+Fix for shutown exception by Sebastien Gross <seb@chezwam.org> November 2015."""
+__author__ = "Piers Lauder <piers@janeelix.com>"
+__URL__ = "http://imaplib2.sourceforge.net"
+__license__ = "Python License"
+
+import binascii, calendar, errno, os, queue, random, re, select, socket, sys, time, threading, zlib
+
+
+select_module = select
+
+# Globals
+
+CRLF = b'\r\n'
+IMAP4_PORT = 143
+IMAP4_SSL_PORT = 993
+
+IDLE_TIMEOUT_RESPONSE = b'* IDLE TIMEOUT\r\n'
+IDLE_TIMEOUT = 60*29 # Don't stay in IDLE state longer
+READ_POLL_TIMEOUT = 30 # Without this timeout interrupted network connections can hang reader
+READ_SIZE = 32768 # Consume all available in socket
+
+DFLT_DEBUG_BUF_LVL = 3 # Level above which the logging output goes directly to stderr
+
+TLS_SECURE = "tls_secure" # Recognised TLS levels
+TLS_NO_SSL = "tls_no_ssl"
+TLS_COMPAT = "tls_compat"
+
+AllowedVersions = ('IMAP4REV1', 'IMAP4') # Most recent first
+
+# Commands
+
+CMD_VAL_STATES = 0
+CMD_VAL_ASYNC = 1
+NONAUTH, AUTH, SELECTED, LOGOUT = 'NONAUTH', 'AUTH', 'SELECTED', 'LOGOUT'
+
+Commands = {
+ # name valid states asynchronous
+ 'APPEND': ((AUTH, SELECTED), False),
+ 'AUTHENTICATE': ((NONAUTH,), False),
+ 'CAPABILITY': ((NONAUTH, AUTH, SELECTED), True),
+ 'CHECK': ((SELECTED,), True),
+ 'CLOSE': ((SELECTED,), False),
+ 'COMPRESS': ((AUTH,), False),
+ 'COPY': ((SELECTED,), True),
+ 'CREATE': ((AUTH, SELECTED), True),
+ 'DELETE': ((AUTH, SELECTED), True),
+ 'DELETEACL': ((AUTH, SELECTED), True),
+ 'ENABLE': ((AUTH,), False),
+ 'EXAMINE': ((AUTH, SELECTED), False),
+ 'EXPUNGE': ((SELECTED,), True),
+ 'FETCH': ((SELECTED,), True),
+ 'GETACL': ((AUTH, SELECTED), True),
+ 'GETANNOTATION':((AUTH, SELECTED), True),
+ 'GETQUOTA': ((AUTH, SELECTED), True),
+ 'GETQUOTAROOT': ((AUTH, SELECTED), True),
+ 'ID': ((NONAUTH, AUTH, LOGOUT, SELECTED), True),
+ 'IDLE': ((SELECTED,), False),
+ 'LIST': ((AUTH, SELECTED), True),
+ 'LOGIN': ((NONAUTH,), False),
+ 'LOGOUT': ((NONAUTH, AUTH, LOGOUT, SELECTED), False),
+ 'LSUB': ((AUTH, SELECTED), True),
+ 'MYRIGHTS': ((AUTH, SELECTED), True),
+ 'NAMESPACE': ((AUTH, SELECTED), True),
+ 'NOOP': ((NONAUTH, AUTH, SELECTED), True),
+ 'PARTIAL': ((SELECTED,), True),
+ 'PROXYAUTH': ((AUTH,), False),
+ 'RENAME': ((AUTH, SELECTED), True),
+ 'SEARCH': ((SELECTED,), True),
+ 'SELECT': ((AUTH, SELECTED), False),
+ 'SETACL': ((AUTH, SELECTED), False),
+ 'SETANNOTATION':((AUTH, SELECTED), True),
+ 'SETQUOTA': ((AUTH, SELECTED), False),
+ 'SORT': ((SELECTED,), True),
+ 'STARTTLS': ((NONAUTH,), False),
+ 'STATUS': ((AUTH, SELECTED), True),
+ 'STORE': ((SELECTED,), True),
+ 'SUBSCRIBE': ((AUTH, SELECTED), False),
+ 'THREAD': ((SELECTED,), True),
+ 'UID': ((SELECTED,), True),
+ 'UNSUBSCRIBE': ((AUTH, SELECTED), False),
+ }
+
+UID_direct = ('SEARCH', 'SORT', 'THREAD')
+
+
+def Int2AP(num):
+
+ """string = Int2AP(num)
+ Return 'num' converted to bytes using characters from the set 'A'..'P'
+ """
+
+ val = b''; AP = b'ABCDEFGHIJKLMNOP'
+ num = int(abs(num))
+ while num:
+ num, mod = divmod(num, 16)
+ val = AP[mod:mod+1] + val
+ return val
+
+
+
+class Request(object):
+
+ """Private class to represent a request awaiting response."""
+
+ def __init__(self, parent, name=None, callback=None, cb_arg=None, cb_self=False):
+ self.parent = parent
+ self.name = name
+ self.callback = callback # Function called to process result
+ if not cb_self:
+ self.callback_arg = cb_arg # Optional arg passed to "callback"
+ else:
+ self.callback_arg = (self, cb_arg) # Self reference required in callback arg
+
+ self.tag = parent.tagpre + bytes(str(parent.tagnum), 'ASCII')
+ parent.tagnum += 1
+
+ self.ready = threading.Event()
+ self.response = None
+ self.aborted = None
+ self.data = None
+
+
+ def abort(self, typ, val):
+ self.aborted = (typ, val)
+ self.deliver(None)
+
+
+ def get_response(self, exc_fmt=None):
+ self.callback = None
+ if __debug__: self.parent._log(3, '%s:%s.ready.wait' % (self.name, self.tag))
+ self.ready.wait()
+
+ if self.aborted is not None:
+ typ, val = self.aborted
+ if exc_fmt is None:
+ exc_fmt = '%s - %%s' % typ
+ raise typ(exc_fmt % str(val))
+
+ return self.response
+
+
+ def deliver(self, response):
+ if self.callback is not None:
+ self.callback((response, self.callback_arg, self.aborted))
+ return
+
+ self.response = response
+ self.ready.set()
+ if __debug__: self.parent._log(3, '%s:%s.ready.set' % (self.name, self.tag))
+
+
+
+
+class IMAP4(object):
+
+ """Threaded IMAP4 client class.
+
+ Instantiate with:
+ IMAP4(host=None, port=None, debug=None, debug_file=None, identifier=None, timeout=None, debug_buf_lvl=None)
+
+ host - host's name (default: localhost);
+ port - port number (default: standard IMAP4 port);
+ debug - debug level (default: 0 - no debug);
+ debug_file - debug stream (default: sys.stderr);
+ identifier - thread identifier prefix (default: host);
+ timeout - timeout in seconds when expecting a command response (default: no timeout),
+ debug_buf_lvl - debug level at which buffering is turned off.
+
+ All IMAP4rev1 commands are supported by methods of the same name.
+
+ Each command returns a tuple: (type, [data, ...]) where 'type'
+ is usually 'OK' or 'NO', and 'data' is either the text from the
+ tagged response, or untagged results from command. Each 'data' is
+ either a string, or a tuple. If a tuple, then the first part is the
+ header of the response, and the second part contains the data (ie:
+ 'literal' value).
+
+ Errors raise the exception class <instance>.error("<reason>").
+ IMAP4 server errors raise <instance>.abort("<reason>"), which is
+ a sub-class of 'error'. Mailbox status changes from READ-WRITE to
+ READ-ONLY raise the exception class <instance>.readonly("<reason>"),
+ which is a sub-class of 'abort'.
+
+ "error" exceptions imply a program error.
+ "abort" exceptions imply the connection should be reset, and
+ the command re-tried.
+ "readonly" exceptions imply the command should be re-tried.
+
+ All commands take two optional named arguments:
+ 'callback' and 'cb_arg'
+ If 'callback' is provided then the command is asynchronous, so after
+ the command is queued for transmission, the call returns immediately
+ with the tuple (None, None).
+ The result will be posted by invoking "callback" with one arg, a tuple:
+ callback((result, cb_arg, None))
+ or, if there was a problem:
+ callback((None, cb_arg, (exception class, reason)))
+
+ Otherwise the command is synchronous (waits for result). But note
+ that state-changing commands will both block until previous commands
+ have completed, and block subsequent commands until they have finished.
+
+ All (non-callback) string arguments to commands are converted to bytes,
+ except for AUTHENTICATE, and the last argument to APPEND which is
+ passed as an IMAP4 literal. NB: the 'password' argument to the LOGIN
+ command is always quoted.
+
+ There is one instance variable, 'state', that is useful for tracking
+ whether the client needs to login to the server. If it has the
+ value "AUTH" after instantiating the class, then the connection
+ is pre-authenticated (otherwise it will be "NONAUTH"). Selecting a
+ mailbox changes the state to be "SELECTED", closing a mailbox changes
+ back to "AUTH", and once the client has logged out, the state changes
+ to "LOGOUT" and no further commands may be issued.
+
+ Note: to use this module, you must read the RFCs pertaining to the
+ IMAP4 protocol, as the semantics of the arguments to each IMAP4
+ command are left to the invoker, not to mention the results. Also,
+ most IMAP servers implement a sub-set of the commands available here.
+
+ Note also that you must call logout() to shut down threads before
+ discarding an instance.
+ """
+
+ class error(Exception): pass # Logical errors - debug required
+ class abort(error): pass # Service errors - close and retry
+ class readonly(abort): pass # Mailbox status changed to READ-ONLY
+
+ # These must be encoded according to utf8 setting in _mode_xxx():
+ _literal = br'.*{(?P<size>\d+)}$'
+ _untagged_status = br'\* (?P<data>\d+) (?P<type>[A-Z-]+)( (?P<data2>.*))?'
+
+ continuation_cre = re.compile(br'\+( (?P<data>.*))?')
+ mapCRLF_cre = re.compile(br'\r\n|\r|\n')
+ response_code_cre = re.compile(br'\[(?P<type>[A-Z-]+)( (?P<data>[^\]]*))?\]')
+ untagged_response_cre = re.compile(br'\* (?P<type>[A-Z-]+)( (?P<data>.*))?')
+
+
+ def __init__(self, host=None, port=None, debug=None, debug_file=None, identifier=None, timeout=None, debug_buf_lvl=None):
+
+ self.state = NONAUTH # IMAP4 protocol state
+ self.literal = None # A literal argument to a command
+ self.tagged_commands = {} # Tagged commands awaiting response
+ self.untagged_responses = [] # [[typ: [data, ...]], ...]
+ self.mailbox = None # Current mailbox selected
+ self.is_readonly = False # READ-ONLY desired state
+ self.idle_rqb = None # Server IDLE Request - see _IdleCont
+ self.idle_timeout = None # Must prod server occasionally
+
+ self._expecting_data = False # Expecting message data
+ self._expecting_data_len = 0 # How many characters we expect
+ self._accumulated_data = [] # Message data accumulated so far
+ self._literal_expected = None # Message data descriptor
+
+ self.compressor = None # COMPRESS/DEFLATE if not None
+ self.decompressor = None
+ self._tls_established = False
+
+ # Create unique tag for this session,
+ # and compile tagged response matcher.
+
+ self.tagnum = 0
+ self.tagpre = Int2AP(random.randint(4096, 65535))
+ self.tagre = re.compile(br'(?P<tag>'
+ + self.tagpre
+ + br'\d+) (?P<type>[A-Z]+) (?P<data>.*)', re.ASCII)
+
+ self._mode_ascii()
+
+ if __debug__: self._init_debug(debug, debug_file, debug_buf_lvl)
+
+ self.resp_timeout = timeout # Timeout waiting for command response
+
+ if timeout is not None and timeout < READ_POLL_TIMEOUT:
+ self.read_poll_timeout = timeout
+ else:
+ self.read_poll_timeout = READ_POLL_TIMEOUT
+ self.read_size = READ_SIZE
+
+ # Open socket to server.
+
+ self.open(host, port)
+
+ if __debug__:
+ if debug:
+ self._mesg('connected to %s on port %s' % (self.host, self.port))
+
+ # Threading
+
+ if identifier is not None:
+ self.identifier = identifier
+ else:
+ self.identifier = self.host
+ if self.identifier:
+ self.identifier += ' '
+
+ self.Terminate = self.TerminateReader = False
+
+ self.state_change_free = threading.Event()
+ self.state_change_pending = threading.Lock()
+ self.commands_lock = threading.Lock()
+ self.idle_lock = threading.Lock()
+
+ self.ouq = queue.Queue(10)
+ self.inq = queue.Queue()
+
+ self.wrth = threading.Thread(target=self._writer)
+ self.wrth.setDaemon(True)
+ self.wrth.start()
+ self.rdth = threading.Thread(target=self._reader)
+ self.rdth.setDaemon(True)
+ self.rdth.start()
+ self.inth = threading.Thread(target=self._handler)
+ self.inth.setDaemon(True)
+ self.inth.start()
+
+ # Get server welcome message,
+ # request and store CAPABILITY response.
+
+ try:
+ self.welcome = self._request_push(name='welcome', tag='continuation').get_response('IMAP4 protocol error: %s')[1]
+
+ if self._get_untagged_response('PREAUTH'):
+ self.state = AUTH
+ if __debug__: self._log(1, 'state => AUTH')
+ elif self._get_untagged_response('OK'):
+ if __debug__: self._log(1, 'state => NONAUTH')
+ else:
+ raise self.error('unrecognised server welcome message: %s' % repr(self.welcome))
+
+ self._get_capabilities()
+ if __debug__: self._log(1, 'CAPABILITY: %r' % (self.capabilities,))
+
+ for version in AllowedVersions:
+ if not version in self.capabilities:
+ continue
+ self.PROTOCOL_VERSION = version
+ break
+ else:
+ raise self.error('server not IMAP4 compliant')
+ except:
+ self._close_threads()
+ raise
+
+
+ def __getattr__(self, attr):
+ # Allow UPPERCASE variants of IMAP4 command methods.
+ if attr in Commands:
+ return getattr(self, attr.lower())
+ raise AttributeError("Unknown IMAP4 command: '%s'" % attr)
+
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, *args):
+ try:
+ self.logout()
+ except OSError:
+ pass
+
+
+ def _mode_ascii(self):
+ self.utf8_enabled = False
+ self._encoding = 'ascii'
+ self.literal_cre = re.compile(self._literal, re.ASCII)
+ self.untagged_status_cre = re.compile(self._untagged_status, re.ASCII)
+
+
+ def _mode_utf8(self):
+ self.utf8_enabled = True
+ self._encoding = 'utf-8'
+ self.literal_cre = re.compile(self._literal)
+ self.untagged_status_cre = re.compile(self._untagged_status)
+
+
+
+ # Overridable methods
+
+
+ def open(self, host=None, port=None):
+ """open(host=None, port=None)
+ Setup connection to remote server on "host:port"
+ (default: localhost:standard IMAP4 port).
+ This connection will be used by the routines:
+ read, send, shutdown, socket."""
+
+ self.host = self._choose_nonull_or_dflt('', host)
+ self.port = self._choose_nonull_or_dflt(IMAP4_PORT, port)
+ self.sock = self.open_socket()
+ self.read_fd = self.sock.fileno()
+
+
+ def open_socket(self):
+ """open_socket()
+ Open socket choosing first address family available."""
+
+ return socket.create_connection((self.host, self.port))
+
+
+ def ssl_wrap_socket(self):
+
+ try:
+ import ssl
+
+ TLS_MAP = {}
+ if hasattr(ssl, "PROTOCOL_TLSv1_2"):
+ TLS_MAP[TLS_SECURE] = {
+ "tls1_2": ssl.PROTOCOL_TLSv1_2,
+ "tls1_1": ssl.PROTOCOL_TLSv1_1,
+ }
+ else:
+ TLS_MAP[TLS_SECURE] = {}
+ TLS_MAP[TLS_NO_SSL] = TLS_MAP[TLS_SECURE].copy()
+ TLS_MAP[TLS_NO_SSL].update({
+ "tls1": ssl.PROTOCOL_TLSv1,
+ })
+ TLS_MAP[TLS_COMPAT] = TLS_MAP[TLS_NO_SSL].copy()
+ TLS_MAP[TLS_COMPAT].update({
+ "ssl23": ssl.PROTOCOL_SSLv23,
+ None: ssl.PROTOCOL_SSLv23,
+ })
+ if hasattr(ssl, "PROTOCOL_SSLv3"): # Might not be available.
+ TLS_MAP[TLS_COMPAT].update({
+ "ssl3": ssl.PROTOCOL_SSLv3
+ })
+
+ if self.ca_certs is not None:
+ cert_reqs = ssl.CERT_REQUIRED
+ else:
+ cert_reqs = ssl.CERT_NONE
+
+ if self.tls_level not in TLS_MAP:
+ raise RuntimeError("unknown tls_level: %s" % self.tls_level)
+
+ if self.ssl_version not in TLS_MAP[self.tls_level]:
+ raise socket.sslerror("Invalid SSL version '%s' requested for tls_version '%s'" % (self.ssl_version, self.tls_level))
+
+ ssl_version = TLS_MAP[self.tls_level][self.ssl_version]
+
+ self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile, ca_certs=self.ca_certs, cert_reqs=cert_reqs, ssl_version=ssl_version)
+ ssl_exc = ssl.SSLError
+ self.read_fd = self.sock.fileno()
+ except ImportError:
+ # No ssl module, and socket.ssl has no fileno(), and does not allow certificate verification
+ raise socket.sslerror("imaplib SSL mode does not work without ssl module")
+
+ if self.cert_verify_cb is not None:
+ cert_err = self.cert_verify_cb(self.sock.getpeercert(), self.host)
+ if cert_err:
+ raise ssl_exc(cert_err)
+
+ # Allow sending of keep-alive messages - seems to prevent some servers
+ # from closing SSL, leading to deadlocks.
+ self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
+
+
+
+ def start_compressing(self):
+ """start_compressing()
+ Enable deflate compression on the socket (RFC 4978)."""
+
+ # rfc 1951 - pure DEFLATE, so use -15 for both windows
+ self.decompressor = zlib.decompressobj(-15)
+ self.compressor = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, zlib.DEFLATED, -15)
+
+
+ def read(self, size):
+ """data = read(size)
+ Read at most 'size' bytes from remote."""
+
+ if self.decompressor is None:
+ return self.sock.recv(size)
+
+ if self.decompressor.unconsumed_tail:
+ data = self.decompressor.unconsumed_tail
+ else:
+ data = self.sock.recv(READ_SIZE)
+
+ return self.decompressor.decompress(data, size)
+
+
+ def send(self, data):
+ """send(data)
+ Send 'data' to remote."""
+
+ if self.compressor is not None:
+ data = self.compressor.compress(data)
+ data += self.compressor.flush(zlib.Z_SYNC_FLUSH)
+
+ self.sock.sendall(data)
+
+
+ def shutdown(self):
+ """shutdown()
+ Close I/O established in "open"."""
+
+ try:
+ self.sock.shutdown(socket.SHUT_RDWR)
+ except Exception as e:
+ # The server might already have closed the connection
+ if e.errno != errno.ENOTCONN:
+ raise
+ finally:
+ self.sock.close()
+
+
+ def socket(self):
+ """socket = socket()
+ Return socket instance used to connect to IMAP4 server."""
+
+ return self.sock
+
+
+
+ # Utility methods
+
+
+ def enable_compression(self):
+ """enable_compression()
+ Ask the server to start compressing the connection.
+ Should be called from user of this class after instantiation, as in:
+ if 'COMPRESS=DEFLATE' in imapobj.capabilities:
+ imapobj.enable_compression()"""
+
+ try:
+ typ, dat = self._simple_command('COMPRESS', 'DEFLATE')
+ if typ == 'OK':
+ self.start_compressing()
+ if __debug__: self._log(1, 'Enabled COMPRESS=DEFLATE')
+ finally:
+ self._release_state_change()
+
+
+ def pop_untagged_responses(self):
+ """ for typ,data in pop_untagged_responses(): pass
+ Generator for any remaining untagged responses.
+ Returns and removes untagged responses in order of reception.
+ Use at your own risk!"""
+
+ while self.untagged_responses:
+ self.commands_lock.acquire()
+ try:
+ yield self.untagged_responses.pop(0)
+ finally:
+ self.commands_lock.release()
+
+
+ def recent(self, **kw):
+ """(typ, [data]) = recent()
+ Return 'RECENT' responses if any exist,
+ else prompt server for an update using the 'NOOP' command.
+ 'data' is None if no new messages,
+ else list of RECENT responses, most recent last."""
+
+ name = 'RECENT'
+ typ, dat = self._untagged_response(None, [None], name)
+ if dat != [None]:
+ return self._deliver_dat(typ, dat, kw)
+ kw['untagged_response'] = name
+ return self.noop(**kw) # Prod server for response
+
+
+ def response(self, code, **kw):
+ """(code, [data]) = response(code)
+ Return data for response 'code' if received, or None.
+ Old value for response 'code' is cleared."""
+
+ typ, dat = self._untagged_response(code, [None], code.upper())
+ return self._deliver_dat(typ, dat, kw)
+
+
+
+
+ # IMAP4 commands
+
+
+ def append(self, mailbox, flags, date_time, message, **kw):
+ """(typ, [data]) = append(mailbox, flags, date_time, message)
+ Append message to named mailbox.
+ All args except `message' can be None."""
+
+ name = 'APPEND'
+ if not mailbox:
+ mailbox = 'INBOX'
+ if flags:
+ if (flags[0],flags[-1]) != ('(',')'):
+ flags = '(%s)' % flags
+ else:
+ flags = None
+ if date_time:
+ date_time = Time2Internaldate(date_time)
+ else:
+ date_time = None
+ if isinstance(message, str):
+ message = bytes(message, 'ASCII')
+ literal = self.mapCRLF_cre.sub(CRLF, message)
+ if self.utf8_enabled:
+ literal = b'UTF8 (' + literal + b')'
+ self.literal = literal
+ try:
+ return self._simple_command(name, mailbox, flags, date_time, **kw)
+ finally:
+ self._release_state_change()
+
+
+ def authenticate(self, mechanism, authobject, **kw):
+ """(typ, [data]) = authenticate(mechanism, authobject)
+ Authenticate command - requires response processing.
+
+ 'mechanism' specifies which authentication mechanism is to
+ be used - it must appear in <instance>.capabilities in the
+ form AUTH=<mechanism>.
+
+ 'authobject' must be a callable object:
+
+ data = authobject(response)
+
+ It will be called to process server continuation responses,
+ the 'response' argument will be a 'bytes'. It should return
+ bytes that will be encoded and sent to server. It should
+ return None if the client abort response '*' should be sent
+ instead."""
+
+ self.literal = _Authenticator(authobject).process
+ try:
+ typ, dat = self._simple_command('AUTHENTICATE', mechanism.upper())
+ if typ != 'OK':
+ self._deliver_exc(self.error, dat[-1], kw)
+ self.state = AUTH
+ if __debug__: self._log(1, 'state => AUTH')
+ finally:
+ self._release_state_change()
+ return self._deliver_dat(typ, dat, kw)
+
+
+ def capability(self, **kw):
+ """(typ, [data]) = capability()
+ Fetch capabilities list from server."""
+
+ name = 'CAPABILITY'
+ kw['untagged_response'] = name
+ return self._simple_command(name, **kw)
+
+
+ def check(self, **kw):
+ """(typ, [data]) = check()
+ Checkpoint mailbox on server."""
+
+ return self._simple_command('CHECK', **kw)
+
+
+ def close(self, **kw):
+ """(typ, [data]) = close()
+ Close currently selected mailbox.
+
+ Deleted messages are removed from writable mailbox.
+ This is the recommended command before 'LOGOUT'."""
+
+ if self.state != 'SELECTED':
+ raise self.error('No mailbox selected.')
+ try:
+ typ, dat = self._simple_command('CLOSE')
+ finally:
+ self.state = AUTH
+ if __debug__: self._log(1, 'state => AUTH')
+ self._release_state_change()
+ return self._deliver_dat(typ, dat, kw)
+
+
+ def copy(self, message_set, new_mailbox, **kw):
+ """(typ, [data]) = copy(message_set, new_mailbox)
+ Copy 'message_set' messages onto end of 'new_mailbox'."""
+
+ return self._simple_command('COPY', message_set, new_mailbox, **kw)
+
+
+ def create(self, mailbox, **kw):
+ """(typ, [data]) = create(mailbox)
+ Create new mailbox."""
+
+ return self._simple_command('CREATE', mailbox, **kw)
+
+
+ def delete(self, mailbox, **kw):
+ """(typ, [data]) = delete(mailbox)
+ Delete old mailbox."""
+
+ return self._simple_command('DELETE', mailbox, **kw)
+
+
+ def deleteacl(self, mailbox, who, **kw):
+ """(typ, [data]) = deleteacl(mailbox, who)
+ Delete the ACLs (remove any rights) set for who on mailbox."""
+
+ return self._simple_command('DELETEACL', mailbox, who, **kw)
+
+
+ def enable(self, capability):
+ """Send an RFC5161 enable string to the server.
+
+ (typ, [data]) = <intance>.enable(capability)
+ """
+ if 'ENABLE' not in self.capabilities:
+ raise self.error("Server does not support ENABLE")
+ typ, data = self._simple_command('ENABLE', capability)
+ if typ == 'OK' and 'UTF8=ACCEPT' in capability.upper():
+ self._mode_utf8()
+ return typ, data
+
+
+ def examine(self, mailbox='INBOX', **kw):
+ """(typ, [data]) = examine(mailbox='INBOX')
+ Select a mailbox for READ-ONLY access. (Flushes all untagged responses.)
+ 'data' is count of messages in mailbox ('EXISTS' response).
+ Mandated responses are ('FLAGS', 'EXISTS', 'RECENT', 'UIDVALIDITY'), so
+ other responses should be obtained via "response('FLAGS')" etc."""
+
+ return self.select(mailbox=mailbox, readonly=True, **kw)
+
+
+ def expunge(self, **kw):
+ """(typ, [data]) = expunge()
+ Permanently remove deleted items from selected mailbox.
+ Generates 'EXPUNGE' response for each deleted message.
+ 'data' is list of 'EXPUNGE'd message numbers in order received."""
+
+ name = 'EXPUNGE'
+ kw['untagged_response'] = name
+ return self._simple_command(name, **kw)
+
+
+ def fetch(self, message_set, message_parts, **kw):
+ """(typ, [data, ...]) = fetch(message_set, message_parts)
+ Fetch (parts of) messages.
+ 'message_parts' should be a string of selected parts
+ enclosed in parentheses, eg: "(UID BODY[TEXT])".
+ 'data' are tuples of message part envelope and data,
+ followed by a string containing the trailer."""
+
+ name = 'FETCH'
+ kw['untagged_response'] = name
+ return self._simple_command(name, message_set, message_parts, **kw)
+
+
+ def getacl(self, mailbox, **kw):
+ """(typ, [data]) = getacl(mailbox)
+ Get the ACLs for a mailbox."""
+
+ kw['untagged_response'] = 'ACL'
+ return self._simple_command('GETACL', mailbox, **kw)
+
+
+ def getannotation(self, mailbox, entry, attribute, **kw):
+ """(typ, [data]) = getannotation(mailbox, entry, attribute)
+ Retrieve ANNOTATIONs."""
+
+ kw['untagged_response'] = 'ANNOTATION'
+ return self._simple_command('GETANNOTATION', mailbox, entry, attribute, **kw)
+
+
+ def getquota(self, root, **kw):
+ """(typ, [data]) = getquota(root)
+ Get the quota root's resource usage and limits.
+ (Part of the IMAP4 QUOTA extension defined in rfc2087.)"""
+
+ kw['untagged_response'] = 'QUOTA'
+ return self._simple_command('GETQUOTA', root, **kw)
+
+
+ def getquotaroot(self, mailbox, **kw):
+ # Hmmm, this is non-std! Left for backwards-compatibility, sigh.
+ # NB: usage should have been defined as:
+ # (typ, [QUOTAROOT responses...]) = getquotaroot(mailbox)
+ # (typ, [QUOTA responses...]) = response('QUOTA')
+ """(typ, [[QUOTAROOT responses...], [QUOTA responses...]]) = getquotaroot(mailbox)
+ Get the list of quota roots for the named mailbox."""
+
+ typ, dat = self._simple_command('GETQUOTAROOT', mailbox)
+ typ, quota = self._untagged_response(typ, dat, 'QUOTA')
+ typ, quotaroot = self._untagged_response(typ, dat, 'QUOTAROOT')
+ return self._deliver_dat(typ, [quotaroot, quota], kw)
+
+
+ def id(self, *kv_pairs, **kw):
+ """(typ, [data]) = <instance>.id(kv_pairs)
+ 'kv_pairs' is a possibly empty list of keys and values.
+ 'data' is a list of ID key value pairs or NIL.
+ NB: a single argument is assumed to be correctly formatted and is passed through unchanged
+ (for backward compatibility with earlier version).
+ Exchange information for problem analysis and determination.
+ The ID extension is defined in RFC 2971. """
+
+ name = 'ID'
+ kw['untagged_response'] = name
+
+ if not kv_pairs:
+ data = 'NIL'
+ elif len(kv_pairs) == 1:
+ data = kv_pairs[0] # Assume invoker passing correctly formatted string (back-compat)
+ else:
+ data = '(%s)' % ' '.join([(arg and self._quote(arg) or 'NIL') for arg in kv_pairs])
+
+ return self._simple_command(name, data, **kw)
+
+
+ def idle(self, timeout=None, **kw):
+ """"(typ, [data]) = idle(timeout=None)
+ Put server into IDLE mode until server notifies some change,
+ or 'timeout' (secs) occurs (default: 29 minutes),
+ or another IMAP4 command is scheduled."""
+
+ name = 'IDLE'
+ self.literal = _IdleCont(self, timeout).process
+ try:
+ return self._simple_command(name, **kw)
+ finally:
+ self._release_state_change()
+
+
+ def list(self, directory='""', pattern='*', **kw):
+ """(typ, [data]) = list(directory='""', pattern='*')
+ List mailbox names in directory matching pattern.
+ 'data' is list of LIST responses.
+
+ NB: for 'pattern':
+ % matches all except separator ( so LIST "" "%" returns names at root)
+ * matches all (so LIST "" "*" returns whole directory tree from root)"""
+
+ name = 'LIST'
+ kw['untagged_response'] = name
+ return self._simple_command(name, directory, pattern, **kw)
+
+
+ def login(self, user, password, **kw):
+ """(typ, [data]) = login(user, password)
+ Identify client using plaintext password.
+ NB: 'password' will be quoted."""
+
+ try:
+ typ, dat = self._simple_command('LOGIN', user, self._quote(password))
+ if typ != 'OK':
+ self._deliver_exc(self.error, dat[-1], kw)
+ self.state = AUTH
+ if __debug__: self._log(1, 'state => AUTH')
+ finally:
+ self._release_state_change()
+ return self._deliver_dat(typ, dat, kw)
+
+
+ def login_cram_md5(self, user, password, **kw):
+ """(typ, [data]) = login_cram_md5(user, password)
+ Force use of CRAM-MD5 authentication."""
+
+ self.user, self.password = user, password
+ return self.authenticate('CRAM-MD5', self._CRAM_MD5_AUTH, **kw)
+
+
+ def _CRAM_MD5_AUTH(self, challenge):
+ """Authobject to use with CRAM-MD5 authentication."""
+ import hmac
+ pwd = (self.password.encode('utf-8') if isinstance(self.password, str)
+ else self.password)
+ return self.user + " " + hmac.HMAC(pwd, challenge, 'md5').hexdigest()
+
+
+ def logout(self, **kw):
+ """(typ, [data]) = logout()
+ Shutdown connection to server.
+ Returns server 'BYE' response.
+ NB: You must call this to shut down threads before discarding an instance."""
+
+ self.state = LOGOUT
+ if __debug__: self._log(1, 'state => LOGOUT')
+
+ try:
+ try:
+ typ, dat = self._simple_command('LOGOUT')
+ except:
+ typ, dat = 'NO', ['%s: %s' % sys.exc_info()[:2]]
+ if __debug__: self._log(1, dat)
+
+ self._close_threads()
+ finally:
+ self._release_state_change()
+
+ if __debug__: self._log(1, 'connection closed')
+
+ bye = self._get_untagged_response('BYE', leave=True)
+ if bye:
+ typ, dat = 'BYE', bye
+ return self._deliver_dat(typ, dat, kw)
+
+
+ def lsub(self, directory='""', pattern='*', **kw):
+ """(typ, [data, ...]) = lsub(directory='""', pattern='*')
+ List 'subscribed' mailbox names in directory matching pattern.
+ 'data' are tuples of message part envelope and data."""
+
+ name = 'LSUB'
+ kw['untagged_response'] = name
+ return self._simple_command(name, directory, pattern, **kw)
+
+
+ def myrights(self, mailbox, **kw):
+ """(typ, [data]) = myrights(mailbox)
+ Show my ACLs for a mailbox (i.e. the rights that I have on mailbox)."""
+
+ name = 'MYRIGHTS'
+ kw['untagged_response'] = name
+ return self._simple_command(name, mailbox, **kw)
+
+
+ def namespace(self, **kw):
+ """(typ, [data, ...]) = namespace()
+ Returns IMAP namespaces ala rfc2342."""
+
+ name = 'NAMESPACE'
+ kw['untagged_response'] = name
+ return self._simple_command(name, **kw)
+
+
+ def noop(self, **kw):
+ """(typ, [data]) = noop()
+ Send NOOP command."""
+
+ if __debug__: self._dump_ur(3)
+ return self._simple_command('NOOP', **kw)
+
+
+ def partial(self, message_num, message_part, start, length, **kw):
+ """(typ, [data, ...]) = partial(message_num, message_part, start, length)
+ Fetch truncated part of a message.
+ 'data' is tuple of message part envelope and data.
+ NB: obsolete."""
+
+ name = 'PARTIAL'
+ kw['untagged_response'] = 'FETCH'
+ return self._simple_command(name, message_num, message_part, start, length, **kw)
+
+
+ def proxyauth(self, user, **kw):
+ """(typ, [data]) = proxyauth(user)
+ Assume authentication as 'user'.
+ (Allows an authorised administrator to proxy into any user's mailbox.)"""
+
+ try:
+ return self._simple_command('PROXYAUTH', user, **kw)
+ finally:
+ self._release_state_change()
+
+
+ def rename(self, oldmailbox, newmailbox, **kw):
+ """(typ, [data]) = rename(oldmailbox, newmailbox)
+ Rename old mailbox name to new."""
+
+ return self._simple_command('RENAME', oldmailbox, newmailbox, **kw)
+
+
+ def search(self, charset, *criteria, **kw):
+ """(typ, [data]) = search(charset, criterion, ...)
+ Search mailbox for matching messages.
+ If UTF8 is enabled, charset MUST be None.
+ 'data' is space separated list of matching message numbers."""
+
+ name = 'SEARCH'
+ kw['untagged_response'] = name
+ if charset:
+ if self.utf8_enabled:
+ raise self.error("Non-None charset not valid in UTF8 mode")
+ return self._simple_command(name, 'CHARSET', charset, *criteria, **kw)
+ return self._simple_command(name, *criteria, **kw)
+
+
+ def select(self, mailbox='INBOX', readonly=False, **kw):
+ """(typ, [data]) = select(mailbox='INBOX', readonly=False)
+ Select a mailbox. (Flushes all untagged responses.)
+ 'data' is count of messages in mailbox ('EXISTS' response).
+ Mandated responses are ('FLAGS', 'EXISTS', 'RECENT', 'UIDVALIDITY'), so
+ other responses should be obtained via "response('FLAGS')" etc."""
+
+ self.mailbox = mailbox
+
+ self.is_readonly = bool(readonly)
+ if readonly:
+ name = 'EXAMINE'
+ else:
+ name = 'SELECT'
+ try:
+ rqb = self._command(name, mailbox)
+ typ, dat = rqb.get_response('command: %s => %%s' % rqb.name)
+ if typ != 'OK':
+ if self.state == SELECTED:
+ self.state = AUTH
+ if __debug__: self._log(1, 'state => AUTH')
+ if typ == 'BAD':
+ self._deliver_exc(self.error, '%s command error: %s %s. Data: %.100s' % (name, typ, dat, mailbox), kw)
+ return self._deliver_dat(typ, dat, kw)
+ self.state = SELECTED
+ if __debug__: self._log(1, 'state => SELECTED')
+ finally:
+ self._release_state_change()
+
+ if self._get_untagged_response('READ-ONLY', leave=True) and not readonly:
+ if __debug__: self._dump_ur(1)
+ self._deliver_exc(self.readonly, '%s is not writable' % mailbox, kw)
+ typ, dat = self._untagged_response(typ, [None], 'EXISTS')
+ return self._deliver_dat(typ, dat, kw)
+
+
+ def setacl(self, mailbox, who, what, **kw):
+ """(typ, [data]) = setacl(mailbox, who, what)
+ Set a mailbox acl."""
+
+ try:
+ return self._simple_command('SETACL', mailbox, who, what, **kw)
+ finally:
+ self._release_state_change()
+
+
+ def setannotation(self, *args, **kw):
+ """(typ, [data]) = setannotation(mailbox[, entry, attribute]+)
+ Set ANNOTATIONs."""
+
+ kw['untagged_response'] = 'ANNOTATION'
+ return self._simple_command('SETANNOTATION', *args, **kw)
+
+
+ def setquota(self, root, limits, **kw):
+ """(typ, [data]) = setquota(root, limits)
+ Set the quota root's resource limits."""
+
+ kw['untagged_response'] = 'QUOTA'
+ try:
+ return self._simple_command('SETQUOTA', root, limits, **kw)
+ finally:
+ self._release_state_change()
+
+
+ def sort(self, sort_criteria, charset, *search_criteria, **kw):
+ """(typ, [data]) = sort(sort_criteria, charset, search_criteria, ...)
+ IMAP4rev1 extension SORT command."""
+
+ name = 'SORT'
+ if (sort_criteria[0],sort_criteria[-1]) != ('(',')'):
+ sort_criteria = '(%s)' % sort_criteria
+ kw['untagged_response'] = name
+ return self._simple_command(name, sort_criteria, charset, *search_criteria, **kw)
+
+
+ def starttls(self, keyfile=None, certfile=None, ca_certs=None, cert_verify_cb=None, ssl_version="ssl23", tls_level=TLS_COMPAT, **kw):
+ """(typ, [data]) = starttls(keyfile=None, certfile=None, ca_certs=None, cert_verify_cb=None, ssl_version="ssl23", tls_level="tls_compat")
+ Start TLS negotiation as per RFC 2595."""
+
+ name = 'STARTTLS'
+
+ if name not in self.capabilities:
+ raise self.abort('TLS not supported by server')
+
+ if self._tls_established:
+ raise self.abort('TLS session already established')
+
+ # Must now shutdown reader thread after next response, and restart after changing read_fd
+
+ self.read_size = 1 # Don't consume TLS handshake
+ self.TerminateReader = True
+
+ try:
+ typ, dat = self._simple_command(name)
+ finally:
+ self._release_state_change()
+ self.rdth.join()
+ self.TerminateReader = False
+ self.read_size = READ_SIZE
+
+ if typ != 'OK':
+ # Restart reader thread and error
+ self.rdth = threading.Thread(target=self._reader)
+ self.rdth.setDaemon(True)
+ self.rdth.start()
+ raise self.error("Couldn't establish TLS session: %s" % dat)
+
+ self.keyfile = keyfile
+ self.certfile = certfile
+ self.ca_certs = ca_certs
+ self.cert_verify_cb = cert_verify_cb
+ self.ssl_version = ssl_version
+ self.tls_level = tls_level
+
+ try:
+ self.ssl_wrap_socket()
+ finally:
+ # Restart reader thread
+ self.rdth = threading.Thread(target=self._reader)
+ self.rdth.setDaemon(True)
+ self.rdth.start()
+
+ self._get_capabilities()
+
+ self._tls_established = True
+
+ typ, dat = self._untagged_response(typ, dat, name)
+ return self._deliver_dat(typ, dat, kw)
+
+
+ def status(self, mailbox, names, **kw):
+ """(typ, [data]) = status(mailbox, names)
+ Request named status conditions for mailbox."""
+
+ name = 'STATUS'
+ kw['untagged_response'] = name
+ return self._simple_command(name, mailbox, names, **kw)
+
+
+ def store(self, message_set, command, flags, **kw):
+ """(typ, [data]) = store(message_set, command, flags)
+ Alters flag dispositions for messages in mailbox."""
+
+ if (flags[0],flags[-1]) != ('(',')'):
+ flags = '(%s)' % flags # Avoid quoting the flags
+ kw['untagged_response'] = 'FETCH'
+ return self._simple_command('STORE', message_set, command, flags, **kw)
+
+
+ def subscribe(self, mailbox, **kw):
+ """(typ, [data]) = subscribe(mailbox)
+ Subscribe to new mailbox."""
+
+ try:
+ return self._simple_command('SUBSCRIBE', mailbox, **kw)
+ finally:
+ self._release_state_change()
+
+
+ def thread(self, threading_algorithm, charset, *search_criteria, **kw):
+ """(type, [data]) = thread(threading_alogrithm, charset, search_criteria, ...)
+ IMAPrev1 extension THREAD command."""
+
+ name = 'THREAD'
+ kw['untagged_response'] = name
+ return self._simple_command(name, threading_algorithm, charset, *search_criteria, **kw)
+
+
+ def uid(self, command, *args, **kw):
+ """(typ, [data]) = uid(command, arg, ...)
+ Execute "command arg ..." with messages identified by UID,
+ rather than message number.
+ Assumes 'command' is legal in current state.
+ Returns response appropriate to 'command'."""
+
+ command = command.upper()
+ if command in UID_direct:
+ resp = command
+ else:
+ resp = 'FETCH'
+ kw['untagged_response'] = resp
+ return self._simple_command('UID', command, *args, **kw)
+
+
+ def unsubscribe(self, mailbox, **kw):
+ """(typ, [data]) = unsubscribe(mailbox)
+ Unsubscribe from old mailbox."""
+
+ try:
+ return self._simple_command('UNSUBSCRIBE', mailbox, **kw)
+ finally:
+ self._release_state_change()
+
+
+ def xatom(self, name, *args, **kw):
+ """(typ, [data]) = xatom(name, arg, ...)
+ Allow simple extension commands notified by server in CAPABILITY response.
+ Assumes extension command 'name' is legal in current state.
+ Returns response appropriate to extension command 'name'."""
+
+ name = name.upper()
+ if not name in Commands:
+ Commands[name] = ((self.state,), False)
+ try:
+ return self._simple_command(name, *args, **kw)
+ finally:
+ self._release_state_change()
+
+
+
+ # Internal methods
+
+
+ def _append_untagged(self, typ, dat):
+
+ # Append new 'dat' to end of last untagged response if same 'typ',
+ # else append new response.
+
+ if dat is None: dat = b''
+
+ self.commands_lock.acquire()
+
+ if self.untagged_responses:
+ urn, urd = self.untagged_responses[-1]
+ if urn != typ:
+ urd = None
+ else:
+ urd = None
+
+ if urd is None:
+ urd = []
+ self.untagged_responses.append([typ, urd])
+
+ urd.append(dat)
+
+ self.commands_lock.release()
+
+ if __debug__: self._log(5, 'untagged_responses[%s] %s += ["%.80r"]' % (typ, len(urd)-1, dat))
+
+
+ def _check_bye(self):
+
+ bye = self._get_untagged_response('BYE', leave=True)
+ if bye:
+ raise self.abort(bye[-1].decode('ASCII', 'replace'))
+
+
+ def _choose_nonull_or_dflt(self, dflt, *args):
+ if isinstance(dflt, str):
+ dflttyp = str # Allow any string type
+ else:
+ dflttyp = type(dflt)
+ for arg in args:
+ if arg is not None:
+ if isinstance(arg, dflttyp):
+ return arg
+ if __debug__: self._log(0, 'bad arg is %s, expecting %s' % (type(arg), dflttyp))
+ return dflt
+
+
+ def _command(self, name, *args, **kw):
+
+ if Commands[name][CMD_VAL_ASYNC]:
+ cmdtyp = 'async'
+ else:
+ cmdtyp = 'sync'
+
+ if __debug__: self._log(1, '[%s] %s %s' % (cmdtyp, name, args))
+
+ if __debug__: self._log(3, 'state_change_pending.acquire')
+ self.state_change_pending.acquire()
+
+ self._end_idle()
+
+ if cmdtyp == 'async':
+ self.state_change_pending.release()
+ if __debug__: self._log(3, 'state_change_pending.release')
+ else:
+ # Need to wait for all async commands to complete
+ self._check_bye()
+ self.commands_lock.acquire()
+ if self.tagged_commands:
+ self.state_change_free.clear()
+ need_event = True
+ else:
+ need_event = False
+ self.commands_lock.release()
+ if need_event:
+ if __debug__: self._log(3, 'sync command %s waiting for empty commands Q' % name)
+ self.state_change_free.wait()
+ if __debug__: self._log(3, 'sync command %s proceeding' % name)
+
+ if self.state not in Commands[name][CMD_VAL_STATES]:
+ self.literal = None
+ raise self.error('command %s illegal in state %s'
+ % (name, self.state))
+
+ self._check_bye()
+
+ if name in ('EXAMINE', 'SELECT'):
+ self.commands_lock.acquire()
+ self.untagged_responses = [] # Flush all untagged responses
+ self.commands_lock.release()
+ else:
+ for typ in ('OK', 'NO', 'BAD'):
+ while self._get_untagged_response(typ):
+ continue
+
+ if not self.is_readonly and self._get_untagged_response('READ-ONLY', leave=True):
+ self.literal = None
+ raise self.readonly('mailbox status changed to READ-ONLY')
+
+ if self.Terminate:
+ raise self.abort('connection closed')
+
+ rqb = self._request_push(name=name, **kw)
+
+ name = bytes(name, self._encoding)
+ data = rqb.tag + b' ' + name
+ for arg in args:
+ if arg is None: continue
+ if isinstance(arg, str):
+ arg = bytes(arg, self._encoding)
+ data = data + b' ' + arg
+
+ literal = self.literal
+ if literal is not None:
+ self.literal = None
+ if type(literal) is type(self._command):
+ literator = literal
+ else:
+ literator = None
+ data = data + bytes(' {%s}' % len(literal), self._encoding)
+
+ if __debug__: self._log(4, 'data=%r' % data)
+
+ rqb.data = data + CRLF
+
+ if literal is None:
+ self.ouq.put(rqb)
+ return rqb
+
+ # Must setup continuation expectancy *before* ouq.put
+ crqb = self._request_push(name=name, tag='continuation')
+
+ self.ouq.put(rqb)
+
+ while True:
+ # Wait for continuation response
+
+ ok, data = crqb.get_response('command: %s => %%s' % name)
+ if __debug__: self._log(4, 'continuation => %s, %r' % (ok, data))
+
+ # NO/BAD response?
+
+ if not ok:
+ break
+
+ if data == 'go ahead': # Apparently not uncommon broken IMAP4 server response to AUTHENTICATE command
+ data = ''
+
+ # Send literal
+
+ if literator is not None:
+ literal = literator(data, rqb)
+
+ if literal is None:
+ break
+
+ if literator is not None:
+ # Need new request for next continuation response
+ crqb = self._request_push(name=name, tag='continuation')
+
+ if __debug__: self._log(4, 'write literal size %s' % len(literal))
+ crqb.data = literal + CRLF
+ self.ouq.put(crqb)
+
+ if literator is None:
+ break
+
+ return rqb
+
+
+ def _command_complete(self, rqb, kw):
+
+ # Called for non-callback commands
+
+ self._check_bye()
+ typ, dat = rqb.get_response('command: %s => %%s' % rqb.name)
+ if typ == 'BAD':
+ if __debug__: self._print_log()
+ raise self.error('%s command error: %s %s. Data: %.100s' % (rqb.name, typ, dat, rqb.data))
+ if 'untagged_response' in kw:
+ return self._untagged_response(typ, dat, kw['untagged_response'])
+ return typ, dat
+
+
+ def _command_completer(self, cb_arg_list):
+
+ # Called for callback commands
+ response, cb_arg, error = cb_arg_list
+ rqb, kw = cb_arg
+ rqb.callback = kw['callback']
+ rqb.callback_arg = kw.get('cb_arg')
+ if error is not None:
+ if __debug__: self._print_log()
+ typ, val = error
+ rqb.abort(typ, val)
+ return
+ bye = self._get_untagged_response('BYE', leave=True)
+ if bye:
+ rqb.abort(self.abort, bye[-1].decode('ASCII', 'replace'))
+ return
+ typ, dat = response
+ if typ == 'BAD':
+ if __debug__: self._print_log()
+ rqb.abort(self.error, '%s command error: %s %s. Data: %.100s' % (rqb.name, typ, dat, rqb.data))
+ return
+ if __debug__: self._log(4, '_command_completer(%s, %s, None) = %s' % (response, cb_arg, rqb.tag))
+ if 'untagged_response' in kw:
+ response = self._untagged_response(typ, dat, kw['untagged_response'])
+ rqb.deliver(response)
+
+
+ def _deliver_dat(self, typ, dat, kw):
+
+ if 'callback' in kw:
+ kw['callback'](((typ, dat), kw.get('cb_arg'), None))
+ return typ, dat
+
+
+ def _deliver_exc(self, exc, dat, kw):
+
+ if 'callback' in kw:
+ kw['callback']((None, kw.get('cb_arg'), (exc, dat)))
+ raise exc(dat)
+
+
+ def _end_idle(self):
+
+ self.idle_lock.acquire()
+ irqb = self.idle_rqb
+ if irqb is None:
+ self.idle_lock.release()
+ return
+ self.idle_rqb = None
+ self.idle_timeout = None
+ self.idle_lock.release()
+ irqb.data = bytes('DONE', 'ASCII') + CRLF
+ self.ouq.put(irqb)
+ if __debug__: self._log(2, 'server IDLE finished')
+
+
+ def _get_capabilities(self):
+ typ, dat = self.capability()
+ if dat == [None]:
+ raise self.error('no CAPABILITY response from server')
+ dat = str(dat[-1], "ASCII")
+ dat = dat.upper()
+ self.capabilities = tuple(dat.split())
+
+
+ def _get_untagged_response(self, name, leave=False):
+
+ self.commands_lock.acquire()
+
+ for i, (typ, dat) in enumerate(self.untagged_responses):
+ if typ == name:
+ if not leave:
+ del self.untagged_responses[i]
+ self.commands_lock.release()
+ if __debug__: self._log(5, '_get_untagged_response(%s) => %.80r' % (name, dat))
+ return dat
+
+ self.commands_lock.release()
+ return None
+
+
+ def _match(self, cre, s):
+
+ # Run compiled regular expression 'cre' match method on 's'.
+ # Save result, return success.
+
+ self.mo = cre.match(s)
+ return self.mo is not None
+
+
+ def _put_response(self, resp):
+
+ if self._expecting_data:
+ rlen = len(resp)
+ dlen = min(self._expecting_data_len, rlen)
+ if __debug__: self._log(5, '_put_response expecting data len %s, got %s' % (self._expecting_data_len, rlen))
+ self._expecting_data_len -= dlen
+ self._expecting_data = (self._expecting_data_len != 0)
+ if rlen <= dlen:
+ self._accumulated_data.append(resp)
+ return
+ self._accumulated_data.append(resp[:dlen])
+ resp = resp[dlen:]
+
+ if self._accumulated_data:
+ typ, dat = self._literal_expected
+ self._append_untagged(typ, (dat, b''.join(self._accumulated_data)))
+ self._accumulated_data = []
+
+ # Protocol mandates all lines terminated by CRLF
+ resp = resp[:-2]
+ if __debug__: self._log(5, '_put_response(%r)' % resp)
+
+ if 'continuation' in self.tagged_commands:
+ continuation_expected = True
+ else:
+ continuation_expected = False
+
+ if self._literal_expected is not None:
+ dat = resp
+ if self._match(self.literal_cre, dat):
+ self._literal_expected[1] = dat
+ self._expecting_data = True
+ self._expecting_data_len = int(self.mo.group('size'))
+ if __debug__: self._log(4, 'expecting literal size %s' % self._expecting_data_len)
+ return
+ typ = self._literal_expected[0]
+ self._literal_expected = None
+ if dat:
+ self._append_untagged(typ, dat) # Tail
+ if __debug__: self._log(4, 'literal completed')
+ else:
+ # Command completion response?
+ if self._match(self.tagre, resp):
+ tag = self.mo.group('tag')
+ typ = str(self.mo.group('type'), 'ASCII')
+ dat = self.mo.group('data')
+ if typ in ('OK', 'NO', 'BAD') and self._match(self.response_code_cre, dat):
+ self._append_untagged(str(self.mo.group('type'), 'ASCII'), self.mo.group('data'))
+ if not tag in self.tagged_commands:
+ if __debug__: self._log(1, 'unexpected tagged response: %r' % resp)
+ else:
+ self._request_pop(tag, (typ, [dat]))
+ else:
+ dat2 = None
+
+ # '*' (untagged) responses?
+
+ if not self._match(self.untagged_response_cre, resp):
+ if self._match(self.untagged_status_cre, resp):
+ dat2 = self.mo.group('data2')
+
+ if self.mo is None:
+ # Only other possibility is '+' (continuation) response...
+
+ if self._match(self.continuation_cre, resp):
+ if not continuation_expected:
+ if __debug__: self._log(1, "unexpected continuation response: '%r'" % resp)
+ return
+ self._request_pop('continuation', (True, self.mo.group('data')))
+ return
+
+ if __debug__: self._log(1, "unexpected response: '%r'" % resp)
+ return
+
+ typ = str(self.mo.group('type'), 'ASCII')
+ dat = self.mo.group('data')
+ if dat is None: dat = b'' # Null untagged response
+ if dat2: dat = dat + b' ' + dat2
+
+ # Is there a literal to come?
+
+ if self._match(self.literal_cre, dat):
+ self._expecting_data = True
+ self._expecting_data_len = int(self.mo.group('size'))
+ if __debug__: self._log(4, 'read literal size %s' % self._expecting_data_len)
+ self._literal_expected = [typ, dat]
+ return
+
+ self._append_untagged(typ, dat)
+ if typ in ('OK', 'NO', 'BAD') and self._match(self.response_code_cre, dat):
+ self._append_untagged(str(self.mo.group('type'), 'ASCII'), self.mo.group('data'))
+
+ if typ != 'OK': # NO, BYE, IDLE
+ self._end_idle()
+
+ # Command waiting for aborted continuation response?
+
+ if continuation_expected:
+ self._request_pop('continuation', (False, resp))
+
+ # Bad news?
+
+ if typ in ('NO', 'BAD', 'BYE'):
+ if typ == 'BYE':
+ self.Terminate = True
+ if __debug__: self._log(1, '%s response: %r' % (typ, dat))
+
+
+ def _quote(self, arg):
+
+ return '"%s"' % arg.replace('\\', '\\\\').replace('"', '\\"')
+
+
+ def _release_state_change(self):
+
+ if self.state_change_pending.locked():
+ self.state_change_pending.release()
+ if __debug__: self._log(3, 'state_change_pending.release')
+
+
+ def _request_pop(self, name, data):
+
+ self.commands_lock.acquire()
+ rqb = self.tagged_commands.pop(name)
+ if not self.tagged_commands:
+ need_event = True
+ else:
+ need_event = False
+ self.commands_lock.release()
+
+ if __debug__: self._log(4, '_request_pop(%s, %r) [%d] = %s' % (name, data, len(self.tagged_commands), rqb.tag))
+ rqb.deliver(data)
+
+ if need_event:
+ if __debug__: self._log(3, 'state_change_free.set')
+ self.state_change_free.set()
+
+
+ def _request_push(self, tag=None, name=None, **kw):
+
+ self.commands_lock.acquire()
+ rqb = Request(self, name=name, **kw)
+ if tag is None:
+ tag = rqb.tag
+ self.tagged_commands[tag] = rqb
+ self.commands_lock.release()
+ if __debug__: self._log(4, '_request_push(%s, %s, %s) = %s' % (tag, name, repr(kw), rqb.tag))
+ return rqb
+
+
+ def _simple_command(self, name, *args, **kw):
+
+ if 'callback' in kw:
+ # Note: old calling sequence for back-compat with python <2.6
+ self._command(name, callback=self._command_completer, cb_arg=kw, cb_self=True, *args)
+ return (None, None)
+ return self._command_complete(self._command(name, *args), kw)
+
+
+ def _untagged_response(self, typ, dat, name):
+
+ if typ == 'NO':
+ return typ, dat
+ data = self._get_untagged_response(name)
+ if not data:
+ return typ, [None]
+ while True:
+ dat = self._get_untagged_response(name)
+ if not dat:
+ break
+ data += dat
+ if __debug__: self._log(4, '_untagged_response(%s, ?, %s) => %.80r' % (typ, name, data))
+ return typ, data
+
+
+
+ # Threads
+
+
+ def _close_threads(self):
+
+ if __debug__: self._log(1, '_close_threads')
+
+ self.ouq.put(None)
+ self.wrth.join()
+
+ if __debug__: self._log(1, 'call shutdown')
+
+ self.shutdown()
+
+ self.rdth.join()
+ self.inth.join()
+
+
+ def _handler(self):
+
+ resp_timeout = self.resp_timeout
+
+ threading.currentThread().setName(self.identifier + 'handler')
+
+ time.sleep(0.1) # Don't start handling before main thread ready
+
+ if __debug__: self._log(1, 'starting')
+
+ typ, val = self.abort, 'connection terminated'
+
+ while not self.Terminate:
+
+ self.idle_lock.acquire()
+ if self.idle_timeout is not None:
+ timeout = self.idle_timeout - time.time()
+ if timeout <= 0:
+ timeout = 1
+ if __debug__:
+ if self.idle_rqb is not None:
+ self._log(5, 'server IDLING, timeout=%.2f' % timeout)
+ else:
+ timeout = resp_timeout
+ self.idle_lock.release()
+
+ try:
+ line = self.inq.get(True, timeout)
+ except queue.Empty:
+ if self.idle_rqb is None:
+ if resp_timeout is not None and self.tagged_commands:
+ if __debug__: self._log(1, 'response timeout')
+ typ, val = self.abort, 'no response after %s secs' % resp_timeout
+ break
+ continue
+ if self.idle_timeout > time.time():
+ continue
+ if __debug__: self._log(2, 'server IDLE timedout')
+ line = IDLE_TIMEOUT_RESPONSE
+
+ if line is None:
+ if __debug__: self._log(1, 'inq None - terminating')
+ break
+
+ if not isinstance(line, bytes):
+ typ, val = line
+ break
+
+ try:
+ self._put_response(line)
+ except:
+ typ, val = self.error, 'program error: %s - %s' % sys.exc_info()[:2]
+ break
+
+ self.Terminate = True
+
+ if __debug__: self._log(1, 'terminating: %s' % repr(val))
+
+ while not self.ouq.empty():
+ try:
+ qel = self.ouq.get_nowait()
+ if qel is not None:
+ qel.abort(typ, val)
+ except queue.Empty:
+ break
+ self.ouq.put(None)
+
+ self.commands_lock.acquire()
+ for name in list(self.tagged_commands.keys()):
+ rqb = self.tagged_commands.pop(name)
+ rqb.abort(typ, val)
+ self.state_change_free.set()
+ self.commands_lock.release()
+ if __debug__: self._log(3, 'state_change_free.set')
+
+ if __debug__: self._log(1, 'finished')
+
+
+ if hasattr(select_module, "poll"):
+
+ def _reader(self):
+
+ threading.currentThread().setName(self.identifier + 'reader')
+
+ if __debug__: self._log(1, 'starting using poll')
+
+ def poll_error(state):
+ PollErrors = {
+ select.POLLERR: 'Error',
+ select.POLLHUP: 'Hang up',
+ select.POLLNVAL: 'Invalid request: descriptor not open',
+ }
+ return ' '.join([PollErrors[s] for s in PollErrors.keys() if (s & state)])
+
+ line_part = b''
+
+ poll = select.poll()
+
+ poll.register(self.read_fd, select.POLLIN)
+
+ rxzero = 0
+ terminate = False
+ read_poll_timeout = self.read_poll_timeout * 1000 # poll() timeout is in millisecs
+
+ while not (terminate or self.Terminate):
+ if self.state == LOGOUT:
+ timeout = 10
+ else:
+ timeout = read_poll_timeout
+ try:
+ r = poll.poll(timeout)
+ if __debug__: self._log(5, 'poll => %s' % repr(r))
+ if not r:
+ continue # Timeout
+
+ fd,state = r[0]
+
+ if state & select.POLLIN:
+ data = self.read(self.read_size) # Drain ssl buffer if present
+ start = 0
+ dlen = len(data)
+ if __debug__: self._log(5, 'rcvd %s' % dlen)
+ if dlen == 0:
+ rxzero += 1
+ if rxzero > 5:
+ raise IOError("Too many read 0")
+ time.sleep(0.1)
+ continue # Try again
+ rxzero = 0
+
+ while True:
+ stop = data.find(b'\n', start)
+ if stop < 0:
+ line_part += data[start:]
+ break
+ stop += 1
+ line_part, start, line = \
+ b'', stop, line_part + data[start:stop]
+ if __debug__: self._log(4, '< %r' % line)
+ self.inq.put(line)
+ if self.TerminateReader:
+ terminate = True
+
+ if state & ~(select.POLLIN):
+ raise IOError(poll_error(state))
+ except:
+ reason = 'socket error: %s - %s' % sys.exc_info()[:2]
+ if __debug__:
+ if not self.Terminate:
+ self._print_log()
+ if self.debug: self.debug += 4 # Output all
+ self._log(1, reason)
+ self.inq.put((self.abort, reason))
+ break
+
+ poll.unregister(self.read_fd)
+
+ if __debug__: self._log(1, 'finished')
+
+ else:
+
+ # No "poll" - use select()
+
+ def _reader(self):
+
+ threading.currentThread().setName(self.identifier + 'reader')
+
+ if __debug__: self._log(1, 'starting using select')
+
+ line_part = b''
+
+ rxzero = 0
+ terminate = False
+
+ while not (terminate or self.Terminate):
+ if self.state == LOGOUT:
+ timeout = 1
+ else:
+ timeout = self.read_poll_timeout
+ try:
+ r,w,e = select.select([self.read_fd], [], [], timeout)
+ if __debug__: self._log(5, 'select => %s, %s, %s' % (r,w,e))
+ if not r: # Timeout
+ continue
+
+ data = self.read(self.read_size) # Drain ssl buffer if present
+ start = 0
+ dlen = len(data)
+ if __debug__: self._log(5, 'rcvd %s' % dlen)
+ if dlen == 0:
+ rxzero += 1
+ if rxzero > 5:
+ raise IOError("Too many read 0")
+ time.sleep(0.1)
+ continue # Try again
+ rxzero = 0
+
+ while True:
+ stop = data.find(b'\n', start)
+ if stop < 0:
+ line_part += data[start:]
+ break
+ stop += 1
+ line_part, start, line = \
+ b'', stop, (line_part + data[start:stop]).decode(errors='ignore')
+ if __debug__: self._log(4, '< %r' % line)
+ self.inq.put(line)
+ if self.TerminateReader:
+ terminate = True
+ except:
+ reason = 'socket error: %s - %s' % sys.exc_info()[:2]
+ if __debug__:
+ if not self.Terminate:
+ self._print_log()
+ if self.debug: self.debug += 4 # Output all
+ self._log(1, reason)
+ self.inq.put((self.abort, reason))
+ break
+
+ if __debug__: self._log(1, 'finished')
+
+
+ def _writer(self):
+
+ threading.currentThread().setName(self.identifier + 'writer')
+
+ if __debug__: self._log(1, 'starting')
+
+ reason = 'Terminated'
+
+ while not self.Terminate:
+ rqb = self.ouq.get()
+ if rqb is None:
+ break # Outq flushed
+
+ try:
+ self.send(rqb.data)
+ if __debug__: self._log(4, '> %r' % rqb.data)
+ except:
+ reason = 'socket error: %s - %s' % sys.exc_info()[:2]
+ if __debug__:
+ if not self.Terminate:
+ self._print_log()
+ if self.debug: self.debug += 4 # Output all
+ self._log(1, reason)
+ rqb.abort(self.abort, reason)
+ break
+
+ self.inq.put((self.abort, reason))
+
+ if __debug__: self._log(1, 'finished')
+
+
+
+ # Debugging
+
+
+ if __debug__:
+
+ def _init_debug(self, debug=None, debug_file=None, debug_buf_lvl=None):
+ self.debug_lock = threading.Lock()
+
+ self.debug = self._choose_nonull_or_dflt(0, debug)
+ self.debug_file = self._choose_nonull_or_dflt(sys.stderr, debug_file)
+ self.debug_buf_lvl = self._choose_nonull_or_dflt(DFLT_DEBUG_BUF_LVL, debug_buf_lvl)
+
+ self._cmd_log_len = 20
+ self._cmd_log_idx = 0
+ self._cmd_log = {} # Last `_cmd_log_len' interactions
+ if self.debug:
+ self._mesg('imaplib2 version %s' % __version__)
+ self._mesg('imaplib2 debug level %s, buffer level %s' % (self.debug, self.debug_buf_lvl))
+
+
+ def _dump_ur(self, lvl):
+ if lvl > self.debug:
+ return
+
+ l = self.untagged_responses # NB: bytes array
+ if not l:
+ return
+
+ t = '\n\t\t'
+ l = ['%s: "%s"' % (x[0], x[1][0] and b'" "'.join(x[1]) or '') for x in l]
+ self.debug_lock.acquire()
+ self._mesg('untagged responses dump:%s%s' % (t, t.join(l)))
+ self.debug_lock.release()
+
+
+ def _log(self, lvl, line):
+ if lvl > self.debug:
+ return
+
+ if line[-2:] == CRLF:
+ line = line[:-2] + '\\r\\n'
+
+ tn = threading.currentThread().getName()
+
+ if lvl <= 1 or self.debug > self.debug_buf_lvl:
+ self.debug_lock.acquire()
+ self._mesg(line, tn)
+ self.debug_lock.release()
+ if lvl != 1:
+ return
+
+ # Keep log of last `_cmd_log_len' interactions for debugging.
+ self.debug_lock.acquire()
+ self._cmd_log[self._cmd_log_idx] = (line, tn, time.time())
+ self._cmd_log_idx += 1
+ if self._cmd_log_idx >= self._cmd_log_len:
+ self._cmd_log_idx = 0
+ self.debug_lock.release()
+
+
+ def _mesg(self, s, tn=None, secs=None):
+ if secs is None:
+ secs = time.time()
+ if tn is None:
+ tn = threading.currentThread().getName()
+ tm = time.strftime('%M:%S', time.localtime(secs))
+ try:
+ self.debug_file.write(' %s.%02d %s %s\n' % (tm, (secs*100)%100, tn, s))
+ self.debug_file.flush()
+ finally:
+ pass
+
+
+ def _print_log(self):
+ self.debug_lock.acquire()
+ i, n = self._cmd_log_idx, self._cmd_log_len
+ if n: self._mesg('last %d log messages:' % n)
+ while n:
+ try:
+ self._mesg(*self._cmd_log[i])
+ except:
+ pass
+ i += 1
+ if i >= self._cmd_log_len:
+ i = 0
+ n -= 1
+ self.debug_lock.release()
+
+
+
+class IMAP4_SSL(IMAP4):
+
+ """IMAP4 client class over SSL connection
+
+ Instantiate with:
+ IMAP4_SSL(host=None, port=None, keyfile=None, certfile=None, ca_certs=None, cert_verify_cb=None, ssl_version="ssl23", debug=None, debug_file=None, identifier=None, timeout=None, debug_buf_lvl=None, tls_level="tls_compat")
+
+ host - host's name (default: localhost);
+ port - port number (default: standard IMAP4 SSL port);
+ keyfile - PEM formatted file that contains your private key (default: None);
+ certfile - PEM formatted certificate chain file (default: None);
+ ca_certs - PEM formatted certificate chain file used to validate server certificates (default: None);
+ cert_verify_cb - function to verify authenticity of server certificates (default: None);
+ ssl_version - SSL version to use (default: "ssl23", choose from: "tls1","ssl3","ssl23");
+ debug - debug level (default: 0 - no debug);
+ debug_file - debug stream (default: sys.stderr);
+ identifier - thread identifier prefix (default: host);
+ timeout - timeout in seconds when expecting a command response.
+ debug_buf_lvl - debug level at which buffering is turned off.
+ tls_level - TLS security level (default: "tls_compat").
+
+ The recognized values for tls_level are:
+ tls_secure: accept only TLS protocols recognized as "secure"
+ tls_no_ssl: disable SSLv2 and SSLv3 support
+ tls_compat: accept all SSL/TLS versions
+
+ For more documentation see the docstring of the parent class IMAP4.
+ """
+
+
+ def __init__(self, host=None, port=None, keyfile=None, certfile=None, ca_certs=None, cert_verify_cb=None, ssl_version="ssl23", debug=None, debug_file=None, identifier=None, timeout=None, debug_buf_lvl=None, tls_level=TLS_COMPAT):
+ self.keyfile = keyfile
+ self.certfile = certfile
+ self.ca_certs = ca_certs
+ self.cert_verify_cb = cert_verify_cb
+ self.ssl_version = ssl_version
+ self.tls_level = tls_level
+ IMAP4.__init__(self, host, port, debug, debug_file, identifier, timeout, debug_buf_lvl)
+
+
+ def open(self, host=None, port=None):
+ """open(host=None, port=None)
+ Setup secure connection to remote server on "host:port"
+ (default: localhost:standard IMAP4 SSL port).
+ This connection will be used by the routines:
+ read, send, shutdown, socket, ssl."""
+
+ self.host = self._choose_nonull_or_dflt('', host)
+ self.port = self._choose_nonull_or_dflt(IMAP4_SSL_PORT, port)
+ self.sock = self.open_socket()
+ self.ssl_wrap_socket()
+
+
+ def read(self, size):
+ """data = read(size)
+ Read at most 'size' bytes from remote."""
+
+ if self.decompressor is None:
+ return self.sock.read(size)
+
+ if self.decompressor.unconsumed_tail:
+ data = self.decompressor.unconsumed_tail
+ else:
+ data = self.sock.read(READ_SIZE)
+
+ return self.decompressor.decompress(data, size)
+
+
+ def send(self, data):
+ """send(data)
+ Send 'data' to remote."""
+
+ if self.compressor is not None:
+ data = self.compressor.compress(data)
+ data += self.compressor.flush(zlib.Z_SYNC_FLUSH)
+
+ if hasattr(self.sock, "sendall"):
+ self.sock.sendall(data)
+ else:
+ dlen = len(data)
+ while dlen > 0:
+ sent = self.sock.write(data)
+ if sent == dlen:
+ break # avoid copy
+ data = data[sent:]
+ dlen = dlen - sent
+
+
+ def ssl(self):
+ """ssl = ssl()
+ Return ssl instance used to communicate with the IMAP4 server."""
+
+ return self.sock
+
+
+
+class IMAP4_stream(IMAP4):
+
+ """IMAP4 client class over a stream
+
+ Instantiate with:
+ IMAP4_stream(command, debug=None, debug_file=None, identifier=None, timeout=None, debug_buf_lvl=None)
+
+ command - string that can be passed to subprocess.Popen();
+ debug - debug level (default: 0 - no debug);
+ debug_file - debug stream (default: sys.stderr);
+ identifier - thread identifier prefix (default: host);
+ timeout - timeout in seconds when expecting a command response.
+ debug_buf_lvl - debug level at which buffering is turned off.
+
+ For more documentation see the docstring of the parent class IMAP4.
+ """
+
+
+ def __init__(self, command, debug=None, debug_file=None, identifier=None, timeout=None, debug_buf_lvl=None):
+ self.command = command
+ self.host = command
+ self.port = None
+ self.sock = None
+ self.writefile, self.readfile = None, None
+ self.read_fd = None
+ IMAP4.__init__(self, None, None, debug, debug_file, identifier, timeout, debug_buf_lvl)
+
+
+ def open(self, host=None, port=None):
+ """open(host=None, port=None)
+ Setup a stream connection via 'self.command'.
+ This connection will be used by the routines:
+ read, send, shutdown, socket."""
+
+ from subprocess import Popen, PIPE
+ from io import DEFAULT_BUFFER_SIZE
+
+ if __debug__: self._log(0, 'opening stream from command "%s"' % self.command)
+ self._P = Popen(self.command, shell=True, stdin=PIPE, stdout=PIPE, close_fds=True, bufsize=DEFAULT_BUFFER_SIZE)
+ self.writefile, self.readfile = self._P.stdin, self._P.stdout
+ self.read_fd = self.readfile.fileno()
+
+
+ def read(self, size):
+ """Read 'size' bytes from remote."""
+
+ if self.decompressor is None:
+ return os.read(self.read_fd, size)
+
+ if self.decompressor.unconsumed_tail:
+ data = self.decompressor.unconsumed_tail
+ else:
+ data = os.read(self.read_fd, READ_SIZE)
+
+ return self.decompressor.decompress(data, size)
+
+
+ def send(self, data):
+ """Send data to remote."""
+
+ if self.compressor is not None:
+ data = self.compressor.compress(data)
+ data += self.compressor.flush(zlib.Z_SYNC_FLUSH)
+
+ self.writefile.write(data)
+ self.writefile.flush()
+
+
+ def shutdown(self):
+ """Close I/O established in "open"."""
+
+ self.readfile.close()
+ self.writefile.close()
+ self._P.wait()
+
+
+class _Authenticator(object):
+
+ """Private class to provide en/de-coding
+ for base64 authentication conversation."""
+
+ def __init__(self, mechinst):
+ self.mech = mechinst # Callable object to provide/process data
+
+ def process(self, data, rqb):
+ ret = self.mech(self.decode(data))
+ if ret is None:
+ return b'*' # Abort conversation
+ return self.encode(ret)
+
+ def encode(self, inp):
+ #
+ # Invoke binascii.b2a_base64 iteratively with
+ # short even length buffers, strip the trailing
+ # line feed from the result and append. "Even"
+ # means a number that factors to both 6 and 8,
+ # so when it gets to the end of the 8-bit input
+ # there's no partial 6-bit output.
+ #
+ oup = b''
+ if isinstance(inp, str):
+ inp = inp.encode('utf-8')
+ while inp:
+ if len(inp) > 48:
+ t = inp[:48]
+ inp = inp[48:]
+ else:
+ t = inp
+ inp = b''
+ e = binascii.b2a_base64(t)
+ if e:
+ oup = oup + e[:-1]
+ return oup
+
+ def decode(self, inp):
+ if not inp:
+ return b''
+ return binascii.a2b_base64(inp)
+
+
+
+
+class _IdleCont(object):
+
+ """When process is called, server is in IDLE state
+ and will send asynchronous changes."""
+
+ def __init__(self, parent, timeout):
+ self.parent = parent
+ self.timeout = parent._choose_nonull_or_dflt(IDLE_TIMEOUT, timeout)
+ self.parent.idle_timeout = self.timeout + time.time()
+
+ def process(self, data, rqb):
+ self.parent.idle_lock.acquire()
+ self.parent.idle_rqb = rqb
+ self.parent.idle_timeout = self.timeout + time.time()
+ self.parent.idle_lock.release()
+ if __debug__: self.parent._log(2, 'server IDLE started, timeout in %.2f secs' % self.timeout)
+ return None
+
+
+
+MonthNames = [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
+
+Mon2num = {s.encode():n+1 for n, s in enumerate(MonthNames[1:])}
+
+InternalDate = re.compile(br'.*INTERNALDATE "'
+ br'(?P<day>[ 0123][0-9])-(?P<mon>[A-Z][a-z][a-z])-(?P<year>[0-9][0-9][0-9][0-9])'
+ br' (?P<hour>[0-9][0-9]):(?P<min>[0-9][0-9]):(?P<sec>[0-9][0-9])'
+ br' (?P<zonen>[-+])(?P<zoneh>[0-9][0-9])(?P<zonem>[0-9][0-9])'
+ br'"')
+
+
+def Internaldate2Time(resp):
+
+ """time_tuple = Internaldate2Time(resp)
+
+ Parse an IMAP4 INTERNALDATE string.
+
+ Return corresponding local time. The return value is a
+ time.struct_time instance or None if the string has wrong format."""
+
+ mo = InternalDate.match(resp)
+ if not mo:
+ return None
+
+ mon = Mon2num[mo.group('mon')]
+ zonen = mo.group('zonen')
+
+ day = int(mo.group('day'))
+ year = int(mo.group('year'))
+ hour = int(mo.group('hour'))
+ min = int(mo.group('min'))
+ sec = int(mo.group('sec'))
+ zoneh = int(mo.group('zoneh'))
+ zonem = int(mo.group('zonem'))
+
+ # INTERNALDATE timezone must be subtracted to get UT
+
+ zone = (zoneh*60 + zonem)*60
+ if zonen == b'-':
+ zone = -zone
+
+ tt = (year, mon, day, hour, min, sec, -1, -1, -1)
+ return time.localtime(calendar.timegm(tt) - zone)
+
+Internaldate2tuple = Internaldate2Time # (Backward compatible)
+
+
+
+def Time2Internaldate(date_time):
+
+ """'"DD-Mmm-YYYY HH:MM:SS +HHMM"' = Time2Internaldate(date_time)
+
+ Convert 'date_time' to IMAP4 INTERNALDATE representation.
+
+ The date_time argument can be a number (int or float) representing
+ seconds since epoch (as returned by time.time()), a 9-tuple
+ representing local time, an instance of time.struct_time (as
+ returned by time.localtime()), an aware datetime instance or a
+ double-quoted string. In the last case, it is assumed to already
+ be in the correct format."""
+
+ from datetime import datetime, timezone, timedelta
+
+ if isinstance(date_time, (int, float)):
+ tt = time.localtime(date_time)
+ elif isinstance(date_time, tuple):
+ try:
+ gmtoff = date_time.tm_gmtoff
+ except AttributeError:
+ if time.daylight:
+ dst = date_time[8]
+ if dst == -1:
+ dst = time.localtime(time.mktime(date_time))[8]
+ gmtoff = -(time.timezone, time.altzone)[dst]
+ else:
+ gmtoff = -time.timezone
+ delta = timedelta(seconds=gmtoff)
+ dt = datetime(*date_time[:6], tzinfo=timezone(delta))
+ elif isinstance(date_time, datetime):
+ if date_time.tzinfo is None:
+ raise ValueError("date_time must be aware")
+ dt = date_time
+ elif isinstance(date_time, str) and (date_time[0],date_time[-1]) == ('"','"'):
+ return date_time # Assume in correct format
+ else:
+ raise ValueError("date_time not of a known type")
+
+ fmt = '"%d-{}-%Y %H:%M:%S %z"'.format(MonthNames[dt.month])
+ return dt.strftime(fmt)
+
+
+
+FLAGS_cre = re.compile(br'.*FLAGS \((?P<flags>[^\)]*)\)')
+
+def ParseFlags(resp):
+
+ """('flag', ...) = ParseFlags(line)
+ Convert IMAP4 flags response to python tuple."""
+
+ mo = FLAGS_cre.match(resp)
+ if not mo:
+ return ()
+
+ return tuple(mo.group('flags').split())
+
+
+
+if __name__ == '__main__':
+
+ # To test: invoke either as 'python imaplib2.py [IMAP4_server_hostname]',
+ # or as 'python imaplib2.py -s "rsh IMAP4_server_hostname exec /etc/rimapd"'
+ # or as 'python imaplib2.py -l keyfile[:certfile]|: [IMAP4_SSL_server_hostname]'
+ #
+ # Option "-d <level>" turns on debugging (use "-d 5" for everything)
+ # Option "-i" tests that IDLE is interruptible
+ # Option "-p <port>" allows alternate ports
+
+ if not __debug__:
+ raise ValueError('Please run without -O')
+
+ import getopt, getpass
+
+ try:
+ optlist, args = getopt.getopt(sys.argv[1:], 'd:il:s:p:')
+ except getopt.error as val:
+ optlist, args = (), ()
+
+ debug, debug_buf_lvl, port, stream_command, keyfile, certfile, idle_intr = (None,)*7
+ for opt,val in optlist:
+ if opt == '-d':
+ debug = int(val)
+ debug_buf_lvl = debug - 1
+ elif opt == '-i':
+ idle_intr = 1
+ elif opt == '-l':
+ try:
+ keyfile,certfile = val.split(':')
+ except ValueError:
+ keyfile,certfile = val,val
+ elif opt == '-p':
+ port = int(val)
+ elif opt == '-s':
+ stream_command = val
+ if not args: args = (stream_command,)
+
+ if not args: args = ('',)
+ if not port: port = (keyfile is not None) and IMAP4_SSL_PORT or IMAP4_PORT
+
+ host = args[0]
+
+ USER = getpass.getuser()
+
+ data = open(os.path.exists("test.data") and "test.data" or __file__).read(1000)
+ test_mesg = 'From: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)s%(data)s' \
+ % {'user':USER, 'lf':'\n', 'data':data}
+
+ test_seq1 = [
+ ('list', ('""', '""')),
+ ('list', ('""', '"%"')),
+ ('create', ('imaplib2_test0',)),
+ ('rename', ('imaplib2_test0', 'imaplib2_test1')),
+ ('CREATE', ('imaplib2_test2',)),
+ ('append', ('imaplib2_test2', None, None, test_mesg)),
+ ('list', ('""', '"imaplib2_test%"')),
+ ('select', ('imaplib2_test2',)),
+ ('search', (None, 'SUBJECT', '"IMAP4 test"')),
+ ('fetch', ('1:*', '(FLAGS INTERNALDATE RFC822)')),
+ ('store', ('1', 'FLAGS', '(\Deleted)')),
+ ('namespace', ()),
+ ('expunge', ()),
+ ('recent', ()),
+ ('close', ()),
+ ]
+
+ test_seq2 = (
+ ('select', ()),
+ ('response', ('UIDVALIDITY',)),
+ ('response', ('EXISTS',)),
+ ('append', (None, None, None, test_mesg)),
+ ('examine', ()),
+ ('select', ()),
+ ('fetch', ('1:*', '(FLAGS UID)')),
+ ('examine', ()),
+ ('select', ()),
+ ('uid', ('SEARCH', 'SUBJECT', '"IMAP4 test"')),
+ ('uid', ('SEARCH', 'ALL')),
+ ('uid', ('THREAD', 'references', 'UTF-8', '(SEEN)')),
+ ('recent', ()),
+ )
+
+
+ AsyncError, M = None, None
+
+ def responder(cb_arg_list):
+ response, cb_arg, error = cb_arg_list
+ global AsyncError
+ cmd, args = cb_arg
+ if error is not None:
+ AsyncError = error
+ M._log(0, '[cb] ERROR %s %.100s => %s' % (cmd, args, error))
+ return
+ typ, dat = response
+ M._log(0, '[cb] %s %.100s => %s %.100s' % (cmd, args, typ, dat))
+ if typ == 'NO':
+ AsyncError = (Exception, dat[0])
+
+ def run(cmd, args, cb=True):
+ if AsyncError:
+ M._log(1, 'AsyncError %s' % repr(AsyncError))
+ M.logout()
+ typ, val = AsyncError
+ raise typ(val)
+ if not M.debug: M._log(0, '%s %.100s' % (cmd, args))
+ try:
+ if cb:
+ typ, dat = getattr(M, cmd)(callback=responder, cb_arg=(cmd, args), *args)
+ M._log(1, '%s %.100s => %s %.100s' % (cmd, args, typ, dat))
+ else:
+ typ, dat = getattr(M, cmd)(*args)
+ M._log(1, '%s %.100s => %s %.100s' % (cmd, args, typ, dat))
+ except:
+ M._log(1, '%s - %s' % sys.exc_info()[:2])
+ M.logout()
+ raise
+ if typ == 'NO':
+ M._log(1, 'NO')
+ M.logout()
+ raise Exception(dat[0])
+ return dat
+
+ try:
+ threading.currentThread().setName('main')
+
+ if keyfile is not None:
+ if not keyfile: keyfile = None
+ if not certfile: certfile = None
+ M = IMAP4_SSL(host=host, port=port, keyfile=keyfile, certfile=certfile, ssl_version="tls1", debug=debug, identifier='', timeout=10, debug_buf_lvl=debug_buf_lvl, tls_level="tls_no_ssl")
+ elif stream_command:
+ M = IMAP4_stream(stream_command, debug=debug, identifier='', timeout=10, debug_buf_lvl=debug_buf_lvl)
+ else:
+ M = IMAP4(host=host, port=port, debug=debug, identifier='', timeout=10, debug_buf_lvl=debug_buf_lvl)
+ if M.state != 'AUTH': # Login needed
+ PASSWD = getpass.getpass("IMAP password for %s on %s: " % (USER, host or "localhost"))
+ test_seq1.insert(0, ('login', (USER, PASSWD)))
+ M._log(0, 'PROTOCOL_VERSION = %s' % M.PROTOCOL_VERSION)
+ if 'COMPRESS=DEFLATE' in M.capabilities:
+ M.enable_compression()
+
+ for cmd,args in test_seq1:
+ run(cmd, args)
+
+ for ml in run('list', ('""', '"imaplib2_test%"'), cb=False):
+ mo = re.match(br'.*"([^"]+)"$', ml)
+ if mo: path = mo.group(1)
+ else: path = ml.split()[-1]
+ run('delete', (path,))
+
+ if 'ID' in M.capabilities:
+ run('id', ())
+ run('id', ("(name imaplib2)",))
+ run('id', ("version", __version__, "os", os.uname()[0]))
+
+ for cmd,args in test_seq2:
+ if (cmd,args) != ('uid', ('SEARCH', 'SUBJECT', 'IMAP4 test')):
+ run(cmd, args)
+ continue
+
+ dat = run(cmd, args, cb=False)
+ uid = dat[-1].split()
+ if not uid: continue
+ run('uid', ('FETCH', uid[-1],
+ '(FLAGS INTERNALDATE RFC822.SIZE RFC822.HEADER RFC822.TEXT)'))
+ run('uid', ('STORE', uid[-1], 'FLAGS', '(\Deleted)'))
+ run('expunge', ())
+
+ if 'IDLE' in M.capabilities:
+ run('idle', (2,), cb=False)
+ run('idle', (99,)) # Asynchronous, to test interruption of 'idle' by 'noop'
+ time.sleep(1)
+ run('noop', (), cb=False)
+
+ run('append', (None, None, None, test_mesg), cb=False)
+ num = run('search', (None, 'ALL'), cb=False)[0].split()[0]
+ dat = run('fetch', (num, '(FLAGS INTERNALDATE RFC822)'), cb=False)
+ M._mesg('fetch %s => %s' % (num, repr(dat)))
+ run('idle', (2,))
+ run('store', (num, '-FLAGS', '(\Seen)'), cb=False),
+ dat = run('fetch', (num, '(FLAGS INTERNALDATE RFC822)'), cb=False)
+ M._mesg('fetch %s => %s' % (num, repr(dat)))
+ run('uid', ('STORE', num, 'FLAGS', '(\Deleted)'))
+ run('expunge', ())
+ if idle_intr:
+ M._mesg('HIT CTRL-C to interrupt IDLE')
+ try:
+ run('idle', (99,), cb=False) # Synchronous, to test interruption of 'idle' by INTR
+ except KeyboardInterrupt:
+ M._mesg('Thanks!')
+ M._mesg('')
+ raise
+ elif idle_intr:
+ M._mesg('chosen server does not report IDLE capability')
+
+ run('logout', (), cb=False)
+
+ if debug:
+ M._mesg('')
+ M._print_log()
+ M._mesg('')
+ M._mesg('unused untagged responses in order, most recent last:')
+ for typ,dat in M.pop_untagged_responses(): M._mesg('\t%s %s' % (typ, dat))
+
+ print('All tests OK.')
+
+ except:
+ if not idle_intr or M is None or not 'IDLE' in M.capabilities:
+ print('Tests failed.')
+
+ if not debug:
+ print('''
+If you would like to see debugging output,
+try: %s -d5
+''' % sys.argv[0])
+
+ raise
diff --git a/data/etc/xdg/autostart/ayatana-webmail-autostart.desktop b/data/etc/xdg/autostart/ayatana-webmail-autostart.desktop
new file mode 100644
index 0000000..f218a55
--- /dev/null
+++ b/data/etc/xdg/autostart/ayatana-webmail-autostart.desktop
@@ -0,0 +1,77 @@
+[Desktop Entry]
+Version=1.0
+Name=Ayatana Webmail (service)
+Name[bg]=Ayatana Webmail (услуга)
+Name[ca]=
+Name[cs]=Ayatana Webmail (služba)
+Name[de]=
+Name[el]=
+Name[en_AU]=Ayatana Webmail (service)
+Name[en_CA]=Ayatana Webmail (service)
+Name[en_GB]=Ayatana Webmail (service)
+Name[es]=Ayatana Webmail (servicio)
+Name[fi]=
+Name[fr]=
+Name[gl]=Ayatana Webmail (servizo)
+Name[hr]=Ayatana Webmail (service)
+Name[hu]=Ayatana Webmail (szolgáltatás)
+Name[it]=Ayatana Webmail (servizio)
+Name[kk]=Ayatana Webmail (қызмет)
+Name[lt]=
+Name[ms]=
+Name[mus]=Ayatana Webmail (υπηρεσία)
+Name[nl]=Ayatana Webmail (service)
+Name[nn]=Ayatana Webmail
+Name[oc]=
+Name[pl]=
+Name[pt]=
+Name[pt_BR]=
+Name[ru]=
+Name[sk]=
+Name[sl]=
+Name[sr]=
+Name[tr]=
+Name[ug]=
+Name[uk]=
+Name[zh_CN]=
+Comment=Display notifications about new mail
+Comment[bg]=Покажи известия при ново писмо
+Comment[ca]=Mostra notifications quan hi hagi correu nou
+Comment[cs]=Zobrazovat upozornění o novém emailu
+Comment[de]=Benachrichtigungen bei neuen E-Mails anzeigen
+Comment[el]=Εμφάνιση ειδοποιήσεων για νέα μηνύματα
+Comment[en_AU]=Display notifications about new mail
+Comment[en_CA]=Display notifications about new mail
+Comment[en_GB]=Display notifications about new mail
+Comment[es]=Mostrar notificaciones de correo nuevo
+Comment[fi]=Näytä ilmoitus uusista sähköpostiviesteistä
+Comment[fr]=Afficher les alertes de nouveaux courriels
+Comment[gl]=Mostra notificacións de novas mensaxes de correo-e
+Comment[hr]=Prikaz obavijesti o pristigloj pošti
+Comment[hu]=Értesítések megjelenítése új levelekről
+Comment[it]=Mostra le notifiche per le nuove email
+Comment[ja]=新着メールの通知を表示
+Comment[kk]=Жаңа хаттар келгені жайлы мәлімдеу
+Comment[lt]=Rodyti pranešimus apie naujus laiškus
+Comment[lv]=Rādīt paziņojumus par jaunām vēstulēm
+Comment[ms]=Papar pemberitahuan mengenai mel baru
+Comment[mus]=Εμφάνιση ειδοποιήσεων για νέο μήνυμα
+Comment[nl]=Meldingen geven voor nieuwe e-mails
+Comment[nn]=Vis varslingar når du får ny e-post
+Comment[oc]=Afichar las alèrtas de corrièls novèls
+Comment[pl]=Wyświetla powiadomienia o nowych wiadomościach
+Comment[pt]=Mostrar notificações sobre novos mails
+Comment[pt_BR]=Mostrar notificações sobre novos e-mails
+Comment[ru]=Отображать уведомления о новой почте
+Comment[sk]=Zobraziť notifikácie o novej pošte
+Comment[sl]=Prikaži obvestila o novi pošti
+Comment[sr]=Приказује обавештења о новој пошти
+Comment[tr]=Yeni mektuplar için bildirimleri göster
+Comment[ug]=يېڭى تور مەكتۇپلارنى كۆرسېتش
+Comment[uk]=Показувати повідомлення про новий лист
+Comment[zh_CN]=显示新邮件通知
+Icon=ayatanawebmail
+Exec=ayatana-webmail
+Type=Application
+Categories=Email;Network;
+
diff --git a/data/usr/bin/ayatana-webmail b/data/usr/bin/ayatana-webmail
new file mode 100755
index 0000000..e199531
--- /dev/null
+++ b/data/usr/bin/ayatana-webmail
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail
+# Authors: Dmitry Shachnev <mitya57@gmail.com>
+# Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+try:
+
+ import devpath
+ from ayatanawebmail.appdata import APPDEBUG
+ APPDEBUG.append(True)
+
+except:
+
+ pass
+
+import sys
+from ayatanawebmail.application import AyatanaWebmail
+from ayatanawebmail.common import isRunning
+
+if __name__ == '__main__':
+
+ if isRunning() > 1:
+
+ sys.exit(0)
+
+ AyatanaWebmail(len(sys.argv) == 2 and sys.argv[1] == 'debug')
diff --git a/data/usr/bin/ayatana-webmail-clear b/data/usr/bin/ayatana-webmail-clear
new file mode 100755
index 0000000..744f709
--- /dev/null
+++ b/data/usr/bin/ayatana-webmail-clear
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, Mark all messages as read
+# Authors: Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import sys
+import dbus
+
+from gi.repository import GLib
+from dbus.mainloop.glib import DBusGMainLoop
+from ayatanawebmail.common import isRunning
+
+oLoop = None
+
+if __name__ == '__main__':
+
+ DBusGMainLoop(set_as_default=True)
+ oSessionBus = dbus.SessionBus()
+
+ if isRunning():
+
+ try:
+
+ oSession = oSessionBus.get_object('org.ayatana.webmail', '/org/ayatana/webmail')
+ oInterface = dbus.Interface(oSession, 'org.ayatana.webmail')
+
+ oInterface.clear(reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit())
+
+ oLoop = GLib.MainLoop()
+ oLoop.run()
+
+ except dbus.DBusException as oDBusException:
+
+ print(oDBusException)
+ sys.exit(1)
+
+ sys.exit(0)
+
+ sys.exit(1)
diff --git a/data/usr/bin/ayatana-webmail-reset b/data/usr/bin/ayatana-webmail-reset
new file mode 100755
index 0000000..d20fbca
--- /dev/null
+++ b/data/usr/bin/ayatana-webmail-reset
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, Remove all connection data from keyring
+# Authors: Dmitry Shachnev <mitya57@gmail.com>
+# Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import sys
+import secretstorage
+
+if __name__ == '__main__':
+
+ oBus = secretstorage.dbus_init()
+ oCollection = secretstorage.get_default_collection(oBus)
+ oCollection.unlock()
+
+ try:
+
+ for oItem in oCollection.search_items({'application': 'ayatana-webmail'}):
+ oItem.delete()
+
+ except:
+
+ pass
+
+ sys.exit(0)
+
diff --git a/data/usr/bin/ayatana-webmail-settings b/data/usr/bin/ayatana-webmail-settings
new file mode 100755
index 0000000..3eb3608
--- /dev/null
+++ b/data/usr/bin/ayatana-webmail-settings
@@ -0,0 +1,44 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, Show the settings dialog
+# Authors: Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import sys
+import dbus
+import subprocess
+from gi.repository import GLib
+from dbus.mainloop.glib import DBusGMainLoop
+from ayatanawebmail.common import isRunning
+
+oLoop = None
+
+if __name__ == '__main__':
+
+ DBusGMainLoop(set_as_default=True)
+ oSessionBus = dbus.SessionBus()
+
+ if isRunning():
+
+ try:
+
+ oSession = oSessionBus.get_object('org.ayatana.webmail', '/org/ayatana/webmail')
+ oInterface = dbus.Interface(oSession, 'org.ayatana.webmail')
+
+ oInterface.settings(reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit())
+
+ oLoop = GLib.MainLoop()
+ oLoop.run()
+
+ except dbus.DBusException as oDBusException:
+
+ print(oDBusException)
+ sys.exit(1)
+
+ sys.exit(0)
+
+ else:
+
+ subprocess.Popen(['ayatana-webmail'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+
+ sys.exit(1)
diff --git a/data/usr/bin/ayatana-webmail-url b/data/usr/bin/ayatana-webmail-url
new file mode 100755
index 0000000..f65e66d
--- /dev/null
+++ b/data/usr/bin/ayatana-webmail-url
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, QuickList URL processor
+# Authors: Dmitry Shachnev <mitya57@gmail.com>
+# Robert Tari <robert@tari.in>
+# License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html
+
+import sys
+import subprocess
+import dbus
+from gi.repository import GLib
+from dbus.mainloop.glib import DBusGMainLoop
+from ayatanawebmail.common import isRunning
+
+if __name__ == '__main__':
+
+ if len(sys.argv) == 2 and sys.argv[1] in ['Home', 'Compose', 'Inbox', 'Sent']:
+
+ if isRunning():
+
+ bInit = False
+
+ DBusGMainLoop(set_as_default=True)
+ oSessionBus = dbus.SessionBus()
+
+ try:
+
+ oSession = oSessionBus.get_object('org.ayatana.webmail', '/org/ayatana/webmail')
+ oInterface = dbus.Interface(oSession, 'org.ayatana.webmail')
+ oLoop = GLib.MainLoop()
+
+ def replyHandler(b):
+
+ global bInit
+ bInit = b
+ oLoop.quit()
+
+ oInterface.isinit(reply_handler=replyHandler, error_handler=lambda o: oLoop.quit())
+ oLoop.run()
+
+ if not bInit:
+ oInterface.settings(reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit())
+ else:
+ oInterface.openurl(sys.argv[1], reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit())
+
+ oLoop = GLib.MainLoop()
+ oLoop.run()
+ sys.exit(0)
+
+ except dbus.DBusException as oDBusException:
+
+ print(oDBusException)
+ sys.exit(1)
+
+ else:
+
+ subprocess.Popen(['ayatana-webmail'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ sys.exit(0)
+
+ else:
+
+ print('ayatana-webmail-url must be called with one of these arguments: Home, Compose, Inbox or Sent')
+ sys.exit(1)
+
+ sys.exit(0)
+
diff --git a/data/usr/share/applications/ayatana-webmail.desktop b/data/usr/share/applications/ayatana-webmail.desktop
new file mode 100644
index 0000000..a87e9d4
--- /dev/null
+++ b/data/usr/share/applications/ayatana-webmail.desktop
@@ -0,0 +1,265 @@
+[Desktop Entry]
+Version=1.0
+Name=Ayatana Webmail
+Name[bg]=Известяване за поща
+Name[ca]=Correu de l'Ayatana
+Name[cs]=Ayatana Webmail
+Name[de]=Ayatana-Webmail
+Name[el]=Ηλεκτρονικό ταχυδρομείο Ayatana
+Name[en_AU]=Ayatana Webmail
+Name[en_CA]=Ayatana Webmail
+Name[en_GB]=Ayatana Webmail
+Name[es]=Ayatana Webmail
+Name[fi]=Ayatana-sähköposti
+Name[fr]=Courriel Ayatana
+Name[gl]=Correo de Ayatana
+Name[hr]=Ayatana Webmail
+Name[hu]=Ayatana Webmail
+Name[it]=Ayatana Webmail
+Name[kk]=Ayatana Webmail
+Name[lt]=Ayatana paštas
+Name[lv]=Ayatana Pasts
+Name[ms]=Mel Ayatana
+Name[mus]=Ayatana Webmail
+Name[nl]=Ayatana Webmail
+Name[nn]=Ayatana Webmail
+Name[oc]=Corrièl Ayatana
+Name[pl]=Poczta Ayatana
+Name[pt]=Ayatana Webmail
+Name[pt_BR]=Ayatana Webmail
+Name[ru]=Ayatana Webmail
+Name[sk]=Ayatana Webmail
+Name[sl]=Pošta Ayatana
+Name[sr]=
+Name[tr]=Ayatana Webmail
+Name[ug]=Ayatana Webmail
+Name[uk]=Ayatana Webmail
+Name[zh_CN]=
+Comment=Webmail notifications and actions for any desktop
+Comment[bg]=
+Comment[ca]=
+Comment[cs]=
+Comment[de]=
+Comment[el]=
+Comment[es]=
+Comment[fi]=
+Comment[fr]=
+Comment[gl]=
+Comment[hr]=
+Comment[hu]=
+Comment[it]=
+Comment[ms]=
+Comment[mus]=
+Comment[nl]=
+Comment[nn]=
+Comment[pl]=
+Comment[pt]=
+Comment[pt_BR]=
+Comment[ru]=
+Comment[sl]=
+Comment[tr]=
+Comment[uk]=
+Comment[zh_CN]=
+Icon=ayatanawebmail
+Exec=ayatana-webmail-url Home
+Type=Application
+Categories=Email;Network;
+Actions=Clear;Compose;Sent;Change;Inbox;
+X-GNOME-UsesNotifications=true
+NoDisplay=true
+Comment[en_GB]=Webmail notifications and actions for any desktop
+
+[Desktop Action Clear]
+Name=Mark all as read
+Name[bg]=Отбележи всички като прочетени
+Name[ca]=Marca-ho tot com a llegit
+Name[cs]=Označit vše jako přečtené
+Name[cy]=Marcio'r cyfan wedi darllen
+Name[de]=Alle als gelesen markieren
+Name[el]=Σημείωση όλων ως αναγνωσμένων
+Name[en_AU]=Mark all as read
+Name[en_CA]=Mark all as read
+Name[en_GB]=Mark all as read
+Name[es]=Marcar todo como leído
+Name[fi]=Merkitse kaikki luetuiksi
+Name[fr]=Tout marquer comme lu
+Name[gl]=Marcar todo como lido
+Name[hr]=Označi sve kao pročitano
+Name[hu]=Az összes megjelölése olvasottként
+Name[it]=Segna tutto come letto
+Name[kk]=Барлығын оқылған етіп белгілеу
+Name[lv]=Atzīmēt visas kā lasītas
+Name[ms]=Tanda semua sebagai dibaca
+Name[nl]=Alles als gelezen markeren
+Name[nn]=Merk alle som lesne
+Name[oc]=Marcar tot coma legit
+Name[pl]=Oznacz wszystkie jako przeczytane
+Name[pt]=Marcar tudo como lido
+Name[pt_BR]=Marcar todos como lidos
+Name[ru]=Отметить все как прочитанные
+Name[sk]=Označiť všetko ako prečítané
+Name[sl]=Označi vse kot prebrano
+Name[sr]=Означи све као прочитано
+Name[tr]=Tümünü okunmuş olarak işaretle
+Name[ug]=ھەممىسىگە ئوقۇلدى بەلگىسى قوي
+Name[uk]=Позначити всі як прочитані
+Name[zh_CN]=全部标记为已读
+Exec=ayatana-webmail-clear
+NotShowIn=Messaging Menu;
+
+[Desktop Action Compose]
+Name=Compose Mail
+Name[bg]=Напиши писмо
+Name[ca]=Redacta un missatge
+Name[cs]=Napsat email
+Name[de]=Verfassen
+Name[el]=Σύνθεση ηλεκτρονικού μηνύματος
+Name[en_AU]=Compose Mail
+Name[en_CA]=Compose Mail
+Name[en_GB]=Compose Mail
+Name[es]=Redactar mensaje
+Name[et]=Koosta kiri
+Name[fi]=Lähetä sähköpostiviesti
+Name[fr]=Nouveau message
+Name[gl]=Crear unha nova mensaxe de correo-e
+Name[hr]=Nova poruka
+Name[hu]=Levélírás
+Name[it]=Componi nuovo messaggio
+Name[kk]=Хат жазу
+Name[lt]=Rašyti laišką
+Name[lv]=Sastādīt vēstuli
+Name[ms]=Gubah Mel
+Name[mus]=Συνθέστε μήνυμα
+Name[nl]=Stel een e-mail op
+Name[nn]=Skriv ny
+Name[oc]=Messatge novèl
+Name[pl]=Utwórz wiadomość
+Name[pt]=Compor Mensagem
+Name[pt_BR]=Redigir email
+Name[ru]=Написать письмо
+Name[sk]=Napísať správu
+Name[sl]=Sestavi pošto
+Name[sr]=Саставите поруку
+Name[tr]=Mektup Yaz
+Name[ug]=Compose Mail
+Name[uk]=Написати листа
+Name[zh_CN]=撰写邮件
+Exec=ayatana-webmail-url Compose
+NotShowIn=Messaging Menu;
+
+[Desktop Action Sent]
+Name=Sent
+Name[bg]=Изпратени
+Name[ca]=Enviat
+Name[cs]=Odeslané
+Name[de]=Gesendet
+Name[el]=Απεσταλμένα
+Name[en_AU]=Sent
+Name[en_CA]=Sent
+Name[en_GB]=Sent
+Name[es]=Enviados
+Name[et]=Saadetud
+Name[fi]=Lähetetyt
+Name[fr]=Messages envoyés
+Name[gl]=Enviado
+Name[hr]=Poslano
+Name[hu]=Elküldött levelek
+Name[it]=Inviata
+Name[kk]=Жіберілген
+Name[lt]=Išsiųsti laiškai
+Name[lv]=Nosūtītās
+Name[ms]=Dihantar
+Name[mus]=Σταλθέντα
+Name[nl]=Verzonden
+Name[nn]=Sendt e-post
+Name[oc]=Mandats
+Name[pl]=Wysłane
+Name[pt]=Enviado
+Name[pt_BR]=Enviadas
+Name[ru]=Отправленные
+Name[sk]=Odoslané správy
+Name[sl]=Poslano
+Name[sr]=Послато
+Name[tr]=Gönderilenler
+Name[ug]=ئەۋەتكەنلىرى
+Name[uk]=Надіслані
+Name[zh_CN]=已发邮件
+Exec=ayatana-webmail-url Sent
+NotShowIn=Messaging Menu;
+
+[Desktop Action Change]
+Name=Settings
+Name[bg]=Промяна на детайлите на акаунта
+Name[ca]=Canvia els detalls del compte
+Name[cs]=Změnit detaily o účtu
+Name[de]=Einstellungen
+Name[el]=Αλλαγή στοιχείων λογαριασμών
+Name[es]=Cambiar detalles de cuenta
+Name[et]=Muuda kontode andmeid
+Name[fi]=Muuta tilin tietoja
+Name[fr]=Modifier les paramètres de comptes
+Name[gl]=Modificar os detalles das contas
+Name[hr]=Promjena detalja računa
+Name[hu]=Beállítások
+Name[it]=Modifica i dettagli dell'account
+Name[kk]=Тіркеме мәліметттерін өзгерту
+Name[lt]=Keisti paskyros duomenis
+Name[lv]=Mainīt konta uzstādījumus
+Name[ms]=Ubah perincian akaun
+Name[mus]=Αλλάξτε τις λεπτομέρειες του λογαριασμού σας
+Name[nl]=Verander accountgegevens
+Name[nn]=Endre innstillingar
+Name[oc]=Modificar los paramètres de comptes
+Name[pl]=Zmień ustawienia konta
+Name[pt]=Modificar detalhes das contas
+Name[pt_BR]=Alterar detalhes da conta
+Name[ru]=Изменить данные учётных записей
+Name[sk]=Nastaviť účty
+Name[sl]=Nastavitve
+Name[sr]=Измените детаље налога
+Name[tr]=Hesap detaylarını değiştir
+Name[uk]=Налаштування
+Name[zh_CN]=更改帐号详情
+Exec=ayatana-webmail-settings
+Name[en_GB]=Settings
+
+[Desktop Action Inbox]
+Name=Inbox
+Name[bg]=Входящи
+Name[ca]=Safata d'entrada
+Name[cs]=Příchozí
+Name[de]=Posteingang
+Name[el]=Εισερχόμενα
+Name[en_AU]=Inbox
+Name[en_CA]=Inbox
+Name[en_GB]=Inbox
+Name[es]=Bandeja de entrada
+Name[et]=Postkast
+Name[fi]=Saapuneet
+Name[fr]=Boîte de réception
+Name[gl]=Caixa de entrada
+Name[hr]=Pristigla pošta
+Name[hu]=Beérkező levelek
+Name[it]=In arrivo
+Name[kk]=Кіріс
+Name[lt]=Gautieji
+Name[lv]=Iesūtne
+Name[ms]=Kotak Masuk
+Name[mus]=Εισερχόμενα
+Name[nl]=Postvak IN
+Name[nn]=Innboks
+Name[oc]=Bóstia de recepcion
+Name[pl]=Odebrane
+Name[pt]=Caixa de entrada
+Name[pt_BR]=Caixa de entrada
+Name[ru]=Входящие
+Name[sk]=Doručená pošta
+Name[sl]=Prejeto
+Name[sr]=Пријемно сандуче
+Name[tr]=Gelenler
+Name[ug]=خەتدان
+Name[uk]=Вхідні
+Name[zh_CN]=收件箱
+Exec=ayatana-webmail-url Inbox
+NotShowIn=Messaging Menu;
+
diff --git a/data/usr/share/ayatanawebmail/indicator-messages-new.svg b/data/usr/share/ayatanawebmail/indicator-messages-new.svg
new file mode 100755
index 0000000..a4e411e
--- /dev/null
+++ b/data/usr/share/ayatanawebmail/indicator-messages-new.svg
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ version="1.0"
+ sodipodi:docname="mail-mark-unread.svg"
+ sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient2378">
+ <stop
+ id="stop2380"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fefede;stop-opacity:0.91836733;"
+ offset="0.25"
+ id="stop4146" />
+ <stop
+ style="stop-color:#f5f328;stop-opacity:1;"
+ offset="0.5"
+ id="stop2386" />
+ <stop
+ id="stop2382"
+ offset="1"
+ style="stop-color:#f5f32d;stop-opacity:0.12234043;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6934">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0"
+ id="stop6936" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:0"
+ offset="1"
+ id="stop6938" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" />
+ <stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6945"
+ inkscape:collect="always">
+ <stop
+ id="stop6947"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ <stop
+ id="stop6949"
+ offset="1"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7063"
+ inkscape:collect="always">
+ <stop
+ id="stop7065"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop7067"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient10235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient10237"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient10239"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6945"
+ id="radialGradient10241"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.0135589,0,0,1.7460565,-12.669486,-9.185985)"
+ cx="12.5"
+ cy="15.927882"
+ fx="12.5"
+ fy="15.927882"
+ r="18.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7063"
+ id="linearGradient10243"
+ gradientUnits="userSpaceOnUse"
+ x1="12.875"
+ y1="35.314098"
+ x2="12.875"
+ y2="15.75" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6945"
+ id="radialGradient10245"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6083242,0,0,2.218814,-74.941381,-118.61799)"
+ cx="13.107393"
+ cy="61.48016"
+ fx="13.107393"
+ fy="61.48016"
+ r="18.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6934"
+ id="linearGradient10247"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1,-42)"
+ x1="14.125"
+ y1="79.81311"
+ x2="14.125"
+ y2="75.499176" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2378"
+ id="radialGradient10249"
+ gradientUnits="userSpaceOnUse"
+ cx="38.658855"
+ cy="9.3411446"
+ fx="38.658855"
+ fy="9.3411446"
+ r="8.341651" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.37647059"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="118.00152"
+ inkscape:cy="16.07457"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ gridempspacing="2"
+ gridspacingx="0.5px"
+ gridspacingy="0.5px"
+ inkscape:window-width="872"
+ inkscape:window-height="848"
+ inkscape:window-x="209"
+ inkscape:window-y="67"
+ borderlayer="true"
+ showgrid="false"
+ inkscape:grid-points="true"
+ showborder="true"
+ showguides="true"
+ inkscape:guide-bbox="false"
+ inkscape:object-paths="false"
+ inkscape:grid-bbox="true" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:title>Mail stuff</dc:title>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g8328"
+ transform="translate(-240,0)">
+ <g
+ transform="translate(240,-1)"
+ inkscape:label="Livello 1"
+ id="g11036">
+ <g
+ style="opacity:0.7;display:inline"
+ id="g11038"
+ transform="matrix(2.2162751e-2,0,0,1.0695181e-2,44.21234,36.053672)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect11040"
+ style="opacity:0.39195981;color:#000000;fill:url(#linearGradient10235);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path11042"
+ d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient10237);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient10239);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+ id="path11044"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <rect
+ style="opacity:1;fill:url(#radialGradient10241);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642"
+ id="rect11046"
+ width="36"
+ height="25"
+ x="6.5"
+ y="12.499999"
+ rx="1.5340841"
+ ry="1.5340841" />
+ <path
+ style="opacity:0.23134329;fill:url(#linearGradient10243);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 7.90625,12.9375 C 7.356972,12.9375 6.9375,13.35697 6.9375,13.90625 L 6.9375,15.3125 L 16.03125,26.90625 L 17.15625,25.65625 C 17.625623,25.186876 18.0906,24.571266 19.125,24.15625 C 20.1594,23.741234 21.70864,23.5 24.5,23.5 C 27.280132,23.499999 28.838454,23.741631 29.875,24.15625 C 30.911546,24.570869 31.373047,25.185547 31.84375,25.65625 L 32.96875,26.90625 L 42.0625,15.3125 L 42.0625,13.90625 C 42.0625,13.356972 41.64303,12.9375 41.09375,12.9375 L 7.90625,12.9375 z "
+ id="path11048"
+ sodipodi:nodetypes="cccccssscccccc" />
+ <path
+ style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7,37 L 17.15625,25.65625 C 17.625623,25.186876 18.0906,24.571266 19.125,24.15625 C 20.1594,23.741234 21.70864,23.5 24.5,23.5 C 27.280132,23.499999 28.838454,23.741631 29.875,24.15625 C 30.911546,24.570869 31.373047,25.185547 31.84375,25.65625 L 42,37 L 31.84375,26.65625 C 29.799743,24.686656 27.325503,24.384093 24.5,24.5 C 21.82915,24.54954 19.035697,24.49967 17.15625,26.65625 L 7,37 z "
+ id="path11050"
+ sodipodi:nodetypes="ccssscccccc" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7,37.021499 L 17.15625,27.677749 C 19.035697,25.521169 21.82915,25.571039 24.5,25.521499 C 27.325503,25.405592 29.799743,25.708155 31.84375,27.677749 L 42,37.021499 L 31.84375,26.677749 C 29.799743,24.708155 27.325503,24.405592 24.5,24.521499 C 21.82915,24.571039 19.035697,24.521169 17.15625,26.677749 L 7,37.021499 z "
+ id="path11052"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.44194174"
+ inkscape:original="M -42.09375 12.5 C -42.877224 12.5 -43.5 13.122774 -43.5 13.90625 L -43.5 15.5 L -32.5 26.5 C -31.5 27.500002 -31.022703 28.5 -25.5 28.5 C -20 28.500002 -19.5 27.5 -18.5 26.5 L -7.5 15.5 L -7.5 13.90625 C -7.5 13.122776 -8.122774 12.5 -8.90625 12.5 L -42.09375 12.5 z "
+ style="fill:url(#radialGradient10245);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path11054"
+ d="M -42.09375,12.9375 C -42.643028,12.9375 -43.0625,13.35697 -43.0625,13.90625 L -43.0625,15.3125 L -32.1875,26.1875 C -31.660276,26.714725 -31.377256,27.12932 -30.53125,27.46875 C -29.685244,27.80818 -28.234677,28.0625 -25.5,28.0625 C -22.776784,28.062501 -21.318209,27.808534 -20.46875,27.46875 C -19.619291,27.128966 -19.338542,26.713542 -18.8125,26.1875 L -7.9375,15.3125 L -7.9375,13.90625 C -7.9375,13.356972 -8.3569702,12.9375 -8.90625,12.9375 L -42.09375,12.9375 z "
+ transform="translate(50,0)" />
+ <path
+ style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7,15.5 L 17.15625,26.84375 C 17.625623,27.313124 18.0906,27.928734 19.125,28.34375 C 20.1594,28.758766 21.70864,29 24.5,29 C 27.280132,29.000001 28.838454,28.758369 29.875,28.34375 C 30.911546,27.929131 31.373047,27.314453 31.84375,26.84375 L 42,15.5 L 31.84375,25.84375 C 29.799743,27.813344 27.325503,28.115907 24.5,28 C 21.82915,27.95046 19.035697,28.00033 17.15625,25.84375 L 7,15.5 z "
+ id="path11056"
+ sodipodi:nodetypes="ccssscccccc" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7,15.5 L 17.15625,24.84375 C 19.035697,27.00033 21.82915,26.95046 24.5,27 C 27.325503,27.115907 29.799743,26.813344 31.84375,24.84375 L 42,15.5 L 31.84375,25.84375 C 29.799743,27.813344 27.325503,28.115907 24.5,28 C 21.82915,27.95046 19.035697,28.00033 17.15625,25.84375 L 7,15.5 z "
+ id="path11058"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.99436891"
+ inkscape:original="M 6.90625 54.5 C 6.1227756 54.5 5.5 55.122774 5.5 55.90625 L 5.5 78.09375 C 5.5 78.877224 6.1227756 79.499998 6.90625 79.5 L 40.09375 79.5 C 40.877224 79.5 41.5 78.877224 41.5 78.09375 L 41.5 55.90625 C 41.5 55.122776 40.877226 54.5 40.09375 54.5 L 6.90625 54.5 z "
+ style="opacity:0.7;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642"
+ id="path11060"
+ d="M 6.90625,55.5 C 6.6497165,55.5 6.5,55.649715 6.5,55.90625 L 6.5,78.09375 C 6.5,78.350281 6.6497152,78.499999 6.90625,78.5 L 40.09375,78.5 C 40.350281,78.5 40.5,78.350281 40.5,78.09375 L 40.5,55.90625 C 40.5,55.649717 40.350284,55.5 40.09375,55.5 L 6.90625,55.5 z "
+ transform="translate(1,-42)" />
+ <path
+ style="opacity:0.55597014;fill:url(#linearGradient10247);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642"
+ d="M 7,32.90625 L 7,36.09375 C 7,36.614757 7.385241,36.999999 7.90625,37 L 41.09375,37 C 41.61476,37 42,36.614757 42,36.09375 L 42,32.90625 L 7,32.90625 z "
+ id="path11062"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <g
+ id="g2029"
+ transform="matrix(0.9904451,0,0,0.9904451,236.48869,3.31233)"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient10249);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path2388"
+ sodipodi:cx="38.658855"
+ sodipodi:cy="9.3411446"
+ sodipodi:rx="8.341651"
+ sodipodi:ry="8.341651"
+ d="M 47.000506 9.3411446 A 8.341651 8.341651 0 1 1 30.317204,9.3411446 A 8.341651 8.341651 0 1 1 47.000506 9.3411446 z"
+ transform="matrix(1.14985,0,0,1.14985,-6.073881,0.554685)" />
+ <path
+ sodipodi:type="star"
+ style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path1345"
+ sodipodi:sides="5"
+ sodipodi:cx="36.9375"
+ sodipodi:cy="11.125"
+ sodipodi:r1="8.755579"
+ sodipodi:r2="5.0676599"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.1519173"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.18352206"
+ inkscape:randomized="0"
+ d="M 44.520054,15.50279 C 44.012883,16.381236 39.925351,15.341967 38.998703,15.754538 C 38.072055,16.167108 36.109289,19.900142 35.117113,19.689249 C 34.124936,19.478355 33.850222,15.26973 33.171495,14.515926 C 32.492767,13.762123 28.335913,13.048993 28.229885,12.040207 C 28.123857,11.031421 32.041607,9.4696164 32.548778,8.5911701 C 33.055949,7.7127238 32.449637,3.5389508 33.376285,3.1263806 C 34.302933,2.7138103 36.998949,5.957187 37.991126,6.1680807 C 38.983302,6.3789743 42.765436,4.5125708 43.444163,5.2663741 C 44.122891,6.0201775 41.871371,9.5864995 41.977399,10.595285 C 42.083426,11.604071 45.027225,14.624343 44.520054,15.50279 z "
+ transform="matrix(0.674116,0.299577,-0.299577,0.674116,16.98558,-7.128679)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/data/usr/share/ayatanawebmail/indicator-messages.svg b/data/usr/share/ayatanawebmail/indicator-messages.svg
new file mode 100755
index 0000000..af6d8e0
--- /dev/null
+++ b/data/usr/share/ayatanawebmail/indicator-messages.svg
@@ -0,0 +1,510 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="562.50000"
+ inkscape:export-xdpi="562.50000"
+ inkscape:export-filename="/home/jimmac/gfx/novell/pdes/trunk/logos/evolution/logo-simplified.png"
+ sodipodi:docname="indicator-messages.svg"
+ inkscape:version="0.46+devel"
+ sodipodi:version="0.32"
+ id="svg6850"
+ xml:space="preserve"
+ viewBox="0 0 48 48"
+ height="48.000000px"
+ width="48.000000px"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
+ id="metadata7234">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Andreas Nilsson</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+</metadata>
+<defs
+ id="defs7232"><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective104" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060"><stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" /></linearGradient><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ id="linearGradient5048"><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" /><stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" /><linearGradient
+ id="linearGradient10691"
+ inkscape:collect="always">
+ <stop
+ id="stop10693"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop10695"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+</linearGradient><linearGradient
+ id="linearGradient10653">
+ <stop
+ id="stop10655"
+ offset="0.0000000"
+ style="stop-color:#f3f4ff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop10657"
+ offset="1.0000000"
+ style="stop-color:#9193af;stop-opacity:1.0000000;" />
+</linearGradient><linearGradient
+ id="linearGradient2111">
+ <stop
+ id="stop2113"
+ offset="0.0000000"
+ style="stop-color:#838383;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2115"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+</linearGradient><linearGradient
+ id="linearGradient42174">
+ <stop
+ id="stop42176"
+ offset="0.0000000"
+ style="stop-color:#a0a0a0;stop-opacity:1.0000000;" />
+ <stop
+ id="stop42178"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+</linearGradient><linearGradient
+ id="linearGradient2145">
+ <stop
+ id="stop2147"
+ offset="0.0000000"
+ style="stop-color:#fffffd;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2149"
+ offset="1.0000000"
+ style="stop-color:#cbcbc9;stop-opacity:1.0000000;" />
+</linearGradient><linearGradient
+ id="linearGradient37935">
+ <stop
+ style="stop-color:#9497b3;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop37937" />
+ <stop
+ style="stop-color:#4c4059;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop37939" />
+</linearGradient><linearGradient
+ id="linearGradient2136">
+ <stop
+ style="stop-color:#989690;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2138" />
+ <stop
+ style="stop-color:#656460;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2140" />
+</linearGradient><linearGradient
+ id="linearGradient15107">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop15109" />
+ <stop
+ style="stop-color:#e2e2e2;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop15111" />
+</linearGradient><linearGradient
+ id="linearGradient18913">
+ <stop
+ style="stop-color:#ededed;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop18915" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop18917" />
+</linearGradient><linearGradient
+ id="linearGradient2166">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2168" />
+ <stop
+ style="stop-color:#dcdcdc;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2170" />
+</linearGradient><linearGradient
+ id="linearGradient2152">
+ <stop
+ style="stop-color:#9aa29a;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2154" />
+ <stop
+ style="stop-color:#b5beb5;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2156" />
+</linearGradient><linearGradient
+ id="linearGradient9749">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop9751" />
+ <stop
+ style="stop-color:#ededed;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop9753" />
+</linearGradient><linearGradient
+ id="linearGradient2274">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.12871288;"
+ offset="0.0000000"
+ id="stop2276" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2278" />
+</linearGradient><radialGradient
+ r="7.2284161"
+ fy="73.615714"
+ fx="6.7027131"
+ cy="73.615714"
+ cx="6.7027131"
+ gradientTransform="scale(1.902215,0.525703)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient11380"
+ xlink:href="#linearGradient10691"
+ inkscape:collect="always" /><linearGradient
+ y2="52.090678"
+ x2="9.8855033"
+ y1="37.197018"
+ x1="8.9156475"
+ gradientTransform="matrix(1.537475,0.000000,0.000000,0.477257,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11384"
+ xlink:href="#linearGradient2152"
+ inkscape:collect="always" /><radialGradient
+ r="29.889715"
+ fy="6.8283234"
+ fx="8.7468252"
+ cy="6.8283234"
+ cx="8.7468252"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient11386"
+ xlink:href="#linearGradient37935"
+ inkscape:collect="always" /><radialGradient
+ r="29.292715"
+ fy="10.045444"
+ fx="11.901996"
+ cy="10.045444"
+ cx="11.901996"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient11388"
+ xlink:href="#linearGradient2145"
+ inkscape:collect="always" /><linearGradient
+ y2="25.884274"
+ x2="22.218424"
+ y1="7.7893324"
+ x1="6.3422160"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11390"
+ xlink:href="#linearGradient42174"
+ inkscape:collect="always" /><linearGradient
+ y2="17.322744"
+ x2="19.359052"
+ y1="8.3119216"
+ x1="13.037439"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11392"
+ xlink:href="#linearGradient2111"
+ inkscape:collect="always" /><linearGradient
+ y2="7.4232451"
+ x2="19.359052"
+ y1="-1.5875777"
+ x1="13.037439"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11394"
+ xlink:href="#linearGradient2111"
+ inkscape:collect="always" /><linearGradient
+ y2="12.372997"
+ x2="24.308804"
+ y1="3.3621745"
+ x1="17.987192"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11396"
+ xlink:href="#linearGradient2111"
+ inkscape:collect="always" /><linearGradient
+ y2="12.372997"
+ x2="14.409305"
+ y1="3.3621745"
+ x1="8.0876926"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11398"
+ xlink:href="#linearGradient2111"
+ inkscape:collect="always" /><radialGradient
+ r="15.532059"
+ fy="10.583970"
+ fx="11.329200"
+ cy="10.583970"
+ cx="11.329200"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient11400"
+ xlink:href="#linearGradient10653"
+ inkscape:collect="always" /><linearGradient
+ y2="26.022910"
+ x2="18.475286"
+ y1="4.7461626"
+ x1="11.572842"
+ gradientTransform="matrix(0.841443,0,0,0.87204,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11402"
+ xlink:href="#linearGradient15107"
+ inkscape:collect="always" /><linearGradient
+ y2="15.257116"
+ x2="30.599684"
+ y1="15.257116"
+ x1="2.0618774"
+ gradientTransform="matrix(0.841443,0,0,0.87204,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11404"
+ xlink:href="#linearGradient2136"
+ inkscape:collect="always" /><linearGradient
+ y2="17.876846"
+ x2="13.467486"
+ y1="7.2310905"
+ x1="5.8266134"
+ gradientTransform="matrix(0.9837,0,0,0.74593,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11406"
+ xlink:href="#linearGradient18913"
+ inkscape:collect="always" /><linearGradient
+ y2="29.568739"
+ x2="15.310744"
+ y1="15.148383"
+ x1="10.184240"
+ gradientTransform="matrix(1.13944,0,0,0.643976,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11408"
+ xlink:href="#linearGradient2166"
+ inkscape:collect="always" /><linearGradient
+ y2="52.090678"
+ x2="9.8855033"
+ y1="37.197018"
+ x1="8.9156475"
+ gradientTransform="matrix(1.537475,0,0,0.477257,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11410"
+ xlink:href="#linearGradient2152"
+ inkscape:collect="always" /><linearGradient
+ y2="52.090678"
+ x2="9.8855033"
+ y1="37.197018"
+ x1="8.9156475"
+ gradientTransform="matrix(1.537475,0,0,0.477257,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11412"
+ xlink:href="#linearGradient2152"
+ inkscape:collect="always" /><linearGradient
+ y2="24.132717"
+ x2="21.111549"
+ y1="13.686079"
+ x1="11.233107"
+ gradientTransform="matrix(0.841423,0,0,0.872061,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11414"
+ xlink:href="#linearGradient9749"
+ inkscape:collect="always" /><linearGradient
+ y2="32.203162"
+ x2="9.7619219"
+ y1="37.784682"
+ x1="8.7803760"
+ gradientTransform="matrix(1.49997,0,0,0.489191,4.995766,7.023296)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11416"
+ xlink:href="#linearGradient2274"
+ inkscape:collect="always" /></defs>
+<sodipodi:namedview
+ inkscape:current-layer="svg6850"
+ inkscape:window-y="116"
+ inkscape:window-x="620"
+ inkscape:cy="13.118981"
+ inkscape:cx="10.966648"
+ inkscape:zoom="5.6568542"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666"
+ borderopacity="0.19215686"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="810"
+ inkscape:window-height="756"
+ inkscape:showpageshadow="false"
+ showgrid="false" />
+
+
+
+<g
+ style="opacity:0.84924622;display:inline"
+ id="g5022"
+ transform="matrix(0.02190954,0,0,0.02029913,43.487124,38.882465)"><rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect4173"
+ style="opacity:0.40206185;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ id="path5018"
+ sodipodi:nodetypes="cccc" /></g><g
+ transform="matrix(1.5766284,0,0,1.5766284,-5.5415777,-9.4940819)"
+ id="g11365">
+
+ <path
+ sodipodi:nodetypes="ccczzzz"
+ id="path12723"
+ d="m 7.1590246,17.268457 0,15.074409 23.1563204,0 -0.03824,-15.002075 C 30.274905,16.493516 22.85617,8.3133557 21.487588,8.3133557 l -5.355954,0 c -1.438853,0 -8.9726084,8.1565933 -8.9726084,8.9551013 z"
+ style="fill:url(#linearGradient11402);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient11404);stroke-width:0.63919783;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="czzzccz"
+ id="path18153"
+ d="M 7.5283144,17.322538 C 7.2790156,17.053141 14.973303,8.7460064 16.136529,8.7460064 l 5.24589,0 c 1.094482,0 8.791383,8.2223486 8.409649,8.6966926 l -6.802583,8.452915 -7.712163,-0.199359 -7.7490076,-8.373717 z"
+ style="fill:url(#linearGradient11406);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2164"
+ d="m 15.140883,25.609036 -4.592796,-5.477783 15.544238,-4.344191 1.840754,3.780413 -4.58841,6.02572"
+ style="fill:#000000;fill-opacity:0.14619883;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2162"
+ d="M 14.648745,25.495465 9.9622552,19.977529 25.39942,15.660107 l 1.987983,3.927642 -4.534872,5.891876"
+ style="fill:#000000;fill-opacity:0.14619883;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2160"
+ d="m 14.951599,25.571179 -4.806948,-5.424245 15.63793,-4.424498 2.001368,4.034718 -4.628564,5.798185"
+ style="fill:#000000;fill-opacity:0.14619883;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path15105"
+ d="m 14.838029,25.874033 -4.592798,-5.477783 15.477317,-4.317422 1.854139,3.887489 -4.534872,5.891876"
+ style="fill:url(#linearGradient11408);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ id="path14245"
+ d="m 16.024558,25.011992 -8.3901392,6.871959 8.7113652,-6.015354 5.648238,0 7.778278,5.938872 -7.430282,-6.795477 -6.31746,0 z"
+ style="fill:url(#linearGradient11410);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path14339"
+ d="m 7.5536271,17.383943 7.2127919,8.966494 0.669223,-0.535378 -7.8820149,-8.431116 z"
+ style="color:#000000;fill:url(#linearGradient11412);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="ccczzzz"
+ id="path15103"
+ d="m 7.988823,17.45608 0.01912,14.019951 21.447771,0 -0.03824,-13.943786 c -0.0012,-0.452472 -6.884146,-8.3344873 -8.214658,-8.3344873 l -4.846049,0 c -1.382354,0 -8.368586,7.7869753 -8.3679435,8.2583223 z"
+ style="fill:none;stroke:url(#linearGradient11414);stroke-width:0.63919765;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path17393"
+ d="m 16.3182,25.881574 -7.4791807,5.180189 1.3900717,0.0038 6.26201,-4.302144 5.525323,-0.891149 -5.698224,0.0093 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ id="path2174"
+ d="m 10.349551,20.380972 0.829836,0.883374 14.274319,-4.311695 1.73158,3.445905 0.403436,-0.445886 -1.847054,-3.88149 -15.392117,4.309792 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ id="path2272"
+ d="m 11.527382,21.612342 3.774415,4.042104 0.74953,-0.642454 6.31746,0.02677 0.508609,0.455071 2.489508,-2.971348 C 24.644144,21.639111 11.527382,21.612342 11.527382,21.612342 z"
+ style="fill:url(#linearGradient11416);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+</g>
+
+</svg> \ No newline at end of file
diff --git a/data/usr/share/glib-2.0/schemas/org.ayatana.webmail.gschema.xml b/data/usr/share/glib-2.0/schemas/org.ayatana.webmail.gschema.xml
new file mode 100755
index 0000000..1fefabb
--- /dev/null
+++ b/data/usr/share/glib-2.0/schemas/org.ayatana.webmail.gschema.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schemalist>
+ <enum id="org.ayatana.webmail.message-actions">
+ <value nick="Open message in browser/Execute command" value="1"/>
+ <value nick="Mark message as read" value="2"/>
+ <value nick="Ask me what to do" value="3"/>
+ </enum>
+ <schema id="org.ayatana.webmail" path="/org/ayatana/webmail/" gettext-domain="ayatanawebmail">
+ <key type="i" name="max-item-count">
+ <default>20</default>
+ <summary>Maximum item count</summary>
+ <description>Limit the number of mails to retrieve per folder.</description>
+ </key>
+ <key type="b" name="enable-notifications">
+ <default>true</default>
+ <summary>Enable notifications</summary>
+ <description>Show OSD notifications when new messages arrive.</description>
+ </key>
+ <key type="b" name="enable-sound">
+ <default>true</default>
+ <summary>Enable sound</summary>
+ <description>Play sound when new messages arrive.</description>
+ </key>
+ <key type="b" name="hide-messages-count">
+ <default>true</default>
+ <summary>Hide message count</summary>
+ <description>Hide message count when there are no messages.</description>
+ </key>
+ <key type="s" name="exec-on-receive">
+ <default>''</default>
+ <summary>Execute on receive</summary>
+ <description>Run this command when new messages arrive.</description>
+ </key>
+ <key type="s" name="custom-sound">
+ <default>''</default>
+ <summary>Custom sound</summary>
+ <description>Play a custom sound when new messages arrive.</description>
+ </key>
+ <key type="b" name="merge-messages">
+ <default>false</default>
+ <summary>Merge messages</summary>
+ <description>Merge messages belonging to the same conversation.</description>
+ </key>
+ <key enum="org.ayatana.webmail.message-actions" name="message-action">
+ <default>'Open message in browser/Execute command'</default>
+ <summary>Message action</summary>
+ <description>Action to perform when a message is activated.</description>
+ </key>
+ <key type="s" name="home">
+ <default>'https://mail.google.com/mail/'</default>
+ <summary>Home</summary>
+ <description>URL or command for the "Home" link.</description>
+ </key>
+ <key type="s" name="compose">
+ <default>'https://mail.google.com/mail/#compose'</default>
+ <summary>Compose</summary>
+ <description>URL or command for the "Compose" link.</description>
+ </key>
+ <key type="s" name="inbox">
+ <default>'https://mail.google.com/mail/#inbox'</default>
+ <summary>Inbox</summary>
+ <description>URL or command for the "Inbox" link.</description>
+ </key>
+ <key type="s" name="sent">
+ <default>'https://mail.google.com/mail/#sent'</default>
+ <summary>Sent</summary>
+ <description>URL or command for the "Sent" link.</description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/data/usr/share/icons/Faenza/apps/scalable/ayatanawebmail.svg b/data/usr/share/icons/Faenza/apps/scalable/ayatanawebmail.svg
new file mode 100755
index 0000000..2a30d92
--- /dev/null
+++ b/data/usr/share/icons/Faenza/apps/scalable/ayatanawebmail.svg
@@ -0,0 +1,703 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ id="svg2408"
+ height="96"
+ width="96"
+ version="1.0">
+ <defs
+ id="defs2410">
+ <linearGradient
+ id="linearGradient3892">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:0.47058824"
+ id="stop3894" />
+ <stop
+ offset="0.11780351"
+ style="stop-color:#000000;stop-opacity:0.39215687"
+ id="stop3896" />
+ <stop
+ offset="0.23809524"
+ style="stop-color:#000000;stop-opacity:0.29411766"
+ id="stop3898" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.15686275"
+ id="stop3900" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3864">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.07843138"
+ id="stop3866" />
+ <stop
+ offset="0.25"
+ style="stop-color:#ffffff;stop-opacity:0.3137255"
+ id="stop3872" />
+ <stop
+ offset="0.60000002"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop3874" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop3868" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4384">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop4386" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop4388" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4367">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.71755725"
+ id="stop4369" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop4371" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="scale(1.0058652,0.994169)"
+ gradientUnits="userSpaceOnUse"
+ id="ButtonShadow"
+ y2="7.0165396"
+ x2="45.447727"
+ y1="92.539597"
+ x1="45.447727">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop3750" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.58823532"
+ id="stop3752" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3737">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop3739" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop3741" />
+ </linearGradient>
+ <filter
+ id="filter3174"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ stdDeviation="1.71"
+ id="feGaussianBlur3176" />
+ </filter>
+ <filter
+ id="filter3794"
+ color-interpolation-filters="sRGB"
+ height="1.3839999"
+ width="1.3839999"
+ y="-0.192"
+ x="-0.192">
+ <feGaussianBlur
+ stdDeviation="5.28"
+ id="feGaussianBlur3796" />
+ </filter>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient3737"
+ id="linearGradient3613"
+ y2="138.66119"
+ x2="48"
+ y1="20.220806"
+ x1="48" />
+ <linearGradient
+ gradientTransform="matrix(1.0058652,0,0,0.994169,100,0)"
+ gradientUnits="userSpaceOnUse"
+ id="ButtonShadow-0"
+ y2="7.0165396"
+ x2="45.447727"
+ y1="92.539597"
+ x1="45.447727">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop3750-8" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.58823532"
+ id="stop3752-5" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#ButtonShadow-0"
+ id="linearGradient3780"
+ y2="90.238609"
+ x2="32.251034"
+ y1="6.1317081"
+ x1="32.251034" />
+ <linearGradient
+ gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#ButtonShadow-0"
+ id="linearGradient3772"
+ y2="90.238609"
+ x2="32.251034"
+ y1="6.1317081"
+ x1="32.251034" />
+ <linearGradient
+ gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#ButtonShadow-0"
+ id="linearGradient3725"
+ y2="90.238609"
+ x2="32.251034"
+ y1="6.1317081"
+ x1="32.251034" />
+ <linearGradient
+ gradientTransform="translate(0,-97)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#ButtonShadow-0"
+ id="linearGradient3721"
+ y2="90.238609"
+ x2="32.251034"
+ y1="6.1317081"
+ x1="32.251034" />
+ <linearGradient
+ gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#ButtonShadow-0"
+ id="linearGradient3026"
+ y2="90.238609"
+ x2="32.251034"
+ y1="6.1317081"
+ x1="32.251034" />
+ <clipPath
+ id="clipPath4355">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="rect4357"
+ y="6"
+ x="6"
+ ry="6"
+ rx="6"
+ height="80"
+ width="84" />
+ </clipPath>
+ <radialGradient
+ gradientTransform="matrix(1,-6.7114942e-8,8.4282233e-8,1.2557894,109.99999,-24.505592)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient4367"
+ id="radialGradient4375"
+ fy="87.792389"
+ fx="48"
+ r="42"
+ cy="87.792389"
+ cx="48" />
+ <linearGradient
+ gradientTransform="matrix(1,0,0,-1,0,92)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient4384"
+ id="linearGradient4390"
+ y2="-40"
+ x2="48"
+ y1="88"
+ x1="48" />
+ <linearGradient
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient4384"
+ id="linearGradient4429"
+ y2="82.454597"
+ x2="112.12357"
+ y1="82"
+ x1="48" />
+ <linearGradient
+ id="linearGradient4482">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.12977099"
+ id="stop4484" />
+ <stop
+ offset="0.11780351"
+ style="stop-color:#424242;stop-opacity:0.28244275"
+ id="stop4486" />
+ <stop
+ offset="0.23809524"
+ style="stop-color:#2f2f2f;stop-opacity:0.30534351"
+ id="stop4488" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.35114503"
+ id="stop4490" />
+ </linearGradient>
+ <linearGradient
+ spreadMethod="reflect"
+ gradientTransform="translate(0,40)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient4482"
+ id="linearGradient3855"
+ y2="88"
+ x2="48"
+ y1="88"
+ x1="90" />
+ <linearGradient
+ gradientTransform="matrix(-1,0,0,1,96,-30)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient3864"
+ id="linearGradient3884"
+ y2="115"
+ x2="24"
+ y1="115"
+ x1="6" />
+ <linearGradient
+ gradientTransform="translate(0,-30)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient3864"
+ id="linearGradient3886"
+ y2="115"
+ x2="24"
+ y1="115"
+ x1="6" />
+ <linearGradient
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient3892"
+ id="linearGradient3890"
+ y2="88"
+ x2="48"
+ y1="88"
+ x1="90" />
+ <linearGradient
+ id="linearGradient3700-6">
+ <stop
+ offset="0"
+ style="stop-color:#f7d687;stop-opacity:1"
+ id="stop3702-1" />
+ <stop
+ offset="1"
+ style="stop-color:#fbe9bf;stop-opacity:1"
+ id="stop3704-1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient3700-6"
+ id="linearGradient3152"
+ y2="5.9877172"
+ x2="48"
+ y1="90"
+ x1="48" />
+ <linearGradient
+ gradientTransform="matrix(0.927536,0,0,0.8855463,-22.753604,0.6637971)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient3740"
+ id="linearGradient3780-5"
+ y2="44.971905"
+ x2="99.194839"
+ y1="18.93565"
+ x1="99.194839" />
+ <linearGradient
+ id="linearGradient3740">
+ <stop
+ offset="0"
+ style="stop-color:#536d98;stop-opacity:1"
+ id="stop3742" />
+ <stop
+ offset="1"
+ style="stop-color:#7990b6;stop-opacity:1"
+ id="stop3744" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(-1.0000001,-1)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#ButtonShadow-2"
+ id="linearGradient3798"
+ y2="16.412582"
+ x2="73.214287"
+ y1="44.5"
+ x1="73.214287" />
+ <linearGradient
+ gradientTransform="scale(1.0058652,0.994169)"
+ gradientUnits="userSpaceOnUse"
+ id="ButtonShadow-2"
+ y2="7.0165396"
+ x2="45.447727"
+ y1="92.539597"
+ x1="45.447727">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop3750-9" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.58823532"
+ id="stop3752-7" />
+ </linearGradient>
+ <filter
+ id="filter3808"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ stdDeviation="0.375"
+ id="feGaussianBlur3810" />
+ </filter>
+ <linearGradient
+ id="linearGradient3866">
+ <stop
+ offset="0"
+ style="stop-color:#828282;stop-opacity:1"
+ id="stop3868-3" />
+ <stop
+ offset="0.5"
+ style="stop-color:#8f8f8f;stop-opacity:0.63478261"
+ id="stop3872-6" />
+ <stop
+ offset="1"
+ style="stop-color:#9d9d9d;stop-opacity:0"
+ id="stop3870" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3495">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop3497" />
+ <stop
+ offset="0.5"
+ style="stop-color:#000000;stop-opacity:0.49803922"
+ id="stop3874-7" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0"
+ id="stop3499" />
+ </linearGradient>
+ <linearGradient
+ y2="15.737678"
+ x2="25.525208"
+ y1="30.188753"
+ x1="25.525208"
+ spreadMethod="reflect"
+ gradientTransform="matrix(2.6304581,0,0,2.6386914,0.559827,-80.734876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4089"
+ xlink:href="#linearGradient3866" />
+ <linearGradient
+ y2="15.737678"
+ x2="25.525208"
+ y1="30.188753"
+ x1="25.525208"
+ spreadMethod="reflect"
+ gradientTransform="matrix(2.6304581,0,0,2.6386914,0.559827,-79.428849)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4086"
+ xlink:href="#linearGradient4384" />
+ <linearGradient
+ y2="20.443331"
+ x2="23.903786"
+ y1="35.75"
+ x1="23.903786"
+ gradientTransform="matrix(2.6252264,0,0,2.8160321,0.622197,-84.347399)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4083"
+ xlink:href="#linearGradient3495" />
+ <linearGradient
+ y2="15.737678"
+ x2="25.525208"
+ y1="30.188753"
+ x1="25.525208"
+ spreadMethod="reflect"
+ gradientTransform="matrix(2.6304581,0,0,2.6386914,0.559827,-82.070106)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4080"
+ xlink:href="#linearGradient4384" />
+ <linearGradient
+ xlink:href="#linearGradient3495"
+ id="linearGradient4124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6252264,0,0,2.8160321,0.622197,-83.032761)"
+ x1="23.903786"
+ y1="35.75"
+ x2="23.903786"
+ y2="20.443331" />
+ </defs>
+ <metadata
+ id="metadata2413">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:none"
+ id="layer2">
+ <rect
+ style="opacity:0.9;fill:url(#ButtonShadow);fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter3174)"
+ id="rect3745"
+ y="7"
+ x="5"
+ ry="6"
+ rx="6"
+ height="85"
+ width="86" />
+ </g>
+ <g
+ style="display:inline"
+ id="layer3">
+ <path
+ style="opacity:0.07999998;fill:url(#linearGradient3026);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+ id="path3786"
+ transform="scale(1,-1)"
+ d="m 12,-95.03125 c -5.5110903,0 -10.03125,4.52016 -10.03125,10.03125 l 0,71 c 0,5.5110902 4.5201598,10.03125 10.03125,10.03125 l 72,0 c 5.51109,0 10.03125,-4.5201597 10.03125,-10.03125 l 0,-71 c 0,-5.51109 -4.52016,-10.03125 -10.03125,-10.03125 l -72,0 z" />
+ <path
+ style="opacity:0.1;fill:url(#linearGradient3780);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+ id="path3778"
+ transform="scale(1,-1)"
+ d="m 12,-94.03125 c -4.971633,0 -9.03125,4.059617 -9.03125,9.03125 l 0,71 c 0,4.9716329 4.0596171,9.03125 9.03125,9.03125 l 72,0 c 4.971633,0 9.03125,-4.059617 9.03125,-9.03125 l 0,-71 c 0,-4.971633 -4.059617,-9.03125 -9.03125,-9.03125 l -72,0 z" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient3772);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+ id="path3770"
+ transform="scale(1,-1)"
+ d="m 12,-93 c -4.4091333,0 -8,3.590867 -8,8 l 0,71 c 0,4.4091333 3.5908667,8 8,8 l 72,0 c 4.409133,0 8,-3.5908667 8,-8 l 0,-71 c 0,-4.409133 -3.590867,-8 -8,-8 l -72,0 z" />
+ <rect
+ style="opacity:0.3;fill:url(#linearGradient3725);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+ id="rect3723"
+ transform="scale(1,-1)"
+ y="-92"
+ x="5"
+ ry="7"
+ rx="7"
+ height="85"
+ width="86" />
+ <rect
+ style="opacity:0.45;fill:url(#linearGradient3721);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+ id="rect3716"
+ transform="scale(1,-1)"
+ y="-91"
+ x="6"
+ ry="6"
+ rx="6"
+ height="84"
+ width="84" />
+ </g>
+ <g
+ id="layer1">
+ <rect
+ style="fill:url(#linearGradient3152);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="rect2419"
+ y="6"
+ x="6"
+ ry="6"
+ rx="6"
+ height="84"
+ width="84" />
+ <g
+ id="g4158"
+ transform="matrix(0,1,1,0,1.56078,76)">
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4160"
+ d="m 6.0000004,17.358183 0,9.918962 4.0000006,-2.479741 0,-9.918962 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4162"
+ d="m 6.0000004,34.236626 0,9.918963 4.0000006,-2.479741 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4164"
+ d="m 6.0000004,51.11507 0,9.918962 4.0000006,-2.47974 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4166"
+ d="m 6.0000004,68.081038 0,9.918962 4.0000006,-2.479737 0,-9.918966 -4.0000006,2.479741 z" />
+ </g>
+ <g
+ id="g4148"
+ transform="matrix(0,-1,-1,0,94.439222,16.000001)">
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4150"
+ d="m 6.0000004,17.358183 0,9.918962 4.0000006,-2.479741 0,-9.918962 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4152"
+ d="m 6.0000004,34.236626 0,9.918963 4.0000006,-2.479741 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4154"
+ d="m 6.0000004,51.11507 0,9.918962 4.0000006,-2.47974 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4156"
+ d="m 6.0000004,68.081038 0,9.918962 4.0000006,-2.479737 0,-9.918966 -4.0000006,2.479741 z" />
+ </g>
+ <g
+ id="g4118"
+ transform="matrix(-1,0,0,-1,96.000001,92.878442)">
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4120"
+ d="m 6.0000004,17.358183 0,9.918962 4.0000006,-2.479741 0,-9.918962 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4122"
+ d="m 6.0000004,34.236626 0,9.918963 4.0000006,-2.479741 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4124"
+ d="m 6.0000004,51.11507 0,9.918962 4.0000006,-2.47974 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4126"
+ d="m 6.0000004,68.081038 0,9.918962 4.0000006,-2.479737 0,-9.918966 -4.0000006,2.479741 z" />
+ </g>
+ <g
+ id="g4112">
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3470"
+ d="m 6.0000004,17.358183 0,9.918962 4.0000006,-2.479741 0,-9.918962 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3472"
+ d="m 6.0000004,34.236626 0,9.918963 4.0000006,-2.479741 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3474"
+ d="m 6.0000004,51.11507 0,9.918962 4.0000006,-2.47974 0,-9.918963 -4.0000006,2.479741 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3476"
+ d="m 6.0000004,68.081038 0,9.918962 4.0000006,-2.479737 0,-9.918966 -4.0000006,2.479741 z" />
+ </g>
+ <path
+ style="opacity:0.2;fill:url(#radialGradient4375);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="rect4359"
+ d="M 120.78125,6.125 C 118.04223,6.6826484 116,9.0915 116,12 l 0,68 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-68 c 0,-2.9085 -2.04223,-5.3173516 -4.78125,-5.875 2.20512,0.5362071 3.8125,2.4908437 3.8125,4.875 l 0,68 c 0,2.80489 -2.22636,5.03125 -5.03125,5.03125 l -72,0 c -2.80489,0 -5.03125,-2.22636 -5.03125,-5.03125 l 0,-68 c 0,-2.3841563 1.60738,-4.3387929 3.8125,-4.875 z" />
+ <path
+ style="opacity:0.45;fill:url(#linearGradient4390);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="rect4377"
+ d="M 12,86 C 8.676,86 6,83.324 6,80 L 6,12 C 6,8.676 8.676,6 12,6 l 72,0 c 3.324,0 6,2.676 6,6 l 0,68 c 0,3.324 -2.676,6 -6,6 z m 0,-0.96875 72,0 c 2.80489,0 5.03125,-2.22636 5.03125,-5.03125 l 0,-68 C 89.03125,9.19511 86.80489,6.96875 84,6.96875 l -72,0 C 9.19511,6.96875 6.96875,9.19511 6.96875,12 l 0,68 c 0,2.80489 2.22636,5.03125 5.03125,5.03125 z" />
+ <path
+ style="opacity:0.15;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4412"
+ d="m 6,100 0,1 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-1 c 0,3.324 -2.676,6 -6,6 l -72,0 c -3.324,0 -6,-2.676 -6,-6 z" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient4429);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="rect4414"
+ d="m 6,78 0,2 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-2 c 0,3.324 -2.676,6 -6,6 L 12,84 C 8.676,84 6,81.324 6,78 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="layer4">
+ <path
+ style="opacity:0.5;fill:#edac1c;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3454"
+ d="m 6,80 0,4 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-4 c 0,3.324 -2.676,6 -6,6 L 12,86 C 8.676,86 6,83.324 6,80 z" />
+ <g
+ style="opacity:0.8"
+ id="g4187">
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4170"
+ d="m 18.918963,90.000001 9.918962,0 L 26.358184,86 l -9.918962,0 2.479741,4.000001 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4172"
+ d="m 35.797406,90.000001 9.918963,0 L 43.236628,86 l -9.918963,0 2.479741,4.000001 z" />
+ <path
+ style="fill:#ca1e18;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4174"
+ d="m 52.67585,90.000001 9.918962,0 L 60.115072,86 l -9.918963,0 2.479741,4.000001 z" />
+ <path
+ style="fill:#2c72c7;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path4176"
+ d="m 69.641818,90.000001 9.918962,0 L 77.081043,86 l -9.918966,0 2.479741,4.000001 z" />
+ </g>
+ <path
+ style="fill:url(#linearGradient3890);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3888"
+ d="m 6,80 0,4 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-4 c 0,3.324 -2.676,6 -6,6 L 12,86 C 8.676,86 6,83.324 6,80 z" />
+ <g
+ id="g3880"
+ transform="translate(0,20)">
+ <path
+ style="fill:url(#linearGradient3884);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3876"
+ d="m 90,80 0,4 c 0,3.324 -2.676,6 -6,6 l -12,0 0,-4 12,0 c 3.324,0 6,-2.676 6,-6 z" />
+ <path
+ style="fill:url(#linearGradient3886);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3857"
+ d="m 6,80 0,4 c 0,3.324 2.676,6 6,6 l 12,0 0,-4 -12,0 C 8.676,86 6,83.324 6,80 z" />
+ </g>
+ <path
+ style="opacity:0.1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4345"
+ d="m 6,82 0,2 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-2 c 0,3.324 -2.676,6 -6,6 L 12,88 C 8.676,88 6,85.324 6,82 z" />
+ <path
+ style="opacity:0.15;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4336"
+ d="m 6,83 0,1 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-1 c 0,3.324 -2.676,6 -6,6 L 12,89 C 8.676,89 6,86.324 6,83 z" />
+ <path
+ style="fill:url(#linearGradient3855);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3853"
+ d="m 6,120 0,4 c 0,3.324 2.676,6 6,6 l 72,0 c 3.324,0 6,-2.676 6,-6 l 0,-4 c 0,3.324 -2.676,6 -6,6 l -72,0 c -3.324,0 -6,-2.676 -6,-6 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="layer5">
+ <rect
+ style="opacity:0.1;fill:url(#linearGradient3613);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;filter:url(#filter3794)"
+ id="rect3171"
+ clip-path="url(#clipPath4355)"
+ y="15"
+ x="15"
+ ry="12"
+ rx="12"
+ height="62"
+ width="66" />
+ </g>
+ <g
+ id="g4264"
+ transform="matrix(0.68330796,0,0,0.66114272,4.1980766,48.734794)">
+ <path
+ d="M 9.073837,-37.557962 63.690835,11.619324 119.13321,-37.888653 M 49.634308,-0.254788 14.187407,35.717064 49.634308,-0.254788 Z M 77.829543,-0.08986 113.52306,35.055688 77.829543,-0.08986 Z"
+ id="path3341-2"
+ style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient4089);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ d="M 9.073837,-36.251936 63.690835,12.925352 119.13321,-36.582627 M 49.634308,1.05124 14.187407,37.02309 49.634308,1.05124 Z M 77.829543,1.216148 113.52306,36.361697 77.829543,1.216148 Z"
+ id="path3341-2-6"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.7;fill:none;stroke:url(#linearGradient4086);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ d="M 22.503807,-24.050723 63.627638,12.890958 104.24631,-24.050723"
+ id="path3493"
+ style="opacity:0.2;fill:none;stroke:url(#linearGradient4083);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 9.073837,-38.893194 63.690835,10.284094 119.13321,-39.223885"
+ id="path3926"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.7;fill:none;stroke:url(#linearGradient4080);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ d="M 22.503807,-22.736081 63.627638,14.2056 104.24631,-22.736081"
+ id="path3493-7"
+ style="opacity:0.05;fill:none;stroke:url(#linearGradient4124);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/data/usr/share/icons/hicolor/scalable/apps/ayatanawebmail.svg b/data/usr/share/icons/hicolor/scalable/apps/ayatanawebmail.svg
new file mode 100755
index 0000000..e945cc6
--- /dev/null
+++ b/data/usr/share/icons/hicolor/scalable/apps/ayatanawebmail.svg
@@ -0,0 +1,513 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ id="svg3006"
+ height="128"
+ width="128">
+ <defs
+ id="defs3008">
+ <linearGradient
+ osb:paint="solid"
+ id="linearGradient4868">
+ <stop
+ id="stop4866"
+ offset="0"
+ style="stop-color:#6cc92a;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient10662"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#474747;stop-opacity:1;"
+ offset="0"
+ id="stop10664" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8879">
+ <stop
+ id="stop8881"
+ style="stop-color:#dd4814;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8883"
+ style="stop-color:#f8dad0;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4145">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop4147" />
+ <stop
+ offset="0.97355902"
+ style="stop-color:#d7d7d7;stop-opacity:1"
+ id="stop4149" />
+ <stop
+ offset="1"
+ style="stop-color:#b1b1b1;stop-opacity:1"
+ id="stop4151" />
+ </linearGradient>
+ <linearGradient
+ y2="24.627615"
+ x2="20.054544"
+ y1="15.298182"
+ x1="16.626165"
+ gradientTransform="matrix(2.5687073,0,0,2.4653162,2.3510341,3.785113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2883"
+ xlink:href="#linearGradient8265-821-176-38-919-66-249-7-7-8-6" />
+ <linearGradient
+ id="linearGradient8265-821-176-38-919-66-249-7-7-8-6">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop2687-1-9-0-2" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop2689-5-4-3-1" />
+ </linearGradient>
+ <linearGradient
+ y2="47.278698"
+ x2="12.213111"
+ y1="2.9165411"
+ x1="12.578789"
+ gradientTransform="matrix(2.5976543,0,0,2.1774163,1.6531203,11.432419)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2894"
+ xlink:href="#linearGradient2238-2-3-3-1" />
+ <linearGradient
+ id="linearGradient2238-2-3-3-1">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop2240-1-6-7-0" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop2242-7-3-7-2" />
+ </linearGradient>
+ <linearGradient
+ y2="44.409054"
+ x2="23.999996"
+ y1="7.9600015"
+ x1="23.999996"
+ gradientTransform="matrix(2.6445222,0,0,2.3514266,0.53145368,0.362878)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2905"
+ xlink:href="#linearGradient4145" />
+ <linearGradient
+ y2="2.8764627"
+ x2="10.014208"
+ y1="44.960102"
+ x1="10.014208"
+ gradientTransform="matrix(2.5320023,0,0,2.1244449,3.2319869,10.487253)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2907"
+ xlink:href="#linearGradient2490-495-150-777" />
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(-0.11245349,0,0,0.05764705,81.771262,75.363778)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2910"
+ xlink:href="#linearGradient5060-6-6-5" />
+ <linearGradient
+ id="linearGradient5060-6-6-5">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop5062-3-0-3" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0"
+ id="stop5064-1-4-9" />
+ </linearGradient>
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(0.11245349,0,0,0.05764705,46.228751,75.363778)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2913"
+ xlink:href="#linearGradient5060-6-6-5" />
+ <linearGradient
+ id="linearGradient5048-7-7-5">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:0"
+ id="stop5050-5-6-4" />
+ <stop
+ offset="0.5"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop5056-9-0-1" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0"
+ id="stop5052-6-9-5" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient5048-7-7-5"
+ id="linearGradient3004"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.20710064,0,0,0.05764705,-10.85211,75.363778)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ id="linearGradient2490-495-150-777">
+ <stop
+ offset="0"
+ style="stop-color:#787878;stop-opacity:1"
+ id="stop4108" />
+ <stop
+ offset="1"
+ style="stop-color:#b4b4b4;stop-opacity:1"
+ id="stop4110" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2490-182-124-1-2">
+ <stop
+ offset="0"
+ style="stop-color:#1f4b6a;stop-opacity:1"
+ id="stop2788-5-6" />
+ <stop
+ offset="1"
+ style="stop-color:#4083c2;stop-opacity:1"
+ id="stop2790-5-4" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3242-187-536-5-1">
+ <stop
+ offset="0"
+ style="stop-color:#8badea;stop-opacity:1"
+ id="stop2778-7-4" />
+ <stop
+ offset="0.26238"
+ style="stop-color:#6396cd;stop-opacity:1"
+ id="stop2780-6-6" />
+ <stop
+ offset="0.66093999"
+ style="stop-color:#3b7caf;stop-opacity:1"
+ id="stop2782-9-9" />
+ <stop
+ offset="1"
+ style="stop-color:#194c70;stop-opacity:1"
+ id="stop2784-5-4" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2490-5-8-6">
+ <stop
+ offset="0"
+ style="stop-color:#791235;stop-opacity:1"
+ id="stop2492-8-2-0" />
+ <stop
+ offset="1"
+ style="stop-color:#dd3b27;stop-opacity:1"
+ id="stop2494-7-2-2" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3242-6-9-7">
+ <stop
+ offset="0"
+ style="stop-color:#f89b7e;stop-opacity:1"
+ id="stop3244-6-4-2" />
+ <stop
+ offset="0.11961333"
+ style="stop-color:#e35d4f;stop-opacity:1"
+ id="stop3246-6-8-8" />
+ <stop
+ offset="0.81107038"
+ style="stop-color:#c6262e;stop-opacity:1"
+ id="stop3248-0-9-2" />
+ <stop
+ offset="1"
+ style="stop-color:#690b2c;stop-opacity:1"
+ id="stop3250-9-0-9" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3866">
+ <stop
+ offset="0"
+ style="stop-color:#828282;stop-opacity:1"
+ id="stop3868" />
+ <stop
+ offset="0.5"
+ style="stop-color:#8f8f8f;stop-opacity:0.63478261"
+ id="stop3872" />
+ <stop
+ offset="1"
+ style="stop-color:#9d9d9d;stop-opacity:0"
+ id="stop3870" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3333-4">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop3335-4" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop3337-7" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3495">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop3497" />
+ <stop
+ offset="0.5"
+ style="stop-color:#000000;stop-opacity:0.49803922"
+ id="stop3874" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0"
+ id="stop3499" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3333-4-4">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop3335-4-6" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0"
+ id="stop3337-7-2" />
+ </linearGradient>
+ <linearGradient
+ y2="15.737678"
+ x2="25.525208"
+ y1="30.188753"
+ x1="25.525208"
+ spreadMethod="reflect"
+ gradientTransform="matrix(2.3190899,0,0,2.3263486,7.9786692,-7.3755968)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4080"
+ xlink:href="#linearGradient3333-4-4" />
+ <linearGradient
+ y2="20.443331"
+ x2="23.903786"
+ y1="35.75"
+ x1="23.903786"
+ gradientTransform="matrix(2.3144775,0,0,2.4826974,8.0336564,-9.3833259)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4083"
+ xlink:href="#linearGradient3495" />
+ <linearGradient
+ y2="15.737678"
+ x2="25.525208"
+ y1="30.188753"
+ x1="25.525208"
+ spreadMethod="reflect"
+ gradientTransform="matrix(2.3190899,0,0,2.3263486,7.9786692,-5.0469863)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4086"
+ xlink:href="#linearGradient3333-4" />
+ <linearGradient
+ y2="15.737678"
+ x2="25.525208"
+ y1="30.188753"
+ x1="25.525208"
+ spreadMethod="reflect"
+ gradientTransform="matrix(2.3190899,0,0,2.3263486,7.9786692,-6.1984184)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4089"
+ xlink:href="#linearGradient3866" />
+ <linearGradient
+ y2="48.072277"
+ x2="20.052792"
+ y1="8.163353"
+ x1="20.052792"
+ gradientTransform="matrix(2.6443078,0,0,2.6362355,0.535367,-12.314346)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4092"
+ xlink:href="#linearGradient3242-6-9-7" />
+ <linearGradient
+ y2="14.038458"
+ x2="28.103424"
+ y1="45.000065"
+ x1="28.103424"
+ gradientTransform="matrix(2.6443076,0,0,2.903581,0.535367,-24.211175)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4094"
+ xlink:href="#linearGradient2490-5-8-6" />
+ <radialGradient
+ r="20.397499"
+ fy="17.529579"
+ fx="23.895569"
+ cy="17.529579"
+ cx="23.895569"
+ gradientTransform="matrix(0,5.1020204,-7.9837439,0,203.9326,-107.1876)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4097"
+ xlink:href="#linearGradient3242-187-536-5-1" />
+ <linearGradient
+ y2="3.0816143"
+ x2="18.379412"
+ y1="44.980297"
+ x1="18.379412"
+ gradientTransform="matrix(2.5342439,0,0,2.1377269,111.25562,10.194819)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4099"
+ xlink:href="#linearGradient2490-182-124-1-2" />
+ <linearGradient
+ id="linearGradient3495-1">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1"
+ id="stop3497-1" />
+ <stop
+ offset="0.5"
+ style="stop-color:#000000;stop-opacity:0.49803922"
+ id="stop3874-4" />
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0"
+ id="stop3499-3" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient3495-1"
+ id="linearGradient4124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3144775,0,0,2.4826974,8.0336564,-8.224302)"
+ x1="23.903786"
+ y1="35.75"
+ x2="23.903786"
+ y2="20.443331" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.30336396,0,0,0.20718201,235.2581,197.93735)"
+ id="linearGradient1077"
+ x1="188.87267"
+ x2="188.87267"
+ xlink:href="#12-9"
+ y1="31.908664"
+ y2="359.00831" />
+ <linearGradient
+ id="12-9">
+ <stop
+ id="stop1698"
+ offset="0"
+ stop-color="#0e56db" />
+ <stop
+ id="stop1699"
+ offset="1"
+ stop-color="#071176" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.4988505,0.66717796)"
+ id="linearGradient1078"
+ x1="126.73366"
+ x2="127.52524"
+ xlink:href="#linearGradient8265-821-176-38-919-66-249-7-7-8-6"
+ y1="21.628577"
+ y2="291.69904" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.99978174,1.0002183)"
+ id="linearGradient1077-3"
+ x1="188.87267"
+ x2="188.87267"
+ xlink:href="#12-9"
+ y1="31.908664"
+ y2="359.00831" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="64"
+ x2="123.99887"
+ y1="64"
+ x1="4.0011282"
+ id="linearGradient4870"
+ xlink:href="#linearGradient4868" />
+ </defs>
+ <metadata
+ id="metadata3011">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="g938">
+ <path
+ class="st3"
+ d="m 120.73366,104.32126 c 0,8.85247 -5.11401,16.0954 -11.36447,16.0954 H 18.453348 c -6.250463,0 -11.3644792,-7.24293 -11.3644792,-16.0954 V 23.844264 c 0,-8.85247 5.1140162,-16.0954 11.3644792,-16.0954 h 90.915842 c 6.25046,0 11.36447,7.24293 11.36447,16.0954 z"
+ id="path10833"
+ style="fill:#9acd32" />
+ <g
+ transform="matrix(2.8411199,0,0,4.02385,-27.00457,-64.680436)"
+ style="opacity:1"
+ id="g10835"
+ class="st1">
+ <g
+ id="g10837">
+ <path
+ style="fill:#231f20"
+ id="path10839"
+ d="m 35.5,30.2 c -1.9,-2.1 -5.1,-2.1 -7,0 L 13,43.2 c -0.2,0.2 -0.3,0.4 -0.5,0.6 0.7,1.3 2,2.2 3.4,2.2 h 32 c 1.5,0 2.7,-0.9 3.4,-2.2 -0.1,-0.2 -0.3,-0.4 -0.5,-0.6 z"
+ class="st2" />
+ </g>
+ </g>
+ <g
+ id="g10843"
+ transform="matrix(2.8411199,0,0,4.02385,-27.00457,-64.680436)"
+ style="fill:#6b8e23">
+ <path
+ class="st3"
+ d="m 35.5,32 c -1.9,-1.9 -5.1,-1.9 -7,0 L 13,43.5 c -0.2,0.2 -0.3,0.3 -0.5,0.5 0.7,1.2 2,1.9 3.4,1.9 h 32 c 1.5,0 2.7,-0.8 3.4,-1.9 -0.1,-0.2 -0.3,-0.3 -0.5,-0.5 z"
+ id="path10845"
+ style="fill:#6b8e23" />
+ </g>
+ <g
+ id="g10849"
+ transform="matrix(2.8411199,0,0,4.02385,-27.00457,-64.680436)">
+ <path
+ class="st2"
+ d="M 12.6,20.2 C 13.3,18.9 14.6,18 16,18 h 32 c 1.5,0 2.7,0.9 3.4,2.2 -0.1,0.2 -0.3,0.4 -0.5,0.6 l -15.4,13 c -1.9,2.1 -5.1,2.1 -7,0 z"
+ id="path10851"
+ style="fill:#231f20" />
+ </g>
+ <g
+ style="fill:#adff2f"
+ id="g10855"
+ transform="matrix(2.8411199,0,0,4.02385,-27.00457,-64.680436)">
+ <path
+ class="st4"
+ d="m 28.5,32 c 1.9,1.9 5.1,1.9 7,0 L 51,20.5 c 0.2,-0.2 0.3,-0.3 0.5,-0.5 -0.7,-1.2 -2,-1.9 -3.4,-1.9 H 16 c -1.5,0 -2.7,0.8 -3.4,1.9 0.1,0.2 0.3,0.3 0.5,0.5 z"
+ id="path10857"
+ style="fill:#adff2f" />
+ </g>
+ <rect
+ rx="20.70422"
+ ry="19.236767"
+ y="7.0001831"
+ x="7.0001831"
+ height="113.99963"
+ width="113.99963"
+ id="rect11488"
+ style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#89c928;stroke-width:5.99811029;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/debian/changelog b/debian/changelog
new file mode 100755
index 0000000..eb66034
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+ayatana-webmail (20.8.16) unstable; urgency=medium
+
+ * Port from Unity Mail
+
+ -- Robert Tari <robert@tari.in> Sun, 16 Aug 2020 12:28:00 +0100
diff --git a/debian/compat b/debian/compat
new file mode 100755
index 0000000..f599e28
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+10
diff --git a/debian/control b/debian/control
new file mode 100755
index 0000000..316fa12
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,31 @@
+Source: ayatana-webmail
+Section: mail
+Priority: optional
+Maintainer: Robert Tari <robert@tari.in>
+Build-Depends: debhelper (>= 10), dh-python, python3 (>= 3.6), python3-setuptools, python3-polib
+Standards-Version: 4.5.0
+Homepage: https://tari.in/www/software/ayatana-webmail/
+Rules-Requires-Root: no
+Vcs-Git: https://github.com/AyatanaIndicators/ayatana-webmail
+Vcs-Browser: https://github.com/AyatanaIndicators/ayatana-webmail
+X-Python3-Version: >= 3.6
+
+Package: ayatana-webmail
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}, gir1.2-messagingmenu-1.0, python3-gi, gir1.2-gtk-3.0, gir1.2-notify-0.7, python3-secretstorage (>= 1.0~), gnome-session-canberra (>= 0.28-4), python3-psutil, python3-babel, python3-urllib3
+Recommends: gir1.2-unity-5.0
+Breaks: unity-mail
+Replaces: unity-mail
+Description: Webmail notifications and actions for any desktop
+ Ayatana Webmail is an application that integrates your webmail into
+ MATE, Xfce, LXDE and other environments.
+ .
+ It displays notifications about incoming mail, shows the number of unread
+ messages and displays subjects in the Messaging Menu.
+ .
+ The Launcher item also has a quicklist that provides quick access to your
+ mail folders (configured for GMail by default). It also allows you to quickly
+ compose a new message.
+ .
+ Ayatana Webmail starts automatically, all you have to do is to enter your accounts
+ settings in a configuration dialog.
diff --git a/debian/copyright b/debian/copyright
new file mode 100755
index 0000000..fbe377e
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,32 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Ayatana Webmail
+Upstream-Contact: Robert Tari <robert@tari.in>
+Source: https://github.com/AyatanaIndicators/ayatana-webmail
+
+Files: *
+Copyright: 2011-2014, Dmitry Shachnev <mitya57@gmail.com>
+ 2016-2020, Robert Tari <robert@tari.in>
+License: GPL-3+
+
+Files: po/*.po
+Copyright: 2011-2020, Rosetta Contributors and Canonical Ltd
+License: GPL-3+
+
+Files: debian/*
+Copyright: 2011-2014, Dmitry Shachnev <mitya57@gmail.com>
+ 2016-2020, Robert Tari <robert@tari.in>
+License: GPL-3+
+
+License: GPL-3+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ version 3 can be found in "/usr/share/common-licenses/GPL-3".
diff --git a/debian/postinst b/debian/postinst
new file mode 100755
index 0000000..cea66d0
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+set -e
+
+case "$1" in
+
+ configure)
+
+ cp -n /usr/share/ayatanawebmail/indicator-messages-new.svg /usr/share/icons/hicolor/scalable/status/indicator-messages-new.svg
+ cp -n /usr/share/ayatanawebmail/indicator-messages.svg /usr/share/icons/hicolor/scalable/status/indicator-messages.svg
+ mkdir -p /usr/share/icons/matefaenza/apps/scalable
+ ln -sf /usr/share/icons/Faenza/apps/scalable/ayatanawebmail.svg /usr/share/icons/matefaenza/apps/scalable/ayatanawebmail.svg
+
+ update-icon-caches /usr/share/icons/hicolor /usr/share/icons/Faenza /usr/share/icons/matefaenza
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..004e738
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,14 @@
+#!/usr/bin/make -f
+# -*- mode: makefile; coding: utf-8 -*-
+
+%:
+ dh $@ --with python3 --buildsystem=pybuild
+
+override_dh_auto_clean:
+ dh_auto_clean
+ rm -Rfv data/usr/share/locale
+ rm -fv ayatana-webmail.egg-info/PKG-INFO
+ rm -fv ayatana-webmail.egg-info/SOURCES.txt
+ rm -fv ayatana-webmail.egg-info/dependency_links.txt
+ rm -fv ayatana-webmail.egg-info/requires.txt
+ rm -fv ayatana-webmail.egg-info/top_level.txt
diff --git a/debian/source/format b/debian/source/format
new file mode 100755
index 0000000..9f55b2c
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0
diff --git a/debian/watch b/debian/watch
new file mode 100755
index 0000000..544180e
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+https://releases.ayatana-indicators.org/source/ayatana-webmail/ayatana-webmail-([0-9.]+)\.tar\.gz
diff --git a/po.ayatana-webmail-autostart.desktop/ayatana-webmail-autostart.desktop.pot b/po.ayatana-webmail-autostart.desktop/ayatana-webmail-autostart.desktop.pot
new file mode 100755
index 0000000..1226077
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/ayatana-webmail-autostart.desktop.pot
@@ -0,0 +1,26 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Robert Tari
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail 20.7.7\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-07-07 20:29+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/bg.po b/po.ayatana-webmail-autostart.desktop/bg.po
new file mode 100755
index 0000000..e930e74
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/bg.po
@@ -0,0 +1,29 @@
+# Bulgarian translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:48+0000\n"
+"Language-Team: Bulgarian <bg@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (услуга)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Покажи известия при ново писмо"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/ca.po b/po.ayatana-webmail-autostart.desktop/ca.po
new file mode 100755
index 0000000..32558c9
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/ca.po
@@ -0,0 +1,30 @@
+# Catalan translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:27+0000\n"
+"Last-Translator: David Planella <david.planella@gmail.com>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Mostra notifications quan hi hagi correu nou"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/cs.po b/po.ayatana-webmail-autostart.desktop/cs.po
new file mode 100755
index 0000000..426aa24
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/cs.po
@@ -0,0 +1,29 @@
+# Czech translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:42+0000\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (služba)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Zobrazovat upozornění o novém emailu"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/de.po b/po.ayatana-webmail-autostart.desktop/de.po
new file mode 100755
index 0000000..0ce9be5
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/de.po
@@ -0,0 +1,30 @@
+# German translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-05 12:24+0000\n"
+"Last-Translator: Tobias Bannert <tobannert@gmail.com>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Benachrichtigungen bei neuen E-Mails anzeigen"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr "ayatanawebmail"
diff --git a/po.ayatana-webmail-autostart.desktop/el.po b/po.ayatana-webmail-autostart.desktop/el.po
new file mode 100755
index 0000000..182d596
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/el.po
@@ -0,0 +1,29 @@
+# Greek translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:45+0000\n"
+"Language-Team: Greek <el@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Εμφάνιση ειδοποιήσεων για νέα μηνύματα"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/en_AU.po b/po.ayatana-webmail-autostart.desktop/en_AU.po
new file mode 100755
index 0000000..bdb4259
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/en_AU.po
@@ -0,0 +1,29 @@
+# English (Australia) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:57+0000\n"
+"Language-Team: English (Australia) <en_AU@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (service)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Display notifications about new mail"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/en_CA.po b/po.ayatana-webmail-autostart.desktop/en_CA.po
new file mode 100755
index 0000000..fae0343
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/en_CA.po
@@ -0,0 +1,29 @@
+# English (Canada) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:36+0000\n"
+"Language-Team: English (Canada) <en_CA@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (service)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Display notifications about new mail"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/en_GB.po b/po.ayatana-webmail-autostart.desktop/en_GB.po
new file mode 100755
index 0000000..9424970
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/en_GB.po
@@ -0,0 +1,29 @@
+# English (United Kingdom) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-07 17:25+0000\n"
+"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (service)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Display notifications about new mail"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr "ayatanawebmail"
diff --git a/po.ayatana-webmail-autostart.desktop/es.po b/po.ayatana-webmail-autostart.desktop/es.po
new file mode 100755
index 0000000..2de716b
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/es.po
@@ -0,0 +1,29 @@
+# Spanish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:12+0000\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (servicio)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Mostrar notificaciones de correo nuevo"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/fi.po b/po.ayatana-webmail-autostart.desktop/fi.po
new file mode 100755
index 0000000..fc7ccf5
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/fi.po
@@ -0,0 +1,29 @@
+# Finnish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:48+0000\n"
+"Language-Team: Finnish <fi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Näytä ilmoitus uusista sähköpostiviesteistä"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/fr.po b/po.ayatana-webmail-autostart.desktop/fr.po
new file mode 100755
index 0000000..92905ac
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/fr.po
@@ -0,0 +1,30 @@
+# French translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2019-04-27 08:10+0000\n"
+"Last-Translator: rcspam <rcspams@gmail.com>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Afficher les alertes de nouveaux courriels"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/gl.po b/po.ayatana-webmail-autostart.desktop/gl.po
new file mode 100755
index 0000000..a7d7ea6
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/gl.po
@@ -0,0 +1,29 @@
+# Galician translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:24+0000\n"
+"Language-Team: Galician <gl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (servizo)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Mostra notificacións de novas mensaxes de correo-e"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/hr.po b/po.ayatana-webmail-autostart.desktop/hr.po
new file mode 100755
index 0000000..4ea93dc
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/hr.po
@@ -0,0 +1,30 @@
+# Croatian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:45+0000\n"
+"Last-Translator: Miroslav Matejaš <silverspace@ubuntu-hr.org>\n"
+"Language-Team: Croatian <hr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (service)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Prikaz obavijesti o pristigloj pošti"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/hu.po b/po.ayatana-webmail-autostart.desktop/hu.po
new file mode 100755
index 0000000..bb53d81
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/hu.po
@@ -0,0 +1,30 @@
+# Hungarian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-11 20:51+0000\n"
+"Last-Translator: Sümegi Csaba <sumegics@gmail.com>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (szolgáltatás)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Értesítések megjelenítése új levelekről"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr "ayatanawebmail"
diff --git a/po.ayatana-webmail-autostart.desktop/it.po b/po.ayatana-webmail-autostart.desktop/it.po
new file mode 100755
index 0000000..5453e46
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/it.po
@@ -0,0 +1,30 @@
+# Italian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:48+0000\n"
+"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (servizio)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Mostra le notifiche per le nuove email"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/ja.po b/po.ayatana-webmail-autostart.desktop/ja.po
new file mode 100755
index 0000000..64171c7
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/ja.po
@@ -0,0 +1,29 @@
+# Japanese translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:45+0000\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "新着メールの通知を表示"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/kk.po b/po.ayatana-webmail-autostart.desktop/kk.po
new file mode 100755
index 0000000..3917202
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/kk.po
@@ -0,0 +1,29 @@
+# Kazakh translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:48+0000\n"
+"Language-Team: Kazakh <kk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (қызмет)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Жаңа хаттар келгені жайлы мәлімдеу"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/lt.po b/po.ayatana-webmail-autostart.desktop/lt.po
new file mode 100755
index 0000000..1eff262
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/lt.po
@@ -0,0 +1,29 @@
+# Lithuanian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:45+0000\n"
+"Language-Team: Lithuanian <lt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Rodyti pranešimus apie naujus laiškus"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/lv.po b/po.ayatana-webmail-autostart.desktop/lv.po
new file mode 100755
index 0000000..8c5002c
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/lv.po
@@ -0,0 +1,31 @@
+# Latvian translation for ayatana-webmail
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:18+0000\n"
+"Last-Translator: Armands Skolmeisters "
+"<armands.skolmeisters@arseniuss.id.lv>\n"
+"Language-Team: Latvian <lv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Rādīt paziņojumus par jaunām vēstulēm"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/ms.po b/po.ayatana-webmail-autostart.desktop/ms.po
new file mode 100755
index 0000000..be2b0c6
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/ms.po
@@ -0,0 +1,29 @@
+# Malay translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Language-Team: Malay <ms@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Papar pemberitahuan mengenai mel baru"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/mus.po b/po.ayatana-webmail-autostart.desktop/mus.po
new file mode 100755
index 0000000..5f68241
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/mus.po
@@ -0,0 +1,30 @@
+# Creek translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:45+0000\n"
+"Last-Translator: N1ck 7h0m4d4k15 <Unknown>\n"
+"Language-Team: Creek <mus@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (υπηρεσία)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Εμφάνιση ειδοποιήσεων για νέο μήνυμα"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/nl.po b/po.ayatana-webmail-autostart.desktop/nl.po
new file mode 100755
index 0000000..44abb15
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/nl.po
@@ -0,0 +1,29 @@
+# Dutch translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:48+0000\n"
+"Language-Team: Dutch <nl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (service)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Meldingen geven voor nieuwe e-mails"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/nn.po b/po.ayatana-webmail-autostart.desktop/nn.po
new file mode 100755
index 0000000..ef114b3
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/nn.po
@@ -0,0 +1,29 @@
+# Norwegian Nynorsk translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:33+0000\n"
+"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Vis varslingar når du får ny e-post"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/oc.po b/po.ayatana-webmail-autostart.desktop/oc.po
new file mode 100755
index 0000000..1362c07
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/oc.po
@@ -0,0 +1,30 @@
+# Occitan (post 1500) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:45+0000\n"
+"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
+"Language-Team: Occitan (post 1500) <oc@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Afichar las alèrtas de corrièls novèls"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/pl.po b/po.ayatana-webmail-autostart.desktop/pl.po
new file mode 100755
index 0000000..55ca67e
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/pl.po
@@ -0,0 +1,29 @@
+# Polish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:42+0000\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Klient poczty Ayatana Webmail (usługa)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Wyświetla powiadomienia o nowych wiadomościach"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/pt.po b/po.ayatana-webmail-autostart.desktop/pt.po
new file mode 100755
index 0000000..4aaaf66
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/pt.po
@@ -0,0 +1,30 @@
+# Portuguese translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:36+0000\n"
+"Last-Translator: Sérgio Faria <sergio91pt@gmail.com>\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (serviço)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Mostrar notificações sobre novos mails"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/pt_BR.po b/po.ayatana-webmail-autostart.desktop/pt_BR.po
new file mode 100755
index 0000000..bf04d38
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/pt_BR.po
@@ -0,0 +1,29 @@
+# Brazilian Portuguese translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (serviço)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Mostrar notificações sobre novos e-mails"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/ru.po b/po.ayatana-webmail-autostart.desktop/ru.po
new file mode 100755
index 0000000..8e5e304
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/ru.po
@@ -0,0 +1,30 @@
+# ayatana-webmail desktop file.
+# Copyright (C) 2010-2011 Fabien Tassin
+# This file is distributed under the same license as the ayatana-webmail package.
+# Fabien Tassin <fta@ubuntu.com>, 2010-2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:24+0000\n"
+"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>\n"
+"Language-Team: ru <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (служба)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Отображать уведомления о новой почте"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/sk.po b/po.ayatana-webmail-autostart.desktop/sk.po
new file mode 100755
index 0000000..ff993e2
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/sk.po
@@ -0,0 +1,30 @@
+# Slovak translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:45+0000\n"
+"Last-Translator: Gabriel Čenkei <cenkei@gmail.com>\n"
+"Language-Team: Slovak <sk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (služba)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Zobraziť notifikácie o novej pošte"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/sl.po b/po.ayatana-webmail-autostart.desktop/sl.po
new file mode 100755
index 0000000..3f5d7b5
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/sl.po
@@ -0,0 +1,29 @@
+# Slovenian translation for ayatana-webmail
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:48+0000\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Prikaži obvestila o novi pošti"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/sr.po b/po.ayatana-webmail-autostart.desktop/sr.po
new file mode 100755
index 0000000..f814b89
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/sr.po
@@ -0,0 +1,30 @@
+# Serbian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016.
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:30+0000\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian <gnom@prevod.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+"Language: sr\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Пошта Јунитија (услуга)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Приказује обавештења о новој пошти"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/tr.po b/po.ayatana-webmail-autostart.desktop/tr.po
new file mode 100755
index 0000000..b05f653
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/tr.po
@@ -0,0 +1,30 @@
+# Turkish translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:24+0000\n"
+"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>\n"
+"Language-Team: Turkish <tr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr "Ayatana Webmail (hizmet)"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Yeni mektuplar için bildirimleri göster"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/ug.po b/po.ayatana-webmail-autostart.desktop/ug.po
new file mode 100755
index 0000000..b9dc109
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/ug.po
@@ -0,0 +1,30 @@
+# Uyghur translation for ayatana-webmail
+# Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
+"Language-Team: Uyghur <ug@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "يېڭى تور مەكتۇپلارنى كۆرسېتش"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/uk.po b/po.ayatana-webmail-autostart.desktop/uk.po
new file mode 100755
index 0000000..91cb82f
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/uk.po
@@ -0,0 +1,30 @@
+# Ukrainian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:39+0000\n"
+"Last-Translator: Vitalii Paslavskyi <vpaslavskyi@gmail.com>\n"
+"Language-Team: Ukrainian <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "Показувати повідомлення про новий лист"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail-autostart.desktop/zh_CN.po b/po.ayatana-webmail-autostart.desktop/zh_CN.po
new file mode 100755
index 0000000..ef07494
--- /dev/null
+++ b/po.ayatana-webmail-autostart.desktop/zh_CN.po
@@ -0,0 +1,30 @@
+# Chinese (Simplified) translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2019-12-30 10:23+0000\n"
+"Last-Translator: aerowolf <aerowolf@tom.com>\n"
+"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:4
+msgid "Ayatana Webmail (service)"
+msgstr ""
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:38
+msgid "Display notifications about new mail"
+msgstr "显示新邮件通知"
+
+#: data/etc/xdg/autostart/ayatana-webmail-autostart.desktop:74
+msgid "ayatanawebmail"
+msgstr ""
diff --git a/po.ayatana-webmail.desktop/ayatana-webmail.desktop.pot b/po.ayatana-webmail.desktop/ayatana-webmail.desktop.pot
new file mode 100755
index 0000000..507ce7a
--- /dev/null
+++ b/po.ayatana-webmail.desktop/ayatana-webmail.desktop.pot
@@ -0,0 +1,46 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Robert Tari
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail 20.7.7\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-07-07 20:29+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr ""
diff --git a/po.ayatana-webmail.desktop/bg.po b/po.ayatana-webmail.desktop/bg.po
new file mode 100755
index 0000000..2f67496
--- /dev/null
+++ b/po.ayatana-webmail.desktop/bg.po
@@ -0,0 +1,49 @@
+# Bulgarian translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Language-Team: Bulgarian <bg@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Известяване за поща"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Напиши писмо"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Изпратени"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Входящи"
diff --git a/po.ayatana-webmail.desktop/ca.po b/po.ayatana-webmail.desktop/ca.po
new file mode 100755
index 0000000..b132615
--- /dev/null
+++ b/po.ayatana-webmail.desktop/ca.po
@@ -0,0 +1,49 @@
+# Catalan translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Correu de l'Ayatana"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Redacta un missatge"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Enviat"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Safata d'entrada"
diff --git a/po.ayatana-webmail.desktop/cs.po b/po.ayatana-webmail.desktop/cs.po
new file mode 100755
index 0000000..272a03d
--- /dev/null
+++ b/po.ayatana-webmail.desktop/cs.po
@@ -0,0 +1,50 @@
+# Czech translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:51+0000\n"
+"Last-Translator: Martin Lysý <martin-lysy@seznam.cz>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Napsat email"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Odeslané"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Příchozí"
diff --git a/po.ayatana-webmail.desktop/de.po b/po.ayatana-webmail.desktop/de.po
new file mode 100755
index 0000000..c01c875
--- /dev/null
+++ b/po.ayatana-webmail.desktop/de.po
@@ -0,0 +1,50 @@
+# German translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-05 12:25+0000\n"
+"Last-Translator: Tobias Bannert <tobannert@gmail.com>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana-Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr "ayatanawebmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr "Alle als gelesen markieren"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Verfassen"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Gesendet"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Posteingang"
diff --git a/po.ayatana-webmail.desktop/el.po b/po.ayatana-webmail.desktop/el.po
new file mode 100755
index 0000000..3290d0a
--- /dev/null
+++ b/po.ayatana-webmail.desktop/el.po
@@ -0,0 +1,49 @@
+# Greek translation for ayatana-webmail
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Language-Team: Greek <el@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Σύνθεση ηλεκτρονικού μηνύματος"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Απεσταλμένα"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Εισερχόμενα"
diff --git a/po.ayatana-webmail.desktop/en_AU.po b/po.ayatana-webmail.desktop/en_AU.po
new file mode 100755
index 0000000..1bc81a8
--- /dev/null
+++ b/po.ayatana-webmail.desktop/en_AU.po
@@ -0,0 +1,50 @@
+# English (Australia) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:30+0000\n"
+"Last-Translator: Jackson Doak <noskcaj@ubuntu.com>\n"
+"Language-Team: English (Australia) <en_AU@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Compose Mail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Sent"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Inbox"
diff --git a/po.ayatana-webmail.desktop/en_CA.po b/po.ayatana-webmail.desktop/en_CA.po
new file mode 100755
index 0000000..bd79569
--- /dev/null
+++ b/po.ayatana-webmail.desktop/en_CA.po
@@ -0,0 +1,49 @@
+# English (Canada) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:27+0000\n"
+"Language-Team: English (Canada) <en_CA@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Compose Mail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Sent"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Inbox"
diff --git a/po.ayatana-webmail.desktop/en_GB.po b/po.ayatana-webmail.desktop/en_GB.po
new file mode 100755
index 0000000..3a53dbe
--- /dev/null
+++ b/po.ayatana-webmail.desktop/en_GB.po
@@ -0,0 +1,49 @@
+# English (United Kingdom) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-07 17:27+0000\n"
+"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr "Webmail notifications and actions for any desktop"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr "ayatanawebmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr "Mark all as read"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Compose Mail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Sent"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr "Settings"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Inbox"
diff --git a/po.ayatana-webmail.desktop/es.po b/po.ayatana-webmail.desktop/es.po
new file mode 100755
index 0000000..4cf2204
--- /dev/null
+++ b/po.ayatana-webmail.desktop/es.po
@@ -0,0 +1,49 @@
+# Spanish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:45+0000\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Redactar mensaje"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Enviados"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Bandeja de entrada"
diff --git a/po.ayatana-webmail.desktop/et.po b/po.ayatana-webmail.desktop/et.po
new file mode 100755
index 0000000..9304534
--- /dev/null
+++ b/po.ayatana-webmail.desktop/et.po
@@ -0,0 +1,50 @@
+# ayatana-webmail desktop file.
+# Copyright (C) 2010-2011 Fabien Tassin
+# This file is distributed under the same license as the ayatana-webmail package.
+# Fabien Tassin <fta@ubuntu.com>, 2010-2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>\n"
+"Language-Team: et <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Koosta kiri"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Saadetud"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Postkast"
diff --git a/po.ayatana-webmail.desktop/fi.po b/po.ayatana-webmail.desktop/fi.po
new file mode 100755
index 0000000..60b2962
--- /dev/null
+++ b/po.ayatana-webmail.desktop/fi.po
@@ -0,0 +1,49 @@
+# Finnish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:09+0000\n"
+"Language-Team: Finnish <fi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Lähetä sähköpostiviesti"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Lähetetyt"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Saapuneet"
diff --git a/po.ayatana-webmail.desktop/fr.po b/po.ayatana-webmail.desktop/fr.po
new file mode 100755
index 0000000..7cab749
--- /dev/null
+++ b/po.ayatana-webmail.desktop/fr.po
@@ -0,0 +1,50 @@
+# French translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2019-04-27 08:08+0000\n"
+"Last-Translator: rcspam <rcspams@gmail.com>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr "Tout marquer comme lu"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Nouveau message"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Messages envoyés"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr "Préférences"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Boîte de réception"
diff --git a/po.ayatana-webmail.desktop/gl.po b/po.ayatana-webmail.desktop/gl.po
new file mode 100755
index 0000000..a59ff51
--- /dev/null
+++ b/po.ayatana-webmail.desktop/gl.po
@@ -0,0 +1,49 @@
+# Galician translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Language-Team: Galician <gl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Correo de Ayatana"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Crear unha nova mensaxe de correo-e"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Enviado"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Caixa de entrada"
diff --git a/po.ayatana-webmail.desktop/hr.po b/po.ayatana-webmail.desktop/hr.po
new file mode 100755
index 0000000..c3e3724
--- /dev/null
+++ b/po.ayatana-webmail.desktop/hr.po
@@ -0,0 +1,49 @@
+# Croatian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:54+0000\n"
+"Language-Team: Croatian <hr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Nova poruka"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Poslano"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Pristigla pošta"
diff --git a/po.ayatana-webmail.desktop/hu.po b/po.ayatana-webmail.desktop/hu.po
new file mode 100755
index 0000000..9ef9f76
--- /dev/null
+++ b/po.ayatana-webmail.desktop/hu.po
@@ -0,0 +1,50 @@
+# Hungarian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-11 20:53+0000\n"
+"Last-Translator: Sümegi Csaba <sumegics@gmail.com>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr "ayatanawebmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr "Az összes megjelölése olvasottként"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Levélírás"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Elküldött levelek"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr "Beállítások"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Beérkező levelek"
diff --git a/po.ayatana-webmail.desktop/it.po b/po.ayatana-webmail.desktop/it.po
new file mode 100755
index 0000000..0e7ee5a
--- /dev/null
+++ b/po.ayatana-webmail.desktop/it.po
@@ -0,0 +1,50 @@
+# Italian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Last-Translator: Emanuele Antonio Faraone <emanueleant03@gmail.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Componi nuovo messaggio"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Inviata"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "In arrivo"
diff --git a/po.ayatana-webmail.desktop/ja.po b/po.ayatana-webmail.desktop/ja.po
new file mode 100755
index 0000000..0739e10
--- /dev/null
+++ b/po.ayatana-webmail.desktop/ja.po
@@ -0,0 +1,50 @@
+# Japanese translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:50+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr ""
diff --git a/po.ayatana-webmail.desktop/kk.po b/po.ayatana-webmail.desktop/kk.po
new file mode 100755
index 0000000..cbcfb2f
--- /dev/null
+++ b/po.ayatana-webmail.desktop/kk.po
@@ -0,0 +1,49 @@
+# Kazakh translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:36+0000\n"
+"Language-Team: Kazakh <kk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Хат жазу"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Жіберілген"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Кіріс"
diff --git a/po.ayatana-webmail.desktop/lt.po b/po.ayatana-webmail.desktop/lt.po
new file mode 100755
index 0000000..ff087d8
--- /dev/null
+++ b/po.ayatana-webmail.desktop/lt.po
@@ -0,0 +1,49 @@
+# Lithuanian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:45+0000\n"
+"Language-Team: Lithuanian <lt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Rašyti laišką"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Išsiųsti laiškai"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Gautieji"
diff --git a/po.ayatana-webmail.desktop/lv.po b/po.ayatana-webmail.desktop/lv.po
new file mode 100755
index 0000000..8372e54
--- /dev/null
+++ b/po.ayatana-webmail.desktop/lv.po
@@ -0,0 +1,51 @@
+# Latvian translation for ayatana-webmail
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:45+0000\n"
+"Last-Translator: Armands Skolmeisters "
+"<armands.skolmeisters@arseniuss.id.lv>\n"
+"Language-Team: Latvian <lv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Pasts"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Sastādīt vēstuli"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Nosūtītās"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Iesūtne"
diff --git a/po.ayatana-webmail.desktop/ms.po b/po.ayatana-webmail.desktop/ms.po
new file mode 100755
index 0000000..e3f2448
--- /dev/null
+++ b/po.ayatana-webmail.desktop/ms.po
@@ -0,0 +1,49 @@
+# Malay translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:33+0000\n"
+"Language-Team: Malay <ms@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Gubah Mel"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Dihantar"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Kotak Masuk"
diff --git a/po.ayatana-webmail.desktop/mus.po b/po.ayatana-webmail.desktop/mus.po
new file mode 100755
index 0000000..93405bc
--- /dev/null
+++ b/po.ayatana-webmail.desktop/mus.po
@@ -0,0 +1,50 @@
+# Creek translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Last-Translator: N1ck 7h0m4d4k15 <Unknown>\n"
+"Language-Team: Creek <mus@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Συνθέστε μήνυμα"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Σταλθέντα"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Εισερχόμενα"
diff --git a/po.ayatana-webmail.desktop/nl.po b/po.ayatana-webmail.desktop/nl.po
new file mode 100755
index 0000000..681c4a6
--- /dev/null
+++ b/po.ayatana-webmail.desktop/nl.po
@@ -0,0 +1,49 @@
+# Dutch translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Language-Team: Dutch <nl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Stel een e-mail op"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Verzonden"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Postvak IN"
diff --git a/po.ayatana-webmail.desktop/nn.po b/po.ayatana-webmail.desktop/nn.po
new file mode 100755
index 0000000..05aeaa1
--- /dev/null
+++ b/po.ayatana-webmail.desktop/nn.po
@@ -0,0 +1,49 @@
+# Norwegian Nynorsk translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Skriv ny"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Sendt e-post"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Innboks"
diff --git a/po.ayatana-webmail.desktop/oc.po b/po.ayatana-webmail.desktop/oc.po
new file mode 100755
index 0000000..6d93fbe
--- /dev/null
+++ b/po.ayatana-webmail.desktop/oc.po
@@ -0,0 +1,50 @@
+# Occitan (post 1500) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:39+0000\n"
+"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
+"Language-Team: Occitan (post 1500) <oc@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Corrièl Ayatana"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Messatge novèl"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Mandats"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Bóstia de recepcion"
diff --git a/po.ayatana-webmail.desktop/pl.po b/po.ayatana-webmail.desktop/pl.po
new file mode 100755
index 0000000..281d2e2
--- /dev/null
+++ b/po.ayatana-webmail.desktop/pl.po
@@ -0,0 +1,49 @@
+# Polish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Utwórz wiadomość"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Wysłane"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Odebrane"
diff --git a/po.ayatana-webmail.desktop/pt.po b/po.ayatana-webmail.desktop/pt.po
new file mode 100755
index 0000000..9fbb0af
--- /dev/null
+++ b/po.ayatana-webmail.desktop/pt.po
@@ -0,0 +1,49 @@
+# Portuguese translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Compor Mensagem"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Enviado"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Caixa de entrada"
diff --git a/po.ayatana-webmail.desktop/pt_BR.po b/po.ayatana-webmail.desktop/pt_BR.po
new file mode 100755
index 0000000..2f4f8a5
--- /dev/null
+++ b/po.ayatana-webmail.desktop/pt_BR.po
@@ -0,0 +1,50 @@
+# Brazilian Portuguese translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Last-Translator: Neliton Pereira Jr. <nelitonpjr@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Redigir email"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Enviadas"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Caixa de entrada"
diff --git a/po.ayatana-webmail.desktop/ru.po b/po.ayatana-webmail.desktop/ru.po
new file mode 100755
index 0000000..61e7e25
--- /dev/null
+++ b/po.ayatana-webmail.desktop/ru.po
@@ -0,0 +1,50 @@
+# ayatana-webmail desktop file.
+# Copyright (C) 2010-2011 Fabien Tassin
+# This file is distributed under the same license as the ayatana-webmail package.
+# Fabien Tassin <fta@ubuntu.com>, 2010-2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:48+0000\n"
+"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>\n"
+"Language-Team: ru <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Написать письмо"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Отправленные"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Входящие"
diff --git a/po.ayatana-webmail.desktop/sk.po b/po.ayatana-webmail.desktop/sk.po
new file mode 100755
index 0000000..96e7ef9
--- /dev/null
+++ b/po.ayatana-webmail.desktop/sk.po
@@ -0,0 +1,50 @@
+# Slovak translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:51+0000\n"
+"Last-Translator: Gabriel Čenkei <cenkei@gmail.com>\n"
+"Language-Team: Slovak <sk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Napísať správu"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Odoslané správy"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Doručená pošta"
diff --git a/po.ayatana-webmail.desktop/sl.po b/po.ayatana-webmail.desktop/sl.po
new file mode 100755
index 0000000..5b33dc6
--- /dev/null
+++ b/po.ayatana-webmail.desktop/sl.po
@@ -0,0 +1,49 @@
+# Slovenian translation for ayatana-webmail
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:33+0000\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr "Označi vse kot prebrano"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Sestavi pošto"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Poslano"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr "Nastavitve"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Prejeto"
diff --git a/po.ayatana-webmail.desktop/sr.po b/po.ayatana-webmail.desktop/sr.po
new file mode 100755
index 0000000..bba0269
--- /dev/null
+++ b/po.ayatana-webmail.desktop/sr.po
@@ -0,0 +1,50 @@
+# Serbian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016.
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:21+0000\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian <gnom@prevod.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+"Language: sr\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Пошта Јунитија"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Саставите поруку"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Послато"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Пријемно сандуче"
diff --git a/po.ayatana-webmail.desktop/tr.po b/po.ayatana-webmail.desktop/tr.po
new file mode 100755
index 0000000..0208e05
--- /dev/null
+++ b/po.ayatana-webmail.desktop/tr.po
@@ -0,0 +1,50 @@
+# Turkish translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:45+0000\n"
+"Last-Translator: sonmez <sonmezsahut@yahoo.com>\n"
+"Language-Team: Turkish <tr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Mektup Yaz"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Gönderilenler"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Gelenler"
diff --git a/po.ayatana-webmail.desktop/ug.po b/po.ayatana-webmail.desktop/ug.po
new file mode 100755
index 0000000..2619b90
--- /dev/null
+++ b/po.ayatana-webmail.desktop/ug.po
@@ -0,0 +1,50 @@
+# Uyghur translation for ayatana-webmail
+# Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 17:54+0000\n"
+"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
+"Language-Team: Uyghur <ug@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Compose Mail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "ئەۋەتكەنلىرى"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "خەتدان"
diff --git a/po.ayatana-webmail.desktop/uk.po b/po.ayatana-webmail.desktop/uk.po
new file mode 100755
index 0000000..cb6d52d
--- /dev/null
+++ b/po.ayatana-webmail.desktop/uk.po
@@ -0,0 +1,50 @@
+# Ukrainian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-03 16:27+0000\n"
+"Last-Translator: Vitalii Paslavskyi <vpaslavskyi@gmail.com>\n"
+"Language-Team: Ukrainian <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr "Ayatana Webmail"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr "Позначити всі як прочитані"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "Написати листа"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "Надіслані"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr "Налаштування"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "Вхідні"
diff --git a/po.ayatana-webmail.desktop/zh_CN.po b/po.ayatana-webmail.desktop/zh_CN.po
new file mode 100755
index 0000000..57dcfda
--- /dev/null
+++ b/po.ayatana-webmail.desktop/zh_CN.po
@@ -0,0 +1,50 @@
+# Chinese (Simplified) translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2019-12-30 10:28+0000\n"
+"Last-Translator: aerowolf <aerowolf@tom.com>\n"
+"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:4
+msgid "Ayatana Webmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:39
+msgid "Webmail notifications and actions for any desktop"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:64
+msgid "ayatanawebmail"
+msgstr ""
+
+#: data/usr/share/applications/ayatana-webmail.desktop:74
+msgid "Mark all as read"
+msgstr "全部标记为已读"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:112
+msgid "Compose Mail"
+msgstr "撰写邮件"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:152
+msgid "Sent"
+msgstr "已发邮件"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:192
+msgid "Settings"
+msgstr "设置"
+
+#: data/usr/share/applications/ayatana-webmail.desktop:228
+msgid "Inbox"
+msgstr "收件箱"
diff --git a/po/ayatanawebmail.pot b/po/ayatanawebmail.pot
new file mode 100755
index 0000000..8e22f6a
--- /dev/null
+++ b/po/ayatanawebmail.pot
@@ -0,0 +1,284 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Robert Tari
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail 20.7.7\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-07-07 20:29+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:204
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:211
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:218
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:979
+msgid "No subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:1131
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1132
+#, python-brace-format
+msgid "Unable to connect to account \"{accountName}\", the application will now exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1132
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1157
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ayatanawebmail/application.py:1184
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1186
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1188
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1201
+#, python-format
+msgid "New mail from %s"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:62
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:63
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:95
+msgid "Append an additional string - you can use the $MSG_THREAD and $MSG_UID placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:116 ayatanawebmail/dialog.py:130
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:158
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:166
+msgid "Accounts"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "Options"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:168
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:169
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:232
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:236
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:237
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:256
+msgid "Choose an account"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:263
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:278
+msgid "Server data"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:280
+msgid "Account data"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:291
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:299
+msgid "Host:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:301
+msgid "Port:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:304
+msgid "Login:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:306
+msgid "Password:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:308
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:311
+msgid "Home:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:313
+msgid "Compose:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:315
+msgid "Inbox:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:318
+msgid "Sent:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:357
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:358
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:368
+msgid "Enable notifications:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:376
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:379
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:386
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:430
+msgid "translator-credits"
+msgstr ""
diff --git a/po/bg.po b/po/bg.po
new file mode 100755
index 0000000..f1911b7
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,296 @@
+# Bulgarian translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Language-Team: Bulgarian <bg@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Без тема"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Има %d непрочетено писмо"
+msgstr[1] "Има %d непрочетени писма"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "от %(t0)s, %(t1)s и други"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "от %(t0)s и %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "от %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Ново писмо от %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Настройки на Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Акаунти"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Опции"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Избор на акаунт"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Данни за сървъра"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Данни за регистрацията"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Хост:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Порт:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Потребител:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Парола:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Домашен:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Състави:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Входящи:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Изпратени:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Вклчване на известявания"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/ca.po b/po/ca.po
new file mode 100755
index 0000000..2a03693
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,296 @@
+# Catalan translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Sense assumpte"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Teniu %d missatge(s) per llegir"
+msgstr[1] "Teniu %d missatges per llegir"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "d’%(t0)s, %(t1)s i uns altres"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "de %(t0)s, i %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "de %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Correu nou de %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Comptes"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Opcions"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Trieu un compte"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Dades del servidor"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Dades del compte"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Servidor:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Nom d'usuari:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Contrasenya:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Inici"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Redacció:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Safata d'entrada:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Enviat:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Habilita les notificacions:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "So personalitzat a reproduir:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/cs.po b/po/cs.po
new file mode 100755
index 0000000..86a7c7d
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,297 @@
+# Czech translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Žádný předmět"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Máte %d nepřečtený e-mailů"
+msgstr[1] "Máte %d nepřečtených e-mailů"
+msgstr[2] "You have %d unread mails"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "Od %(t0)s, %(t1)s a ostatních"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "Od %(t0)s a %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "od %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nový email od %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Nastavení Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Účty"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Volby"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Vybrat účet"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Údaje o serveru"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Údaje o účtu"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Hostitel:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Přihlašovací jméno:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Heslo:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Domů:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Napsat:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Inbox:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Odeslat:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Povolit oznámení"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Vlastní zvuk:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/cy.po b/po/cy.po
new file mode 100755
index 0000000..647d9da
--- /dev/null
+++ b/po/cy.po
@@ -0,0 +1,299 @@
+# Welsh translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Welsh <cy@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
+"2 : 3;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Dim pwnc"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Mae gennych %d ebost heb ei darllen"
+msgstr[1] "Mae gennych %d ebost heb eu darllen"
+msgstr[2] "Mae gennych %d ebost heb eu darllen"
+msgstr[3] "Mae gennych %d ebost heb eu darllen"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Ebost newydd wrth %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Dewisiadau Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Cyfrifon"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Opsiynau"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Dewis cyfrif"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Gwybodaeth gweinydd"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Gwybodaeth cyfrif"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Gwesteiwr:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Porth:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Mewngofnodi:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Cyfrinair:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Careref:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Ysgrifennu:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Mewnflwch:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Anfonwyd:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Galluogi hysbysiadau:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/de.po b/po/de.po
new file mode 100755
index 0000000..75cced9
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,304 @@
+# German translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-11 11:01+0000\n"
+"Last-Translator: Tobias Bannert <tobannert@gmail.com>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr "Konto auswählen"
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr "Welche(n) Kontobefehl/-Seite möchten Sie öffnen?"
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr "Nachrichtenaktionen"
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr "Löschen"
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr "Als gelesen markieren"
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr "Nachricht öffnen / Befehl ausführen"
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr "Absender"
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr "Betreff"
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr "Webmail-Startseite öffnen"
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr "Leeren"
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Kein Betreff"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr "Verbindungsfehler"
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+"Zu Konto »{accountName}« kann nicht verbunden werden, die Anwendung wird "
+"jetzt beendet."
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr "Sie können »{command}« ausführen, um alle Anmeldedaten zu löschen."
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Sie haben %d ungelesene Nachricht"
+msgstr[1] "Sie haben %d ungelesene Nachrichten"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "von %(t0)s, %(t1)s und anderen"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "von %(t0)s und %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "von %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Neue E-Mail von %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr "Internetseite"
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr "Befehl"
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr "(–––)"
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana-Webmail-Einstellungen"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Konten"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Optionen"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr "Unterstützung"
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "Info"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+"Bitte besuchen Sie den folgenden Verweis und aktivieren Sie den Zugriff für "
+"weniger sichere Anwendungen:"
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr "Zugriff durch Google gesperrt"
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+"Verbindung zum E-Mail-Konto fehlgeschlagen. Der zurückgegebene Fehler war:"
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr "Verbindungsfehler"
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Konto auswählen"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "Entfernen"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Serverdaten"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Kontodaten"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr "Verknüpfungen"
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Host:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Benutzername:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Passwort:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr "Ordner:"
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Privat:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Erstellen:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Posteingang:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Gesendet:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr "Nachrichten als gelesen markieren"
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr "Nachricht im Browser öffnen / Befehl ausführen"
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr "Fragen was zu tun ist"
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Benachrichtigungen aktivieren:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr "Nachrichten aus derselben Konversation zusammenführen:"
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr "Wenn eine Nachricht aktiviert ist:"
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Benutzerdefinierter Ton zum Abspielen:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr "Einen Fehler melden / Eine Funktion anfragen"
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr "Eine Frage stellen"
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr "Übersetzen helfen"
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr "Projektseite"
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr "Quelltext"
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr "Paketquelle"
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr "Startseite"
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Tobias Bannert https://launchpad.net/~toba"
diff --git a/po/el.po b/po/el.po
new file mode 100755
index 0000000..26e7bce
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,296 @@
+# Greek translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Greek <el@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Χωρίς θέμα"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Έχετε %d αδιάβαστο μήνυμα"
+msgstr[1] "Έχετε %d αδιάβαστα μηνύματα"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "Από %(t0)s, %(t1)s και άλλα"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "από %(t0)s and %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "από %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Νέο μήνυμα από %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Προτιμήσεις Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Λογαριασμοί"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Προτιμήσεις"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Επιλέξτε έναν λογαριασμό"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Στοιχεία διακομιστή"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Στοιχεία λογαριασμού"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Διακομιστής:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Θύρα:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Είσοδος:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Κωδικός πρόσβασης:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Αρχική:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Σύνθεση:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Εισερχόμενα:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Απεσταλμένα:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Ενεργοποίηση ειδοποιήσεων:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Επιλογή ήχου προς αναπαραγωγή:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/en_AU.po b/po/en_AU.po
new file mode 100755
index 0000000..969dfac
--- /dev/null
+++ b/po/en_AU.po
@@ -0,0 +1,296 @@
+# English (Australia) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: English (Australia) <en_AU@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "No subject"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "You have %d unread mail"
+msgstr[1] "You have %d unread mails"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "from %(t0)s, %(t1)s and others"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "from %(t0)s and %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "from %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "New mail from %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail Preferences"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Accounts"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Options"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Choose an account"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Server data"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Account data"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Host:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Login:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Password:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Home:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Compose:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Inbox:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Sent:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Enable notifications:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Custom sound to play:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/en_CA.po b/po/en_CA.po
new file mode 100755
index 0000000..2873d5b
--- /dev/null
+++ b/po/en_CA.po
@@ -0,0 +1,296 @@
+# English (Canada) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: English (Canada) <en_CA@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "No subject"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "You have %d unread mail"
+msgstr[1] "You have %d unread mails"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "New mail from %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail Preferences"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Accounts"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Options"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Choose an account"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Server data"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Account data"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Host:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Login:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Password:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Home:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Compose:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Inbox:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Sent:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Enable notifications:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100755
index 0000000..c760782
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,299 @@
+# English (United Kingdom) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-09 21:31+0000\n"
+"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr "Select account"
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr "Which account's command/web page would you like to open?"
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr "Message actions"
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr "Delete"
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr "Mark as read"
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr "Open message/Run command"
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr "Sender"
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr "Subject"
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr "Open webmail home page"
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr "Clear"
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr "Settings"
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "No subject"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr "Connection error"
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr "You can run \"{command}\" to delete all your login settings."
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "You have %d unread message"
+msgstr[1] "You have %d unread messages"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "from %(t0)s, %(t1)s and others"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "from %(t0)s and %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "from %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "New message from %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr "Web page"
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr "Command"
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr "(None)"
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail Preferences"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Accounts"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Options"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr "Support"
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "About"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+"Please visit the following link and enable access for less secure apps:"
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr "Access blocked by Google"
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr "Failed to connect to mail account. The returned error was:"
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr "Connection failure"
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Choose an account"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Add"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "Remove"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Server data"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Account data"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr "Links"
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Host:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Login:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Password:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr "Folders:"
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Home:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Compose:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Inbox:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Sent:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr "Mark message as read"
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr "Open message in browser/Execute command"
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr "Ask me what to do"
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Enable notifications:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr "Merge messages from the same conversation:"
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr "When a message is activated:"
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Custom sound to play:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr "Report a bug/Request a feature"
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr "Ask a question"
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr "Help translate"
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr "Project page"
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr "Source code"
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr "Repository"
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr "Home page"
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/es.po b/po/es.po
new file mode 100755
index 0000000..0e927a7
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,296 @@
+# Spanish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Sin asunto"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Tiene %d mensaje sin leer"
+msgstr[1] "Tiene %d mensajes sin leer"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "de %(t0)s, %(t1)s y otros"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "de %(t0)s y %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "de %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Correo nuevo de %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Preferencias de Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Cuentas"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Opciones"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Elija una cuenta"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Datos del servidor"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Datos de la cuenta"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Servidor:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Puerto:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Usuario:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Contraseña:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Domicilio:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Redactar:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Bandeja de entrada:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Enviados:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Activar notificaciones:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Sonido personalizado:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/et.po b/po/et.po
new file mode 100755
index 0000000..7386e3a
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,296 @@
+# Estonian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Language-Team: Estonian <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Uus kiri %s-lt"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Vali konto"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Serveri andmed"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Konto andmed"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Server:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Kasutajanimi:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Parool:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/fi.po b/po/fi.po
new file mode 100755
index 0000000..2e810c2
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,296 @@
+# Finnish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Language-Team: Finnish <fi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Ei aihetta"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "%d lukematon sähköposti"
+msgstr[1] "%d lukematonta sähköpostia"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Uutta sähköpostia osoitteesta %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Tilit"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Asetukset"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Valitse tili"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Palvelintiedot"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Tilitiedot"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Palvelin:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Portti:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Käyttäjätunnus:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Salasana:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Koti:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Lähetä:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Saapuneet:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Lähetetyt:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Käytä ilmoituksia:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/fr.po b/po/fr.po
new file mode 100755
index 0000000..67f5728
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,306 @@
+# French translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2020-05-17 08:39+0000\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Launchpad-Export-Date: 2020-05-18 06:03+0000\n"
+"X-Generator: Launchpad (build 0385b538081bc4718df6fb844a3afc89729c94ce)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr "Sélectionner un compte"
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr "Quelle commande/page web du compte voulez-vous ouvrir ?"
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr "Actions sur les messages"
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr "Supprimer"
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr "Marquer comme lu"
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr "Ouvrir le message/lancer une commande"
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr "Expéditeur"
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr "Objet"
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr "Ouvrir la page d'accueil du webmail"
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr "Effacer"
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr "Paramètres"
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Pas d'objet"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr "Erreur de connexion"
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+"Impossible de se connecter au compte \"{accountName}\", l'application va "
+"maintenant se fermer."
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+"Vous pouvez lancer \"{command}\" pour effacer tous vos réglages de connexion"
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Vous avez %d courriel non lu"
+msgstr[1] "Vous avez %d courriels non lus"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "de %(t0)s, %(t1)s et autres"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "de %(t0)s et %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "de %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nouveau courriel de %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr "Page web"
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr "Commande"
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+"Ajoutez une chaîne supplémentaire - vous pouvez utiliser les variables "
+"spéciales $MSG_THREAD et $MSG_UID."
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr "(Aucun)"
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Préférences d'Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Comptes"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Options"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr "Assistance"
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "À propos"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+"Veuillez visiter le lien suivant et permettre l'accès des applications moins "
+"sécurisées"
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr "Accès bloqué par Google"
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr "Impossible de se connecter au compte. Erreur retournée :"
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr "Échec de la connexion"
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Choisir un compte"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Ajouter"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "Supprimer"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Données du serveur"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Données du compte"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr "Liens"
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Hôte :"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port :"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Nom d'utilisateur :"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Mot de passe :"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr "Dossier :"
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Accueil :"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Composer :"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Boîte de réception :"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Messages envoyés :"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr "Marquer comme lu"
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr "Ouvrir le message dans le navigateur/exécuter une commande"
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr "Me demander quoi faire"
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Activer les notifications :"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr "Jouer un son à la reception d'un message"
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr "Fusionner les messages de la même conversation"
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr "Masquer le compteur lorsqu'il est à zero"
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr "Quand un message est selectionné"
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr "Exécuter cette commande quand un message est arrivé"
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Son personnalisé à jouer :"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr "Signaler un bogue/demander une fonctionnalité"
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr "Poser une question"
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr "Aider à la traduction"
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr "Page web du projet"
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr "Code source"
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr "Dépôt"
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr "Page d’accueil"
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Jean-Marc https://launchpad.net/~m-balthazar\n"
+" rcspam https://launchpad.net/~rcspam"
diff --git a/po/gl.po b/po/gl.po
new file mode 100755
index 0000000..1204b7c
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,296 @@
+# Galician translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Galician <gl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Sen asunto"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Ten %d mensaxe sen ler"
+msgstr[1] "Ten %d mensaxes sen ler"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "de %(t0)s, %(t1)s e outros"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "de %(t0)s e %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "de %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Novo correo de %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Preferencias de Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Contas"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Opcións"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Escolla unha conta"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Datos do servidor"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Datos da conta"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Servidor:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Porto:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Usuario:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Contrasinal:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Inicio:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Redactar:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Caixa de entrada:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Enviados:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Activar notificacións:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Son personalizado:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/hr.po b/po/hr.po
new file mode 100755
index 0000000..8cab154
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,298 @@
+# Croatian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Croatian <hr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Nema naslova"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Imate %d nepročitanu poruku"
+msgstr[1] "Imate %d nepročitane poruke"
+msgstr[2] "Imate %d nepročitanih poruka"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "od %(t0)s, %(t1)s i ostalih"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "od %(t0)s i %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "od %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nova pošta od %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail osobitosti"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Korisnički računi"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Mogućnosti"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "O programu"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Odaberite račun"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Dodaj"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Podaci poslužitelja"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Podaci računa"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Poslužitelj:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Prijava:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Lozinka:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Početna:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Nova poruka:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Dolazno:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Poslano:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Omogući obavijesti"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Poseban zvuk za reprodukciju:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/hu.po b/po/hu.po
new file mode 100755
index 0000000..7a406bf
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,299 @@
+# Hungarian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-11 21:04+0000\n"
+"Last-Translator: Sümegi Csaba <sumegics@gmail.com>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr "Fiók kiválasztása"
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr "Levélműveletek"
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr "Törlés"
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr "Megjelölés olvasottként"
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr "Levél megnyitása / parancs futtatása"
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr "Feladó"
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr "Tárgy"
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr "A levelező megnyitása a honlapon"
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr "Törlés"
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr "Beállítások"
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Nincs tárgy"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr "Kapcsolódási hiba"
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Ayatana Webmail: %d olvasatlan levél"
+msgstr[1] "Ayatana Webmail: %d olvasatlan levél"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "a feladók: %(t0)s, %(t1)s és mások"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "a feladók: %(t0)s és %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "a feladó: %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Új levél érkezett, a feladó: %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr "Weboldal"
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr "Parancs"
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr "(nincs)"
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail Beállítások"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Fiókok"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Beállítások"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr "Támogatás"
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "Névjegy"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr "Kapcsolódási hiba"
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Fiók kiválasztása"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Hozzáadás"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "Eltávolítás"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Kiszolgáló adatai"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Fiók adatai"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr "Linkek"
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Kiszolgáló:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Felhasználónév:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Jelszó:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr "Mappák:"
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Kezdőlap:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Levélírás:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Beérkező levelek:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Elküldött levelek:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr "Levél megjelölése olvasottként"
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr "Levél megnyitása böngészőben / parancs végrehajtása"
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr "Rákérdezés"
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Értesítések engedélyezése:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr "Azonos témájú levelek csoportosítása:"
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr "Levél kiválasztásakor:"
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Egyéni hangfájl:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr "Hiba jelentése / új funkció kérése"
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr "Kérdés feltevése"
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr "Közreműködés a fordításban"
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr "A projekt oldala"
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr "Forráskód"
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr "Csomagtároló"
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr "Honlap"
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Sümegi Csaba https://launchpad.net/~sumegics"
diff --git a/po/it.po b/po/it.po
new file mode 100755
index 0000000..267f76b
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,299 @@
+# Italian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Last-Translator: Emanuele Antonio Faraone <emanueleant03@gmail.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr "Apri l'home page della Mail"
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Nessun oggetto"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "C'è %d nuova email"
+msgstr[1] "Ci sono %d nuove email"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "Da %(t0)s, %(t1)s e altri"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "Da %(t0)s e %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "da %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nuova email da %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Preferenze di Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Account"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Opzioni"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "Informazioni su"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Scelta dell'account"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Aggiungi"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Dati del server"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Dati dell'account"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Host:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Porta:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Nome utente:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Password:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Home:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Composizione nuovo messaggio:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Posta in arrivo:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Posta inviata:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Abilitare le notifiche:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Suono personalizzato:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Emanuele Antonio Faraone https://launchpad.net/~emanueleant03"
diff --git a/po/ja.po b/po/ja.po
new file mode 100755
index 0000000..9993928
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,296 @@
+# Japanese translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "%sからの新着メール"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "アカウントを選択"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "サーバーの情報"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "アカウント情報"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "ホスト:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "ポート:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "ログイン名:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "パスワード:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/kk.po b/po/kk.po
new file mode 100755
index 0000000..a83156e
--- /dev/null
+++ b/po/kk.po
@@ -0,0 +1,296 @@
+# Kazakh translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Kazakh <kk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Тақырыбы жоқ"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "%s жаңа хат келді"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail баптаулары"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Тіркемелер"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Баптаулар"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Тіркемені таңдаңыз"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Сервер мәліметтері"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Тіркеме мәліметтері"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Хост аты:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Порт:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Пайдаланушы аты:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Құпия сөз:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Басты"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Жазу:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Кіріс:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Жіберілген:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Мәлімдемелерді қолдану:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/lt.po b/po/lt.po
new file mode 100755
index 0000000..87b4ae5
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,297 @@
+# Lithuanian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Lithuanian <lt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"(n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Naujas laiškas nuo %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Pasirinkite paskyrą"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Serverio duomenys"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Paskyros duomenys"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Serverio adresas:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Prievadas:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Prisijungimo vardas:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Slaptažodis:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/lv.po b/po/lv.po
new file mode 100755
index 0000000..869776f
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,297 @@
+# Latvian translation for ayatana-webmail
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Language-Team: Latvian <lv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Bez temata"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Jums ir %d neizlasīta vēstule"
+msgstr[1] "Jums ir %d neizlasītas vēstules"
+msgstr[2] "Jums ir %d neizlasītas vēstules"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "no %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Jauna vēstule no %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail uzstādījumi"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Konti"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Iestatījumi"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Izvēlieties kontu"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Servera dati"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Konta dati"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Hosts:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Ports:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Pieteikšanās vārds:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Parole:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Mājas:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Sastādīt:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Iesūtne:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Nosūtītās:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Ieslēgt paziņojumus:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Pielāgotā skaņa:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/ms.po b/po/ms.po
new file mode 100755
index 0000000..37995a9
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,296 @@
+# Malay translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Malay <ms@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Tiada tajuk"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Anda mempunyai %d mel belum dibaca"
+msgstr[1] "Anda mempunyai %d mel belum dibaca"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "dari %(t0)s, %(t1)s dan lain-lain"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "dari %(t0)s dan %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "dari %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Mel baru daripada %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Akaun"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Pilihan"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Pilih akaun"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Data pelayan"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Data akaun"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Hos:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Daftar Masuk:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Kata Laluan:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Rumah:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Gubah:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Kotak masuk:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Dihantar:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Benarkan pemberitahuan:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/nl.po b/po/nl.po
new file mode 100755
index 0000000..08bc3fa
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,296 @@
+# Dutch translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Dutch <nl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Geen onderwerp"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "U heeft %d ongelezen bericht"
+msgstr[1] "U heeft %d ongelezen berichten"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "van %(t0)s, %(t1)s en anderen"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "van %(t0)s en %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "van %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nieuw bericht van %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail-instellingen"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Accounts"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Instellingen"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Een account kiezen"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Servergegevens:"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Accountgegevens"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Host:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Poort:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Inlognaam:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Wachtwoord:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Startpagina:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Opstellen:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Postvak in:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Verzonden:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Notificaties inschakelen:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/nn.po b/po/nn.po
new file mode 100755
index 0000000..e6dda7e
--- /dev/null
+++ b/po/nn.po
@@ -0,0 +1,297 @@
+# Norwegian Nynorsk translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+# Stian Viskjer <stian@viskjer.net>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+"Language: nn\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Ingen emne"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Du har %d ulesen e-post"
+msgstr[1] "Du har %d ulesne e-postar"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "frå %(t0)s, %(t1)s og andre"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "frå %(t0)s og %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "frå %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Ny e-post frå %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail Innstillingar"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Kontoar"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Innstillingar"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Vel konto"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Tenar informasjon"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Kontodetaljar"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Vert:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Brukarnamn:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Passord:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Heim:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Skriv ny:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Innboks:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Sendt e-post:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Slå på skjermmeldingar:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/oc.po b/po/oc.po
new file mode 100755
index 0000000..20846f0
--- /dev/null
+++ b/po/oc.po
@@ -0,0 +1,296 @@
+# Occitan (post 1500) translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Occitan (post 1500) <oc@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Sens objècte"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Avètz %d corrièl pas legit"
+msgstr[1] "Avètz %d corrièls pas legits"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Corrièl novèl de %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Preferéncias d'Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Comptes"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Opcions"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Causir un compte"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Donadas del servidor"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Donadas del compte"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Òste :"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Pòrt :"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Identificant :"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Senhal :"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Ostal :"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Compausar"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Bóstia de recepcion :"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Mandat :"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Activar las notificacions :"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/pl.po b/po/pl.po
new file mode 100755
index 0000000..d79dd02
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,299 @@
+# Polish translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+# Piotr Sokół <psokol@jabster.pl>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Language-Team: polski <>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Brak tematu"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "%d nieprzeczytana wiadomość"
+msgstr[1] "%d nieprzeczytane wiadomości"
+msgstr[2] "%d nieprzeczytanych wiadomości"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "od %(t0)s, %(t1)s i innych nadawców"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "od %(t0)s i %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "od %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nowa wiadomość od %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Preferencje"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Konta"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Opcje"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Konto"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Dane serwera"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Dane konta"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Serwer:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Nazwa użytkownika:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Hasło:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Strona główna:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Tworzenie wiadomości:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Odebrane:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Wysłane:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Powiadomienia"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Wybrany dźwięk"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/pt.po b/po/pt.po
new file mode 100755
index 0000000..3665970
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,296 @@
+# Portuguese translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Sem assunto"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Você tem %d e-mail não lido"
+msgstr[1] "Você tem %d e-mails não lidos"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "de %(t0)s, %(t1)s e outros"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "de %(t0)s e %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "de %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Novo e-mail de %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Preferências do Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Contas"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Preferências"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Escolhe uma conta"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Dados do servidor"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Dados da conta"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Servidor:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Porta:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Utilizador:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Palavra-passe:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Pasta pessoal:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Compor mensagem:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Caixa de entrada:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Enviado:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Ativar notificações:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Som a tocar:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100755
index 0000000..5306cc7
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,296 @@
+# Brazilian Portuguese translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Sem assunto"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Você tem %d e-mail não lido"
+msgstr[1] "Você tem %d e-mails não lidos"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "de %(t0)s, %(t1)s e outros"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "de %(t0)s e %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "de %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Novo email de %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Preferências do Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Contas"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Preferências"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Escolha uma conta"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Dados do servidor"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Dados da conta"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Servidor:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Porta:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Login:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Senha:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Pessoal:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Redigir:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Caixa de entrada:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Enviados:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Ativar notificações"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/ru.po b/po/ru.po
new file mode 100755
index 0000000..da0be07
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,298 @@
+# Russian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Без темы"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "У вас %d непрочитанное письмо"
+msgstr[1] "У вас %d непрочитанных письма"
+msgstr[2] "У вас %d непрочитанных писем"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "от %(t0)s, %(t1)s и других"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "от %(t0)s и %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "от %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Новое письмо от %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Настройки Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Учётные записи"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Опции"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Выберите учётную запись"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Данные сервера"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Данные учетной записи"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Узел:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Порт:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Имя пользователя:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Пароль:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Домашняя:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Написать:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Входящие:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Отправленные:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Включить уведомления:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Проигрывать этот звук:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/sk.po b/po/sk.po
new file mode 100755
index 0000000..f31bfb1
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,297 @@
+# Slovak translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Slovak <sk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Bez predmetu"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Máte %d neprečítanú správu"
+msgstr[1] "Máte %d neprečítaných správ"
+msgstr[2] "Máte %d neprečítaných správ"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nová správa od %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Napísať správu"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Účty"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Predvoľby"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Zvoliť účet"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Nastavenie servera"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Údaje o účte"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Názov servera:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Prihlasovacie meno:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Heslo:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Domov:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Napísať správu:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Prijatá pošta"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Odoslané správy"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Povoliť notifikácie:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/sl.po b/po/sl.po
new file mode 100755
index 0000000..3a3b59b
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,299 @@
+# Slovenian translation for ayatana-webmail
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
+"n%100==4 ? 3 : 0);\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr "Izbriši"
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr "Označi kot prebrano"
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr "Pošiljatelj"
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr "Zadeva"
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr "Počisti"
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr "Nastavitve"
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Brez zadeve"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Imate %d neprebranih sporočil"
+msgstr[1] "Imate %d neprebrano sporočilo"
+msgstr[2] "Imate %d neprebrani sporočili"
+msgstr[3] "Imate %d neprebrana sporočila"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "od %(t0)s, %(t1)s in ostalih"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "od %(t0)s in %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "od %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Nova pošta od %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr "Spletna stran"
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr "Ukaz"
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr "(Brez)"
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Računi"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Možnosti"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr "Podpora"
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "O programu"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr "Povezava je spodletela"
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Izberite račun"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Dodaj"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "Odstrani"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Podatki strežnika"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Podatki računa"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr "Povezave"
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Gostitelj:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Vrata:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Prijava:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Geslo:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr "Mape:"
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Dom:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Sestavi:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Dohodna pošta:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Poslano:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr "Označi sporočilo kot prebrano"
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr "Vedno vprašaj za potrditev"
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Omogoči obvestila:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Predvajanje zvoka po meri:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr "Postavi vprašanje"
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr "Pomoč pri prevajanjnu"
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr "Stran projekta"
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr "Izvorna koda"
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr "Skladišče"
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr "Domača stran"
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/sr.po b/po/sr.po
new file mode 100755
index 0000000..1be31f5
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,299 @@
+# Serbian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# Саша Петровић <salepetronije@gmail.com>, 2013.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2016.
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Serbian <gnom@prevod.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+"Language: sr\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Без теме"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "Имате %d непрочитану поруку"
+msgstr[1] "Имате %d непрочитане поруке"
+msgstr[2] "Имате %d непрочитаних порука"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "од %(t0)s и %(t1)s и осталих"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "ос %(t0)s и %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "од %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "%s је послао нову поруку"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Поставке поште Јунитија"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Налози"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Могућности"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Изаберите налог"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Подаци о серверу"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Подаци о налогу"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Домаћин:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Прикључник:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Пријава:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Лозинка:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Почетна:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Састави:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Примљено:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Послато:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Омогући обавештења:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Произвољни звук за пуштање:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/tr.po b/po/tr.po
new file mode 100755
index 0000000..0f60155
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,296 @@
+# Turkish translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Language-Team: Turkish <tr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Başlık yok"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "%s'den"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "%s adlı kişiden yeni mail"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Ayatana Webmail tercihleri"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Hesaplar"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Seçenekler"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Bir hesap seçiniz"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Sunucu bilgileri"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Hesap bilgileri"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Sunucu:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Port:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Kullanıcı:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Parola:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Ev:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Yaz:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Gelen kutusu:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Gönderilen:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Bildirimleri etkinleştir:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
diff --git a/po/ug.po b/po/ug.po
new file mode 100755
index 0000000..afa436e
--- /dev/null
+++ b/po/ug.po
@@ -0,0 +1,299 @@
+# Uyghur translation for ayatana-webmail
+# Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:34+0000\n"
+"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
+"Language-Team: Uyghur <ug@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr ""
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr ""
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr ""
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr ""
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr ""
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "تېمىسىز"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr ""
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr ""
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "ھېساباتلار"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "تاللانما"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "ھېسابات تاللاش"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "مۇلازىمىتىر ئۇچۇرى"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "ھېساب سانلىق-مەلۇماتى"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "باش ئاپپارات:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "ئېغىز:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "تىزىمغا كىر:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "پارول"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "باش بەت"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "تور مەكتۈپ يېزىش"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "خەت ساندۇقى"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "ئەۋەتىلگەن:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "ئۇقتۇرۇشنى قوزغىتش"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Eltikin https://launchpad.net/~eltikinuyghur"
diff --git a/po/uk.po b/po/uk.po
new file mode 100755
index 0000000..8a147e2
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,307 @@
+# Ukrainian translation for ayatana-webmail
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2018-06-04 07:33+0000\n"
+"Last-Translator: Vitalii Paslavskyi <vpaslavskyi@gmail.com>\n"
+"Language-Team: Ukrainian <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr ""
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr ""
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr "Дії з повідомленнями"
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr "Видалити"
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr "Позначити як прочитане"
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr ""
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr "Відправник"
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr "Тема"
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr "Відкрити пошту в оглядачі"
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr "Очистити"
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr "Налаштування"
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "Без теми"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr ""
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr ""
+"Неможливо з'єднатись із обліковим записом \"{accountName}\", програма зараз "
+"закриється."
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr ""
+"Ви можете запустити \"{command}\" для знищення усіх ваших налаштувань входу."
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "У вас %d непрочитаний лист"
+msgstr[1] "У вас %d непрочитаних листи"
+msgstr[2] "У вас %d непрочитаних листів"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "Від %(t0)s, %(t1)s та інших"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "Від %(t0)s та %(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "від %s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "Нове повідомлення від %s"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr "Веб-сторінка"
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr "Команда"
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr ""
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr "(Відсутнє)"
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr "Налаштування Ayatana Webmail"
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "Облікові записи"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "Параметри"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr "Підтримка"
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "Про програму"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr ""
+"Будь ласка, відвідайте наступне посилання та надайте доступ для менш "
+"безпечних додатків:"
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr "Доступ заблокований Google"
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr ""
+"Не вдалось підключитися до поштового облікового запису. Повернено помилку:"
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr "Невдале з'єднання"
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "Виберіть обліковий запис"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "Додати"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "Вилучити"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "Дані серверу"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "Дані облікового запису"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr "Посилання"
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "Хост:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "Порт:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "Логін:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "Пароль:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr "Теки:"
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "Головна сторінка:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "Написати:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "Вхідні:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "Надіслані:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr "Позначити повідомлення як прочитане"
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr "Відкрити повідомлення в оглядачі/Виконати команду"
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr "Запитати мене, що робити"
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "Увімкнути сповіщення:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr "Об'єднувати повідомлення з цієї ж розмови"
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr "Коли повідомлення активне:"
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "Вибрати звук сповіщення:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr "Повідомити про помилку/Запит про довідку"
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr "Запитати"
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr "Допомогти з перекладом"
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr "Сторінка проекту"
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr "Джерельний код"
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr "Репозиторій"
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr "Домашня сторінка"
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Vitalii Paslavskyi https://launchpad.net/~vpaslavskyi"
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100755
index 0000000..472b6a8
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,298 @@
+# Chinese (Simplified) translation for ayatana-webmail
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the ayatana-webmail package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ayatana-webmail\n"
+"Report-Msgid-Bugs-To: https://github.com/AyatanaIndicators/ayatana-webmail/issues\n"
+"POT-Creation-Date: 2020-04-03 12:21+0200\n"
+"PO-Revision-Date: 2019-12-31 07:09+0000\n"
+"Last-Translator: aerowolf <aerowolf@tom.com>\n"
+"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Launchpad-Export-Date: 2020-04-04 05:58+0000\n"
+"X-Generator: Launchpad (build a296f04231dee355be5db73cc878b9e21689a253)\n"
+
+#: ayatanawebmail/accounts.py:18
+msgid "Select account"
+msgstr "选择账户"
+
+#: ayatanawebmail/accounts.py:29
+msgid "Which account's command/web page would you like to open?"
+msgstr "您想要打开哪个账户的命令行/网页页面?"
+
+#: ayatanawebmail/actions.py:15
+msgid "Message actions"
+msgstr "消息操作"
+
+#: ayatanawebmail/actions.py:15
+msgid "Delete"
+msgstr "删除"
+
+#: ayatanawebmail/actions.py:15
+msgid "Mark as read"
+msgstr "标记为已读"
+
+#: ayatanawebmail/actions.py:15
+msgid "Open message/Run command"
+msgstr "打开消息/运行命令"
+
+#: ayatanawebmail/actions.py:24
+msgid "Sender"
+msgstr "发件人"
+
+#: ayatanawebmail/actions.py:26
+msgid "Subject"
+msgstr "标题"
+
+#: ayatanawebmail/application.py:205
+msgid "Open webmail home page"
+msgstr "打开网页版邮箱"
+
+#: ayatanawebmail/application.py:212
+msgid "Clear"
+msgstr "清空"
+
+#: ayatanawebmail/application.py:219
+msgid "Settings"
+msgstr "设置"
+
+#: ayatanawebmail/application.py:980
+msgid "No subject"
+msgstr "无主题"
+
+#: ayatanawebmail/application.py:1132
+msgid "Connection error"
+msgstr "连接错误"
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid ""
+"Unable to connect to account \"{accountName}\", the application will now "
+"exit."
+msgstr "不能连接到账户 \"{accountName}\",程序现在退出。"
+
+#: ayatanawebmail/application.py:1133
+#, python-brace-format
+msgid "You can run \"{command}\" to delete all your login settings."
+msgstr "您可以运行\"{command}\"命令来删除所有的登录设置。"
+
+#: ayatanawebmail/application.py:1158
+#, python-format
+msgid "You have %d unread mail"
+msgid_plural "You have %d unread mails"
+msgstr[0] "您有%d封未读邮件"
+
+#: ayatanawebmail/application.py:1185
+#, python-format
+msgid "from %(t0)s, %(t1)s and others"
+msgstr "来自%(t0)s,%(t1)s与其他人"
+
+#: ayatanawebmail/application.py:1187
+#, python-format
+msgid "from %(t0)s and %(t1)s"
+msgstr "来自%(t0)s与%(t1)s"
+
+#: ayatanawebmail/application.py:1189
+#, python-format
+msgid "from %s"
+msgstr "来自%s"
+
+#: ayatanawebmail/application.py:1202
+#, python-format
+msgid "New mail from %s"
+msgstr "%s 发来的新邮件"
+
+#: ayatanawebmail/dialog.py:60
+msgid "Web page"
+msgstr "网页"
+
+#: ayatanawebmail/dialog.py:61
+msgid "Command"
+msgstr "命令"
+
+#: ayatanawebmail/dialog.py:93
+msgid ""
+"Append an additional string - you can use the $MSG_THREAD and $MSG_UID "
+"placeholders."
+msgstr "附加一个字符串 - 您可以使用$MSG_THREAD和$MSG_UID占位符。"
+
+#: ayatanawebmail/dialog.py:114 ayatanawebmail/dialog.py:128
+msgid "(None)"
+msgstr "(无)"
+
+#: ayatanawebmail/dialog.py:156
+msgid "Ayatana Webmail Preferences"
+msgstr ""
+
+#: ayatanawebmail/dialog.py:164
+msgid "Accounts"
+msgstr "账户"
+
+#: ayatanawebmail/dialog.py:165
+msgid "Options"
+msgstr "选项"
+
+#: ayatanawebmail/dialog.py:166
+msgid "Support"
+msgstr "支持"
+
+#: ayatanawebmail/dialog.py:167
+msgid "About"
+msgstr "关于"
+
+#: ayatanawebmail/dialog.py:228
+msgid ""
+"Please visit the following link and enable access for less secure apps:"
+msgstr "请访问以下链接并启用对不太安全的应用程序的访问:"
+
+#: ayatanawebmail/dialog.py:230
+msgid "Access blocked by Google"
+msgstr "访问被Google阻止"
+
+#: ayatanawebmail/dialog.py:234
+msgid "Failed to connect to mail account. The returned error was:"
+msgstr "连接到邮件账户失败。返回的错误是:"
+
+#: ayatanawebmail/dialog.py:235
+msgid "Connection failure"
+msgstr "连接失败"
+
+#: ayatanawebmail/dialog.py:254
+msgid "Choose an account"
+msgstr "选择账户"
+
+#: ayatanawebmail/dialog.py:259
+msgid "Add"
+msgstr "添加"
+
+#: ayatanawebmail/dialog.py:261
+msgid "Remove"
+msgstr "移除"
+
+#: ayatanawebmail/dialog.py:276
+msgid "Server data"
+msgstr "服务器信息"
+
+#: ayatanawebmail/dialog.py:278
+msgid "Account data"
+msgstr "帐户信息"
+
+#: ayatanawebmail/dialog.py:289
+msgid "Links"
+msgstr "链接"
+
+#: ayatanawebmail/dialog.py:297
+msgid "Host:"
+msgstr "服务器地址:"
+
+#: ayatanawebmail/dialog.py:299
+msgid "Port:"
+msgstr "端口:"
+
+#: ayatanawebmail/dialog.py:302
+msgid "Login:"
+msgstr "用户名:"
+
+#: ayatanawebmail/dialog.py:304
+msgid "Password:"
+msgstr "密码:"
+
+#: ayatanawebmail/dialog.py:306
+msgid "Folders:"
+msgstr "文件夹:"
+
+#: ayatanawebmail/dialog.py:309
+msgid "Home:"
+msgstr "主页:"
+
+#: ayatanawebmail/dialog.py:311
+msgid "Compose:"
+msgstr "撰写邮件:"
+
+#: ayatanawebmail/dialog.py:313
+msgid "Inbox:"
+msgstr "收件箱:"
+
+#: ayatanawebmail/dialog.py:316
+msgid "Sent:"
+msgstr "已发邮件:"
+
+#: ayatanawebmail/dialog.py:354
+msgid "Mark message as read"
+msgstr "标记为已读"
+
+#: ayatanawebmail/dialog.py:355
+msgid "Open message in browser/Execute command"
+msgstr "在浏览器中打开邮件/执行命令"
+
+#: ayatanawebmail/dialog.py:356
+msgid "Ask me what to do"
+msgstr "询问做什么"
+
+#: ayatanawebmail/dialog.py:366
+msgid "Enable notifications:"
+msgstr "启用通知:"
+
+#: ayatanawebmail/dialog.py:368
+msgid "Play sound when a message is received:"
+msgstr "收到邮件时播放声音:"
+
+#: ayatanawebmail/dialog.py:370
+msgid "Merge messages from the same conversation:"
+msgstr "合并同一对话中的邮件:"
+
+#: ayatanawebmail/dialog.py:372
+msgid "Hide count when zero:"
+msgstr "当为0时隐藏计数"
+
+#: ayatanawebmail/dialog.py:374
+msgid "When a message is activated:"
+msgstr "当邮件被激活时:"
+
+#: ayatanawebmail/dialog.py:377
+msgid "Execute this command when a message is received:"
+msgstr "当收到邮件时执行此命令:"
+
+#: ayatanawebmail/dialog.py:384
+msgid "Custom sound to play:"
+msgstr "自定义要播放的声音:"
+
+#: ayatanawebmail/dialog.py:400
+msgid "Report a bug/Request a feature"
+msgstr "报告Bug/提出建议"
+
+#: ayatanawebmail/dialog.py:402
+msgid "Ask a question"
+msgstr "问个问题"
+
+#: ayatanawebmail/dialog.py:404
+msgid "Help translate"
+msgstr "帮助翻译"
+
+#: ayatanawebmail/dialog.py:406
+msgid "Project page"
+msgstr "项目主页"
+
+#: ayatanawebmail/dialog.py:408
+msgid "Source code"
+msgstr "源代码"
+
+#: ayatanawebmail/dialog.py:410
+msgid "Repository"
+msgstr "软件库"
+
+#: ayatanawebmail/dialog.py:412
+msgid "Home page"
+msgstr "主页"
+
+#: ayatanawebmail/dialog.py:426
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" aerowolf https://launchpad.net/~aerowolf-tom"
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..4ec01da
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,117 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import os, polib, configparser
+from setuptools import setup
+from ayatanawebmail.appdata import *
+
+oFile = open('data/etc/xdg/autostart/ayatana-webmail-autostart.desktop', 'r+')
+oConfigParser = configparser.ConfigParser()
+oConfigParser.optionxform = str
+oConfigParser.read_file(oFile)
+
+for strRoot, lstDirnames, lstFilenames in os.walk('po.ayatana-webmail-autostart.desktop'):
+
+ for strFilename in lstFilenames:
+
+ if strFilename.endswith('po'):
+
+ strLocale = os.path.splitext(strFilename)[0]
+
+ for oEntry in polib.pofile('po.ayatana-webmail-autostart.desktop/' + strFilename).translated_entries():
+
+ if oEntry.msgid == oConfigParser['Desktop Entry']['Name']:
+ oConfigParser['Desktop Entry']['Name[' + strLocale + ']'] = oEntry.msgstr
+ elif oEntry.msgid == oConfigParser['Desktop Entry']['Comment']:
+ oConfigParser['Desktop Entry']['Comment[' + strLocale + ']'] = oEntry.msgstr
+
+oFile.seek(0)
+oConfigParser.write(oFile, False)
+oFile.truncate()
+oFile.close()
+
+oFile = open('data/usr/share/applications/ayatana-webmail.desktop', 'r+')
+oConfigParser = configparser.ConfigParser()
+oConfigParser.optionxform = str
+oConfigParser.read_file(oFile)
+
+for strRoot, lstDirnames, lstFilenames in os.walk('po.ayatana-webmail.desktop'):
+
+ for strFilename in lstFilenames:
+
+ if strFilename.endswith('po'):
+
+ strLocale = os.path.splitext(strFilename)[0]
+
+ for oEntry in polib.pofile('po.ayatana-webmail.desktop/' + strFilename).translated_entries():
+
+ if oEntry.msgid == oConfigParser['Desktop Entry']['Name']:
+ oConfigParser['Desktop Entry']['Name[' + strLocale + ']'] = oEntry.msgstr
+ elif oEntry.msgid == oConfigParser['Desktop Entry']['Comment']:
+ oConfigParser['Desktop Entry']['Comment[' + strLocale + ']'] = oEntry.msgstr
+ elif oEntry.msgid == oConfigParser['Desktop Action Clear']['Name']:
+ oConfigParser['Desktop Action Clear']['Name[' + strLocale + ']'] = oEntry.msgstr
+ elif oEntry.msgid == oConfigParser['Desktop Action Compose']['Name']:
+ oConfigParser['Desktop Action Compose']['Name[' + strLocale + ']'] = oEntry.msgstr
+ elif oEntry.msgid == oConfigParser['Desktop Action Sent']['Name']:
+ oConfigParser['Desktop Action Sent']['Name[' + strLocale + ']'] = oEntry.msgstr
+ elif oEntry.msgid == oConfigParser['Desktop Action Change']['Name']:
+ oConfigParser['Desktop Action Change']['Name[' + strLocale + ']'] = oEntry.msgstr
+ elif oEntry.msgid == oConfigParser['Desktop Action Inbox']['Name']:
+ oConfigParser['Desktop Action Inbox']['Name[' + strLocale + ']'] = oEntry.msgstr
+
+oFile.seek(0)
+oConfigParser.write(oFile, False)
+oFile.truncate()
+oFile.close()
+
+m_lstDataFiles = []
+
+for strRoot, lstDirnames, lstFilenames in os.walk('po'):
+
+ for strFilename in lstFilenames:
+
+ strLocale = os.path.splitext(strFilename)[0]
+
+ if strLocale != APPNAME:
+
+ strLocaleDir = 'data/usr/share/locale/' + strLocale + '/LC_MESSAGES/'
+
+ if not os.path.isdir(strLocaleDir):
+ os.makedirs(strLocaleDir)
+
+ polib.pofile('po/' + strFilename).save_as_mofile(strLocaleDir + APPNAME + '.mo')
+
+for strRoot, lstDirnames, lstFilenames in os.walk('data'):
+
+ for strFilename in lstFilenames:
+
+ strPath = os.path.join(strRoot, strFilename)
+ m_lstDataFiles.append((os.path.dirname(strPath).lstrip('data'), [strPath]))
+
+setup(
+ name = APPNAME,
+ version = APPVERSION,
+ description = APPDESCRIPTION,
+ long_description = APPLONGDESCRIPTION,
+ url = APPURL,
+ author = APPAUTHOR,
+ author_email = APPMAIL,
+ maintainer = APPAUTHOR,
+ maintainer_email = APPMAIL,
+ license = 'GPL-3',
+ classifiers = [
+ 'Development Status :: 5 - Production/Stable',
+ 'Environment :: X11 Applications :: GTK',
+ 'Intended Audience :: End Users/Desktop',
+ 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
+ 'Natural Language :: English',
+ 'Operating System :: POSIX :: Linux',
+ 'Programming Language :: Python :: 3 :: Only',
+ 'Topic :: Communications :: Email'
+ ],
+ keywords = APPKEYWORDS,
+ packages = [APPNAME],
+ data_files = m_lstDataFiles,
+ platforms = 'UNIX'
+ )