Hello community,

here is the log from the commit of package enigmail for openSUSE:Factory 
checked in at 2020-10-08 13:13:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/enigmail (Old)
 and      /work/SRC/openSUSE:Factory/.enigmail.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "enigmail"

Thu Oct  8 13:13:15 2020 rev:43 rq:839999 version:2.2.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/enigmail/enigmail.changes        2020-10-05 
19:28:57.488475233 +0200
+++ /work/SRC/openSUSE:Factory/.enigmail.new.4249/enigmail.changes      
2020-10-08 13:13:41.959254738 +0200
@@ -1,0 +2,7 @@
+Wed Oct  7 09:35:29 UTC 2020 - Wolfgang Rosenauer <[email protected]>
+
+- enigmail 2.2.4
+  * bugfixes and improvements
+  * translation updates
+
+-------------------------------------------------------------------

Old:
----
  enigmail-2.2.2.tar.gz
  enigmail-2.2.2.tar.gz.asc

New:
----
  enigmail-2.2.4.tar.gz
  enigmail-2.2.4.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ enigmail.spec ++++++
--- /var/tmp/diff_new_pack.80XKYx/_old  2020-10-08 13:13:42.567255288 +0200
+++ /var/tmp/diff_new_pack.80XKYx/_new  2020-10-08 13:13:42.571255292 +0200
@@ -18,7 +18,7 @@
 
 
 Name:           enigmail
-Version:        2.2.2
+Version:        2.2.4
 Release:        0
 Summary:        OpenPGP addon for Mozilla Thunderbird
 License:        MPL-2.0

++++++ enigmail-2.2.2.tar.gz -> enigmail-2.2.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/configure new/enigmail/configure
--- old/enigmail/configure      2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/configure      2020-10-01 15:32:58.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for enigmail 2.2.2.
+# Generated by GNU Autoconf 2.69 for enigmail 2.2.4.
 #
 # Report bugs to <https://www.enigmail.net>.
 #
@@ -579,8 +579,8 @@
 # Identity of this package.
 PACKAGE_NAME='enigmail'
 PACKAGE_TARNAME='enigmail'
-PACKAGE_VERSION='2.2.2'
-PACKAGE_STRING='enigmail 2.2.2'
+PACKAGE_VERSION='2.2.4'
+PACKAGE_STRING='enigmail 2.2.4'
 PACKAGE_BUGREPORT='https://www.enigmail.net'
 PACKAGE_URL=''
 
@@ -1208,7 +1208,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures enigmail 2.2.2 to adapt to many kinds of systems.
+\`configure' configures enigmail 2.2.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1275,7 +1275,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of enigmail 2.2.2:";;
+     short | recursive ) echo "Configuration of enigmail 2.2.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1358,7 +1358,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-enigmail configure 2.2.2
+enigmail configure 2.2.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1375,7 +1375,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by enigmail $as_me 2.2.2, which was
+It was created by enigmail $as_me 2.2.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2615,7 +2615,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by enigmail $as_me 2.2.2, which was
+This file was extended by enigmail $as_me 2.2.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2668,7 +2668,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-enigmail config.status 2.2.2
+enigmail config.status 2.2.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/configure.ac new/enigmail/configure.ac
--- old/enigmail/configure.ac   2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/configure.ac   2020-10-01 15:32:58.000000000 +0200
@@ -2,7 +2,7 @@
 AC_PREREQ(2.61)
 min_automake_version="1.10"
 
-AC_INIT([enigmail],[2.2.2], [https://www.enigmail.net])
+AC_INIT([enigmail],[2.2.4], [https://www.enigmail.net])
 
 
 AC_PATH_PROG(PYTHON, "python3")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/current-languages.txt 
new/enigmail/lang/current-languages.txt
--- old/enigmail/lang/current-languages.txt     2020-08-30 17:46:13.000000000 
+0200
+++ new/enigmail/lang/current-languages.txt     2020-10-01 15:32:58.000000000 
+0200
@@ -13,6 +13,7 @@
 gl
 hr
 hu
+hy
 it
 ja
 ko
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/hy/am-enigprefs.properties 
new/enigmail/lang/hy/am-enigprefs.properties
--- old/enigmail/lang/hy/am-enigprefs.properties        1970-01-01 
01:00:00.000000000 +0100
+++ new/enigmail/lang/hy/am-enigprefs.properties        2020-10-01 
15:32:58.000000000 +0200
@@ -0,0 +1 @@
+Not Found
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/hy/enigmail.dtd 
new/enigmail/lang/hy/enigmail.dtd
--- old/enigmail/lang/hy/enigmail.dtd   1970-01-01 01:00:00.000000000 +0100
+++ new/enigmail/lang/hy/enigmail.dtd   2020-10-01 15:32:58.000000000 +0200
@@ -0,0 +1,40 @@
+<!ENTITY enigmail.keyUserId.label         "Անձնական էջ / օգտագիրոջ նույնացում">
+<!ENTITY enigmail.general.okLabel         "ԼԱՎ">
+<!ENTITY enigmail.doneButton.label        "Արված է">
+<!ENTITY enigmail.doneButton.accesskey    "О">
+<!ENTITY enigmail.userSelectionList.label           "Enigmail֊ի բանալու 
ընտրություն">
+<!ENTITY enigmail.usersNotFound.label               "հասցեատէրերը սխալ են, 
գտնված չեն կամ վստահված չեն">
+<!ENTITY enigmail.keyExpiry.label                   "Գործման ժամկետ">
+<!ENTITY enigmail.uidValidity.label                 "վավերական">
+<!ENTITY enigmail.keySelection.label                "Ընտրություն">
+<!ENTITY enigmail.keyId.label                       "Բանալու նույնարկիչ">
+<!ENTITY enigmail.userSelSendSigned.label           "Ստորագրել ուղարկելուց 
առաջ">
+<!ENTITY enigmail.userSelSendSigned.accesskey       "G">
+<!ENTITY enigmail.userSelSendEncrypted.label        "Ուղարկելուց առաջ 
գաղտնագրել">
+<!ENTITY enigmail.userSelSendEncrypted.accesskey    "I">
+<!ENTITY enigmail.displayNoLonger.label             "Եթե գաղտնագրումը անհնար 
է՝ չցուցադրել այս պատուհանը">
+<!ENTITY enigmail.importMissingKeys.label           "Խնդրել պակասող 
բանալիները">
+<!ENTITY enigmail.importMissingKeys.accesskey       "P">
+<!ENTITY enigmail.importMissingKeys.tooltip         "Փորձել ներածել պակասող 
բանալիները բանալիների սպասարկչից">
+<!ENTITY enigmail.refreshKeys.label                 "Թարմեցնել բանալիների 
ցուցակը">
+<!ENTITY enigmail.refreshKeys.accesskey             "J">
+<!ENTITY enigmail.send.label                        "Ուղարկել">
+<!ENTITY enigmail.perRecipientsOption.label         "Ստեղծել կանոններ 
հասցեատիրոջ համար">
+<!ENTITY enigmail.keyMan.filter.label               "Որոնել․">
+<!ENTITY enigmail.messenger.menulabel               "">
+
+<!ENTITY enigmail.setupWiz.title                     "">
+<!ENTITY enigmail.setupWiz.pgIntro.desc              "">
+<!ENTITY enigmail.setupWiz.manyKeys.desc             "">
+<!ENTITY enigmail.setupWiz.manyKeys.selectButton     "">
+<!ENTITY enigmail.setupWiz.startMigration.desc1      "">
+<!ENTITY enigmail.setupWiz.startMigration.desc2      "">
+<!ENTITY enigmail.setupWiz.startMigration.button     "">
+
+<!ENTITY enigmail.setupWiz.exportingKeys             "">
+<!ENTITY enigmail.setupWiz.importingKeys             "">
+<!ENTITY enigmail.setupWiz.applyingSettings          "">
+<!ENTITY enigmail.setupWiz.migrationComplete         "">
+<!ENTITY enigmail.setupWiz.restartNeeded             "">
+
+<!ENTITY enigmail.copyCmd.label                      "">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/hy/enigmail.properties 
new/enigmail/lang/hy/enigmail.properties
--- old/enigmail/lang/hy/enigmail.properties    1970-01-01 01:00:00.000000000 
+0100
+++ new/enigmail/lang/hy/enigmail.properties    2020-10-01 15:32:58.000000000 
+0200
@@ -0,0 +1,165 @@
+Enigmail=Enigmail
+enigAlert=Enigmail֊ի զգուշացում
+enigConfirm=Enigmail֊ի հաստատում
+enigInfo=Enigmail֊ի տեղեկություններ
+enigPrompt=Enigmail֊ի հրաւեր
+dlgNo=&Ոչ
+dlgKeepSetting=Հիշել և այլևս ցոյց չտալ
+dlgNoPrompt=Այլևս ցոյց չտալ այս պատուհանը
+dlg.button.cancel=&Չեղարկել
+dlg.button.close=&Փակել
+dlg.button.continue=Շարու&նակել
+dlg.button.ok=&OK
+repeatPrefix=\n\nԱյս զգուշացումը կը կրկնվի ևս %S
+repeatSuffixSingular=անգամ։
+repeatSuffixPlural=անգամ։
+noRepeat=\n\nԱյս զգուշացումը չի հայտնվի, մինչև չթարմեցնեք Enigmail֊ը։
+passphraseCleared=Գաղտնաբառային արտահայտությունը մաքրած է։
+cannotClearPassphrase=Դուք օգտագործում Եք ոչ հասարակ գործիք գաղտնաբառային 
արտահայտությունները մշակելու համար (օրինակ՝ gnome-keyring)։ Enigmail֊ի 
գաղտնաբառային արտահայտության մաքրումը հնարավոր չէ Enigmail։
+usingVersion=օգտագործվում է Enigmail %S տարբերակի
+usingAgent=Գաղտնագրման և վերծանման ժամանակ օգտագործվում է գործող նիշ %1$S %2$S
+agentError=Enigmail հիմնական ծառայություն մուտքի սխալ
+keysToUse=Ընտրեք OpenPGP բանալիներ %S
+pubKey=Բաց բանալի %S ֊ի համար\n
+quotedPrintableWarn=Դուք միացրել Եք «quoted-printable» կոդավորում ելնող 
նամակներում։ Այդ կարող է բերել սխալների վերծանման/ստորագրության ստուգման 
ժամանակ։\nԱնջատե՞լ «quoted-printable» կոդավորման օգտագործումը։
+warning=Զգուշացում
+keyNotTrusted=«%S» բանալուն վստահությունը բավարար չէ
+unverifiedSig=Չստուգված թուային ստորագրություն
+badPhrase=Սխալ․ սխալ գատնաբառային արտահայտություն
+missingMdcError=Սխալ -  ամբողջականության պաշտպանության բացակայում  կամ վնասում 
(MDC)
+oldGpgVersion20=Չհաջողվեց նույնարկել Enigmail֊ը։\n\nԴուք օգտագործում Եք GnuPG 
%1$S տարբերակով, որը այլևս չի ապահովվում։ Enigmail֊ի աշխատանքի համար անպայման է 
տաբերակ %2$S֊ից ոչ ցածր։ Թարմեցրեք GnuPG֊ի տարբերակը Ձեր համակարգում։
+badCommand=Սխալ․ գաղտնագրման սխալ
+cmdLine=հրամանային տող եի մուտքագրում․
+noPassphrase=Սխալ․ գաղտնաբառային արտահայտությունը նշված չէ
+noPGPblock=Սխալ․ իրական պաշտպանված OpenPGP տվեալների պահուստը չի գտնվել
+sc.wrongCardAvailable=Խելացի քարտ %1$S, որը գտնվել է Ձեր հաշուարկիչում չի 
կարող օգտագործվել այդ նամակի մշակման համար։\nՏեղադրեք խելացի քարտ %2$S֊ը և 
կրկնեք գործողությունը։
+sc.insertCard=Այդ գործողության համար պետք է Ձեր խելացի քարտը %S։\nՆերմուծեք 
այդ խելացի քարտը և փորձեք կրկին։
+sc.removeCard=Այդ գործողությունը կատարելու համար հաշուարկիչու պիտի չլինի 
խելացի քարտ։\nՀանեք խելացի քարտը և կրկին փորձեք։
+sc.noCardAvailable=Հաշուարկիչում խելացի քարտ չգտնվեց։\nՏեղադրեք խելացի քարտը և 
կրկին փորձեք։
+sc.noReaderAvailable=Խելացի քարտերի հաշուարկիչը չի գտնվել\nՄիացրեք 
հաշուարկիչը, տեղադրեք խելացի քարտը և փորձեք կրկին։
+keyError.keySpecNotFound=«%S» էլ․ փոստի համար համապատասխան բանալիների 
հավաքածույում բանալի չի գտնվել։
+keyError.keyIdNotFound=Կարգավորված բանալու նույնարկիչը «%S» բանալիների 
հավաքածույում չի գտնվել։
+missingPassphrase=Գաղտնաբառային արտահայտությունը բացակայում է
+errorHandling.gpgAgentInvalid=gpg-agent֊ի տարբերակը Ձեր համակարգում 
անհամատեղելի է Ձեր GnuPG֊ի տարբերակի հետ։
+errorHandling.gpgAgentError=GnuPG֊ը տեղեկացրեց gpg-agent (GnuPG֊ի մասնիկի)֊ի 
հետ կապված սխալի մասին։
+errorHandling.dirmngrError=GnuPG֊ը տեղեկացրեց dirmngr (GnuPG֊ի մասնիկի)֊ի հետ 
կապված սխալի մասին։
+errorHandling.pinentryError=GnuPG֊ին չհաջողվեց հարցնել գաղտնաբառային 
արտահայտությունը pinentry֊ի միջոցով
+errorHandling.pinentryCursesError=Ձեր GnuPG տեղադրումը կազմաձևված է pinentry֊ի 
համար վահանակը օգտագործելու համար: Այնուամենայնիվ, Enigmail- ի օգտագործման 
ժամանակ pinentry֊ի պատկերային տարբերակի կարիքն կունենաք:
+errorHandling.readFaq=Սա համակարգի կարգավորման կամ կազմաձևման սխալ է, որը 
խանգարում է Enigmail֊ի ճշգրիտ աշխատանքին և չի կարող ուղղվել 
ինքնուրույն։\n\nԽերհուրդ ենք տալիս դիմել մեր վեբ կայքի աջակցությանը 
https://enigmail.net/faq հասցեով։
+gpgNotFound=Չհաջողվեց գտնել GnuPG «%S»։\nՀամոզվեք, որ Enigmail֊ի ընտրանքներում 
նշված է ճիշտ ուղի դեպի գործող GnuPG նիշը։
+gpgNotInPath=Չհաջողվեց գտնել GnuPG, օգտագործելով PATH դադարները։\nՀամոզվեք, որ 
Enigmail֊ի ընտրանքներում նշված է ճիշտ ուղի դեպի գործող GnuPG նիշը։
+enigmailNotAvailable=Enigmail֊ի հիմնական ծառայությունը հասանելի չէ
+failCancel=Սխալ․ բանալու ստացումը չեղարկվեց օգտատիրոջ կողմից
+failKeyExtract=Սխալ․ չհաջողվեց հանել բանալին
+notFirstBlock=Սխալ․ առաջին բաժին OpenPGP֊ն բաց բանալու բաժին չէ
+importKeyConfirm=Ներածե՞լ բաց բանալիները, որոնք ներդրված են նամակում։
+fileWriteFailed=Չհաջողվեց գրառել %S նիշում
+importKey=%S բաց բանալու ներածում բանալիների սպասարկչից․
+uploadKey=Ուղարկել բաց բանալի %S֊ն բանալիների սպասարկիչ․
+keyId=Բանալու նույնարկիչ
+createdHeader=Ստեղծված
+atLeastOneKey=Բանալին ընտրված չէ։ պետք է ընտրել առնվազն մեկ բանալի։
+fewerKeysThanRecipients=Ընտրված բանալիների թիւը ստացողներից քիչ է։ Համոզուա՞ծ 
Եք, որ նշել Եք բոլոր բանալիները։
+userSel.button.goBack=Նշել բանալիներ
+userSel.secretKeySel.title=Ընտրեք փակ OpenPGP բանալի Ձեր նամակների 
ստորագրության համար։
+userSel.problemNoKey=վավեր բանալիներ չկան
+userSel.problemMultipleKeys=Բազում բանալիներ
+first=առաջին
+second=երկրորդ
+never=Երբեք
+always=Միշտ
+possible=Հնարավոր է
+keyValid.unknown=անհայտ
+keyValid.invalid=անվավեր
+keyValid.disabled=անջատված
+keyValid.revoked=հետ կանչված
+keyValid.expired=ժամկետանց
+keyValid.noSubkey=սխալ ենթաբանալի
+# keyValid.valid=valid
+# keyValid.ownKey=own key
+# keyTrust.untrusted=not trusted
+keyTrust.marginal=նվազագույն
+keyTrust.full=վստահում եմ
+keyTrust.ultimate=բացարձակ
+keyTrust.group=(խումբ)
+userAtt.photo=օգտատիրոջ հատկանիշ (պատկեր JPEG)
+importKeyFile=OpenPGP բանալու ներածման նիշ
+# importPubKeysFailed=The following public keys could not be imported in 
Thunderbird:\n\n%S
+# importSecKeysFailed=The following secret keys could not be imported in 
Thunderbird:\n\n%S
+deleteSecretKey=Զգուշացում․ Դուք պատրաստվում Եք ջնջել փակ բանալի։\nՓակ բանալին 
ջնջելուց հետո Չեք կարող վերծանել նամակներ, որոնք գաղտնագրվել են այդ բանալով, և 
հետ կանչել բանալին նույնպէս Չեք կարող։\n\nՋնջե՞լ ԵՐԿՈՒ նշված բանալիները՝ և 
փակը, և բացը։\n«%S»
+revokeKeyQuestion=Դուք պատրաստվում Եք հետ կանչել բանալի «%S»\n\nհետ կանչելուց 
հետո այն չի կարող օգտագործվել ստորագրության համար։ Հեռացումից հետո, այլ 
օգտատերերը չեն կարող օգտագործել այն գաղտնագրման համար։ Սակայն հին նամակները 
կարելի կը լինի վերծանել։\n\nՇարունակե՞լ։
+revokeKeyNotPresent=Դուք չունեք բանալի (0x%S), որը կհամապատասխանի այս 
մեկնաբանության վկայագրին։\n\nԵթե կորցրել Եք բանալին, ներածեք այն (օրինակ, 
բանալիների սպասարկչից) մեկնաբանության վկայագրի օգտագործումից առաջ։
+revokeKeyAlreadyRevoked=0x%S բանալին հետ է կանչված։
+keyMan.button.import=&Ներածում
+keyMan.button.revokeKey=&հետ կանչել բանալին
+keyAlgorithm_1=RSA
+keyAlgorithm_2=RSA
+keyAlgorithm_3=RSA
+keyAlgorithm_16=ELG
+keyAlgorithm_17=DSA
+keyAlgorithm_18=ECDH
+keyAlgorithm_19=ECDSA
+keyAlgorithm_20=ELG
+keyAlgorithm_22=EDDSA
+# setupWizard.selectKeysButton=Select Keys
+errorType.SecurityCertificate=Անվտանգության վկայագիր, որը տրվել է վեբ 
ծառայության կողմից, անվավեր է։
+errorType.SecurityProtocol=Վեբ֊ծառայությունը օգտագործում է անվտանգության 
անհայտ հաղորդակարգ։
+errorType.Network=Տեղի ունեցավ ցանցային սխալ։
+keyring.photo=Լուսանկար
+keyRing.pubKeyRevoked=Բանալի %1$S (%2$S բանալու ID) հետ է կանչված։
+keyRing.pubKeyExpired=%1$S բանալու ժամկետը (%2$S բանալու ID) անցել է։
+keyRing.pubKeyNotForSigning=%1$S բանալին (%2$S բանալու ID) հնարավոր չէ 
օգտագործել ստորագրության համար։
+keyRing.pubKeyNotForEncryption=%1$S բանալին (%2$S բանալու ID) հնարավոր չէ 
օգտագործել գաղտնագրման համար։
+keyRing.keyDisabled=%1$S բանալին (%2$S բանալու ID) անջատված է և չի կարող 
օգտագործվել։
+keyRing.keyNotTrusted=Ոչ բավարար վստահության աստիճան %1$S բանալիի համար (%2$S 
բանալու ID)։ Ստորադրություն օգտագործելու համար, սահմանեք վստահության «բացարձակ» 
աստիճան։
+keyRing.keyInvalid=%1$S բանալին (ID %2$S) անվավեր է։ Հաստատեք իր 
ճշմարտությունը կամ ընտրեք Enigmail֊ի ընտրանքներում «օգտագործել գաղտնագրման 
լռելյայն ընտրանքները»։
+keyRing.signSubKeysRevoked=Ստորագրության բոլոր ենթաբանալիները  %1$S բանալու 
համար (%2$S բանալու ID) հետ են կանչված։
+keyRing.signSubKeysExpired=%1$S բանալիում (%2$S բանալու ID) ստորագրության 
համար բոլոր ենթաբանալիների ժամկետն անցել է։
+keyRing.signSubKeysUnusable=%1$S բանալու ստորագրության համար բոլոր 
ենթաբանալիները (%2$S բանալու ID) հետ են կանչված, ժամկետանց են կամ չեն կարող 
օգտագործվել այլ պատճառներով։
+keyRing.encSubKeysRevoked=%1$S բանալու գաղտնագրման բոլոր ենթաբանալիները (%2$S 
բանալու ID) հետ են կանչված։
+keyRing.encSubKeysExpired=%1$S բանալու գաղտնագրության բոլոր ենթաբանալիների 
ժամկետն անցել է (%2$S բանալու ID)։
+keyRing.noSecretKey=%1$S բանալու համար (%2$S բանալու ID) բանալիների 
հավաքածուներում չկա համապատասխան փակ բանալի։ Այն չի կարող կիրառվել 
ստորագրությունների համար։
+keyRing.encSubKeysUnusable=%1$S բանալու գաղտնագրության համար բոլոր 
ենթաբանալիները  %1$S (%2$S բանալու ID) հետ են կանչված,  ժամկետանց են կամ չեն 
կարող օգտագործվել այլ պատճառներով։
+dataExportError=Տվեալների արտածման ժամանակ հայտնվեց սխալ։
+expiry.keyExpiresSoon=«%1$S» բանալիի ժամկետի սպառմանը մնացել է՝ 
%2$S։\n\nԽորհուրդ է տրվում ստեղծել բանալիների նոր զոյգ և կարգավորել 
համապատասխան հաշիվներ իրենց օգտագործման համար։
+expiry.keysExpireSoon=Ստորին բերված բանալիների ժամկետը կը սպառվի ավելի շուտ 
քան %1$S օրից:\n%2$S Խորհուրդ է տրվում ստեղծել նոր բանալիներ և կարգավորել իրենց 
օգտագործումը Ձեր հաշիվներում։
+expiry.keyMissingOwnerTrust=%S փակ բանալու մոտ վստահության աստիճանը բավարար 
բարձր չէ։\n\nԽորհուրդ ենք տալիս «Ձեր վստահության կարգավորումները»բանալիների 
ընտրնանքների տողում ընտրել «Բացարձակ վստահություն» տարբերակը։
+expiry.keysMissingOwnerTrust=Ներքևում բերված փակ բանալիներից նշված է ոչ 
բավարար վստահման աստիճան։\n%S։\nԽորհուրդ ենք տալիս «Ձեր վստահության 
կարգավորումները»բանալիների ընտրնանքների տողում ընտրել «Բացարձակ վստահություն» 
տարբերակը։
+expiry.OpenKeyManager=Բացել Enigmail բանալիների կառավարումը
+expiry.OpenKeyProperties=Բացել բանալիների հատկությունները
+gpghomedir.notexists=«%S» ցուցակը, որը պարունակում է Ձեր OpenPGP բանալիները, 
գոյություն չունի և չի կարող ստեղծվել։
+gpghomedir.notwritable=«%S» ցուցակը, որը պարունակում է Ձեր OpenPGP բանալիները, 
գրառման համար անհասանելի է։
+gpghomedir.notdirectory=«%S» տեղակայում,որը պարունակում է Ձեր OpenPGP 
բանալիները, նիշ է, ոչ թե ցուցակ։
+gpghomedir.notusable=Ուղղեք ցուցակի թույլտվությունները կամ փոխեք «տնային» 
GnuPG ցուցակի  դիրքը, ճշգրիտ աշխատելու համար։
+gpgAgent.noAutostart=Դուք օգտագործում եք GnuPG -ի %S տարբերակը: Այս տարբերակը 
պահանջում է, որ դուք նախադրեք gpg-գործակալ նախքան Thunderdbird- ի գործարկումը, 
և որ «GPG_AGENT_INFO» շրջակա միջավայրի փոփոխականությունը նախապես բեռնվի:\n\nԱյս 
նախապայմանները չեն պահպանվում. Դուք չեք կարող օգտագործել Enigmail- ը, քանի դեռ 
չեք լուծել այս խնդիրը:
+# upgradeInfo.doctitle=Goodbye from Enigmail
+# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird
+# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has 
become obsolete - this is the final version of Enigmail for Thunderbird.
+# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG 
to Thunderbird
+# upgradeInfo.migrateSettings.desc=What remains, before you uninstall 
Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate 
some important settings from Enigmail to Thunderbird. We have prepared a wizard 
that performs these steps for you.
+# upgradeInfo.performMigration.buttonLabel=Start Migration Now
+# upgradeInfo.thankyou.title=Thank you for using Enigmail
+# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for 
nearly two decades. We are thankful that we could contribute to the idea of 
encrypted emails. We hope that you found Enigmail useful and would like to 
thank you for your continued support during these many years.
+# upgradeInfo.thankyou.desc2=If you want to help out, then please consider <a 
href="https://donate.mozilla.org/thunderbird";>donating to Thunderbird</a>.
+aboutEnigmail.tabName=Enigmail֊ի մասին
+aboutEnigmail.title=OpenPGPապահովում, Enigmail֊ի կողմից
+aboutEnigmail.team=Enigmail֊ի վրայ աշխատող խումբը՝
+aboutEnigmail.projectLeader=Վարող ծրագրավորող՝
+aboutEnigmail.usability=օգտագործման հարմարություն՝
+aboutEnigmail.documentation=Փաստաթղթավորում՝
+aboutEnigmail.testing=Ստուգում՝
+aboutEnigmail.userSupport=օգտատերերին աջակցություն՝
+aboutEnigmail.userSupport.team=թիմը և ցուցակը/ֆորումի անդամները
+aboutEnigmail.localization=Տեղայնացում՝ <em>Դիտ․ <a 
href="https://www.enigmail.net/download/langpack.php"; target="_blank">լեզուային 
փաթեթների էջում Enigmail</a></em></li>
+aboutEnigmail.Credits=Մասնակիցներ՝
+aboutEnigmail.origAuthor=Enigmail ընդլայնման առաջնային հեղինակ՝
+aboutEnigmail.icons=Նշաններ՝
+aboutEnigmail.formerMembers=Խմբի նախկին մասնակիցներ՝
+aboutEnigmail.projectHosting=Նախագծի տեղակայում՝
+aboutEnigmail.licenseSupportTitle=Արտոնագիր և աջակցություն
+aboutEnigmail.license=OpenPGP֊ն Enigmail ում չափանիշ է բաց ելային կոդով, որը 
տրամադրվում է %S պայմաններում
+aboutEnigmail.support=Աջակցություն և բեռնման նիշերը առկա են <a 
href="https://www.enigmail.net/";>www.enigmail.net</a> կայքում։
+updateGnuPG.checkUpdate=Ստուգել GnuPG֊ի թարմացումները
+import.secretKeyImportError=Գաղտնի բանալիներ ներմուծելիս GnuPG- ում սխալ է 
տեղի ունեցել: Ներմուծումը հաջող չէր:
+# passphrasePrompt=Please enter the passphrase for the following key: %S
+# openpgpInitError=An error occurred during the initialization of the OpenPGP 
infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if 
OpenPGP in Thunderbird is not intialized properly.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/nl/enigmail.dtd 
new/enigmail/lang/nl/enigmail.dtd
--- old/enigmail/lang/nl/enigmail.dtd   2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/lang/nl/enigmail.dtd   2020-10-01 15:32:58.000000000 +0200
@@ -23,19 +23,22 @@
 <!ENTITY enigmail.keyMan.filter.label               "Sleutels zoeken">
 <!ENTITY enigmail.messenger.menulabel               "Enigmail-voorkeuren 
overzetten">
 
-<!ENTITY enigmail.setupWiz.title                     "Draag je instellingen 
van Enigmail over naar Thunderbird">
-<!ENTITY enigmail.setupWiz.pgIntro.desc              "Deze dialoog zal je 
sleutels en instellingen van Enigmail en GnuPG exporteren, en deze importeren 
in de sleutelopslag van Thunderbird">
+<!ENTITY enigmail.setupWiz.title                     "Je instellingen van 
Enigmail naar Thunderbird overdragen">
+<!ENTITY enigmail.setupWiz.pgIntro.desc              "Deze dialoog zal je 
sleutels en instellingen van Enigmail en GnuPG exporteren, en
+deze importeren in de sleutelopslag van Thunderbird.">
 <!ENTITY enigmail.setupWiz.manyKeys.desc             "Je hebt verschillende 
private sleutels in GnuPG.  Als je deze niet allemaal in Thunderbird
 wil importeren, klik op de knop ‘Private sleutels selecteren’ om de sleutels 
die je nodig hebt te selecteren.">
 <!ENTITY enigmail.setupWiz.manyKeys.selectButton     "Privésleutels selecteren 
…">
-<!ENTITY enigmail.setupWiz.startMigration.desc1      "">
-<!ENTITY enigmail.setupWiz.startMigration.desc2      "">
-<!ENTITY enigmail.setupWiz.startMigration.button     "">
+<!ENTITY enigmail.setupWiz.startMigration.desc1      "Klik op de knop 
‘Migratie starten’ om de migratie te starten.">
+<!ENTITY enigmail.setupWiz.startMigration.desc2      "Het migratieproces zal 
je privésleutels exporteren van GnuPG en importeren in Thunderbird.
+Als je sleutels zijn beschermd met een wachtwoordzin, dan zal je voor elke 
sleutel gevraagd worden deze in te voeren –
+eenmaal bij het exporteren van GnuPG en eenmaal bij het importeren in 
Thunderbird.">
+<!ENTITY enigmail.setupWiz.startMigration.button     "Migratie starten">
 
-<!ENTITY enigmail.setupWiz.exportingKeys             "">
-<!ENTITY enigmail.setupWiz.importingKeys             "">
-<!ENTITY enigmail.setupWiz.applyingSettings          "">
-<!ENTITY enigmail.setupWiz.migrationComplete         "">
-<!ENTITY enigmail.setupWiz.restartNeeded             "">
+<!ENTITY enigmail.setupWiz.exportingKeys             "Sleutels van GnuPG aan 
het exporteren…">
+<!ENTITY enigmail.setupWiz.importingKeys             "Sleutels in Thunderbird 
aan het importeren…">
+<!ENTITY enigmail.setupWiz.applyingSettings          "Je accountinstellingen 
aan het toepassen…">
+<!ENTITY enigmail.setupWiz.migrationComplete         "Klaar!  Enigmail is nu 
niet langer nodig en kan gedeïnstalleerd worden.">
+<!ENTITY enigmail.setupWiz.restartNeeded             "Om het instellen af te 
maken, zal Thunderbird nu herstart worden.">
 
-<!ENTITY enigmail.copyCmd.label                      "">
+<!ENTITY enigmail.copyCmd.label                      "Kopiëren">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/nl/enigmail.properties 
new/enigmail/lang/nl/enigmail.properties
--- old/enigmail/lang/nl/enigmail.properties    2020-08-30 17:46:13.000000000 
+0200
+++ new/enigmail/lang/nl/enigmail.properties    2020-10-01 15:32:58.000000000 
+0200
@@ -1,7 +1,7 @@
 Enigmail=Enigmail
 enigAlert=Waarschuwing van Enigmail
 enigConfirm=Bevestiging van Enigmail
-enigInfo=Enigmail-informatie
+enigInfo=Informatie van Enigmail
 enigPrompt=Vraag van Enigmail
 dlgNo=&Nee
 dlgKeepSetting=Mijn antwoord onthouden en niet opnieuw vragen
@@ -25,8 +25,8 @@
 warning=Waarschuwing
 keyNotTrusted=Niet voldoende vertrouwensbasis voor sleutel ‘%S’
 unverifiedSig=Ongeverifieerde ondertekening
-badPhrase=Fout - onjuiste wachtwoordzin
-missingMdcError=Fout - ontbrekende of ongeldige integriteitsbescherming (MDC)
+badPhrase=Fout – onjuiste wachtwoordzin
+missingMdcError=Fout – ontbrekende of ongeldige integriteitsbescherming (MDC)
 oldGpgVersion20=Initialisatie van Enigmail is mislukt.\n\nU gebruikt GnuPG 
versie %1$S, die niet meer wordt ondersteund. Enigmail vereist GnuPG versie 
%2$S of nieuwer. Upgrade uw installatie van GnuPG, anders zal Enigmail niet 
werken.
 badCommand=Fout - versleutelingsopdracht mislukt
 cmdLine=opdrachtregel en uitvoer:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/pl/enigmail.dtd 
new/enigmail/lang/pl/enigmail.dtd
--- old/enigmail/lang/pl/enigmail.dtd   2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/lang/pl/enigmail.dtd   2020-10-01 15:32:58.000000000 +0200
@@ -28,16 +28,16 @@
                                                        zaimportuje je do 
magazynu kluczy Thunderbird.">
 <!ENTITY enigmail.setupWiz.manyKeys.desc             "Masz kilka kluczy 
prywatnych w GnuPG. Jeśli nie chcesz zaimportować ich wszystkich
                                                        do Thunderbirda, 
kliknij przycisk „Wybierz klucze prywatne”, aby wybrać te klucze, których 
potrzebujesz.">
-<!ENTITY enigmail.setupWiz.manyKeys.selectButton     "">
+<!ENTITY enigmail.setupWiz.manyKeys.selectButton     "Wybierz klucze prywatne 
…">
 <!ENTITY enigmail.setupWiz.startMigration.desc1      "Proszę kliknąć przycisk 
'Rozpocznij migrację' aby rozpocząć migrację.">
 <!ENTITY enigmail.setupWiz.startMigration.desc2      "Proces migracji 
wyeksportuje twoje klucze prywatne z GnuPG i zaimportuje je do Thunderbirda.
 Jeśli twoje klucze są zabezpieczone hasłem, zostaniesz poproszony o podanie go 
dla każdego klucza - raz podczas eksportu z GnuPg i raz do importowania do 
Thunderbirda.">
 <!ENTITY enigmail.setupWiz.startMigration.button     "Rozpocznij migrację">
 
-<!ENTITY enigmail.setupWiz.exportingKeys             "">
-<!ENTITY enigmail.setupWiz.importingKeys             "">
-<!ENTITY enigmail.setupWiz.applyingSettings          "">
+<!ENTITY enigmail.setupWiz.exportingKeys             "Eksportuj klucze z GnuPG 
…">
+<!ENTITY enigmail.setupWiz.importingKeys             "Importuj klucze do 
Thunderbirda …">
+<!ENTITY enigmail.setupWiz.applyingSettings          "Zastosuj twoje 
ustawienia konta …">
 <!ENTITY enigmail.setupWiz.migrationComplete         "Wszystko gotowe! 
Enigmail nie jest już dłużej potrzebny i może być odinstalowany.">
-<!ENTITY enigmail.setupWiz.restartNeeded             "">
+<!ENTITY enigmail.setupWiz.restartNeeded             "Aby zakończyć 
konfigurację, Thunderbird zostanie teraz ponownie uruchomiony.">
 
 <!ENTITY enigmail.copyCmd.label                      "Kopiuj">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/pl/enigmail.properties 
new/enigmail/lang/pl/enigmail.properties
--- old/enigmail/lang/pl/enigmail.properties    2020-08-30 17:46:13.000000000 
+0200
+++ new/enigmail/lang/pl/enigmail.properties    2020-10-01 15:32:58.000000000 
+0200
@@ -38,7 +38,7 @@
 sc.noCardAvailable=Nie znaleziono karty SmartCard w czytniku\nWłóż kartę do 
czytnika i ponów operację
 sc.noReaderAvailable=Brak dostępu do czytnika kart SmartCard\nPodłącz czytnik, 
włóż swoją kartę i ponów operację
 keyError.keySpecNotFound=Adres e-mail '%S nie może być dopasowany do twojego 
klucza w zbiorze.
-# keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your 
keyring.
+keyError.keyIdNotFound=Skonfigurowanego klucza ID '%S' nie można znaleźć w 
twoim zbiorze kluczy.
 missingPassphrase=Brak hasła
 errorHandling.gpgAgentInvalid=Twój system zawiera wersję programu gpg-agent, 
która nie jest wspierana przez twoją wersję GnuPG.
 errorHandling.gpgAgentError=Program GnuPG zgłosił błąd komunikacji z gpg-agent 
(składnikiem GnuPG).
@@ -121,8 +121,8 @@
 keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID 
%2$S) on your keyring; you cannot use the key for signing.
 keyRing.encSubKeysUnusable=Wszystkie podklucze klucza %1$S (key ID %2$S) 
zostały unieważnione, wygasły lub z innych powodów nie nadają się do użytku.
 dataExportError=Wystąpił błąd podczas eksportowania twoich danych.
-# expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S 
days.\n\nWe recommend that you create a new key pair and configure the 
corresponding accounts to use it.
-# expiry.keysExpireSoon=Your following keys will expire in less than %1$S 
days:\n%2$S. We recommend that you create new keys and configure the 
corresponding accounts to use them.
+expiry.keyExpiresSoon=Twój klucz %1$S wygaśnie za mniej niż %2$S dni. Zalecamy 
utworzenie nowej pary kluczy i skonfigurowanie odpowiednich kont do korzystania 
z niej.
+expiry.keysExpireSoon=Twoje następujące klucze wygasną za mniej niż%1$S 
dni:\n%2$S. Zalecamy utworzenie nowych kluczy i skonfigurowanie odpowiednich 
kont, aby z nich korzystać.
 expiry.keyMissingOwnerTrust=W Twoim kluczu prywatnym %S brakuje zaufania. 
Zaleca się ustawienie zaufania na najwyższe we właściwościach klucza.
 expiry.keysMissingOwnerTrust=Poniższe klucze prywatne nie są zaufane. %S. 
Zalecamy aby we właściwościach klucza ustawić poleganie certyfikatu na 
najwyższy.
 expiry.OpenKeyManager=Otwórz zarządzanie kluczami Enigmail
@@ -131,15 +131,15 @@
 gpghomedir.notwritable=Katalog "%S" zawierający twoje klucze OpenPGP nie jest 
zapisywalny.
 gpghomedir.notdirectory=Katalog "%S" zawierający twoje klucze OpenPGP jest 
plikiem, a nie katalogiem.
 gpghomedir.notusable=Proszę poprawić uprawnienia do katalogu lub zmienić 
lokalizację katalogu „domowego” GnuPG. W przeciwnym razie GnuPG nie będzie 
działać poprawnie.
-# gpgAgent.noAutostart=You are using GnuPG version %S. This version requires 
that you pre-start gpg-agent before Thunderdbird is started, and that the 
environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are 
not met - you cannot use Enigmail until you resolve this issue.
-# upgradeInfo.doctitle=Goodbye from Enigmail
+gpgAgent.noAutostart=Używasz GnuPG w wersji %S. Ta wersja wymaga, abyś 
uruchomił gpg-agent przed uruchomieniem Thunderbirda, a zmienna środowiskowa 
„GPG_AGENT_INFO” była wstępnie załadowana. Te warunki wstępne nie są spełnione 
- nie możesz używać Enigmail, dopóki nie rozwiążesz tego problemu.
+upgradeInfo.doctitle=Do widzenia od Enigmail
 upgradeInfo.welcome1=Szyfrowanie OpenPGP jest od teraz częścią Thunderbirda. 
 upgradeInfo.welcome2=Enigmail nie jest dłużej wymagany w Thunderbirdzie, i 
stał się przestarzały - to jest finalna wersja Enigmail dla Thunderbird.
 upgradeInfo.migrateSettings.title=Migracja twoich kluczy i ustawień z GnuPG do 
Thunderbird
-# upgradeInfo.migrateSettings.desc=What remains, before you uninstall 
Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate 
some important settings from Enigmail to Thunderbird. We have prepared a wizard 
that performs these steps for you.
+upgradeInfo.migrateSettings.desc=Przed odinstalowaniem Enigmaila pozostaje 
tylko import kluczy z GnuPG do Thunderbirda i migracja niektórych ważnych 
ustawień z Enigmail do Thunderbirda. Przygotowaliśmy kreatora, który wykona te 
czynności za Ciebie.
 upgradeInfo.performMigration.buttonLabel=Rozpocznij migrację teraz
 upgradeInfo.thankyou.title=Dziękujemy za korzystanie z Enigmail
-# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for 
nearly two decades. We are thankful that we could contribute to the idea of 
encrypted emails. We hope that you found Enigmail useful and would like to 
thank you for your continued support during these many years.
+upgradeInfo.thankyou.desc1=Praca nad Enigmail była przyjemnością przez prawie 
dwie dekady. Jesteśmy wdzięczni, że mogliśmy przyczynić się do powstania idei 
zaszyfrowanych wiadomości e-mail. Mamy nadzieję, że Enigmail okazał się 
przydatny i chcieli byśmy  podziękować za nieustające wsparcie przez te wiele 
lat.
 upgradeInfo.thankyou.desc2=Jeśli chcesz pomóc, proszę rozważ 1 donating to 
Thunderbird1.
 aboutEnigmail.tabName=O Enigmail
 aboutEnigmail.title=Enigmail - wsparcie dla OpenPGP
@@ -162,4 +162,4 @@
 updateGnuPG.checkUpdate=Sprawdź aktualizacje GnuPG
 import.secretKeyImportError=Wystąpił błąd w GnuPG podczas importowania tajnych 
kluczy. Importowanie nie powiodło się.
 passphrasePrompt=Proszę podać hasło dla następującego klucza: %S
-# openpgpInitError=An error occurred during the initialization of the OpenPGP 
infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if 
OpenPGP in Thunderbird is not intialized properly.
+openpgpInitError=Wystąpił błąd podczas inicjalizacji infrastruktury OpenPGP w 
Thunderbirdzie. Kreator migracji nie może kontynuować, jeśli OpenPGP w 
Thunderbirdzie nie został poprawnie zainicjowany.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/ru/enigmail.dtd 
new/enigmail/lang/ru/enigmail.dtd
--- old/enigmail/lang/ru/enigmail.dtd   2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/lang/ru/enigmail.dtd   2020-10-01 15:32:58.000000000 +0200
@@ -21,20 +21,21 @@
 <!ENTITY enigmail.send.label                        "Отправить">
 <!ENTITY enigmail.perRecipientsOption.label         "Создать правила для 
адресата">
 <!ENTITY enigmail.keyMan.filter.label               "Поиск ключей">
-<!ENTITY enigmail.messenger.menulabel               "">
+<!ENTITY enigmail.messenger.menulabel               "Настройки миграции 
Enigmail">
 
-<!ENTITY enigmail.setupWiz.title                     "">
-<!ENTITY enigmail.setupWiz.pgIntro.desc              "">
+<!ENTITY enigmail.setupWiz.title                     "перенесет настройки 
Enigmail в Thunderbird">
+<!ENTITY enigmail.setupWiz.pgIntro.desc              "Этот мастер экспортирует 
ваши ключи и настройки из Enigmail и GnuPG, а также
+">
 <!ENTITY enigmail.setupWiz.manyKeys.desc             "">
-<!ENTITY enigmail.setupWiz.manyKeys.selectButton     "">
-<!ENTITY enigmail.setupWiz.startMigration.desc1      "">
+<!ENTITY enigmail.setupWiz.manyKeys.selectButton     "Выберите приватные ключи 
...">
+<!ENTITY enigmail.setupWiz.startMigration.desc1      "Пожалуйста, нажмите 
кнопку &quot;Начать миграцию&quot;, чтобы инициировать миграцию.">
 <!ENTITY enigmail.setupWiz.startMigration.desc2      "">
-<!ENTITY enigmail.setupWiz.startMigration.button     "">
+<!ENTITY enigmail.setupWiz.startMigration.button     "Начать миграцию">
 
-<!ENTITY enigmail.setupWiz.exportingKeys             "">
-<!ENTITY enigmail.setupWiz.importingKeys             "">
-<!ENTITY enigmail.setupWiz.applyingSettings          "">
-<!ENTITY enigmail.setupWiz.migrationComplete         "">
-<!ENTITY enigmail.setupWiz.restartNeeded             "">
+<!ENTITY enigmail.setupWiz.exportingKeys             "Экспорт ключей из GnuPG 
...">
+<!ENTITY enigmail.setupWiz.importingKeys             "Импорт ключей в 
Thunderbird ...">
+<!ENTITY enigmail.setupWiz.applyingSettings          "Применение настроек 
вашего аккаунта ...">
+<!ENTITY enigmail.setupWiz.migrationComplete         "Готово! Enigmail больше 
не нужен и может быть удален.">
+<!ENTITY enigmail.setupWiz.restartNeeded             "Для завершения установки 
Thunderbird будет перезапущен.">
 
-<!ENTITY enigmail.copyCmd.label                      "">
+<!ENTITY enigmail.copyCmd.label                      "Скопировать">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/lang/ru/enigmail.properties 
new/enigmail/lang/ru/enigmail.properties
--- old/enigmail/lang/ru/enigmail.properties    2020-08-30 17:46:13.000000000 
+0200
+++ new/enigmail/lang/ru/enigmail.properties    2020-10-01 15:32:58.000000000 
+0200
@@ -26,7 +26,7 @@
 keyNotTrusted=Недостаточно доверия ключу «%S»
 unverifiedSig=Непроверенная цифровая подпись
 badPhrase=Ошибка — неверная парольная фраза
-# missingMdcError=Error - missing or broken integrity protection (MDC)
+missingMdcError=Ошибка - отсутствует или нарушена защита целостности (MDC)
 oldGpgVersion20=Не удалось инициализировать Enigmail.\n\nВы используете GnuPG 
версии %1$S, которая больше не поддерживается. Для работы Enigmail необходима 
версия не ниже %2$S. Обновите версию GnuPG в своей системе.
 badCommand=Ошибка — ошибка шифрования
 cmdLine=командная строка и вывод:
@@ -44,7 +44,7 @@
 errorHandling.gpgAgentError=GnuPG сообщил об ошибке связи с gpg-agent 
(компонентом GnuPG).
 errorHandling.dirmngrError=GnuPG сообщил об ошибке связи с dirmngr 
(компонентом GnuPG).
 errorHandling.pinentryError=GnuPG не удалось запросить вашу парольную фразу 
через pinentry
-# errorHandling.pinentryCursesError=Your GnuPG installation is configured to 
use the console for pinentry. However, when using Enigmail you need a graphical 
version of pinentry.
+errorHandling.pinentryCursesError=Ваша установка GnuPG настроена на 
использование консоли для pinentry. Тем не менее, при использовании Enigmail 
вам понадобится графическая версия pinentry.
 errorHandling.readFaq=Это ошибка настройки системы или конфигурации, которая 
препятствует корректной работе Enigmail и не может быть исправлена 
автоматически.\n\nНастоятельно рекомендуем обратиться на наш веб-сайт поддержки 
по адресу https://enigmail.net/faq.
 gpgNotFound=Невозможно найти программу GnuPG «%S».\nУбедитесь, что в 
параметрах Enigmail указан правильный путь к исполняемому файлу GnuPG.
 gpgNotInPath=Невозможно найти GnuPG, используя переменную PATH.\nУбедитесь, 
что в настройках Enigmail указан правильный путь к исполняемому файлу GnuPG.
@@ -76,15 +76,15 @@
 keyValid.expired=просрочен
 keyValid.noSubkey=неверный подключ
 # keyValid.valid=valid
-# keyValid.ownKey=own key
-# keyTrust.untrusted=not trusted
+keyValid.ownKey=собственный ключ
+keyTrust.untrusted=не доверенные
 keyTrust.marginal=минимальное
 keyTrust.full=доверяю
 keyTrust.ultimate=абсолютное
 keyTrust.group=(группа)
 userAtt.photo=Атрибут пользователя (изображение JPEG)
 importKeyFile=Импорт файла ключа OpenPGP
-# importPubKeysFailed=The following public keys could not be imported in 
Thunderbird:\n\n%S
+importPubKeysFailed=Следующие открытые ключи не могут быть импортированы в 
Thunderbird:\n\n%S
 # importSecKeysFailed=The following secret keys could not be imported in 
Thunderbird:\n\n%S
 # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you 
delete your secret key, you will no longer be able to decrypt any messages 
encrypted for that key, nor will you be able to revoke it.\n\nDo you really 
want to delete BOTH, the secret key and the public key\n'%S'?
 revokeKeyQuestion=Вы собираетесь отозвать ключ «%S».\n\nПосле этого ключ не 
сможет быть использован для подписания. Как только он будет распространён, 
другие пользователи больше не смогут использовать этот ключ для шифрования. С 
помощью этого ключа можно будет расшифровывать старые сообщения.\n\nПродолжить?
@@ -101,7 +101,7 @@
 keyAlgorithm_19=ECDSA
 keyAlgorithm_20=ELG
 keyAlgorithm_22=EDDSA
-# setupWizard.selectKeysButton=Select Keys
+setupWizard.selectKeysButton=Выбрать ключи
 errorType.SecurityCertificate=Сертификат безопасности, предоставленный 
веб-службой, является недействительным.
 errorType.SecurityProtocol=Веб-служба использует неизвестный протокол 
безопасности.
 errorType.Network=Произошла сетевая ошибка.
@@ -132,14 +132,14 @@
 gpghomedir.notdirectory=Размещение «%S», содержащее ваши ключи OpenPGP, 
является файлом, а не каталогом.
 gpghomedir.notusable=Исправьте разрешения для каталога или измените 
расположение «домашнего» каталога GnuPG для корректной работы.
 # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires 
that you pre-start gpg-agent before Thunderdbird is started, and that the 
environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are 
not met - you cannot use Enigmail until you resolve this issue.
-# upgradeInfo.doctitle=Goodbye from Enigmail
+upgradeInfo.doctitle=Прощай, Enigmail
 upgradeInfo.welcome1=Шифрование OpenPGP теперь является частью Thunderbird.
 # upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has 
become obsolete - this is the final version of Enigmail for Thunderbird.
-# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG 
to Thunderbird
-# upgradeInfo.migrateSettings.desc=What remains, before you uninstall 
Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate 
some important settings from Enigmail to Thunderbird. We have prepared a wizard 
that performs these steps for you.
-# upgradeInfo.performMigration.buttonLabel=Start Migration Now
-# upgradeInfo.thankyou.title=Thank you for using Enigmail
-# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for 
nearly two decades. We are thankful that we could contribute to the idea of 
encrypted emails. We hope that you found Enigmail useful and would like to 
thank you for your continued support during these many years.
+upgradeInfo.migrateSettings.title=Перенесите ключи и настройки из GnuPG в 
Thunderbird.
+upgradeInfo.migrateSettings.desc=Перед деинсталляцией Enigmail остается 
импортировать ключи из GnuPG в Thunderbird и перенести некоторые важные 
настройки из Enigmail в Thunderbird. Мы подготовили для вас мастер, который 
выполнит эти шаги.
+upgradeInfo.performMigration.buttonLabel=Начать миграцию прямо сейчас
+upgradeInfo.thankyou.title=Спасибо за использование Enigmail
+upgradeInfo.thankyou.desc1=Работать над Enigmail на протяжении почти двух 
десятилетий было большим удовольствием. Мы благодарны за то, что смогли внести 
свой вклад в идею шифрования электронных писем. Мы надеемся, что вы нашли 
Enigmail полезным, и хотели бы поблагодарить вас за вашу постоянную поддержку в 
течение этих многих лет.
 # upgradeInfo.thankyou.desc2=If you want to help out, then please consider <a 
href="https://donate.mozilla.org/thunderbird";>donating to Thunderbird</a>.
 aboutEnigmail.tabName=Об Enigmail
 aboutEnigmail.title=Поддержка OpenPGP, предоставленная Enigmail
@@ -149,7 +149,7 @@
 aboutEnigmail.documentation=Документация:
 aboutEnigmail.testing=Тестирование:
 aboutEnigmail.userSupport=Поддержка пользователей:
-# aboutEnigmail.userSupport.team=the team and the list/forum members
+aboutEnigmail.userSupport.team=команда и участники списка/форума
 aboutEnigmail.localization=Локализация: <em>См. <a 
href="https://www.enigmail.net/download/langpack.php"; target="_blank">страницу 
языковых пакетов Enigmail</a></em></li>
 aboutEnigmail.Credits=Участники:
 aboutEnigmail.origAuthor=Первоначальный автор расширения Enigmail
@@ -161,5 +161,5 @@
 aboutEnigmail.support=Поддержка и файлы для загрузки доступны на сайте <a 
href="https://www.enigmail.net/";>www.enigmail.net</a>.
 updateGnuPG.checkUpdate=Проверить обновления GnuPG
 # import.secretKeyImportError=An error has occurred in GnuPG while importing 
secret keys. The import was not successful.
-# passphrasePrompt=Please enter the passphrase for the following key: %S
-# openpgpInitError=An error occurred during the initialization of the OpenPGP 
infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if 
OpenPGP in Thunderbird is not intialized properly.
+passphrasePrompt=Введите кодовую фразу для следующего ключа: %S
+openpgpInitError=Произошла ошибка при инициализации инфраструктуры OpenPGP в 
Thunderbird.\n\nМастер миграции не может продолжить работу, если OpenPGP в 
Thunderbird не инициализирован должным образом.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/core.jsm 
new/enigmail/package/core.jsm
--- old/enigmail/package/core.jsm       2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/package/core.jsm       2020-10-01 15:32:58.000000000 +0200
@@ -24,6 +24,7 @@
 const getEnigmailWindows = EnigmailLazy.loader("enigmail/windows.jsm", 
"EnigmailWindows");
 const getEnigmailApp = EnigmailLazy.loader("enigmail/app.jsm", "EnigmailApp");
 const getEnigmailOverlays = 
EnigmailLazy.loader("enigmail/enigmailOverlays.jsm", "EnigmailOverlays");
+const getEnigmailTimer = EnigmailLazy.loader("enigmail/timer.jsm", 
"EnigmailTimer");
 const Services = 
ChromeUtils.import("resource://gre/modules/Services.jsm").Services;
 var {
   MailConstants
@@ -33,7 +34,6 @@
 
 // Interfaces
 const nsIEnvironment = Ci.nsIEnvironment;
-const APP_STARTUP = 1;
 
 var gPreferredGpgPath = null;
 var gOverwriteEnvVar = [];
@@ -81,35 +81,15 @@
         // try to initialize Enigmail
         gEnigmailService.initialize(null, getEnigmailApp().getVersion());
       }
-
-
-    }
-
-    function continueStartup(type) {
-      logger.DEBUG(`core.jsm: startup.continueStartup(${type})\n`);
-
-      try {
-        if (isPostbox() || reason !== APP_STARTUP) {
-          // Postbox or while not starting up
-          initService();
-        }
-
-      }
-      catch (ex) {
-        gEnigmailService = null;
-        logger.DEBUG("core.jsm: startup.continueStartup: error " + ex.message 
+ "\n" + ex.stack + "\n");
-      }
-
-      getEnigmailOverlays().startup();
     }
 
-    if ((!isPostbox()) && reason === APP_STARTUP) {
-      // if TB starts up, observe "mail-tabs-session-restored"
-      Services.obs.addObserver(initService, "mail-tabs-session-restored", 
false);
-    }
+    // if TB starts up, observe "mail-tabs-session-restored"
+    Services.obs.addObserver(initService, "mail-tabs-session-restored", false);
 
-    continueStartup(0);
+    // in any case (for example if Enigmail is updated or re-enabled), wait 10 
seconds then initialize
+    getEnigmailTimer().setTimeout(initService, 10000);
 
+    getEnigmailOverlays().startup();
   },
 
   shutdown: function(reason) {
@@ -410,10 +390,3 @@
     Cm.unregisterFactory(this.component.prototype.classID, this);
   }
 }
-
-function isPostbox() {
-  const POSTBOX_ID = "[email protected]";
-  const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1";
-
-  return Cc[XPCOM_APPINFO].getService(Ci.nsIXULAppInfo).ID == POSTBOX_ID;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/cryptoAPI/gnupg-keylist.jsm 
new/enigmail/package/cryptoAPI/gnupg-keylist.jsm
--- old/enigmail/package/cryptoAPI/gnupg-keylist.jsm    2020-08-30 
17:46:13.000000000 +0200
+++ new/enigmail/package/cryptoAPI/gnupg-keylist.jsm    2020-10-01 
15:32:58.000000000 +0200
@@ -37,6 +37,7 @@
 const USERID_ID = 9;
 const SIG_TYPE_ID = 10;
 const KEY_USE_FOR_ID = 11;
+const KEY_TOKEN = 14;
 
 const ALGO_SYMBOL = {
   1: "RSA",
@@ -139,12 +140,14 @@
         keyObj = keyList.index[listRow[KEY_ID]];
         if (keyObj) {
           keyObj.secretAvailable = true;
+          keyObj.token = listRow[KEY_TOKEN];
           // create a dummy object that is not added to the list since we 
already have the key
           keyObj = createKeyObj(listRow);
         } else {
           appendUnkownSecretKey(listRow[KEY_ID], keyListString, i, keyList);
           keyObj = keyList.index[listRow[KEY_ID]];
           keyObj.secretAvailable = true;
+          keyObj.token = listRow[KEY_TOKEN];
         }
         break;
       case "fpr":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/keyObj.jsm 
new/enigmail/package/keyObj.jsm
--- old/enigmail/package/keyObj.jsm     2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/package/keyObj.jsm     2020-10-01 15:32:58.000000000 +0200
@@ -27,6 +27,9 @@
   - secretAvailable - [Boolean] true if secret key is available
   - algoSym         - public key algorithm type (String, e.g. RSA)
   - keySize         - size of public key
+  - token           - S/N of card for keys on smartcard
+                      # for offline public keys
+                      + for regular secret keys
   - type            - "pub" or "grp"
   - userIds  - [Array]: - Contains ALL UIDs (including the primary UID)
                     * userId     - User ID
@@ -93,6 +96,7 @@
     this.minimalKeyBlock = [];
     this.photoAvailable = false;
     this.secretAvailable = false;
+    this.token = "";
     this._sigList = null;
 
     this.type = keyData.type;
@@ -104,7 +108,7 @@
 
     const ATTRS = [
       "created", "keyCreated", "keyTrust", "keyUseFor", "ownerTrust", 
"algoSym", "keySize",
-      "userIds", "subKeys", "fpr", "secretAvailable", "photoAvailable", 
"userId"
+      "userIds", "subKeys", "fpr", "secretAvailable", "photoAvailable", 
"userId", "token"
     ];
     for (let i of ATTRS) {
       if (i in keyData) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/windows.jsm 
new/enigmail/package/windows.jsm
--- old/enigmail/package/windows.jsm    2020-08-30 17:46:13.000000000 +0200
+++ new/enigmail/package/windows.jsm    2020-10-01 15:32:58.000000000 +0200
@@ -109,9 +109,11 @@
   /**
    * Display the "About Enigmail" window
    *
+   * @param {Boolean} displayWizard: display the Migration wizard, regardless 
of pEp settings
+   *
    * no return value
    */
-  openUpdateInfo: function() {
+  openUpdateInfo: function(displayWizard = false) {
     let appShellSvc = 
Cc["@mozilla.org/appshell/appShellService;1"].getService(Ci.nsIAppShellService);
     let platform = appShellSvc.hiddenDOMWindow.navigator.platform.replace(/[ 
\t].*$/, "");
     let locale = 
Cc["@mozilla.org/intl/localeservice;1"].getService(Ci.mozILocaleService).appLocalesAsBCP47;
@@ -122,7 +124,7 @@
       locale = "en";
     }
 
-    if (EnigmailPrefs.getPref("juniorMode") === 2) {
+    if ((!displayWizard) && (EnigmailPrefs.getPref("juniorMode") === 2)) {
       const URL="https://pep.software/thunderbird/%p?lang=%l";;
 
       let url = URL.replace("%p", platform).replace("%l", locale);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/enigmailKeySelection.xhtml 
new/enigmail/ui/content/enigmailKeySelection.xhtml
--- old/enigmail/ui/content/enigmailKeySelection.xhtml  2020-08-30 
17:46:13.000000000 +0200
+++ new/enigmail/ui/content/enigmailKeySelection.xhtml  2020-10-01 
15:32:58.000000000 +0200
@@ -104,6 +104,7 @@
               id="refreshKeys"
               label="&enigmail.refreshKeys.label;"
               accesskey="&enigmail.refreshKeys.accesskey;"
+              collapsed="true"
               oncommand="refreshKeys();"/>
 
       <button class="dialog"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/enigmailMessengerOverlay.js 
new/enigmail/ui/content/enigmailMessengerOverlay.js
--- old/enigmail/ui/content/enigmailMessengerOverlay.js 2020-08-30 
17:46:13.000000000 +0200
+++ new/enigmail/ui/content/enigmailMessengerOverlay.js 2020-10-01 
15:32:58.000000000 +0200
@@ -42,7 +42,7 @@
       mnu2.setAttribute("id", "appmenu_enigmailUpgradeMenu");
       mnu2.setAttribute("class", "subviewbutton subviewbutton-iconic");
       mnu2.setAttribute("closemenu", "none");
-      mnu2.setAttribute("oncommand", "E2TBWindows.openUpdateInfo()");
+      mnu2.setAttribute("oncommand", "E2TBWindows.openUpdateInfo(true)");
       mnu2.setAttribute("label", mnu.getAttribute("label"));
 
       if ((!lastVersion) || vc.compare(lastVersion, "2.2a1") >= 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/enigmailMessengerOverlay.xhtml 
new/enigmail/ui/content/enigmailMessengerOverlay.xhtml
--- old/enigmail/ui/content/enigmailMessengerOverlay.xhtml      2020-08-30 
17:46:13.000000000 +0200
+++ new/enigmail/ui/content/enigmailMessengerOverlay.xhtml      2020-10-01 
15:32:58.000000000 +0200
@@ -21,7 +21,7 @@
     <menuitem id="enigmailUpgradeMenu"
         label="&enigmail.messenger.menulabel;"
         insertbefore="devtoolsMenu"
-        oncommand="E2TBWindows.openUpdateInfo()"
+        oncommand="E2TBWindows.openUpdateInfo(true)"
         collapsed="true"/>
   </menupopup>
 </overlay>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/setupWizard2.js 
new/enigmail/ui/content/setupWizard2.js
--- old/enigmail/ui/content/setupWizard2.js     2020-08-30 17:46:13.000000000 
+0200
+++ new/enigmail/ui/content/setupWizard2.js     2020-10-01 15:32:58.000000000 
+0200
@@ -20,6 +20,7 @@
 var E2TBCryptoAPI = 
ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI;
 var E2TBPrefs = 
ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs;
 var E2TBCore = 
ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore;
+var E2TBApp = 
ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp;
 var Services = 
ChromeUtils.import("resource://gre/modules/Services.jsm").Services;
 
 // OpenPGP implementation in TB
@@ -29,14 +30,17 @@
 var PgpSqliteDb2 = 
ChromeUtils.import("chrome://openpgp/content/modules/sqliteDb.jsm").PgpSqliteDb2;
 var EnigmailCryptoAPI = 
ChromeUtils.import("chrome://openpgp/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI;
 var RNP = ChromeUtils.import("chrome://openpgp/content/modules/RNP.jsm").RNP;
+var EnigmailFuncs = 
ChromeUtils.import("chrome://openpgp/content/modules/funcs.jsm").EnigmailFuncs;
 
 var gSelectedPrivateKeys = null,
   gPublicKeys = [],
+  gGpgmeFpr = [],
   gAcceptButton = null,
   gCancelButton = null,
   gDialogCancelled = false,
   gProcessing = false,
-  gRestartNeeded = false;
+  gRestartNeeded = false,
+  gRequireGpgme = false;
 
 function onLoad() {
   E2TBLog.DEBUG(`setupWizard2.js: onLoad()\n`);
@@ -140,8 +144,18 @@
   finally {
     // restore saving function
     RNP.saveKeyRings = origSaveKeyRing;
+  }
+
+  try {
     RNP.saveKeyRings();
   }
+  catch (ex) {
+    let profD = E2TBApp.getProfileDirectory();
+    profD.append("pubring.asc");
+    E2TBDialog.alert(window, E2TBLocale.getString("fileWriteFailed", 
profD.path));
+    window.close();
+    return;
+  }
 
   if (gDialogCancelled) return;
 
@@ -191,21 +205,32 @@
     numKeysProcessed = 0;
 
   for (let fpr of gSelectedPrivateKeys) {
-    if (gDialogCancelled) return closeAfterCancel();
+    let secKeyObj = E2TBKeyRing.getKeyById(fpr);
+    if (secKeyObj.token && secKeyObj.token !== "+") {
+      E2TBLog.DEBUG(`setupWizard2.js: exportKeys: found offline/smartcard key 
${fpr}\n`);
+      gRequireGpgme = true;
+      gGpgmeFpr.push(fpr);
+    }
+    else {
+      if (gDialogCancelled) return closeAfterCancel();
 
-    let secKeyFile = tmpDir.clone();
-    secKeyFile.append(fpr + ".sec");
+      let secKeyFile = tmpDir.clone();
+      secKeyFile.append(fpr + ".sec");
 
-    E2TBLog.DEBUG("setupWizard2.js: exportKeys: secFile: " + secKeyFile.path + 
"\n");
-    E2TBKeyRing.extractKey(true, fpr, secKeyFile, exitCodeObj, errorMsgObj);
+      E2TBLog.DEBUG("setupWizard2.js: exportKeys: secFile: " + secKeyFile.path 
+ "\n");
+      E2TBKeyRing.extractKey(true, fpr, secKeyFile, exitCodeObj, errorMsgObj);
 
-    ++numKeysProcessed;
-    setExportProgress(numKeysProcessed / totalNumKeys * 100);
+      ++numKeysProcessed;
+      setExportProgress(numKeysProcessed / totalNumKeys * 100);
 
-    if (exitCodeObj.value !== 0) {
-      E2TBLog.DEBUG(`importExportWizard: error while exporting secret key 
${fpr}\n`);
-      E2TBDialog.alert(window, E2TBLocale.getString("dataExportError"));
-      return false;
+      if (exitCodeObj.value !== 0) {
+        E2TBLog.DEBUG(`importExportWizard: error while exporting secret key 
${fpr}\n`);
+        E2TBDialog.alert(window, E2TBLocale.getString("dataExportError"));
+        return false;
+      }
+
+      numKeysProcessed += gSelectedPrivateKeys.length;
+      setExportProgress(numKeysProcessed / totalNumKeys * 100);
     }
   }
 
@@ -247,20 +272,22 @@
   document.getElementById("importingKeys").style.visibility = "visible";
 
   let numKeysProcessed = 0;
-  const totalNumKeys = gSelectedPrivateKeys.length + gPublicKeys.length;
+  const totalNumKeys = gPublicKeys.length + gSelectedPrivateKeys.length;
 
   for (let fpr of gSelectedPrivateKeys) {
     if (gDialogCancelled) return closeAfterCancel();
 
-    let secKeyFile = tmpDir.clone();
-    secKeyFile.append(fpr + ".sec");
-
-    E2TBLog.DEBUG("setupWizard2.js: importKeys: secFile: " + secKeyFile.path + 
"\n");
-    if (!(await importKeyFile(fpr, secKeyFile, true))) {
-      secKeysFailed.push(fpr);
+    if (gGpgmeFpr.indexOf(fpr) < 0) {
+      let secKeyFile = tmpDir.clone();
+      secKeyFile.append(fpr + ".sec");
+
+      E2TBLog.DEBUG("setupWizard2.js: importKeys: secFile: " + secKeyFile.path 
+ "\n");
+      if (!(await importKeyFile(fpr, secKeyFile, true))) {
+        secKeysFailed.push(fpr);
+      }
+      ++numKeysProcessed;
+      setImportProgress(numKeysProcessed / totalNumKeys * 100);
     }
-    ++numKeysProcessed;
-    setImportProgress(numKeysProcessed / totalNumKeys * 100);
   }
 
   if (secKeysFailed.length > 0) {
@@ -270,6 +297,15 @@
     );
   }
 
+  if (gRequireGpgme) {
+    E2TBPrefs.getPrefRoot().setBoolPref("mail.openpgp.allow_external_gnupg", 
true);
+    let gpgPath = E2TBPrefs.getPref("agentPath");
+    if (gpgPath.length > 0) {
+      E2TBPrefs.getPrefRoot().setCharPref("mail.openpgp.alternative_gpg_path", 
gpgPath);
+    }
+    gRestartNeeded = true;
+  }
+
   for (let fpr of gPublicKeys) {
     if (gDialogCancelled) return closeAfterCancel();
 
@@ -389,6 +425,10 @@
     identity.setCharAttribute("openpgp_key_id", keyObj.keyId);
     identity.setIntAttribute("encryptionpolicy", 
identity.getIntAttribute("defaultEncryptionPolicy") > 0 ? 2 : 0);
     identity.setBoolAttribute("sign_mail", 
(identity.getIntAttribute("defaultSigningPolicy") > 0));
+    if (gGpgmeFpr.indexOf("0x" + keyObj.fpr) >= 0) {
+      identity.setCharAttribute("last_entered_external_gnupg_key_id", 
keyObj.keyId);
+      identity.setBoolAttribute("is_gnupg_key_id", true);
+    }
   }
 }
 
@@ -404,7 +444,23 @@
 
 async function applyPersonalKey(fpr) {
   try {
-    await PgpSqliteDb2.acceptAsPersonalKey(fpr);
+    if (gGpgmeFpr.indexOf("0x" + fpr) < 0) {
+      // key imported in TB
+      await PgpSqliteDb2.acceptAsPersonalKey(fpr);
+    }
+    else {
+      // key for GpgME
+      let secKeyObj = E2TBKeyRing.getKeyById(fpr);
+      let emailArray = [];
+      for (let uid of secKeyObj.userIds) {
+        if (uid.type == "uid" && uid.keyTrust === "u") {
+          emailArray.push(EnigmailFuncs.stripEmail(uid.userId));
+        }
+      }
+
+      E2TBLog.DEBUG(`updating acceptance for ${fpr} / ${emailArray.join(", 
")}`);
+      await PgpSqliteDb2.updateAcceptance(fpr, emailArray, "verified");
+    }
   }
   catch (x) {}
 }



Reply via email to